def ad.ec.open.go
bend-osdev-aead@0.1.0.0 · echainiv.bend:65
import bend-osdev-aead@0.1.0.0/echainiv.bend as Echainiv
import 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
65def ad.ec.open.go(~KA: Data, ~KC: Data, ~open: KA -> B.Octets -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>, +k: AdEchainivKey<KA, KC>, aad: B.Octets, +n: Nat, s: Maybe<&2, B.OctetsSplit>) -> Result<&2, &2, Cr.CrError, B.Octets>:
66 match s:
67 case None{}:
68 Fail{Cr.CrTooShort{n}}
69 case Some{B.OctetsSplit{+iv, c}}:
70 open(ad.ec.ka(~KA, ~KC, k), iv, B.Octets.append(aad, iv), c)