YACA: Add encrypt output tests 69/81169/26
authorMateusz Forc <m.forc@samsung.com>
Tue, 19 Jul 2016 13:31:09 +0000 (15:31 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 16 Aug 2016 13:35:07 +0000 (06:35 -0700)
Change-Id: I4087b0f3bfd792b2da34fa0ef881fa5519c389b3

src/yaca/test-vectors/encrypt_output_comparison.txt [new file with mode: 0644]
src/yaca/test-vectors/encrypt_output_comparison_rc2_cast5_nopad.txt [new file with mode: 0644]
src/yaca/test-vectors/encrypt_output_comparison_rc4.txt [new file with mode: 0644]
src/yaca/yaca-test-common.cpp
src/yaca/yaca-test-common.h
src/yaca/yaca-test-encrypt.cpp

diff --git a/src/yaca/test-vectors/encrypt_output_comparison.txt b/src/yaca/test-vectors/encrypt_output_comparison.txt
new file mode 100644 (file)
index 0000000..b08edfa
--- /dev/null
@@ -0,0 +1,936 @@
+################## aes-128-ecb ##################
+
+input=
+algo=AES
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=1
+output=0107871ab339f83b549d7ea045828d01
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=3
+output=00abbaff5522edcc797dbb9b65859d3885c0fe03fd8a818190090c8afdc2325c1f38d381df61576a7556fe369e48326a6c2a224d0b3f10680ec987d2e6bd33c3617d3b58f93002b765ed239464c38a06ac92c9160b6ca28661c80c9cc961883c62a88ff0956d96f4eb1f8bedcb21449fdc446f14584c21295e46683152d89ad914d9b95a6447d6d741b3f4c5591b3cd213a54223ce4059b151c8bbf23d6369da1c0ae8bc5033737d09b80df06312a2d9bb5998bf27c94fcf46dd282cd97d0851
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=5
+output=00abbaff5522edcc797dbb9b65859d3885c0fe03fd8a818190090c8afdc2325c1f38d381df61576a7556fe369e48326a6c2a224d0b3f10680ec987d2e6bd33c3617d3b58f93002b765ed239464c38a06ac92c9160b6ca28661c80c9cc961883c62a88ff0956d96f4eb1f8bedcb21449fdc446f14584c21295e46683152d89ad914d9b95a6447d6d741b3f4c5591b3cd213a54223ce4059b151c8bbf23d6369da1c0ae8bc5033737d09b80df06312a2d969bfe10e2d8753f982fd4bd0d7fa2e3e236227dee51b5789a4074539ad3809cbe0a36fe0c37fee5ad9d48afb290803c922c1a4e21a40df4927763ced9d1378f600abbaff5522edcc797dbb9b65859d3885c0fe03fd8a818190090c8afdc2325c1f38d381df61576a7556fe369e48326a775a038b94d9be6a416f25b22fff8dd4
+
+################## aes-192-ecb ##################
+
+input=
+algo=AES
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=1
+output=22e70cb858d2ae2e54cec6babf1f3ee1
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=3
+output=6a9a102ce10928cf3b499cbd9b8128711708655193e5985195a6524c87d51cf6b19c34e543ad39bafedfb63c78e2ffaa196c634dd98a519bd22d8856ae569ea4aff2fe3792a9ae9ec4733df405393e0121b7daa06eb7d6ce6d3a10835bf20b0c84cf09ce02b8d034e85ae395100d4d4a0597a38dfaf8c397ff0d857fa8d5be8393406966f1afcb6688f9bb422eabbe3047a748496289ee6364da4a0a1d40a3ca2c8614866ac01750dcfe86cc3991a03261a80907452165903b6b302f3e9cee29
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=5
+output=6a9a102ce10928cf3b499cbd9b8128711708655193e5985195a6524c87d51cf6b19c34e543ad39bafedfb63c78e2ffaa196c634dd98a519bd22d8856ae569ea4aff2fe3792a9ae9ec4733df405393e0121b7daa06eb7d6ce6d3a10835bf20b0c84cf09ce02b8d034e85ae395100d4d4a0597a38dfaf8c397ff0d857fa8d5be8393406966f1afcb6688f9bb422eabbe3047a748496289ee6364da4a0a1d40a3ca2c8614866ac01750dcfe86cc3991a032214f8d45c3a761b8206a78d2e13419de456959011390b1233c87f7961eb5b53c5177da2aea4923f4e94cfc95812e6d0a04e8805361760b43504a338b2389fa3b6a9a102ce10928cf3b499cbd9b8128711708655193e5985195a6524c87d51cf6b19c34e543ad39bafedfb63c78e2ffaaa144d02b1c9338b786577968acfdb639
+
+################## aes-256-ecb ##################
+
+input=
+algo=AES
+bcm=ECB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=
+repeats=1
+output=d271a4b58aed74a00db620a588cf3010
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=
+repeats=3
+output=cd10b1b8aa7c1863a08ac062bd22731ff9cb33b0e59cd67cf448445078e7c7618d04bcb9ae2fcd069f28e215fef2c1a0465d0a2d41ca3f5f7bfc1d8c589c80a3ce783a000914af6d72cc2af98fb9377072d22489fb6d1ddc99ed33efef2cb0062f47ae5616c5b0c59cdd58320bb9a59685bc00b3fe0efc75d4ec33427057833ae6cb640175b54ebd8de40f36d1ee93b4f0084be7f5dfb7e942b8de562799493c3b132dba162a316f5bb91a12dbbabe77ba52c7b567e7b995f8c206aab140adcb
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=ECB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=
+repeats=5
+output=cd10b1b8aa7c1863a08ac062bd22731ff9cb33b0e59cd67cf448445078e7c7618d04bcb9ae2fcd069f28e215fef2c1a0465d0a2d41ca3f5f7bfc1d8c589c80a3ce783a000914af6d72cc2af98fb9377072d22489fb6d1ddc99ed33efef2cb0062f47ae5616c5b0c59cdd58320bb9a59685bc00b3fe0efc75d4ec33427057833ae6cb640175b54ebd8de40f36d1ee93b4f0084be7f5dfb7e942b8de562799493c3b132dba162a316f5bb91a12dbbabe771028d8180e543cdfb16832cbc630b92ef19f594046a996689aad42ef67500f11e6867a9b43e7152c140dfdcb7f4b47e3559e606068b21aa63f8e3feaf0a14604cd10b1b8aa7c1863a08ac062bd22731ff9cb33b0e59cd67cf448445078e7c7618d04bcb9ae2fcd069f28e215fef2c1a09dbeeb2ee3f2f8d69e94d15876c52829
+
+################## aes-128-ctr ##################
+
+input=
+algo=AES
+bcm=CTR
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=b0db832f4db14eb563b99333f69f79317e765425381fa8302bbd4c295961fa1aa3489c657474030980c0d7f70ad4a8a198e08a23d013c60ebf1af389f48248e583c139148d72cecf89c0c66a5a186009a160773fc587ee18258764f9b260f6e3f89adb60e996af08e7e615834d742d52516dd05e9075acff2e5b5aa0f6f171fabf136152eb34c82801c38bc0b15721c0155f83058fbc4ae142e9c381286f630361a2e1acf9cf1798b7e45470c80cbe0c39634f4c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=b0db832f4db14eb563b99333f69f79317e765425381fa8302bbd4c295961fa1aa3489c657474030980c0d7f70ad4a8a198e08a23d013c60ebf1af389f48248e583c139148d72cecf89c0c66a5a186009a160773fc587ee18258764f9b260f6e3f89adb60e996af08e7e615834d742d52516dd05e9075acff2e5b5aa0f6f171fabf136152eb34c82801c38bc0b15721c0155f83058fbc4ae142e9c381286f630361a2e1acf9cf1798b7e45470c80cbe0c39634f4cee9afb87c533de60a89be0c6addb1c65dc0f745063083ca2e1b735659e67bb1bd27c147f26db844a1e1a278ab526623a2431a683e0da6b02587b796e78a019226169eb2efcf1ffb9a1d3125c79e989fb12f1705b559abe09070c0a24552b1ce04a3531b9fa50638bf150d14c45107924cef3457385cc6949
+
+################## aes-192-ctr ##################
+
+input=
+algo=AES
+bcm=CTR
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=88c6de3c2151e563fefbce573a174b5853d53bec1df0ab80dc9345f2355b043a7fc8e2ccc6b1135519967ac86e87400274e215b4e9f67c0818cc7875870023120f1604291fa42929b23f15d5382052898e6e1e258b0f325652a6aa02a7e97379220291ddbefdbd0a53e1a0d2923e599a7d7199c3adb0fdfcfc959ff9db22f7729d51fa60ae943804356e106766a8e1e62ede516b1596e55381c5a04f271a6d55c7aff24fb7d299bc067273892823fb868ef7a446
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=88c6de3c2151e563fefbce573a174b5853d53bec1df0ab80dc9345f2355b043a7fc8e2ccc6b1135519967ac86e87400274e215b4e9f67c0818cc7875870023120f1604291fa42929b23f15d5382052898e6e1e258b0f325652a6aa02a7e97379220291ddbefdbd0a53e1a0d2923e599a7d7199c3adb0fdfcfc959ff9db22f7729d51fa60ae943804356e106766a8e1e62ede516b1596e55381c5a04f271a6d55c7aff24fb7d299bc067273892823fb868ef7a4469ef9f52ba8a4d8cb3b92c37c6dc5e4c1361f582ffb6c33ce9db0b9ad90d20a64f0ff2c151f79d25460bd4abc1189d047fd4146d07a8dfbe4993a268277b157cdd99b72211149926cddd34748ec6f8b0aad51d5ef4540bd836fbad880d9cb5301692e077a26514e15f910c87c3dc825e95d038733812670c7
+
+################## aes-256-ctr ##################
+
+input=
+algo=AES
+bcm=CTR
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=6182193f7f4b00beb039d295f22e31cb657134cfe9d2e72d741ce95767fa5d68871d21d426a9361577b141717c63eac903b378d19813ab095d9138f90e07a0011682b6a3a3a5b3f1af58801e2d57dd4c08656d525242dfdb10bc5339b7e56a6c7d3743f41daebcab9dfe2127f744da03b0e6bab864bf113069cdac50b5d622a5a821ca737b5c7851ce12cfa8e9f5dc6313410a45a24bfc41bb4609d01fa331f145e2355d90d21be63c8b8cf4eaf4b350d4d1d177
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CTR
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=6182193f7f4b00beb039d295f22e31cb657134cfe9d2e72d741ce95767fa5d68871d21d426a9361577b141717c63eac903b378d19813ab095d9138f90e07a0011682b6a3a3a5b3f1af58801e2d57dd4c08656d525242dfdb10bc5339b7e56a6c7d3743f41daebcab9dfe2127f744da03b0e6bab864bf113069cdac50b5d622a5a821ca737b5c7851ce12cfa8e9f5dc6313410a45a24bfc41bb4609d01fa331f145e2355d90d21be63c8b8cf4eaf4b350d4d1d17701b5ee46c11acb49492d2f350aa114534670199be96a0cdef775ecc0fadd48bcee3414c9f62002bc9466512a4071f8d454252b57c25fe077e7191a01e958f0bae7cfae2a711ca67ae515f44dd173a79e3739e0f561cafb55fedc9d14671b6ade215c72d66fc70ea17b2f3b619d8a90604e14190945e5e940
+
+################## aes-128-cbc ##################
+
+input=
+algo=AES
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=8a648b6f0f9992ff2f7061ad2ded9cbb
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=1ebf3393b76d6df4e415401753c7dd64e3aa0a129a9d50e446c01d24f4784f1b2a842ce29d722bc1c0da2bf4f013f4461bfb1d1fecbc5baf2662222c043ce8e3d642e12fe1077600943909e1fe2e841cf705e6f6a851e8b158eea6ed99db2a074ba9181914887df262f89e2a3efd1e8224ff67f76dd039cb6b25d0fbfcb8e7ddd68e822f59b8ecc253c774f8e4e04ab3dbf2bba009973bb49f8abe859bf1e1cb62778901648201dd07a21d80b3dbb83e042e1fd0d28ef385b926a7feb4ebafba
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=1ebf3393b76d6df4e415401753c7dd64e3aa0a129a9d50e446c01d24f4784f1b2a842ce29d722bc1c0da2bf4f013f4461bfb1d1fecbc5baf2662222c043ce8e3d642e12fe1077600943909e1fe2e841cf705e6f6a851e8b158eea6ed99db2a074ba9181914887df262f89e2a3efd1e8224ff67f76dd039cb6b25d0fbfcb8e7ddd68e822f59b8ecc253c774f8e4e04ab3dbf2bba009973bb49f8abe859bf1e1cb62778901648201dd07a21d80b3dbb83ea63186f0b5a037f28cc78e855631a87f87ea86a1f258c57f281cb15753d56c11fc83d5c3b220a3487eadca6574bbd218ea93872a286d4a8c439986d154cbcecbf414074614a04b8bda47a50618b45700ccf9b6e0fd46e91ddaf1470ef90192fa9475b592e3a53fabd6323fc791b7e99f367e7ec7a18ffbd6c3d6ed2f2c993dd0
+
+################## aes-192-cbc ##################
+
+input=
+algo=AES
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=982d7158eab527e979f0c6f6da86f2d5
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=f64c364e7a98b620b57a7d2a836591b139e767ed00f0e4a796aadae32ee763dcfb0ae5a92076e623ac613e2fd4fb2cf9e07c2575f0f138b04ad1e0ce8762075ed1a3a80a9b5b2366af8fa28a13b5f17aedde519560c1e62f8d8bb447e781b474eb018bbae668530c1ebb3174a7bb6da9c3fb53d9cd2a05470d2b355106194a3502e153a004eb3092baebf4d3297e75338ba84a6d24c7343083ba554b7796547bc89c8521f3933dbfe36bde204cf2ccc0157229bedb61a22259a5f04f8de7f181
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=f64c364e7a98b620b57a7d2a836591b139e767ed00f0e4a796aadae32ee763dcfb0ae5a92076e623ac613e2fd4fb2cf9e07c2575f0f138b04ad1e0ce8762075ed1a3a80a9b5b2366af8fa28a13b5f17aedde519560c1e62f8d8bb447e781b474eb018bbae668530c1ebb3174a7bb6da9c3fb53d9cd2a05470d2b355106194a3502e153a004eb3092baebf4d3297e75338ba84a6d24c7343083ba554b7796547bc89c8521f3933dbfe36bde204cf2ccc04ff31ffeb949b38da7f2b3b17f262b86f68efffc65839188fa97d868fb2def1b8e711476a8000c36423c119d2efe44f41a1875a1e4dbb76ce319a48ed67694398d9d868178f23a8ead12c3dea43d7c1c99188839b9dbf2bbc9ff7dcda4c0e5f1d2fbf1ae08fd7b86eac8dbcbc5e1c4869d696452a2d57e7e695bd15907e5f32b
+
+################## aes-256-cbc ##################
+
+input=
+algo=AES
+bcm=CBC
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=345837a81eba39a78c4a16f303fdc6dc
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=2877a1b4d9f3fb10e1f603730fac250a874af27a4c19253c5040fc2aca1c321d778d458b10210132f29e95c3377ade3cf02876da86b5481d60081b25ffd38db331266fa98659d4c40ba4d17d4d2ef559c23663b55b71e01bcb74e30547dc3f7ea3e2ba2452ef84b0d78fc2d33a8c864781719b10fd3fdd32dd9d534c9cf49b2ca864e62a7d7c0f499f319778541cbdaa411d128fd85415f5e95e721ce47215881aa849290cf37ffe351f1a14dba0e85e3389176d137f5e50750c1c62100c07f5
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CBC
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=2877a1b4d9f3fb10e1f603730fac250a874af27a4c19253c5040fc2aca1c321d778d458b10210132f29e95c3377ade3cf02876da86b5481d60081b25ffd38db331266fa98659d4c40ba4d17d4d2ef559c23663b55b71e01bcb74e30547dc3f7ea3e2ba2452ef84b0d78fc2d33a8c864781719b10fd3fdd32dd9d534c9cf49b2ca864e62a7d7c0f499f319778541cbdaa411d128fd85415f5e95e721ce47215881aa849290cf37ffe351f1a14dba0e85e87bfdf6e113556008df58f9548219d7c696a581af0febe8d6572d3f2c1547b2c3f7117772a1ff302d19c9ac678a340ce77df8ce548414b17ef9744828d27fe529982f32d7e27c21f981b722639b631dbbbbf072b66e0af8dc9c0effce69a5249ba4b06b35f8204a29dde01a9f120e95ea4ac3c1599b4a5037309daf53c4a57a7
+
+################## aes-128-cfb ##################
+
+input=
+algo=AES
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=b0db832f4db14eb563b99333f69f79314c5cb3b0e8c278c2eabbd97cc8efab92a295b4db40270857e4a30befaf6681531509f35b0fae4375711f8fe939a5f38c2362c4dd42ed927c33291485d750567106673fc889ad4b2393bb4aca74a749281025526cd649d3da318dc17bf66ab3c44cd4bc252ede9543028930f3a24316fb88ef6856edd46cbee06d50d6d61f0c9e1387dd094082e103539ca35714433ca23e258d96e87f41fee1e86c912882a05c55507d0c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=b0db832f4db14eb563b99333f69f79314c5cb3b0e8c278c2eabbd97cc8efab92a295b4db40270857e4a30befaf6681531509f35b0fae4375711f8fe939a5f38c2362c4dd42ed927c33291485d750567106673fc889ad4b2393bb4aca74a749281025526cd649d3da318dc17bf66ab3c44cd4bc252ede9543028930f3a24316fb88ef6856edd46cbee06d50d6d61f0c9e1387dd094082e103539ca35714433ca23e258d96e87f41fee1e86c912882a05c55507d0cc2cc8932b89d2a2f8480bcb906e8e61e6f63ab98a473695c4196756e1c3cedced2e1ea16afe1d13260ad1945019cd0424906fdc12f3e7f1067c657fdf9a7074b8cb8e1e1048ed4905d084f11e96fb70ba9f063f17608d6298391f51a63bc14a01080e5d520dfc03d0ea67ed9702172275dd8db1df2594e8c
+
+################## aes-192-cfb ##################
+
+input=
+algo=AES
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=88c6de3c2151e563fefbce573a174b582e74ae18f134666530c8f3d71ff625298b1493f0adc49731a166ef74786e5ff49d51a62dac724b0161342c809dcff32b86c844de89744ff2e1d3c8bde5b98bfcb60dda414017ce4819441cbdc2c234ebd7ee88fd968ce858c4a6ba184bc36d0c83b8c7701c045fbd8438d0760ccb770ee2de95aad278616c1ad97c060e7486903ecad20868d3fe6f90629596a54caa34fd9d0d0233cf9c64102063a37ec765667412310a
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=88c6de3c2151e563fefbce573a174b582e74ae18f134666530c8f3d71ff625298b1493f0adc49731a166ef74786e5ff49d51a62dac724b0161342c809dcff32b86c844de89744ff2e1d3c8bde5b98bfcb60dda414017ce4819441cbdc2c234ebd7ee88fd968ce858c4a6ba184bc36d0c83b8c7701c045fbd8438d0760ccb770ee2de95aad278616c1ad97c060e7486903ecad20868d3fe6f90629596a54caa34fd9d0d0233cf9c64102063a37ec765667412310a88ab36ea8c5b6458b4c7d6f4cb8b06cc4e9437608834df25efe1c9ce5cf45504beabe7e17742836fbbac2f3105fd16d9b339510e94b8d4f43bec50a6de9eeb5750b5fa190ff34b0f3ed7002904bb458420cc1950b79668a961416b2a776db03e0fb865a04a78603724d392a3a2a5e408388ec5dcbf8166cc
+
+################## aes-256-cfb ##################
+
+input=
+algo=AES
+bcm=CFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=6182193f7f4b00beb039d295f22e31cb5cef56ce92d1f0049266c8176afb79bf64b8eb711d66d0f91a34f98315775a45cdd23895129d7e7d51883f94e85dda59e2a77af16e6a1fd4cbca725768f75dfdc59c587ee843dd63d60784975d9eaa8b5241bf65a6cec58ae8b5a030b831c6612cae7930952e6e0b941602f8505bf1cc105d5c826c0099966bfd9ac90fab69bbed84980836f8448558f67770d6251bff94a436ef3663babff1090d4ac8757ec634795949
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=6182193f7f4b00beb039d295f22e31cb5cef56ce92d1f0049266c8176afb79bf64b8eb711d66d0f91a34f98315775a45cdd23895129d7e7d51883f94e85dda59e2a77af16e6a1fd4cbca725768f75dfdc59c587ee843dd63d60784975d9eaa8b5241bf65a6cec58ae8b5a030b831c6612cae7930952e6e0b941602f8505bf1cc105d5c826c0099966bfd9ac90fab69bbed84980836f8448558f67770d6251bff94a436ef3663babff1090d4ac8757ec63479594997c5d659d14f206de716bb06c7a6f7c4cae48fe39d7bcd215418123a946c49c607c6e5d9cfee73ae5140d2b271b5c7de38dd81e7fbb6e650c5afe8c3c3ae29e97f8211d0820ba4ab8f55d167eeeb28a9c78046f5b14fa5be9027cc66ba9381fd06e777bc5a84a52af0965ed9d8aa4dae8b05e5389479b388
+
+################## aes-128-cfb1 ##################
+
+input=
+algo=AES
+bcm=CFB1
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=e65d2bcdaaf185b4d17b6584d44b306f22cb45f9db750112d729b0c0cb922111fa497c21c065cadc782d48b2e9b7293f3a10cfb3c4909915bd58f9ecf85a648f71585ed4e2640a19145d0444a480f0aadcb3f098fa3892be6ad0bb29d66ad0953fe3013a95cf8f301f4461dbde4f6b3db10d264579a5a01c5a6b05d1d4f54e1889a5ac43942c9b5bcd23720f116916655b5470dec8e795edec021e0fb86f7e5eff08ae8256e07a98c77dcea729ab6dc099aade3b
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=e65d2bcdaaf185b4d17b6584d44b306f22cb45f9db750112d729b0c0cb922111fa497c21c065cadc782d48b2e9b7293f3a10cfb3c4909915bd58f9ecf85a648f71585ed4e2640a19145d0444a480f0aadcb3f098fa3892be6ad0bb29d66ad0953fe3013a95cf8f301f4461dbde4f6b3db10d264579a5a01c5a6b05d1d4f54e1889a5ac43942c9b5bcd23720f116916655b5470dec8e795edec021e0fb86f7e5eff08ae8256e07a98c77dcea729ab6dc099aade3b05722d2a293ae81e87b72d640aa4a0ef3fd1dd160260f28874b6f79924bcdd7cac453301646af0d83b053245b838b88779ca3306265136598ceb0e190e0f62471fb351af992fca46f8fa5aabffe8ae04697664b30374771ac23bae43ccab9f1cdb1aa7c1f9538b9ad04c397a95c5b9122e811b8e23c026e0
+
+################## aes-192-cfb1 ##################
+
+input=
+algo=AES
+bcm=CFB1
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=997dc576e3cc8554976b58f233f90b0a890f76d2ca8b66baaa7e101564d28f3138c47cb9ef2de0cb5ff6dc27cf04d3be3d52c312f4d442b1e26c35631ab331bdd97460ae25942cce53adc3ade762a4cf443e4983782e390314df9763f90e99e1cef9500209e2d720394b2a3a832c34f354d487581b1dad511c5bba8881cbfa502b4e697317daf26758cdf20e27885069c4e3b8ec4ec6cd5ff62ddc0bf197cc32bee3e22e71ba84de2527aed7ec895d7976be7e05
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=997dc576e3cc8554976b58f233f90b0a890f76d2ca8b66baaa7e101564d28f3138c47cb9ef2de0cb5ff6dc27cf04d3be3d52c312f4d442b1e26c35631ab331bdd97460ae25942cce53adc3ade762a4cf443e4983782e390314df9763f90e99e1cef9500209e2d720394b2a3a832c34f354d487581b1dad511c5bba8881cbfa502b4e697317daf26758cdf20e27885069c4e3b8ec4ec6cd5ff62ddc0bf197cc32bee3e22e71ba84de2527aed7ec895d7976be7e055cda6bc91d9e06c3535df5d5f37f41cb0cabd3393022abbd4bf6012d43e248ef1c9260e4befc7c460004f8cfcfcfb0d5354f8d1e28d6991b842f5a75fe7f2d711e87e5ddb4a372f75cf1de7c676ff0f2628725e3d10ab2bdb0a16b7281f9e3af48c57ed00339df139710293e691fa1cee445c9380d34bb27
+
+################## aes-256-cfb1 ##################
+
+input=
+algo=AES
+bcm=CFB1
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=4fdc73387bc9d83fd26ab4dbf3df78ded25528cc8f2cd612da1b6b100f055b2f48a49257c59716f38f7fad920599fb642a9993773ca886b427bc970c1907c00334a94a4e21ad47ea253273edb06a55f6c7be2c1814537af42aabfa9fffb48fc2bd86341f38fb0f63b50b95e7b064672baac1e08365f8d7396c8adba2b54f2a655fe5d253f6a7a1ba352c59bd49985d2e4ca850a0799140585f4291d8652acb0f861025295d0383978eea9a605c8efd12bcb53b02
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB1
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=4fdc73387bc9d83fd26ab4dbf3df78ded25528cc8f2cd612da1b6b100f055b2f48a49257c59716f38f7fad920599fb642a9993773ca886b427bc970c1907c00334a94a4e21ad47ea253273edb06a55f6c7be2c1814537af42aabfa9fffb48fc2bd86341f38fb0f63b50b95e7b064672baac1e08365f8d7396c8adba2b54f2a655fe5d253f6a7a1ba352c59bd49985d2e4ca850a0799140585f4291d8652acb0f861025295d0383978eea9a605c8efd12bcb53b02907c3d42d2c706bb74aa6a6b6d9d5c7dfafe0c32a65ba7e0a5401f222b7a6e0160bb34c9b5e6ab361b0061299e2bed16e36b1ac80d52f4988c8e0ac3b880838798d5ec547dbd1a3b4e01acf451c37f4a856d7f425a6a6bfc56ec390e3e97417f038cbeaea9876b630bf1f301ed68dfaae33135fccdbaef93
+
+################## aes-128-cfb8 ##################
+
+input=
+algo=AES
+bcm=CFB8
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=b0b7319f063af4bea229e9cfa96d329c5f2d672f992e7049f36bddba212b65187f7118a86dd0a2d84b00777cfd20ddef7111da9b0deba849285d87e0fade8726f2bdae6cd3b2f19f29b7fc3d4d1f0967ca06e2b1970e3dad84e78a1b6dbe3e981768959473a1a70a6e58fe8c0cc04d57382297d14c8161e098f00b9474ddd0589ac0117e867fb21c9c2d129ad4a8967709cb7844b2f31e6e892797415bd0b0f4917724f64a03143bc0925e003daac27c1e8755d3
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=b0b7319f063af4bea229e9cfa96d329c5f2d672f992e7049f36bddba212b65187f7118a86dd0a2d84b00777cfd20ddef7111da9b0deba849285d87e0fade8726f2bdae6cd3b2f19f29b7fc3d4d1f0967ca06e2b1970e3dad84e78a1b6dbe3e981768959473a1a70a6e58fe8c0cc04d57382297d14c8161e098f00b9474ddd0589ac0117e867fb21c9c2d129ad4a8967709cb7844b2f31e6e892797415bd0b0f4917724f64a03143bc0925e003daac27c1e8755d3a738f3fdf42f398ddb28ddb60d4520f3055cbda7f2993fa70ff15adf1c5edd3cf2b60e9271fbdd32cf1c3ea55ebe2ae6ece89a0853015c4f4a4065a5808743e4fcbe7b362fafd140b1e562ad1bf725cc9460682c54be6ed4aac0a0553bc80c160839ab9d28a5ec3d1748109fcf2e80859c608b6f1bc57a1f
+
+################## aes-192-cfb8 ##################
+
+input=
+algo=AES
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=887cde4434f7d8961177de0dc74ecfcce3b6c45e679dc499b520b5d44bec24aa1dec038e33db89265066dd9ae15878e2d5a2d604d633aa93c5a8b942d473e6cac8b2a27cd3e3d700707df6366473755a20025e848d38906ade5f90015aa9826ee5159c5a7375af03a839ebd267d8807f229d47618f9a9f627802d91078624060dbe26aac68cfb665384ecd4b4d2bac7735a51453eaa6f27329ca69e38fe8b1a20e023291bb7edf618c1887741d3a76b050cb2a02
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=887cde4434f7d8961177de0dc74ecfcce3b6c45e679dc499b520b5d44bec24aa1dec038e33db89265066dd9ae15878e2d5a2d604d633aa93c5a8b942d473e6cac8b2a27cd3e3d700707df6366473755a20025e848d38906ade5f90015aa9826ee5159c5a7375af03a839ebd267d8807f229d47618f9a9f627802d91078624060dbe26aac68cfb665384ecd4b4d2bac7735a51453eaa6f27329ca69e38fe8b1a20e023291bb7edf618c1887741d3a76b050cb2a021061a180b6c484db75a4e70839f17d8ea8a48600f18cfa6504f96ed6568dd4626ec499b4658623f6a0dd52e9353e8ae58ef20e3d25a630728b88fe2a6bb9f5459578cceb5ff6f5da9d10931ce96fe5e308b69797df69b8edc5424940f9f66aedeafa54d975aa1d7af55b1c58110f1560b8d0caf59b539bbe
+
+################## aes-256-cfb8 ##################
+
+input=
+algo=AES
+bcm=CFB8
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=6141ea2eb83b1807eb47da228a9644178c0ea69964156de9e78a7664b32f2fbb3922b1329a02330ff63b8388edfb95cc0e66cf5dd3cffdc53830a29810c92ad1e19f06addfca4e68600742c041b2d36baab6ec07f5f7806a2261f463d34a0022ba0b106ce1bff1321ec7f8647a66705e84d046edaaba1a345a1dd336a1cf133729459b616d885f84b812aa9d66211545c3b0df510e2a9328cd3404fa7e338c55b90f15a0c24a34907cd64b0a3a43fc8b097d6700
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=CFB8
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=6141ea2eb83b1807eb47da228a9644178c0ea69964156de9e78a7664b32f2fbb3922b1329a02330ff63b8388edfb95cc0e66cf5dd3cffdc53830a29810c92ad1e19f06addfca4e68600742c041b2d36baab6ec07f5f7806a2261f463d34a0022ba0b106ce1bff1321ec7f8647a66705e84d046edaaba1a345a1dd336a1cf133729459b616d885f84b812aa9d66211545c3b0df510e2a9328cd3404fa7e338c55b90f15a0c24a34907cd64b0a3a43fc8b097d6700eb3cce18fc269afaf54aba3f7731b9b4e57018a7b7218aa049f70ec13d81c914a0a0e8095d2eadac01fdc60a6f90e6fa78785b52abdf98988c3fe44f22ff0168ee1859ef7345601997eb816037418d710d86ae062bd1a906f0345ec1480aea05b8fb994ff2cf39b50518484e620136fd1cc449f52f5561a7
+
+################## aes-128-ofb ##################
+
+input=
+algo=AES
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=b0db832f4db14eb563b99333f69f79311aa1dd3b1e391a5693ecb0f54d93a32d6fc3c82e31a57708d15a507eacdafbea7aa84525374717382a1410507a76f794e64835b68a4c9b31a2cdc79d03c1ad09ca023b68f50a45483c04c69befa2cfa32947b78457337f21f445c62f601adf8c99632e688ddfebe007d0b9ac4f4f7051484ac2d19e0b3cd21aea6db32d1fd05b5e52941cb228b792fd2b6c3f20dd31bdf3d834d5749a81ad8fd00104bb6d7c84b89452ff
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=b0db832f4db14eb563b99333f69f79311aa1dd3b1e391a5693ecb0f54d93a32d6fc3c82e31a57708d15a507eacdafbea7aa84525374717382a1410507a76f794e64835b68a4c9b31a2cdc79d03c1ad09ca023b68f50a45483c04c69befa2cfa32947b78457337f21f445c62f601adf8c99632e688ddfebe007d0b9ac4f4f7051484ac2d19e0b3cd21aea6db32d1fd05b5e52941cb228b792fd2b6c3f20dd31bdf3d834d5749a81ad8fd00104bb6d7c84b89452ffc75fda75a749f9947f58c5ae20929565cc968f05ede96d4015e438e0c88a870e8d410c46cd7e092446346d916e6f0e004d948e69f8f1af189e6ed3ee4b3c2681cbcff29741887bf7faff98e52388078a76caa99cdfab813860c86d40dce70ed013545dbae5ba9079d840792a60658273a451dbc5530f491f
+
+################## aes-192-ofb ##################
+
+input=
+algo=AES
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=88c6de3c2151e563fefbce573a174b58f76e68c23f902b8d8279152e1552535d3ab9511837b23f90d4e43d9b4acce5c1f657782e899c63a730ffdb70535ea1e10d0de557113f6ed066d6ff0f882ea5877c4a2dc7a308cf3ca358ed31c53cb0bb61afd3fcb4a75688f553261090668fde3546cdb7b9dc02e124f287773b41969ad6345a079e6dc4c51024e7a3f1d8d86ba0a077da6d482f14dfb1b422e113129ba6d8204d43816025c94f862abf11e18d39828a83
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=88c6de3c2151e563fefbce573a174b58f76e68c23f902b8d8279152e1552535d3ab9511837b23f90d4e43d9b4acce5c1f657782e899c63a730ffdb70535ea1e10d0de557113f6ed066d6ff0f882ea5877c4a2dc7a308cf3ca358ed31c53cb0bb61afd3fcb4a75688f553261090668fde3546cdb7b9dc02e124f287773b41969ad6345a079e6dc4c51024e7a3f1d8d86ba0a077da6d482f14dfb1b422e113129ba6d8204d43816025c94f862abf11e18d39828a8356d89849321173f93f98931d4afe3c329c3aaa3e06f3219fac55554f107859a4911e654d924e9e54b01b782a3ef0341c7f6ef5c416ad6f9eaf92835e495e30011d19310b7d8dd8960eac6ff9a0c1a9db82d1e8a24ad0e8c2dd97524d29691875c151f604879313b055a1cdb52e7a3bb4dd378b861d04e4be
+
+################## aes-256-ofb ##################
+
+input=
+algo=AES
+bcm=OFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=3
+output=6182193f7f4b00beb039d295f22e31cbc0f59c4626eba3da962ad3ba5c2a1023d6032cca1563a67aa7a5afa2d4344fe25479feedc0470ff1123c53d03f7bcda70525caf574739f869e8d6a67cab7934f984a4e818dc7e7f85bb887cfb04d161c76baa78f0cd170dcfa65daab8d5be900ea085025d1d647b0971190441de71ecd8951716a993baa835dc14f26475c23901daec47189b60a257a5bcfce8a22ed69603f4a856aec3fca58477e095112977741f2c486
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=AES
+bcm=OFB
+key=534c1dd926ffc55db2a1ec2f8d21ed4ac3b9ad3d67a0ae381275f00cc0f7d3fd
+iv=d17d7ace9acea556527b1037ee3aa824
+repeats=5
+output=6182193f7f4b00beb039d295f22e31cbc0f59c4626eba3da962ad3ba5c2a1023d6032cca1563a67aa7a5afa2d4344fe25479feedc0470ff1123c53d03f7bcda70525caf574739f869e8d6a67cab7934f984a4e818dc7e7f85bb887cfb04d161c76baa78f0cd170dcfa65daab8d5be900ea085025d1d647b0971190441de71ecd8951716a993baa835dc14f26475c23901daec47189b60a257a5bcfce8a22ed69603f4a856aec3fca58477e095112977741f2c4869cd3bd724541d99c95faff8e78bbbbf164b6c65d5fa90d35340d3c0130a2c86798ea6ae3502fc4cd4b127e1c28cbe4c57e68a4be0ced801b6e13f7357d34bd4ec4b1db2f8ad43beb43f6982ed4a4ef5b3eb81419697f48f251d4fddb001bedbff0da5da2e9fb17ab774dadccfb688337b9741822fe82d011
+
+################## des-ecb ##################
+
+input=
+algo=DES
+bcm=ECB
+key=87efdc0cc2355ca1
+iv=
+repeats=1
+output=f422393842da515e
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=ECB
+key=87efdc0cc2355ca1
+iv=
+repeats=3
+output=43f1ccdc2a3db34c8b9543b7b82b081d843570ccfed0b01b8f81b94931e995c35889baa9fc97ccc7219375d12c609d75829e7be1ee9fea7f41c10e4cc7accd56d74c4b6ef044024450e0b3f5d41b9db9dd83ec3a3123971a17cf8516b65ab853e4cddf9ebdeb9da167640158455695a4e6b36ca7025c3d2743f1ccdc2a3db34c8b9543b7b82b081d843570ccfed0b01b8f81b94931e995c35889baa9fc97ccc7219375d12c609d75829e7be1ee9fea7f16788ac5c8da8eb8
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=ECB
+key=87efdc0cc2355ca1
+iv=
+repeats=5
+output=43f1ccdc2a3db34c8b9543b7b82b081d843570ccfed0b01b8f81b94931e995c35889baa9fc97ccc7219375d12c609d75829e7be1ee9fea7f41c10e4cc7accd56d74c4b6ef044024450e0b3f5d41b9db9dd83ec3a3123971a17cf8516b65ab853e4cddf9ebdeb9da167640158455695a4e6b36ca7025c3d2743f1ccdc2a3db34c8b9543b7b82b081d843570ccfed0b01b8f81b94931e995c35889baa9fc97ccc7219375d12c609d75829e7be1ee9fea7f41c10e4cc7accd56d74c4b6ef044024450e0b3f5d41b9db9dd83ec3a3123971a17cf8516b65ab853e4cddf9ebdeb9da167640158455695a4e6b36ca7025c3d2743f1ccdc2a3db34c8b9543b7b82b081d843570ccfed0b01b8f81b94931e995c35889baa9fc97ccc7219375d12c609d75829e7be1ee9fea7f16788ac5c8da8eb8
+
+################## des-cbc ##################
+
+input=
+algo=DES
+bcm=CBC
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=1
+output=7b333c30127ff7fb
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CBC
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=3
+output=1554e23e70bf0873de5adfede4e1b469e4cb30d28f1f176277ab972259a906f4a02280831a80f542b4b32222681debbd81e8c8c2b2848019ed2d6d8a6695ffab6b3a9cbdcf4735a633f9db27758da21b0e9016219e342f5a51f5def95ef81283c15d4ad914e8f9bc36985ba6e3aebe838de37258df3862ec8a2a890731b7b1d338f878892fdc7876c289c51d31c37a631bb2ab89fcd566ec8693df0fe7c6ec1c1a4ee250aca37b0db5cba0243583d4f96240ca2377062b00
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CBC
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=5
+output=1554e23e70bf0873de5adfede4e1b469e4cb30d28f1f176277ab972259a906f4a02280831a80f542b4b32222681debbd81e8c8c2b2848019ed2d6d8a6695ffab6b3a9cbdcf4735a633f9db27758da21b0e9016219e342f5a51f5def95ef81283c15d4ad914e8f9bc36985ba6e3aebe838de37258df3862ec8a2a890731b7b1d338f878892fdc7876c289c51d31c37a631bb2ab89fcd566ec8693df0fe7c6ec1c1a4ee250aca37b0db5cba0243583d4f9f7531d81e33d6763100fbef07ae4f4fcc3d33d9acca1b167ce9a3d8b9e8b75f8000731e935f95278fd2d6146aa84e5ecbbfd35b743c77f624c282f03d46923be3a93f2dacf5fb49a0c0675a4d9e361ec218529cb580f81af266dfdc7079c7b752a0e187a2c7355c253959fa5037fdca39b1efd0cfb0b628d62f7b45bae91881a
+
+################## des-cfb ##################
+
+input=
+algo=DES
+bcm=CFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=3
+output=332940dfedc50abc41bccbc76692971ad60cc0a6f334d73da174e71f55fa5a36bec276ebfe742364c0e7f795df62fbc4f8b0eb670b4a56a8bf650c81b79ee02534d086459751f472971f1daf9edd58d71dec0dd5a3958823d1e6423a4f53deec856dd456dc0853c2173ee6612bb9ae18b49eb3b0bad066bd22f857dba82afe12961ebbe9e5ba1e4d93a8ab27499d581097d5aecc716c92bccb1d7367e82b539672b759157bb9479bb58f824bd9f3faa3170feaeb
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=5
+output=332940dfedc50abc41bccbc76692971ad60cc0a6f334d73da174e71f55fa5a36bec276ebfe742364c0e7f795df62fbc4f8b0eb670b4a56a8bf650c81b79ee02534d086459751f472971f1daf9edd58d71dec0dd5a3958823d1e6423a4f53deec856dd456dc0853c2173ee6612bb9ae18b49eb3b0bad066bd22f857dba82afe12961ebbe9e5ba1e4d93a8ab27499d581097d5aecc716c92bccb1d7367e82b539672b759157bb9479bb58f824bd9f3faa3170feaeb502326cfe38bca8b93839cbd81bae53042d7b7f3a7fab163c89f9458296ff63bb8780d7ef1485225ac67e3ec48b139b24d2e9b112438859bdb9e947268f04a6b9fa7c0d56b2eeef4227b90eacfab5e47753f602cc024cd6628980d1bc8c9c2b10c4d9e6e4c18e0ccda900d828eab9db073d4e31bd17dc4fa
+
+################## des-cfb1 ##################
+
+input=
+algo=DES
+bcm=CFB1
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB1
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=3
+output=6bc3c84cf0293313be5a282d704b6c4390cad1892671c5b24907981e5e36dce7c21cfac68e5566cf02c7edeb22c7560b0349b50af1783fbc20302c313d0e63fc03c07fdb670a9f2a630a85ef767c47e1c5729a155616f7ed3d3e84552476b97f74510d06983066681271aec66e85c360e751c91057fe968b9a8cfd668d1cbffe7a8af027e5be4f5c2939b87c99764753d3fc6d24764d70362fa73bd1c60bd543affef0dc94f7c52abc66b2070ff4ddfde6ec279c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB1
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=5
+output=6bc3c84cf0293313be5a282d704b6c4390cad1892671c5b24907981e5e36dce7c21cfac68e5566cf02c7edeb22c7560b0349b50af1783fbc20302c313d0e63fc03c07fdb670a9f2a630a85ef767c47e1c5729a155616f7ed3d3e84552476b97f74510d06983066681271aec66e85c360e751c91057fe968b9a8cfd668d1cbffe7a8af027e5be4f5c2939b87c99764753d3fc6d24764d70362fa73bd1c60bd543affef0dc94f7c52abc66b2070ff4ddfde6ec279c2149c0b3e790f6a2f286f3250bf279768383c6ccaf7ae7f7e1b93f521e30cb1ca9b727c3399008edd1920c2be8b87032b22de9e1dc8f218532017c60e03c66168abf76eac25e85c129057a835898713a81bb5e9318ba50bf67c736b7b5f2cb8e3777a523543da9e4bdffffc3887345bb92a3db1b62b44905
+
+################## des-cfb8 ##################
+
+input=
+algo=DES
+bcm=CFB8
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB8
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=3
+output=3343b31ea9da4735c98064cbd12964e678945fb19cd6abb70bcc52ea9c2750ea9a8af04f503d7e71d17fa91e6ebdfa9b3063a8d6b30267245c24e93a551d6cb90b68b913fd55f4d7b76b6e8932c727b4bdc726ce0e948d0cea88863c8de32351c1fabf7724a174f383e7fff65ca1b635739fd33ed2b09f20dd9c154b90b2ea0070b36fdec3fee494ad752aa4dc6227c76731169a6e463aa47f8c63719b01f8451c3c45e05fa0d69a576395b76eedfabc7d3db640
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=CFB8
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=5
+output=3343b31ea9da4735c98064cbd12964e678945fb19cd6abb70bcc52ea9c2750ea9a8af04f503d7e71d17fa91e6ebdfa9b3063a8d6b30267245c24e93a551d6cb90b68b913fd55f4d7b76b6e8932c727b4bdc726ce0e948d0cea88863c8de32351c1fabf7724a174f383e7fff65ca1b635739fd33ed2b09f20dd9c154b90b2ea0070b36fdec3fee494ad752aa4dc6227c76731169a6e463aa47f8c63719b01f8451c3c45e05fa0d69a576395b76eedfabc7d3db640c45a3d038da716915a678c56b8b93cd788efe276ddd77234466996abe8aa53798b87f1e350b12eab1ad82cd51bbef561010ccd931760e8cef235dcd931560b635935f8cc94af8b7b13005ddb92dedebc2df439a8b14e43a3b38bc419da96934c758e1c73898e493bd93fd7fea994f78ede1ba34ffb5576ff
+
+################## des-ofb ##################
+
+input=
+algo=DES
+bcm=OFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=OFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=3
+output=332940dfedc50abc0b51facd5d3f4abe2b995986d2af6cfe67ed922d3cd3cd62912fbd73eb1ae96715489bc3afa524b4e2af2e3145139db3363d3b8574db32ce5ffd396353aee325ff306069c50cc1b15aeed0b5bca12ae93ed020351404bf9da4155b945862ce6f61b7f2489f1b6d52b963ccc0259fe85088db15b03213d3270b9c6e8cf124d9db475881c8a0c419a2420cdd5ab2e617e825c8982371ab87b12f9fe8f6364830b7a4c853361811c4cbe935059b
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=DES
+bcm=OFB
+key=87efdc0cc2355ca1
+iv=67c3239f57293115
+repeats=5
+output=332940dfedc50abc0b51facd5d3f4abe2b995986d2af6cfe67ed922d3cd3cd62912fbd73eb1ae96715489bc3afa524b4e2af2e3145139db3363d3b8574db32ce5ffd396353aee325ff306069c50cc1b15aeed0b5bca12ae93ed020351404bf9da4155b945862ce6f61b7f2489f1b6d52b963ccc0259fe85088db15b03213d3270b9c6e8cf124d9db475881c8a0c419a2420cdd5ab2e617e825c8982371ab87b12f9fe8f6364830b7a4c853361811c4cbe935059bbb11aa9aa65ffcb1dadc859fddb5923abcde8694869ad41ba9843b9e50bdd64761682562461b0af6de8d7d87d2ac2c4d2d37764e8753642abefc2339c5623f2b4ece04c1ed378e5c66e1d71d44aada9b9d3ce60b88efd755977f662c771633f0e2958f7f81f3d0c35dba9602a76627d74f1c9f19638f1b15
+
+################## des-ede ##################
+
+input=
+algo=3DES_2TDEA
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=1
+output=f872df0581ff284c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=3
+output=e7e62d4392a56aa5b98b3ec8d245ebab04edf9b4158fcc7ae2a5d91210634253d6deb3cf3587e6f37ad125fca0b505cdf568f551aaa9df70707d91a8445efff851da883a17a69ad91dc23aa294b64f64c12cac22b0f227ecc3b7728f0fba6043fae62720c78afbdf9594cda83a97694824737f8b876ecbb0e7e62d4392a56aa5b98b3ec8d245ebab04edf9b4158fcc7ae2a5d91210634253d6deb3cf3587e6f37ad125fca0b505cdf568f551aaa9df705e05975452f1b1f1
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=ECB
+key=728b2f4100af171be46bf323d3f3395d
+iv=
+repeats=5
+output=e7e62d4392a56aa5b98b3ec8d245ebab04edf9b4158fcc7ae2a5d91210634253d6deb3cf3587e6f37ad125fca0b505cdf568f551aaa9df70707d91a8445efff851da883a17a69ad91dc23aa294b64f64c12cac22b0f227ecc3b7728f0fba6043fae62720c78afbdf9594cda83a97694824737f8b876ecbb0e7e62d4392a56aa5b98b3ec8d245ebab04edf9b4158fcc7ae2a5d91210634253d6deb3cf3587e6f37ad125fca0b505cdf568f551aaa9df70707d91a8445efff851da883a17a69ad91dc23aa294b64f64c12cac22b0f227ecc3b7728f0fba6043fae62720c78afbdf9594cda83a97694824737f8b876ecbb0e7e62d4392a56aa5b98b3ec8d245ebab04edf9b4158fcc7ae2a5d91210634253d6deb3cf3587e6f37ad125fca0b505cdf568f551aaa9df705e05975452f1b1f1
+
+################## des-ede-cbc ##################
+
+input=
+algo=3DES_2TDEA
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=1
+output=4ebef1d6f66d9ef5
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=3
+output=347d33f5d84b372d82bab696fa8cb87dc7a22e81fc8cc5aab20a167900d91bdc79f25b933277c07d189b85f5aa9773d329756584e09294f788deda7e52a09cd83ecba7b65f4d2f9a57206e6afc23a41991e587ff0a2b291f00defb0a0dbae794d021b338da8f73d2af33759475168d95793732e204308a9cd456b7681b294b91565f7ab30930669e2697906d65519cd7d22f2f5dea216869c6cb87252aed48d52e2dd0b2fe9ea9add105003e62792477e59c6b9622dd26fb
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=CBC
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=5
+output=347d33f5d84b372d82bab696fa8cb87dc7a22e81fc8cc5aab20a167900d91bdc79f25b933277c07d189b85f5aa9773d329756584e09294f788deda7e52a09cd83ecba7b65f4d2f9a57206e6afc23a41991e587ff0a2b291f00defb0a0dbae794d021b338da8f73d2af33759475168d95793732e204308a9cd456b7681b294b91565f7ab30930669e2697906d65519cd7d22f2f5dea216869c6cb87252aed48d52e2dd0b2fe9ea9add105003e627924777718143058427af060389db3ca0a453165481e3f80351281d985464befb8017bdce670a77314535c07fe08c662ac7cd812650dab5c1aefa10cf13947e74cdd032dfe44a332bf627a6e64e2339b48e40d59237d4213900f9197d13d136fa66193cb99bdc069b3e37cf84f642fee3259e6ad0b0cce7c76881f528da32a70af7a5c
+
+################## des-ede-cfb ##################
+
+input=
+algo=3DES_2TDEA
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=3
+output=72cdd9aa8f1a62a1e70d9ea31e77a68a36aaa8326d1423a2c01f807f1f7ba6b8da9dae102297c455d8f1a247bb9837ba6c7415c8d2d6aaf6d84084cf3ea6f06b6338ed476b9549608a8bc0fc8f1d6c8a898c50277cf119e28f0e5c8fa60d565f54a943a4d95aae74f3bf98b2137d17e40b54b0e93f74708770307daad80e11dc001985bd18d0fe9db802431504af604cb6e79f10ba6e740e030c0aa35cfa85c2d8487a7414f39f1bc3de0e1394bad052675896a9
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=CFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=5
+output=72cdd9aa8f1a62a1e70d9ea31e77a68a36aaa8326d1423a2c01f807f1f7ba6b8da9dae102297c455d8f1a247bb9837ba6c7415c8d2d6aaf6d84084cf3ea6f06b6338ed476b9549608a8bc0fc8f1d6c8a898c50277cf119e28f0e5c8fa60d565f54a943a4d95aae74f3bf98b2137d17e40b54b0e93f74708770307daad80e11dc001985bd18d0fe9db802431504af604cb6e79f10ba6e740e030c0aa35cfa85c2d8487a7414f39f1bc3de0e1394bad052675896a9a20b208c13c20d74c90edd167112739dd4215c897ec598508282aea49e7c90181fda49a6e46f092f8862e82bbda575d1713a94aacda3f1598fdf8eb385cbd314eb185b9c193ae23d78c7b400dbeb912decaa367843d8402cc3e00f8006d5b2f6b6eddd89d37f2f8d851f8aadb3ddd06cc10bfe8b52318ac6
+
+################## des-ede-ofb ##################
+
+input=
+algo=3DES_2TDEA
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=3
+output=72cdd9aa8f1a62a17fc689ac4ad50c5b4250546656015ffab8a34afa5b77a00d7864ea4a4b67812d4efd15e980a2ede94ff5f4c162e625bbdadc3cc8714c54ed6d4b57f3a25b22764a51559df9aaa697263529bb8da2d9dd9bc5482ec9fc648330bed1aa74b79d41bfb837d5af5578bbbc2e5f07a6464963448c97a018042d38bde0ef1abc48e65cb25c7a910e3f1d1d19b89d81fc61424e5b050db5cca742adac431e1312590f5ddaa43e94c7fab98be640f29f
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_2TDEA
+bcm=OFB
+key=728b2f4100af171be46bf323d3f3395d
+iv=67c3239f57293115
+repeats=5
+output=72cdd9aa8f1a62a17fc689ac4ad50c5b4250546656015ffab8a34afa5b77a00d7864ea4a4b67812d4efd15e980a2ede94ff5f4c162e625bbdadc3cc8714c54ed6d4b57f3a25b22764a51559df9aaa697263529bb8da2d9dd9bc5482ec9fc648330bed1aa74b79d41bfb837d5af5578bbbc2e5f07a6464963448c97a018042d38bde0ef1abc48e65cb25c7a910e3f1d1d19b89d81fc61424e5b050db5cca742adac431e1312590f5ddaa43e94c7fab98be640f29fa49570099852357bfd9e5c827e3c4ea445d6f5eea517ed0aebaca5cc7acddc252ee2e288fe04ded91adf507be46a07ed5161c835730a7b66e6272f47a9164f2c731abe19999e04080a2559b7f4484e6a31110fbe27966116ea33a1cc58c4aea2c4ae0be1102bb55dc2982e7dfa5b148bdb33a644d5c01af0
+
+################## des-ede3 ##################
+
+input=
+algo=3DES_3TDEA
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=1
+output=145b3156db73c0ce
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=3
+output=ff81cdaa81a101ec19111a37246608c83ca5b63c65e5d541944a17e600e5c04ca7072ee32f469e0bcab987d231d831e98917d48cc3c068de64d76057fc8b5d65620cb9b4ee3c4c17f51d27e8d879cced3f12fb7b6d87232ae23cb249c5c9dfde90c12303382d385fc05c15276b5fcfd9cf0e3d4612c71623ff81cdaa81a101ec19111a37246608c83ca5b63c65e5d541944a17e600e5c04ca7072ee32f469e0bcab987d231d831e98917d48cc3c068de9688f93934019eff
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=ECB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=
+repeats=5
+output=ff81cdaa81a101ec19111a37246608c83ca5b63c65e5d541944a17e600e5c04ca7072ee32f469e0bcab987d231d831e98917d48cc3c068de64d76057fc8b5d65620cb9b4ee3c4c17f51d27e8d879cced3f12fb7b6d87232ae23cb249c5c9dfde90c12303382d385fc05c15276b5fcfd9cf0e3d4612c71623ff81cdaa81a101ec19111a37246608c83ca5b63c65e5d541944a17e600e5c04ca7072ee32f469e0bcab987d231d831e98917d48cc3c068de64d76057fc8b5d65620cb9b4ee3c4c17f51d27e8d879cced3f12fb7b6d87232ae23cb249c5c9dfde90c12303382d385fc05c15276b5fcfd9cf0e3d4612c71623ff81cdaa81a101ec19111a37246608c83ca5b63c65e5d541944a17e600e5c04ca7072ee32f469e0bcab987d231d831e98917d48cc3c068de9688f93934019eff
+
+################## des-ede3-cbc ##################
+
+input=
+algo=3DES_3TDEA
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=1
+output=bef35b94c9958df0
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=3
+output=70ed8d64d5cdad4eb5fd17f2f68519756bed0c5446903d298904aa4e92ad75437832bb2145728189f43ec54bb8c0a3255ff8c50120094e8c760ab4be6b44ae3794bec0c73c9b09e27fb0677b01847a6e101b8b1bd0ed7320dc0c78fc2ba00b881821282418a92d6529929f60205e90598b7334b04cc86d95ab9e03a7e99fc6e110b5e2f5845dc9005672c4a0b8ec1ce0d4e621ebd4497d92cf314cc9d9fff2742d1948c7dcd4d3ffeb5c249e9fd5bef81560397729241df8
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CBC
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=5
+output=70ed8d64d5cdad4eb5fd17f2f68519756bed0c5446903d298904aa4e92ad75437832bb2145728189f43ec54bb8c0a3255ff8c50120094e8c760ab4be6b44ae3794bec0c73c9b09e27fb0677b01847a6e101b8b1bd0ed7320dc0c78fc2ba00b881821282418a92d6529929f60205e90598b7334b04cc86d95ab9e03a7e99fc6e110b5e2f5845dc9005672c4a0b8ec1ce0d4e621ebd4497d92cf314cc9d9fff2742d1948c7dcd4d3ffeb5c249e9fd5bef80ff622c4b9192b089dc3fb1d7cd70d1d22748b1bacb0bbeb92e15824fb9a0582e99d2d65250f77e24bd293d6ddb10171a312a06bbc70ebeb1c17c6bebd552ed433e93521d154bd1d56dc94e2413d9b7b1e21940887870ba17cec109613c0a104e42417fcba3d06f9b72cd4d649d8a6c3a17edcfae8ce5008e25d9918fbcc78ee
+
+################## des-ede3-cfb ##################
+
+input=
+algo=3DES_3TDEA
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=3
+output=9a4581ea3f832acf11d13d60c5743524617baee66b8f48ffb5ffea36a9effa7cb8db253618ba6bfeca71142cc1c5726f44b5adafe775a81587671126b05d25e8c0dc699554ec67346b0cd5d3b5f0768a1254b3aaa6ed1f670b89ffc559b660fe47830c3761bc8701dcc044566e32fbeb1d471c01bf1f9203aff09f9490e4a6094d234aa454de4a73285a33f491c8f398539921dfa4b91e4fc2fd68d726380a9227829520b726206ebe6fc349c1647356d82a9f5c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=5
+output=9a4581ea3f832acf11d13d60c5743524617baee66b8f48ffb5ffea36a9effa7cb8db253618ba6bfeca71142cc1c5726f44b5adafe775a81587671126b05d25e8c0dc699554ec67346b0cd5d3b5f0768a1254b3aaa6ed1f670b89ffc559b660fe47830c3761bc8701dcc044566e32fbeb1d471c01bf1f9203aff09f9490e4a6094d234aa454de4a73285a33f491c8f398539921dfa4b91e4fc2fd68d726380a9227829520b726206ebe6fc349c1647356d82a9f5c6daee328e7f617543b67f130eff2e81628df4f9a48b9f7a44390fcf610b700b22f67c771e4e5fd19ad50af99c56158c971adb4f4c120cb8d47263575420da27b15f5ce6873c33b4814c9c81366dfcda0b92dfb1c77192fe3524eced3be4819ac6fa85a848f039c04ae12508ceb027071fbf3f5b963584084
+
+################## des-ede3-cfb8 ##################
+
+input=
+algo=3DES_3TDEA
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=3
+output=9acb468d9774fe022d39913641790c11ee6899a4d466b0105e3566dc901886214fed5574a8e514493b93f532fa428cb308e7f50c9a3391762de608a287869a991c9511a936148bf278d3a76b565d863c359280c2fb951fc4d69930d50e41adb26567f809cda3b71a00b33fa42f4e2b5c4b0fbe4edcf3bf1078761da02f189743df5baa58afa0449bcf17b4213adf5fc1e14a3b040db5c09a50418acba672c3e843e63c481d470cfe6462421545356b2e2c9e35a2
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=CFB8
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=5
+output=9acb468d9774fe022d39913641790c11ee6899a4d466b0105e3566dc901886214fed5574a8e514493b93f532fa428cb308e7f50c9a3391762de608a287869a991c9511a936148bf278d3a76b565d863c359280c2fb951fc4d69930d50e41adb26567f809cda3b71a00b33fa42f4e2b5c4b0fbe4edcf3bf1078761da02f189743df5baa58afa0449bcf17b4213adf5fc1e14a3b040db5c09a50418acba672c3e843e63c481d470cfe6462421545356b2e2c9e35a2574c15a0da3a6181f69a41584aa68c58db525d1055bdb0a9cd43a4b7e38cbca9e51496b8b70e4df5268bcfc74fce459b3a9eb93c5dda868d50502c2e49842f9e3d6bbcd6ce794eb19b890439e05c03c39eb5b1fe5e4a1adf8fafea08db9b9f140eea559e454a419c95029eae145811a0417b8dfd3883c6a5
+
+################## des-ede3-ofb ##################
+
+input=
+algo=3DES_3TDEA
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=1
+output=
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=3
+output=9a4581ea3f832acfac1658b9690f4d0cb18a1dd0a7fde615c16f782d76cf9907ac04218dc70dbb73a2b3e00bff4e7143e6b5b44c0ffd08e7cd4210388b8972446e7044824511ebc901619b4d3405d54189178b4bf5f745b47e370990e6267e275c77af6f0a47c5a3fff3e8b6911ce025a980e5e00645d26f45bf00ce9254fce30180dcfd462ecf3fc7466f17ad7522d43c159c37c5f9aa38c83714e48781b41a26f05f0d25fec9abbd8a363300dd93ea8cfec67c
+
+input=6162636465666768696a6b6c6d6e6f7072737475767778797a303132333435363738394142434445464748494a4b4c4d4e4f5052535455565758595a
+algo=3DES_3TDEA
+bcm=OFB
+key=5cc0c7d382acc23544dad7818384d45bc85ec5d265177c06
+iv=67c3239f57293115
+repeats=5
+output=9a4581ea3f832acfac1658b9690f4d0cb18a1dd0a7fde615c16f782d76cf9907ac04218dc70dbb73a2b3e00bff4e7143e6b5b44c0ffd08e7cd4210388b8972446e7044824511ebc901619b4d3405d54189178b4bf5f745b47e370990e6267e275c77af6f0a47c5a3fff3e8b6911ce025a980e5e00645d26f45bf00ce9254fce30180dcfd462ecf3fc7466f17ad7522d43c159c37c5f9aa38c83714e48781b41a26f05f0d25fec9abbd8a363300dd93ea8cfec67c00c65ecc58ad8ed24392553dcf40c23d52dc0852f258ff193715a191918c478e92e698df3a7860070f18b772d811a039cc1d5d2427e4d9915be318f4a1bf6be48dcbd91f03abd2e864a596fd325685b2aadcafaf33a6977dc058ba49ffbc77e36ee26eb4a005215e41f90481a890c89f1ea9849fc4902da5
+
diff --git a/src/yaca/test-vectors/encrypt_output_comparison_rc2_cast5_nopad.txt b/src/yaca/test-vectors/encrypt_output_comparison_rc2_cast5_nopad.txt
new file mode 100644 (file)
index 0000000..6549f00
--- /dev/null
@@ -0,0 +1,35 @@
+################## rc2-ecb ##################
+
+input=0000000000000000
+algo=RC2
+bcm=ECB
+key=88bca90e90875a7f0f79c384627bafb2
+iv=
+repeats=1
+output=2269552ab0f85ca6
+
+################## cast5-ecb ##################
+
+input=0123456789abcdef
+algo=CAST5
+bcm=ECB
+key=0123456712345678234567893456789a
+iv=
+repeats=1
+output=238b4fe5847e44b2
+
+input=0123456789abcdef
+algo=CAST5
+bcm=ECB
+key=01234567123456782345
+iv=
+repeats=1
+output=eb6a711a2c02271b
+
+input=0123456789abcdef
+algo=CAST5
+bcm=ECB
+key=0123456712
+iv=
+repeats=1
+output=7ac816d16e9b302e
diff --git a/src/yaca/test-vectors/encrypt_output_comparison_rc4.txt b/src/yaca/test-vectors/encrypt_output_comparison_rc4.txt
new file mode 100644 (file)
index 0000000..d40c12f
--- /dev/null
@@ -0,0 +1,57 @@
+################## rc4 ##################
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405
+iv=
+repeats=1
+output=b2396305f03dc027ccc3524a0a1118a8
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=01020304050607
+iv=
+repeats=1
+output=293f02d47f37c9b633f2af5285feb46b
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405060708
+iv=
+repeats=1
+output=97ab8a1bf0afb96132f2f67258da15a8
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405060708090a
+iv=
+repeats=1
+output=ede3b04643e586cc907dc21851709902
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405060708090a0b0c0d0e0f10
+iv=
+repeats=1
+output=9ac7cc9a609d1ef7b2932899cde41b97
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405060708090a0b0c0d0e0f101112131415161718
+iv=
+repeats=1
+output=0595e57fe5f0bb3c706edac8a4b2db11
+
+input=00000000000000000000000000000000
+algo=RC4
+bcm=NONE
+key=0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20
+iv=
+repeats=1
+output=eaa6bd25880bf93d3f5d1e4ca2611d91
index bb36c02..e76af89 100644 (file)
@@ -371,6 +371,23 @@ const char* padding2str(yaca_padding_e padding)
     default: return "Unknown padding type";
     }
 }
