law authenc_round_trip_if
import bend-osdev-aead@0.1.0.0/LAWS.bend as LAWSimport 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-aead@0.1.0.0/authenc.bend as Au
61law authenc_round_trip_if:
62 for ~KE: Data
63 for ~KM: Data
64 for ~enc: KE -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>
65 for ~dec: KE -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>
66 for ~mac: KM -> B.Octets -> B.Octets
67 for ~input: B.Octets -> B.Octets -> B.Octets -> B.Octets
68 for ~tlen: Nat
69 for +ke: KE
70 for +km: KM
71 for +iv: B.Octets
72 for +aad: B.Octets
73 for +p: B.Octets
74 for h: {Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, enc(ke, iv, p), c => dec(ke, iv, c)) == Result.map(&2, &2, Cr.CrError, B.Octets, B.Octets, c => p, enc(ke, iv, p)) : Result<&2, &2, Cr.CrError, B.Octets>}
75 {Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, Au.AdAuthenc.seal(~KE, ~KM, ~enc, ~mac, ~input, ~tlen, Au.AdAuthencKey{ke, km}, iv, aad, p), c => Au.AdAuthenc.open(~KE, ~KM, ~dec, ~mac, ~input, ~tlen, Au.AdAuthencKey{ke, km}, iv, aad, c)) == Result.map(&2, &2, Cr.CrError, B.Octets, B.Octets, c => p, Au.AdAuthenc.seal(~KE, ~KM, ~enc, ~mac, ~input, ~tlen, Au.AdAuthencKey{ke, km}, iv, aad, p)) : Result<&2, &2, Cr.CrError, B.Octets>}
Uses (10)
Used by (0)
No other definition uses this definition.