def fc.f
bend-osdev-legacy-ciphers@0.1.0.0 · fcrypt.bend:174
import bend-osdev-legacy-ciphers@0.1.0.0/fcrypt.bend as Fcrypt
import Base
import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L
174
175def fc.f(k: LcFcRk, r: U32) -> U32:
176 match k:
177 case LcFcRk{w, t}:
178 match t:
179 case LcFcTabs{s0, s1, s2, s3}:
180 +x = U32.xor(r, w)
181 L.lc.rotl(L.lc.be(L.lc.tab.get(8n, s0, L.lc.byte(x, 0n)), L.lc.tab.get(8n, s1, L.lc.byte(x, 1n)), L.lc.tab.get(8n, s3, L.lc.byte(x, 3n)), L.lc.tab.get(8n, s2, L.lc.byte(x, 2n))), 27n)