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))

Uses (6)

Used by (4)