LAWS.michael_accepts: law of bend-osdev-crypto@0.1.0.0 Import: import bend-osdev-crypto@0.1.0.0/LAWS.bend as LAWS Lines 478-486 of bend-osdev-crypto@0.1.0.0/LAWS.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-crypto@0.1.0.0/LAWS.bend&start_line=478&end_line=486 import Base import bend-osdev-bytes@0.1.0.0/bytes.bend as B import bend-osdev-hashes@0.1.0.0/hashes.bend as Hs import bend-osdev-hashes@0.1.0.0/michael.bend as HMI import bend-osdev-crypto@0.1.0.0/inst_michael.bend as MIC # Michael as a MAC (inst_michael.bend): it accepts what it computes, for # every key and message (it uses the named default verify); a key of # another length than 8 bytes is refused; the sixth test vector recalled as # IEEE 802.11i's, through the MAC interface (not checked against a published # copy: hashes/README.md) law michael_accepts: for +k: Hs.HsW2 for +m: B.Octets {MIC.CrMichael.verify(k, m, HMI.HsMichael.mic(k, m)) == True{} : Bool} Uses (6): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-crypto@0.1.0.0/LAWS.bend&name=mac_verify_tag_accepts https://jend.leeeet.dev/definition.txt?path=bend-osdev-crypto@0.1.0.0/inst_michael.bend&name=CrMichael.verify https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/hashes.bend&name=HsW2 https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/michael.bend&name=HsMichael.mic