LAWS.cbc_blocks_round_trip: law of bend-osdev-cbc@0.1.0.0 Import: import bend-osdev-cbc@0.1.0.0/LAWS.bend as LAWS Lines 16-24 of bend-osdev-cbc@0.1.0.0/LAWS.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-cbc@0.1.0.0/LAWS.bend&start_line=16&end_line=24 import Base import bend-osdev-mode-core@0.1.0.0/mode_core.bend as M import bend-osdev-cbc@0.1.0.0/cbc.bend as C law cbc_blocks_round_trip: for ~K: Data for ~enc: K -> M.CmBlock -> M.CmBlock for ~dec: K -> M.CmBlock -> M.CmBlock for +k: K for inv: @xs: List<&2, M.CmBlock> -> {M.CmBlock.dec_enc(~K, ~enc, ~dec, k, xs) == xs : List<&2, M.CmBlock>} for iv: M.CmBlock for bs: List<&2, M.CmBlock> {C.Cbc.decrypt_blocks(~K, ~dec, k, iv, C.Cbc.encrypt_blocks(~K, ~enc, k, iv, bs)) == bs : List<&2, M.CmBlock>} Uses (11): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/PROOF.bend&name=cbcp.go https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/PROOF.bend&name=cbcp.ins https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/PROOF.bend&name=tr.cbc_dec_eq https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/PROOF.bend&name=tr.cbc_enc_eq https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/cbc.bend&name=Cbc.decrypt_blocks https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/cbc.bend&name=Cbc.encrypt_blocks https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/cbc.bend&name=cbc.dec.fast https://jend.leeeet.dev/definition.txt?path=bend-osdev-cbc@0.1.0.0/cbc.bend&name=cbc.enc https://jend.leeeet.dev/definition.txt?path=bend-osdev-mode-core@0.1.0.0/mode_core.bend&name=CmBlock https://jend.leeeet.dev/definition.txt?path=bend-osdev-mode-core@0.1.0.0/mode_core.bend&name=CmBlock.dec_enc