def ad.au.key
bend-osdev-aead@0.1.0.0 · authenc.bend:104
import bend-osdev-aead@0.1.0.0/authenc.bend as Authenc
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
104def ad.au.key(~KE: Data, ~KM: Data, ~ekey: B.Octets -> Result<&2, &2, Cr.CrError, KE>, ~mkey: B.Octets -> Result<&2, &2, Cr.CrError, KM>, +elen: Nat, +o: B.Octets) -> Result<&2, &2, Cr.CrError, AdAuthencKey<KE, KM>>:
105 +n = B.Octets.len(o)
106 +m = Nat.sub(n, elen)
107 Result.bind(&2, &2, Cr.CrError, Unit, AdAuthencKey<KE, KM>, Cr.CrError.check(Nat.is_le(elen, n), Cr.CrBadKeyLength{n}), u => AdAuthenc.key_of(~KE, ~KM, ~ekey, ~mkey, B.Octets.drop(m, o), B.Octets.take(m, o)))