def add_masked

bend-collections@1.0.0.0 · src/crypto/aes/gcm.bend:34

import bend-collections@1.0.0.0/src/crypto/aes/gcm.bend as Gcm
import Base

34# Z xor (V and (0 - bit)), bit being 0 or 1.
35def add_masked(+bit: U32, z: Block, v: Block) -> Block:
36  match z v:
37    case B{z0, z1, z2, z3} B{v0, v1, v2, v3}:
38      +m = U32.sub(0, bit)
39      B{U32.xor(z0, U32.and(m, v0)), U32.xor(z1, U32.and(m, v1)),
40        U32.xor(z2, U32.and(m, v2)), U32.xor(z3, U32.and(m, v3))}

Uses (5)

Used by (1)