def ccm.ctrb.go

bend-osdev-cipher-modes@0.1.0.0 · ccm.bend:199

import bend-osdev-cipher-modes@0.1.0.0/ccm.bend as Ccm
import Base
import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M

199# the blocks so far kept reversed in acc
200def ccm.ctrb.go(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, +k: K, bs: List<&2, M.CmBlock>, +a0: M.CmBlock, +i: U32, acc: List<&2, M.CmBlock>) -> List<&2, M.CmBlock>:
201  match bs:
202    case Nil{}:
203      M.cm.blocks.rev_onto(acc, Nil{})
204    case Con{b, rest}:
205      ccm.ctrb.go(~K, ~enc, k, rest, a0, U32.add(i, 1), Con{M.CmBlock.xor(b, enc(k, ccm.ai(a0, i))), acc})

Uses (7)

Used by (2)