def Pkcs7.unpad.go

bend-osdev-cipher-modes@0.1.0.0 · pkcs7.bend:73

import bend-osdev-cipher-modes@0.1.0.0/pkcs7.bend as Pkcs7
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M

73def Pkcs7.unpad.go(ok: Bool, +bs: Nat, +m: B.Octets) -> Result<&2, &2, M.CmError, B.Octets>:
74  match ok:
75    case True{}:
76      +n = B.Octets.len(m)
77      do Result<&2, &2, M.CmError, B.Octets>:
78        M.cm.check(Nat.is_lt(0n, n), M.CmTooShort{n})
79        M.cm.check(Nat.is_eq(Nat.mod(n, bs), 0n), M.CmNotBlockMultiple{n})
80        pkcs7.unpad.oct(bs, m, n)
81    case False{}:
82      Fail{M.CmBadBlockSize{bs}}

Uses (13)

Used by (1)