law authenc_tamper
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/aead.bend as Ad
import bend-osdev-aead@0.1.0.0/authenc.bend as Au
77# a tag of tlen bytes other than the computed one is refused, and the
78# cipher never runs
79law authenc_tamper:
80 for ~KE: Data
81 for ~KM: Data
82 for ~dec: KE -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>
83 for ~mac: KM -> B.Octets -> B.Octets
84 for ~input: B.Octets -> B.Octets -> B.Octets -> B.Octets
85 for ~tlen: Nat
86 for +k: Au.AdAuthencKey<KE, KM>
87 for +iv: B.Octets
88 for +aad: B.Octets
89 for +c: B.Octets
90 for +t: B.Octets
91 for hl: {B.Octets.len(t) == tlen : Nat}
92 for ht: {Ad.AdTag.is_eq(Au.AdAuthenc.tag(~KE, ~KM, ~mac, ~input, ~tlen, k, aad, iv, c), t) == False{} : Bool}
93 {Au.AdAuthenc.open(~KE, ~KM, ~dec, ~mac, ~input, ~tlen, k, iv, aad, B.Octets.append(c, t)) == Fail{Cr.CrTagMismatch{}} : Result<&2, &2, Cr.CrError, B.Octets>}
Uses (20)
Used by (0)
No other definition uses this definition.