def cr.xcbc.full
bend-osdev-crypto@0.1.0.0 · xcbc.bend:48
import bend-osdev-crypto@0.1.0.0/xcbc.bend as Xcbc
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-crypto@0.1.0.0/octets.bend as O
48def cr.xcbc.full(full: Bool, +bsize: Nat, +k2: B.Octets, +k3: B.Octets, +p: B.Octets) -> B.Octets:
49 match full:
50 case True{}:
51 O.CrOct.xor(p, k2)
52 case False{}:
53 O.CrOct.xor(B.Octets.append(p, B.Octets.cons(128, B.Octets.zeros(Nat.sub(bsize, Nat.add(B.Octets.len(p), 1n))))), k3)