src/crypto/sha3/core.bend checks
raw source on the hub · import bend-collections-laws-crypto@1.0.0.0/src/crypto/sha3/core.bend as Core
Generated by tools/generators/sha3_gen.py; do not edit by hand.
4 imports
import Base import ../keccak/types.bend as T import ../keccak/lane.bend as L import ../keccak/permutation.bend as P
Definitions
def pack source · line 14 · raw
@a:U32 -> @b:U32 -> @c:U32 -> @d:U32 -> U32
def lanes source · line 18 · raw
@bytes:List<&2, U32> -> List<&2, 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane>
def tail source · line 26 · raw
@q:Nat -> List<&2, U32>
0x06, zeros, 0x80 up to the end of the block (0x86 when one byte is left).
def suffix source · line 35 · raw
@+n:Nat -> List<&2, U32>
def zero source · line 38 · raw
0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State
def inject source · line 42 · raw
@s:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State -> @l0:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l1:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l2:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l3:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l4:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l5:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l6:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l7:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l8:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l9:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l10:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l11:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l12:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l13:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l14:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l15:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> @l16:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane -> 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State
XOR one block into the leading 17 lanes.
def absorb source · line 48 · raw
@ls:List<&2, 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.Lane> -> @+rounds:Nat -> @s:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State -> 0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State
Absorb every whole block of 17 lanes with the given round count (24).
def le_bytes source · line 55 · raw
@+x:U32 -> @tail:List<&2, U32> -> List<&2, U32>
def digest_bytes source · line 59 · raw
@s:0xa7e654f9780078ca65bf9e187da99d3e/src/crypto/keccak/types.State -> List<&2, U32>
The 32-byte digest: lanes 0..3, little-endian.
def hash_padded source · line 64 · raw
@bytes:List<&2, U32> -> @+rounds:Nat -> List<&2, U32>
def keccak source · line 67 · raw
@+bytes:List<&2, U32> -> @+rounds:Nat -> List<&2, U32>
def sha3_256 source · line 70 · raw
@bytes:List<&2, U32> -> List<&2, U32>