def CrPcbc.encrypt

bend-osdev-crypto@0.1.0.0 · pcbc.bend:74

import bend-osdev-crypto@0.1.0.0/pcbc.bend as Pcbc
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr
import bend-osdev-crypto@0.1.0.0/modes.bend as Md

74# PCBC on bytes: a message of whole blocks under a one-block IV
75# (CrBadIvLength, CrNotBlockMultiple otherwise)
76def CrPcbc.encrypt(~K: Data, ~Blk: Data, ~bsize: Nat, ~enc: K -> Blk -> Blk, ~bxor: Blk -> Blk -> Blk, ~blk_of: B.Octets -> Maybe<&2, Blk>, ~blk_to: Blk -> B.Octets, +k: K, iv: B.Octets, m: B.Octets) -> Result<&2, &2, Cr.CrError, B.Octets>:
77  do Result<&2, &2, Cr.CrError, B.Octets>:
78    v : Blk <- Md.cr.iv(~Blk, ~blk_of, iv)
79    bs : List<&2, Blk> <- Md.CrModes.blocks_of(~Blk, ~bsize, ~blk_of, m)
80    return Md.CrModes.octets_of(~Blk, ~blk_to, CrPcbc.encrypt_blocks(~K, ~Blk, ~enc, ~bxor, k, v, bs))

Uses (12)

Used by (1)