MIR: Cryptographic operations
Let's add support for the remaining cryptographic operations:
-
BLAKE2B: bytes : A — bytes : A!11006 (merged) -
HASH_KEY: key : A — key_hash : A!11009 (merged) -
KECCAK: bytes : A — bytes : A!11006 (merged) -
SHA256: bytes : A — bytes : A!11006 (merged) -
SHA3: bytes : A — bytes : A!11006 (merged) -
SHA512: bytes : A — bytes : A!11006 (merged)
Sapling
We should be able to use librustzcash, which is what Octez uses.
-
SAPLING_EMPTY_STATE ms: A — sapling_state ms : A -
SAPLING_VERIFY_UPDATE: sapling_transaction ms : sapling_state ms : A — option ( pair bytes ( pair int ( sapling_state ms ) ) ) : A
BLS
We'll use blst
-
PAIRING_CHECK: list ( pair bls12_381_g1 bls12_381_g2 ) : A — bool : A!11228 (merged) -
ADD: bls12_381_g1 : bls12_381_g1 : A — bls12_381_g1 : A!11227 (merged) -
ADD: bls12_381_g2 : bls12_381_g2 : A — bls12_381_g2 : A!11227 (merged) -
ADD: bls12_381_fr : bls12_381_fr : A — bls12_381_fr : A!11227 (merged) -
INT: bls12_381_fr : A — int : A!11227 (merged) -
MUL: bls12_381_g1 : bls12_381_fr : A — bls12_381_g1 : A!11245 (merged) -
MUL: bls12_381_g2 : bls12_381_fr : A — bls12_381_g2 : A!11245 (merged) -
MUL: bls12_381_fr : bls12_381_fr : A — bls12_381_fr : A!11245 (merged) -
MUL: nat : bls12_381_fr : A — bls12_381_fr : A!11245 (merged) -
MUL: int : bls12_381_fr : A — bls12_381_fr : A!11245 (merged) -
MUL: bls12_381_fr : nat : A — bls12_381_fr : A!11245 (merged) -
MUL: bls12_381_fr : int : A — bls12_381_fr : A!11245 (merged) -
NEG: bls12_381_g1 : A — bls12_381_g1 : A!11245 (merged) -
NEG: bls12_381_g2 : A — bls12_381_g2 : A!11245 (merged) -
NEG: bls12_381_fr : A — bls12_381_fr : A!11245 (merged)
Edited by Diogo Castro