verify method

bool verify(
  1. SchnorrkelSignature signature,
  2. MerlinTranscript signingContextScript
)

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);
}