delphi.market/test/lnauth.go

36 lines
682 B
Go

package test
import (
"crypto/ecdsa"
"crypto/rand"
"encoding/hex"
"github.com/decred/dcrd/dcrec/secp256k1/v4"
)
func GenerateKeyPair() (*secp256k1.PrivateKey, *secp256k1.PublicKey, error) {
var (
sk *secp256k1.PrivateKey
err error
)
if sk, err = secp256k1.GeneratePrivateKey(); err != nil {
return nil, nil, err
}
return sk, sk.PubKey(), nil
}
func Sign(sk *secp256k1.PrivateKey, k1_ string) (string, error) {
var (
k1 []byte
sig []byte
err error
)
if k1, err = hex.DecodeString(k1_); err != nil {
return "", err
}
if sig, err = ecdsa.SignASN1(rand.Reader, sk.ToECDSA(), k1); err != nil {
return "", err
}
return hex.EncodeToString(sig), nil
}