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 }