crhIvk static method

JubJubNativeFr crhIvk({
  1. required List<int> ak,
  2. required List<int> nk,
})

Implementation

static JubJubNativeFr crhIvk({required List<int> ak, required List<int> nk}) {
  final List<int> zcashIvk = [90, 99, 97, 115, 104, 105, 118, 107];
  final hash = QuickCrypto.blake2s256Hash(
    ak.exc(
      operation: "crhIvk",
      name: "ak",
      reason: "Invalid ak bytes length.",
      length: 32,
    ),
    extraBlocks: [
      nk.exc(
        operation: "crhIvk",
        name: "nk",
        reason: "Invalid nk bytes length.",
        length: 32,
      ),
    ],
    personalization: zcashIvk,
  );
  hash[31] &= 7;
  return JubJubNativeFr.fromBytes(hash);
}