nodeSigner: add method for signing already hashed data

This commit is contained in:
Johan T. Halseth 2017-09-05 17:56:36 +02:00
parent 0086e6e427
commit 07ea3e039f
No known key found for this signature in database
GPG Key ID: 15BAADA29DA20D26
1 changed files with 10 additions and 4 deletions

View File

@ -53,18 +53,24 @@ func (n *nodeSigner) SignMessage(pubKey *btcec.PublicKey,
// resident node's private key. The returned signature is a pubkey-recoverable
// signature.
func (n *nodeSigner) SignCompact(msg []byte) ([]byte, error) {
// Otherwise, we'll sign the dsha256 of the target message.
// We'll sign the dsha256 of the target message.
digest := chainhash.DoubleHashB(msg)
return n.SignDigestCompact(digest)
}
// SignDigestCompact signs the provided message digest under the resident
// node's private key. The returned signature is a pubkey-recoverable signature.
func (n *nodeSigner) SignDigestCompact(hash []byte) ([]byte, error) {
// Should the signature reference a compressed public key or not.
isCompressedKey := true
// btcec.SignCompact returns a pubkey-recoverable signature
sig, err := btcec.SignCompact(btcec.S256(), n.privKey, digest,
sig, err := btcec.SignCompact(btcec.S256(), n.privKey, hash,
isCompressedKey)
if err != nil {
return nil, fmt.Errorf("can't sign the message: %v", err)
return nil, fmt.Errorf("can't sign the hash: %v", err)
}
return sig, nil