def ad.sq.key

bend-osdev-aead@0.1.0.0 · seqiv.bend:46

import bend-osdev-aead@0.1.0.0/seqiv.bend as Seqiv
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

46def ad.sq.key(~KA: Data, ~akey: B.Octets -> Result<&2, &2, Cr.CrError, KA>, +ivlen: Nat, +o: B.Octets) -> Result<&2, &2, Cr.CrError, AdSeqivKey<KA>>:
47  +n = B.Octets.len(o)
48  +m = Nat.sub(n, ivlen)
49  do Result<&2, &2, Cr.CrError, AdSeqivKey<KA>>:
50    Cr.CrError.check(Nat.is_le(ivlen, n), Cr.CrBadKeyLength{n})
51    ka : KA <- akey(B.Octets.take(m, o))
52    return AdSeqivKey{ka, B.Octets.drop(m, o)}

Uses (14)

Used by (1)