+
+const char* bcm2str(yaca_block_cipher_mode_e bcm)
+{
+    switch (bcm) {
+    ENUM_DESCRIBE(YACA_BCM_NONE);
+    ENUM_DESCRIBE(YACA_BCM_ECB);
+    ENUM_DESCRIBE(YACA_BCM_CTR);
+    ENUM_DESCRIBE(YACA_BCM_CBC);
+    ENUM_DESCRIBE(YACA_BCM_GCM);
+    ENUM_DESCRIBE(YACA_BCM_CFB);
+    ENUM_DESCRIBE(YACA_BCM_CFB1);
+    ENUM_DESCRIBE(YACA_BCM_CFB8);
+    ENUM_DESCRIBE(YACA_BCM_OFB);
+    ENUM_DESCRIBE(YACA_BCM_CCM);
+    default: return "Unknown bcm type";
+    }
+}
 #undef ENUM_DESCRIBE
 
 std::string truncate_str(const std::string &input, size_t len)
index 2f538d9..8a3a120 100644 (file)
@@ -205,6 +205,8 @@ const char* encrypt2str(yaca_encrypt_algorithm_e algo);
 
 const char* padding2str(yaca_padding_e padding);
 
+const char* bcm2str(yaca_block_cipher_mode_e bcm);
+
 /* If input is longer than len it is truncated and an ellipsis is appended.
  * Otherwise the original string is returned. */
 std::string truncate_str(const std::string &input, size_t len);
