signBytes method
Implementation
List<int> signBytes(List<int> message) {
final pkBytes = toVerificationKey().toBytes();
final randBytes = QuickCrypto.generateRandom(80);
final nonceBytes = QuickCrypto.blake2b512Hash(
randBytes,
personalization: "Zcash_RedJubjubH".codeUnits,
extraBlocks: [pkBytes, message],
);
// PallasPoint
final nonce = JubJubFr.fromBytes64(nonceBytes);
final r = generator() * nonce;
final rBytes = r.toBytes();
final cBytes = QuickCrypto.blake2b512Hash(
rBytes,
personalization: "Zcash_RedJubjubH".codeUnits,
extraBlocks: [pkBytes, message],
);
final c = JubJubFr.fromBytes64(cBytes);
final sk = JubJubFr.fromBytes(toBytes());
final s = nonce + (c * sk);
final sBytes = s.toBytes();
return [...rBytes, ...sBytes];
}