delphi.market/test/lnauth.go

29 lines
593 B
Go

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