magicwallet/nostr/keys.go

29 lines
718 B
Go
Raw Normal View History

package nostr
import (
"github.com/decred/dcrd/dcrec/secp256k1"
)
// nostr uses schnorr signatures over secp256k1 as defined by BIP-340
// https://github.com/nostr-protocol/nips/blob/master/01.md
// https://bips.xyz/340
type PrivateKey = *secp256k1.PrivateKey
type PublicKey = *secp256k1.PublicKey
func GeneratePrivateKey() (*secp256k1.PrivateKey, error) {
return secp256k1.GeneratePrivateKey()
}
func GetPublicKey(sk *secp256k1.PrivateKey) *secp256k1.PublicKey {
pk := (secp256k1.PublicKey)(sk.PublicKey)
return &pk
}
func GenerateKeyPair() (*secp256k1.PrivateKey, *secp256k1.PublicKey, error) {
sk, err := GeneratePrivateKey()
if err != nil {
return nil, nil, err
}
return sk, GetPublicKey(sk), nil
}