index a726892..d5ade46 100644 (file)
@@ -50,6 +50,99 @@ ChrPtr out_buf_alloc(const CtxPtr& ctx_ptr, size_t input_len, size_t &out_len)
     return create_yaca_buffer(out_len);
 }
 
+yaca_key_type_e algo_to_key_type(yaca_encrypt_algorithm_e algo)
+{
+    if (algo == YACA_ENCRYPT_3DES_3TDEA ||
+        algo == YACA_ENCRYPT_UNSAFE_3DES_2TDEA ||
+        algo == YACA_ENCRYPT_UNSAFE_DES)
+        return YACA_KEY_TYPE_DES;
+    else
+        return YACA_KEY_TYPE_SYMMETRIC;
+}
+
+class Encryptor {
+public:
+    Encryptor(yaca_encrypt_algorithm_e algo,
+              yaca_block_cipher_mode_e bcm,
+              const KeyPtr& key_ptr,
+              const KeyPtr& iv_ptr,
+              bool padded = true) :
+        m_enCtxPtr(encrypt_init(algo, bcm, key_ptr, iv_ptr)),
+        m_decCtxPtr(decrypt_init(algo, bcm, key_ptr, iv_ptr))
+    {
+        if (!padded)
+            set_padding(YACA_PADDING_NONE);
+    }
+
+    virtual Buffer encrypt(const Buffer& data, size_t repeats = 1)
+    {
+        Buffer update_out = run_update(data, repeats, &m_enCtxPtr, yaca_encrypt_update);
+        Buffer final_out  = run_finalize(&m_enCtxPtr, yaca_encrypt_finalize);
+        update_out.insert(update_out.end(), final_out.begin(), final_out.end());
+        return update_out;
+    }
+
+    virtual Buffer decrypt(const Buffer& data, size_t repeats = 1)
+    {
+        Buffer update_out = run_update(data, repeats, &m_decCtxPtr, yaca_decrypt_update);
+        Buffer final_out  = run_finalize(&m_decCtxPtr, yaca_decrypt_finalize);
+        update_out.insert(update_out.end(), final_out.begin(), final_out.end());
+        return update_out;
+    }
+
+    void set_padding(yaca_padding_e padding)
+    {
+        YACA_SUCCESS(yaca_context_set_property(m_enCtxPtr.get(), YACA_PROPERTY_PADDING,
+                                               (char*)(&padding), sizeof(padding)));
+        YACA_SUCCESS(yaca_context_set_property(m_decCtxPtr.get(), YACA_PROPERTY_PADDING,
+                                               (char*)(&padding), sizeof(padding)));
+    }
+
+private:
+    CtxPtr m_enCtxPtr;
+    CtxPtr m_decCtxPtr;
+
+    typedef std::function<int(yaca_context_h, const char*, size_t, char*, size_t*)> Update;
+    typedef std::function<int(yaca_context_h, char*, size_t*)> Final;
+
+    Buffer run_update(const Buffer& data, size_t repeats, CtxPtr* ctx_ptr, Update update)
+    {
+        Buffer output;
+        if (!data.empty()) {
+            size_t len = 0;
+            auto text_ptr = out_buf_alloc(*ctx_ptr, data.size(), len);
+
+            for (size_t i = 0; i < repeats; ++i) {
+                YACA_SUCCESS(update(ctx_ptr->get(), data.data(), data.size(), text_ptr.get(), &len));
+                output.insert(output.end(), text_ptr.get(), text_ptr.get() + len);
+            }
+        }
+
+        return output;
+    }
+
+    Buffer run_finalize(CtxPtr* ctx_ptr, Final finalize)
+    {
+        Buffer output;
+        size_t len = 0;
+        auto final_ptr = out_buf_alloc(m_decCtxPtr, 0, len);
+        YACA_SUCCESS(finalize(ctx_ptr->get(), final_ptr.get(), &len));
+        output.insert(output.end(), final_ptr.get(), final_ptr.get() + len);
+
+        return output;
+    }
+};
+
+std::string bin2hex(const Buffer &bin_str)
+{
+    std::stringstream data;
+
+    for (const auto& i : bin_str)
+        data << std::hex << static_cast<int>(static_cast<unsigned char>(i));
+
+    return data.str();
+}
+
 void check_test_vector_init(yaca_encrypt_algorithm_e algo,
                             yaca_block_cipher_mode_e bcm,
                             size_t key_len,
@@ -87,6 +180,63 @@ void check_test_vector_init(yaca_encrypt_algorithm_e algo,
     yaca_context_destroy(ctx);
 }
 
+void check_test_vector_output(const Buffer &input,
+                              yaca_encrypt_algorithm_e algo,
+                              yaca_block_cipher_mode_e bcm,
+                              const Buffer &key,
+                              const Buffer &iv,
+                              size_t repeats,
+                              const Buffer &expected,
+                              bool padded)
+{
+    auto key_ptr = import_key(algo_to_key_type(algo), nullptr, key.data(), key.size());
+    auto iv_ptr = (iv.size() > 0) ? import_key(YACA_KEY_TYPE_IV, nullptr, iv.data(), iv.size())
+                                  : null_key();
+
+    Encryptor encryptor(algo, bcm, key_ptr, iv_ptr, padded);
+    Buffer output_vector = encryptor.encrypt(input, repeats);
+
+    auto keyHex = bin2hex(key);
+    auto ivHex = bin2hex(iv);
+    std::stringstream message;
+
+    message << "Parameters:\n"
+            << encrypt2str(algo) << std::endl
+            << bcm2str(bcm)      << std::endl
+            << "key: "           << keyHex  << std::endl
+            << "iv:  "           << ivHex   << std::endl
+            << "repeats: "       << repeats << std::endl;
+
+    YACA_ASSERT_MSG(expected.size() == output_vector.size(), "size differs\n" << message.str());
+    YACA_ASSERT_MSG(expected == output_vector,
+                    "\nEncrypt string comparison failed\n" << message.str());
+}
+
+void test_encryption_output(std::string filename, bool padded=true)
+{
+    auto tvv = loadTestVector(filename);
+
+    for (const auto& tv : tvv) {
+        Buffer input;
+        yaca_encrypt_algorithm_e algo;
+        yaca_block_cipher_mode_e bcm;
+        Buffer key;
+        Buffer iv;
+        size_t repeats;
+        Buffer expected;
+
+        tv.get("input", input);
+        tv.get("algo", algo);
+        tv.get("bcm", bcm);
+        tv.get("key", key);
+        tv.get("iv", iv);
+        tv.get("repeats", repeats);
+        tv.get("output", expected);
+
+        check_test_vector_output(input, algo, bcm, key, iv, repeats, expected, padded);
+    }
+}
+
 }//namespace anonymous
 
 RUNNER_TEST_GROUP_INIT(T3000_YACA_ENCRYPT);
@@ -132,7 +282,6 @@ RUNNER_TEST(T3010_yaca_encrypt_init_invalid_param, YacaTest)
                                                des_key_ptr.get(), key_iv_pair.iv.get()));
 }
 
-
 RUNNER_TEST(T3020_yaca_encrypt_update_invalid_param, YacaTest)
 {
     size_t ciphertext_len = 0;
@@ -306,3 +455,10 @@ RUNNER_TEST(T3080_yaca_encrypt_decrypt_init_param_comb, YacaTest)
         check_test_vector_init(algo, bcm, key_len, iv_len, valid);
     }
 }
+
+RUNNER_TEST(T3090_yaca_encrypt_update_finalize_output_comp, YacaTest)
+{
+    test_encryption_output("encrypt_output_comparison.txt");
+    test_encryption_output("encrypt_output_comparison_rc2_cast5_nopad.txt", false);
+    test_encryption_output("encrypt_output_comparison_rc4.txt");
+}