lnwire: add MsgHash helper

This commit adds the MsgHash helper funcion which can be used to
calculate the digest of a message to be signed using schnorr signatures.
This commit is contained in:
Elle Mouton 2023-10-26 14:06:39 +02:00
parent 81c83f39d3
commit 9be42b09a0
No known key found for this signature in database
GPG Key ID: D7D916376026F177

30
lnwire/msg_hash.go Normal file
View File

@ -0,0 +1,30 @@
package lnwire
import (
"github.com/btcsuite/btcd/chaincfg/chainhash"
)
// MsgHashTag will prefix the message name and the field name in order to
// construct the message tag.
const MsgHashTag = "lightning"
// MsgTag computes the full tag that will be used to prefix a message before
// calculating the tagged hash. The tag is constructed as follows:
//
// tag = "lightning"||"msg_name"||"field_name"
func MsgTag(msgName, fieldName string) []byte {
tag := []byte(MsgHashTag)
tag = append(tag, []byte(msgName)...)
return append(tag, []byte(fieldName)...)
}
// MsgHash computes the tagged hash of the given message as follows:
//
// tag = "lightning"||"msg_name"||"field_name"
// hash = sha256(sha246(tag) || sha256(tag) || msg)
func MsgHash(msgName, fieldName string, msg []byte) *chainhash.Hash {
tag := MsgTag(msgName, fieldName)
return chainhash.TaggedHash(tag, msg)
}