Aesround.ad.aes.mix: def of bend-osdev-aead@0.1.0.0 Import: import bend-osdev-aead@0.1.0.0/aesround.bend as Aesround Lines 156-162 of bend-osdev-aead@0.1.0.0/aesround.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&start_line=156&end_line=162 import Base # MixColumns of one column a0 .. a3 (row 0 first), as a word def ad.aes.mix(+a0: U32, +a1: U32, +a2: U32, +a3: U32) -> U32: +b0 = U32.xor(U32.xor(ad.aes.x2(a0), U32.xor(ad.aes.x2(a1), a1)), U32.xor(a2, a3)) +b1 = U32.xor(U32.xor(a0, ad.aes.x2(a1)), U32.xor(U32.xor(ad.aes.x2(a2), a2), a3)) +b2 = U32.xor(U32.xor(a0, a1), U32.xor(ad.aes.x2(a2), U32.xor(ad.aes.x2(a3), a3))) +b3 = U32.xor(U32.xor(U32.xor(ad.aes.x2(a0), a0), a1), U32.xor(a2, ad.aes.x2(a3))) U32.or(U32.or(U32.shln(b0, 24n), U32.shln(b1, 16n)), U32.or(U32.shln(b2, 8n), b3)) Uses (5): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shln https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.xor https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&name=ad.aes.x2