def run
bend-collections-laws-crypto@1.0.0.0 · src/crypto/argon2/argon2.bend:345
import bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/argon2.bend as Argon2
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/blamka.bend as G
import bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/memory.bend as M
345
346def run(+pw: List<&2, U32>, +salt: List<&2, U32>, +key: List<&2, U32>, +ad: List<&2, U32>, +t: Nat, +m: Nat, +p: Nat, +tl: Nat) -> List<&2, U32>:
347 +mm = blocks(m, p)
348 +q = Nat.div(mm, p)
349 +sl = Nat.div(q, 4n)
350 +k = M.levels(mm)
351 +hh = h0(p, tl, m, t, pw, salt, key, ad)
352 a = passes_go(t, 0n, p, q, sl, mm, t, init_go(p, 0n, q, hh, M.new(k)))
353 hprime(tl, block_bytes(final_go(Nat.sub(p, 1n), 0n, q, G.zero(), M.get(Nat.sub(q, 1n), a))))