def advance

bend-collections-laws-crypto@1.0.0.0 · spec/crypto/blake/blake2b.bend:196

import bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b.bend as Blake2b
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types.bend as T

196# t := t + x on the 128-bit counter, carrying from limb to limb.
197def advance(c: T.Counter, +x: U32) -> T.Counter:
198  match c:
199    case T.C{c0,c1,c2,c3}:
200      +s0 = U32.add(c0,x)
201      +k0 = Bool.to_u32(U32.is_lt(s0,x))
202      +s1 = U32.add(c1,k0)
203      +k1 = Bool.to_u32(U32.is_lt(s1,k0))
204      +s2 = U32.add(c2,k1)
205      T.C{s0,s1,s2,U32.add(c3,Bool.to_u32(U32.is_lt(s2,k1)))}

Uses (5)

Used by (6)