magicwallet/nostr/keys.go
ekzyis 92876c5011 users, sessions and wallets w/o authentication
* if a request has no session cookie, a new user, session and wallet is created and session cookie is set
* if a request has a session cookie and session exists in db, we will fetch user and wallet from db
* this means that we have a user and wallet during each render without any login required
2024-12-15 21:56:26 +01:00

29 lines
718 B
Go

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
}