Cast5.cast.f: def of bend-osdev-legacy-ciphers@0.1.0.0 Import: import bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend as Cast5 Lines 337-348 of bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend&start_line=337&end_line=348 import Base import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L # f of type ty on data d, with masking key km and rotation kr (0 to 31) def cast.f(ty: LcCastTy, +t: LcCastTabs, d: U32, km: U32, +kr: U32) -> U32: match ty: case LcCastF1{}: +i = L.lc.rotl(U32.add(km, d), U32.to_nat(kr)) U32.add(U32.sub(U32.xor(cast.lookup(t, i, 0n), cast.lookup(t, i, 1n)), cast.lookup(t, i, 2n)), cast.lookup(t, i, 3n)) case LcCastF2{}: +i = L.lc.rotl(U32.xor(km, d), U32.to_nat(kr)) U32.xor(U32.add(U32.sub(cast.lookup(t, i, 0n), cast.lookup(t, i, 1n)), cast.lookup(t, i, 2n)), cast.lookup(t, i, 3n)) case LcCastF3{}: +i = L.lc.rotl(U32.sub(km, d), U32.to_nat(kr)) U32.sub(U32.xor(U32.add(cast.lookup(t, i, 0n), cast.lookup(t, i, 1n)), cast.lookup(t, i, 2n)), cast.lookup(t, i, 3n)) Uses (9): 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.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.xor https://jend.leeeet.dev/definition.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend&name=LcCastTabs https://jend.leeeet.dev/definition.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend&name=LcCastTy https://jend.leeeet.dev/definition.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/cast5.bend&name=cast.lookup https://jend.leeeet.dev/definition.txt?path=bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend&name=lc.rotl