def hp_pick
bend-collections-laws-crypto@1.0.0.0 · src/crypto/argon2/argon2.bend:40
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/blake/blake2b/sized.bend as H
40def hp_pick(+tl: Nat, +x: List<&2, U32>, short: Bool) -> List<&2, U32>:
41 match short:
42 case True{}:
43 H.hash(tl, x)
44 case False{}:
45 +r = Nat.sub(Nat.div(Nat.add(tl, 31n), 32n), 2n)
46 hp_go(Nat.sub(r, 1n), H.hash(64n, x), Nat.sub(tl, Nat.mul(32n, r)))