~/bend-docscommunity

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>