def cmac.push
bend-osdev-cipher-modes@0.1.0.0 · cmac.bend:44
import bend-osdev-cipher-modes@0.1.0.0/cmac.bend as Cmac
import Base
import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M
44def cmac.push(~K: Data, ~enc: K -> M.CmBlock -> M.CmBlock, full: Bool, +k: K, x: M.CmBlock, buf: List<&2, U32>, +n: Nat, b: U32) -> CmacState:
45 match full:
46 case True{}:
47 CmacState{enc(k, M.CmBlock.xor(x, M.cm.block_of(List.reverse(&2, U32, buf)))), Con{b, Nil{}}, 1n}
48 case False{}:
49 CmacState{x, Con{b, buf}, 1n+n}