def add_masked
import bend-collections@1.0.0.0/src/crypto/aes/gcm.bend as Gcmimport 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))}