def absorb

bend-collections-laws-crypto@1.0.0.0 · spec/crypto/poly1305.bend:105

import bend-collections-laws-crypto@1.0.0.0/spec/crypto/poly1305.bend as Poly1305
import Base

105# for each block: n = le_bytes_to_num(block | [0x01]); a += n; a = (r * a) % p
106def absorb(bs: List<&2, List<&2, U32>>, +r: Nat, a: Nat) -> Nat:
107  match bs:
108    case Nil{}: a
109    case b <> rest:
110      +n = le_num(List.append(&2, U32, b, [1]))
111      absorb(rest, r, modp(Nat.mul(r, Nat.add(a, n))))

Uses (8)

Used by (8)