verifySignature method
bool
verifySignature(
- ReddsaSignature signature,
- List<
int> message, { - bool hashMessage = true,
override
Verifies a RedDSA signature for a message.
Implementation
@override
bool verifySignature(
ReddsaSignature signature,
List<int> message, {
bool hashMessage = true,
}) {
if (hashMessage) {
message = QuickCrypto.blake2b512Hash(
signature.rBytes,
personalization: "Zcash_RedJubjubH".codeUnits,
extraBlocks: [toBytes(), message],
);
}
try {
final c = JubJubNativeFr.fromBytes64(message);
final r = JubJubNativePoint.fromBytes(signature.rBytes);
final s = JubJubNativeFr.fromBytes(signature.sBytes);
final sb = generator() * s;
final ca = toPoint() * c;
final n = (sb - ca - r);
return n.isSmallOrder();
} catch (_) {}
return false;
}