signMessage method
Signs a message using Bitcoin's message signing format.
This method produces a compact ECDSA signature for a given message, following the Bitcoin Signed Message standard.
message
: The raw message to be signed.messagePrefix
: The prefix used for Bitcoin's message signing.extraEntropy
: Optional extra entropy to modify the signature.
Implementation
List<int> signMessage(
{required List<int> message,
bool hashMessage = true,
String messagePrefix = BitcoinSignerUtils.signMessagePrefix,
List<int> extraEntropy = const []}) {
List<int> messgaeHash = message;
if (hashMessage) {
messgaeHash = QuickCrypto.sha256Hash(
BitcoinSignerUtils.magicMessage(message, messagePrefix));
}
final signature =
_signingKey.sign(digest: messgaeHash, extraEntropy: extraEntropy);
return [
signature.item2 + 27,
...signature.item1.toBytes(BitcoinSignerUtils.baselen)
];
}