def pcbc_fc

bend-osdev-crypto@0.1.0.0 · check.bend:315

import bend-osdev-crypto@0.1.0.0/check.bend as Check
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-legacy-ciphers@0.1.0.0/legacy_ciphers.bend as L
import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr
import bend-osdev-crypto@0.1.0.0/inst_lc.bend as LC
import bend-osdev-crypto@0.1.0.0/pcbc.bend as Pc
import bend-osdev-legacy-ciphers@0.1.0.0/fcrypt.bend as Fc

315def pcbc_fc(+k: B.Octets, +iv: B.Octets, +m: B.Octets) -> String:
316  +r = LC.CrLc.key(~Fc.LcFcryptKey, ~Fc.LcFcrypt.key, k)
317  +c = Result.bind(&2, &2, Cr.CrError, Fc.LcFcryptKey, B.Octets, r, kk => Pc.CrPcbc.encrypt(~Fc.LcFcryptKey, ~L.LcBlock64, ~8n, ~Fc.LcFcrypt.encrypt, ~LC.CrBlk64.xor, ~L.LcBlock64.of_octets, ~L.LcBlock64.to_octets, kk, iv, m))
318  both(c, Result.bind(&2, &2, Cr.CrError, Fc.LcFcryptKey, B.Octets, r, kk => Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, c, x => Pc.CrPcbc.decrypt(~Fc.LcFcryptKey, ~L.LcBlock64, ~8n, ~Fc.LcFcrypt.decrypt, ~LC.CrBlk64.xor, ~L.LcBlock64.of_octets, ~L.LcBlock64.to_octets, kk, iv, x))))

Uses (16)

Used by (1)