package crypto import ( "crypto/sha256" "git.mleku.dev/mleku/nostr/crypto/ec/schnorr" "git.mleku.dev/mleku/nostr/crypto/ec/secp256k1" "git.mleku.dev/mleku/nostr/encoders/bech32encoding" ) func NsecToBytes(nsec string) ([]byte, error) { return bech32encoding.NsecToBytes(nsec) } func PubKeyFromPrivKey(privKeyBytes []byte) ([]byte, error) { sk := secp256k1.SecKeyFromBytes(privKeyBytes) pub := sk.PubKey() return schnorr.SerializePubKey(pub), nil } func SignSchnorr(privKeyBytes, message []byte) ([]byte, error) { sk := secp256k1.SecKeyFromBytes(privKeyBytes) sig, err := schnorr.Sign(sk, message) if err != nil { return nil, err } return sig.Serialize(), nil } func Sha256(data []byte) []byte { h := sha256.Sum256(data) return h[:] }