def m64.cbc.enc
import bend-osdev-legacy-ciphers@0.1.0.0/modes64.bend as Modes64import Base
import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L
29# C_1 = E(P_1 xor IV), C_j = E(P_j xor C_(j-1))
30def m64.cbc.enc(~K: Data, ~enc: K -> L.LcBlock64 -> L.LcBlock64, +k: K, bs: List<&2, L.LcBlock64>, iv: L.LcBlock64) -> List<&2, L.LcBlock64>:
31 match bs:
32 case Nil{}:
33 Nil{}
34 case Con{p, t}:
35 +c = enc(k, L.LcBlock64.xor(iv, p))
36 Con{c, m64.cbc.enc(~K, ~enc, k, t, c)}