inst_ccm.bend
bend-osdev-crypto@0.1.0.0 · 21 lines · 2 definitions
1
2
3
4
5
6
7
8import Base
9import bend-osdev-bytes@0.1.0.0/bytes.bend as B
10import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M
11import bend-osdev-cipher-modes@0.1.0.0/ccm.bend as CC
12import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr
13import bend-osdev-crypto@0.1.0.0/inst_cm.bend as CM
14
15
16def CrCcm.seal(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, ~tlen: Nat, k: K, nonce: B.Octets, aad: B.Octets, p: B.Octets) -> Result<&2, &2, Cr.CrError, B.Octets>:
17 CM.CrCm.lift(~B.Octets, CC.Ccm.encrypt(~K, ~enc, k, tlen, nonce, aad, p))
18
19
20def CrCcm.open(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, ~tlen: Nat, k: K, nonce: B.Octets, aad: B.Octets, c: B.Octets) -> Result<&2, &2, Cr.CrError, B.Octets>:
21 CM.CrCm.lift(~B.Octets, CC.Ccm.decrypt(~K, ~enc, k, tlen, nonce, aad, c))