Des.des.sbox: def of bend-osdev-legacy-ciphers@0.1.0.0 Import: import bend-osdev-legacy-ciphers@0.1.0.0/des.bend as Des Lines 177-181 of bend-osdev-legacy-ciphers@0.1.0.0/des.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/des.bend&start_line=177&end_line=181 import Base import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L # the S-box entry for 6 bits b1 .. b6: row b1 b6, column b2 b3 b4 b5 def des.sbox(s: List<&2, U32>, +x: U32) -> U32: +row = U32.or(U32.and(2, U32.shrn(x, 4n)), U32.and(1, x)) +col = U32.and(15, U32.shr(x)) L.lc.at(s, U32.to_nat(U32.add(U32.mul(row, 16), col))) Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul 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.shr https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shrn https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend&name=lc.at