Authenc.ad.au.open.go: def of bend-osdev-aead@0.1.0.0 Import: import bend-osdev-aead@0.1.0.0/authenc.bend as Authenc Lines 85-88 of bend-osdev-aead@0.1.0.0/authenc.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-aead@0.1.0.0/authenc.bend&start_line=85&end_line=88 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 import bend-osdev-aead@0.1.0.0/aead.bend as Ad def ad.au.open.go(~KE: Data, ~KM: Data, ~dec: KE -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>, ~mac: KM -> B.Octets -> B.Octets, ~input: B.Octets -> B.Octets -> B.Octets -> B.Octets, ~tlen: Nat, +k: AdAuthencKey, +iv: B.Octets, +aad: B.Octets, s: Ad.AdSplit) -> Result<&2, &2, Cr.CrError, B.Octets>: match s: case Ad.AdSplit{+c, t}: Result.bind(&2, &2, Cr.CrError, Unit, B.Octets, ad.au.check(Ad.AdTag.is_eq(AdAuthenc.tag(~KE, ~KM, ~mac, ~input, ~tlen, k, aad, iv, c), t)), u => dec(ad.au.ke(~KE, ~KM, k), iv, c)) Uses (12): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Result https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Result.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Unit https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aead.bend&name=AdSplit https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aead.bend&name=AdTag.is_eq https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/authenc.bend&name=AdAuthenc.tag https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/authenc.bend&name=AdAuthencKey https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/authenc.bend&name=ad.au.check https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/authenc.bend&name=ad.au.ke https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-crypto@0.1.0.0/crypto.bend&name=CrError