def block_rounds

bend-collections-laws-crypto@1.0.0.0 · src/crypto/sha512/core.bend:95

import bend-collections-laws-crypto@1.0.0.0/src/crypto/sha512/core.bend as Core
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/sha512/types.bend as T

95# The block's own words first, then q window rounds (q = 64 for SHA-512);
96# win is the block reversed.
97def block_rounds(ws: List<&2, T.Lane>, +q: Nat, win: Sched, ks: List<&2, T.Lane>, s: T.State) -> T.State:
98  match ws ks:
99    case Nil{} _:
100      window_rounds(q, win, ks, s)
101    case w <> wt Nil{}:
102      s
103    case w <> wt k <> kt:
104      block_rounds(wt, q, win, kt, step(s, k, w))

Uses (7)

Used by (3)