verify method
Verifies a Schnorrkel signature using the public key and a transcript.
Parameters:
signature: The Schnorrkel signature to be verified.signingContextScript: A transcript containing context-specific information for signature verification.
Implementation
bool verify(
SchnorrkelSignature signature,
MerlinTranscript signingContextScript,
) {
signingContextScript.additionalData(
"proto-name".codeUnits,
"Schnorr-sig".codeUnits,
);
signingContextScript.additionalData("sign:pk".codeUnits, toBytes());
signingContextScript.additionalData("sign:R".codeUnits, signature.r);
final kBigint = signingContextScript.toBigint("sign:c".codeUnits, 64);
final r =
((-toPoint()) * kBigint) +
(Curves.generatorED25519 * signature.sBigint);
return BytesUtils.bytesEqual(r.toBytes(), signature.r);
}