miden-stdlib 0.19.1

Miden VM standard library
Documentation
1
2
3
4
5
6
7
8
Initializes four memory addresses, provided for storing initial 4x4 blake3<br />state matrix ( i.e. 16 elements each of 32 -bit ), for computing blake3 2-to-1 hash<br /><br />Expected stack state:<br /><br />[state_0_3_addr, state_4_7_addr, state_8_11_addr, state_12_15_addr]<br /><br />Note, state_`i`_`j`_addr -> absolute address of {state[i], state[i+1], state[i+2], state[i+3]} in memory \| j = i+3<br /><br />Final stack state:<br /><br />[...]<br /><br />Initialized stack state is written back to provided memory addresses.<br /><br />Functionally this routine is equivalent to https://github.com/itzmeanjan/blake3/blob/f07d32e/include/blake3.hpp#!L1709-L1713<br />


## std::crypto::hashes::blake3
| Procedure | Description |
| ----------- | ------------- |
| hash_2to1 | Blake3 2-to-1 hash function, which takes 64 -bytes input and produces 32 -bytes output digest<br /><br />Expected stack state:<br /><br />[msg0, msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9, msg10, msg11, msg12, msg13, msg14, msg15, ...]<br /><br />msg`i` -> 32 -bit message word \| i ∈ [0, 16)<br /><br />Final stack state:<br /><br />[dig0, dig1, dig2, dig3, dig4, dig5, dig6, dig7, ...]<br /><br />dig`i` -> 32 -bit digest word \| i ∈ [0, 8)<br /> |
| hash_1to1 | Blake3 1-to-1 hash function, which takes 32 -bytes input and produces 32 -bytes output digest<br /><br />Expected stack state:<br /><br />[msg0, msg1, msg2, msg3, msg4, msg5, msg6, msg7, ...]<br /><br />msg`i` -> 32 -bit message word \| i ∈ [0, 8)<br /><br />Final stack state:<br /><br />[dig0, dig1, dig2, dig3, dig4, dig5, dig6, dig7, ...]<br /><br />dig`i` -> 32 -bit digest word \| i ∈ [0, 8)<br /> |