def cbc.e2

bend-osdev-cbc@0.1.0.0 · cbc.bend:68

import bend-osdev-cbc@0.1.0.0/cbc.bend as Cbc
import Base
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-mode-core@0.1.0.0/mode_core.bend as M

68# the whole blocks under v, or CmNotBlockMultiple(n) if bytes are left over
69def cbc.e2(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, +k: K, v: M.CmBlock, s: M.CmSplit, +n: Nat) -> Result<&2, &2, M.CmError, B.Octets>:
70  match s:
71    case M.CmSplit{bs, tail}:
72      match tail:
73        case Nil{}:
74          Done{B.Octets.of_list(M.cm.join(cbc.enc(~K, ~enc, k, bs, v)))}
75        case Con{h, t}:
76          Fail{M.CmNotBlockMultiple{n}}

Uses (10)

Used by (4)