def authenc
bend-osdev-aead@0.1.0.0 · check.bend:134
import bend-osdev-aead@0.1.0.0/check.bend as Check
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-cipher-modes@0.1.0.0/aes.bend as X
import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr
import bend-osdev-crypto@0.1.0.0/hmac.bend as Hm
import bend-osdev-aead@0.1.0.0/authenc.bend as Au
134def authenc(~seal: Au.AdAuthencKey<X.CmAesKey, Hm.CrHmacKey> -> B.Octets -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>, ~open: Au.AdAuthencKey<X.CmAesKey, Hm.CrHmacKey> -> B.Octets -> B.Octets -> B.Octets -> Result<&2, &2, Cr.CrError, B.Octets>, +k: B.Octets, +iv: B.Octets, +a: B.Octets, +p: B.Octets) -> String:
135 +r = au.key(k)
136 +c = Result.bind(&2, &2, Cr.CrError, Au.AdAuthencKey<X.CmAesKey, Hm.CrHmacKey>, B.Octets, r, kk => seal(kk, iv, a, p))
137 both(c, Result.bind(&2, &2, Cr.CrError, Au.AdAuthencKey<X.CmAesKey, Hm.CrHmacKey>, B.Octets, r, kk => Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, c, x => open(kk, iv, a, x))))