- // +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)
- }
|