Check.main: def of bend-osdev-aead@0.1.0.0 Import: import bend-osdev-aead@0.1.0.0/check.bend as Check Lines 190-224 of bend-osdev-aead@0.1.0.0/check.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-aead@0.1.0.0/check.bend&start_line=190&end_line=224 import Base import bend-osdev-bytes@0.1.0.0/bytes.bend as B import bend-osdev-aead@0.1.0.0/aesround.bend as R def main() -> IO(Unit): +z16 = B.Octets.zeros(16n) +k = hx("000102030405060708090a0b0c0d0e0f") +n = hx("101112131415161718191a1b1c1d1e1f") +kr = hx("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f") +pr = B.Octets.of_string("A cipher system must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience") +ivr = hx("1af38c2dc2b96ffdd86694092341bc04") +ar = B.Octets.of_string("The second principle of Auguste Kerckhoffs") +ak = hx("202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f000102030405060708090a0b0c0d0e0f") +m32 = hx("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f") +sk = hx("000102030405060708090a0b0c0d0e0fa0a1a2a3a4a5a6a7a8a9aaab") do IO: IO.print(R.AdBlk.hex(R.AdAes.round(R.AdAes.sbox(), R.AdBlk.of_octets(hx("000102030405060708090a0b0c0d0e0f")), R.AdBlk.of_octets(hx("101112131415161718191a1b1c1d1e1f"))))) IO.print(aegis(z16, z16, B.Octets.empty(), B.Octets.empty())) IO.print(aegis(z16, z16, B.Octets.empty(), z16)) IO.print(aegis(k, n, hx("0001020304050607"), m32)) IO.print(aegis(k, n, hx("00010203"), hx("000102030405060708090a0b0c"))) IO.print(aegis(k, n, B.Octets.of_string("associated data, two blocks long"), B.Octets.of_string("a message of sixty-one bytes, which ends in a partial block..."))) IO.print(aegis_open(k, n, hx("00010203"), hx("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c"))) IO.print(aegis_seal(hx("000102030405060708090a0b0c0d0e"), n, B.Octets.empty(), B.Octets.empty())) IO.print(aegis_seal(k, hx("101112131415161718191a1b1c1d1e"), B.Octets.empty(), B.Octets.empty())) IO.print(aegis_open(k, n, B.Octets.empty(), hx("000102030405060708090a0b0c0d0e"))) IO.print(authenc(~au.seal_m, ~au.open_m, kr, ivr, ar, pr)) IO.print(authenc(~au.seal_k, ~au.open_k, kr, ivr, ar, m32)) IO.print(authenc_open(~au.open_m, kr, ivr, ar, hx("c80edfa32ddf39d5ef00c0b468834279a2e46a1b8049f792f76bfe54b903a9c9a94ac9b47ad2655c5f10f9aef71427e2fc6f9b3f399a221489f16362c703233609d45ac69864e3321cf82935ac4096c86e133314c54019e8ca7980dfa4b9cf1b384c486f3a54c51078158ee5d79de59fbd34d848b3d69550a67646344427ade54b8851ffb598f7f80074b9473c82e2db652c3fa36b0a7c5b3219fab3a30bc1c5"))) IO.print(authenc_open(~au.open_k, kr, ivr, ar, hx("00"))) IO.print(essiv(kr, hx("00000000000000000000000000000000"), m32)) IO.print(essiv(k, hx("07000000000000000000000000000000"), B.Octets.zeros(64n))) IO.print(seqiv(sk, hx("0000000000000001"), hx("0001020304050607"), B.Octets.of_string("seqiv over AES-CCM"))) IO.print(seqiv(sk, hx("00000000000000ff00000002"), B.Octets.empty(), B.Octets.empty())) IO.print(seqiv_open(sk, hx("0000000000000001"), hx("0001020304050607"), hx("a1a1a2a3a4a5a6a7a8a9aaaa0d0593fbd64079e780eac7a612cbc2c361abf939db30bd025719f04d7e5611335a36"))) IO.print(seqiv_open(sk, hx("0000000000000001"), hx("0001020304050607"), hx("a0a1a2a3a4a5"))) IO.print(echainiv(ak, k, n, hx("0000000000000001"), hx("0001020304050607"), m32)) IO.print(echainiv(ak, k, n, hx("0000000000000002"), B.Octets.empty(), B.Octets.zeros(48n))) IO.print(echainiv_open(ak, k, n, hx("0000000000000001"), hx("0001020304050607"), hx("5f7ed55606bdb961c1821f3964f0677519fae8ab350e663f77fc5e7c714699385a8f006affb14b20ca29241a76851a0baf0e8efc707dcaf9a1b324015191ccebd83f61f0f2787a85a647e10061197f69"))) Uses (26): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.print https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Unit https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&name=AdAes.round https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&name=AdAes.sbox https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&name=AdBlk.hex https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/aesround.bend&name=AdBlk.of_octets https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=aegis https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=aegis_open https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=aegis_seal https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=au.open_k https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=au.open_m https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=au.seal_k https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=au.seal_m https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=authenc https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=authenc_open https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=echainiv https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=echainiv_open https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=essiv https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=hx https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=seqiv https://jend.leeeet.dev/definition.txt?path=bend-osdev-aead@0.1.0.0/check.bend&name=seqiv_open https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.empty https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.of_string https://jend.leeeet.dev/definition.txt?path=bend-osdev-bytes@0.1.1.0/bytes.bend&name=Octets.zeros