def ad.aes.mix
bend-osdev-aead@0.1.0.0 · aesround.bend:156
import bend-osdev-aead@0.1.0.0/aesround.bend as Aesround
import Base
156
157def ad.aes.mix(+a0: U32, +a1: U32, +a2: U32, +a3: U32) -> U32:
158 +b0 = U32.xor(U32.xor(ad.aes.x2(a0), U32.xor(ad.aes.x2(a1), a1)), U32.xor(a2, a3))
159 +b1 = U32.xor(U32.xor(a0, ad.aes.x2(a1)), U32.xor(U32.xor(ad.aes.x2(a2), a2), a3))
160 +b2 = U32.xor(U32.xor(a0, a1), U32.xor(ad.aes.x2(a2), U32.xor(ad.aes.x2(a3), a3)))
161 +b3 = U32.xor(U32.xor(U32.xor(ad.aes.x2(a0), a0), a1), U32.xor(a2, ad.aes.x2(a3)))
162 U32.or(U32.or(U32.shln(b0, 24n), U32.shln(b1, 16n)), U32.or(U32.shln(b2, 8n), b3))