keypair err mgt + shorturl random improve
This commit is contained in:
15
asymcrypt.go
15
asymcrypt.go
@@ -2,6 +2,7 @@ package meowlib
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/ProtonMail/gopenpgp/v2/crypto"
|
||||
@@ -18,24 +19,24 @@ type KeyPair struct {
|
||||
|
||||
type KeysArray []KeyPair
|
||||
|
||||
func NewKeyPair() KeyPair {
|
||||
func NewKeyPair() (*KeyPair, error) { // Return error!
|
||||
var kp KeyPair
|
||||
keys, err := crypto.GenerateKey("name", "mail", "x25519", 0)
|
||||
if err != nil {
|
||||
log.Error().Msg("Key generation failed")
|
||||
return nil, fmt.Errorf("key generation failed: %w", err)
|
||||
}
|
||||
kp.Generated = time.Now()
|
||||
pub, err := keys.GetArmoredPublicKey()
|
||||
if err != nil {
|
||||
log.Error().Msg("Public key extraction failed")
|
||||
return nil, fmt.Errorf("failed to get public key: %w", err)
|
||||
}
|
||||
kp.Public = base64.StdEncoding.EncodeToString([]byte(pub))
|
||||
priv, err := keys.Armor()
|
||||
if err != nil {
|
||||
log.Error().Msg("Private key extraction failed")
|
||||
return nil, fmt.Errorf("failed to armor private key: %w", err)
|
||||
}
|
||||
kp.Public = base64.StdEncoding.EncodeToString([]byte(pub))
|
||||
kp.Private = base64.StdEncoding.EncodeToString([]byte(priv))
|
||||
return kp
|
||||
kp.Generated = time.Now()
|
||||
return &kp, nil
|
||||
}
|
||||
|
||||
func (Kp *KeyPair) GetCryptoKeyObject() *crypto.Key {
|
||||
|
||||
Reference in New Issue
Block a user