verify method
Verifies a Schnorrkel signature using the public key and a transcript.
This method verifies a Schnorrkel signature by appending context-specific information from the signing context script and performing the necessary cryptographic operations. It checks the validity of the provided signature.
Parameters:
signature: The Schnorrkel signature to be verified.signingContextScript: A transcript containing context-specific information for signature verification.
Returns: A boolean indicating whether the signature is valid (true) or not (false).
Example Usage:
SchnorrkelPublicKey publicKey = ...;
SchnorrkelSignature signature = ...;
MerlinTranscript signingContextScript = ...;
bool isSignatureValid = publicKey.verify(signature, signingContextScript);
The verify method is used to verify a Schnorrkel signature using the public key and context-specific information.
It returns true if the signature is valid, and false otherwise
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);
}