def essiv

bend-osdev-aead@0.1.0.0 · check.bend:153

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-aead@0.1.0.0/essiv.bend as Es

153def essiv(+k: B.Octets, +iv: B.Octets, +p: B.Octets) -> String:
154  +r = es.key(k)
155  +c = Result.bind(&2, &2, Cr.CrError, Es.AdEssivKey<X.CmAesKey, X.CmAesKey>, B.Octets, r, kk => es.enc(kk, iv, p))
156  both(c, Result.bind(&2, &2, Cr.CrError, Es.AdEssivKey<X.CmAesKey, X.CmAesKey>, B.Octets, r, kk => Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, c, x => es.dec(kk, iv, x))))

Uses (10)

Used by (1)