def des.f
bend-osdev-legacy-ciphers@0.1.0.0 · des.bend:236
import bend-osdev-legacy-ciphers@0.1.0.0/des.bend as Des
import Base
import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L
236def des.f(k: LcDesRk, +r: U32) -> U32:
237 match k:
238 case LcDesRk{LcDesSp{t1, t2, t3, t4, t5, t6, t7, t8}, k0, k1, k2, k3, k4, k5, k6, k7}:
239 +a = U32.xor(L.lc.tab.get(6n, t1, U32.xor(des.e(r, 31n), k0)), L.lc.tab.get(6n, t2, U32.xor(des.e(r, 3n), k1)))
240 +b = U32.xor(L.lc.tab.get(6n, t3, U32.xor(des.e(r, 7n), k2)), L.lc.tab.get(6n, t4, U32.xor(des.e(r, 11n), k3)))
241 +c = U32.xor(L.lc.tab.get(6n, t5, U32.xor(des.e(r, 15n), k4)), L.lc.tab.get(6n, t6, U32.xor(des.e(r, 19n), k5)))
242 +d = U32.xor(L.lc.tab.get(6n, t7, U32.xor(des.e(r, 23n), k6)), L.lc.tab.get(6n, t8, U32.xor(des.e(r, 27n), k7)))
243 U32.xor(U32.xor(a, b), U32.xor(c, d))