// +build libsecp256k1 package secp256k1 import ( "github.com/ethereum/go-ethereum/crypto/secp256k1" "github.com/tendermint/tendermint/crypto" ) // Sign creates an ECDSA signature on curve Secp256k1, using SHA256 on the msg. func (privKey PrivKeySecp256k1) Sign(msg []byte) ([]byte, error) { rsv, err := secp256k1.Sign(crypto.Sha256(msg), privKey[:]) if err != nil { return nil, err } // we do not need v in r||s||v: rs := rsv[:len(rsv)-1] return rs, nil } func (pubKey PubKeySecp256k1) VerifyBytes(msg []byte, sig []byte) bool { return secp256k1.VerifySignature(pubKey[:], crypto.Sha256(msg), sig) }