YACA: Add param combination tests for yaca_encrypt/decrypt_initialize() 16/80116/27
authorMateusz Forc <m.forc@samsung.com>
Wed, 13 Jul 2016 13:38:29 +0000 (15:38 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 4 Aug 2016 14:06:02 +0000 (07:06 -0700)
Change-Id: I34e8cee773801550f25330592c2baaee40c51b34

src/yaca/test-vectors/encrypt_param_comb.txt [new file with mode: 0644]
src/yaca/yaca-test-encrypt.cpp
src/yaca/yaca-test-vector.cpp

diff --git a/src/yaca/test-vectors/encrypt_param_comb.txt b/src/yaca/test-vectors/encrypt_param_comb.txt
new file mode 100644 (file)
index 0000000..d9d9767
--- /dev/null
@@ -0,0 +1,2358 @@
+################## check bcm for algorithm ##################
+
+################## AES ##################
+
+algo=AES
+bcm=NONE
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=64
+valid=1
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=64
+valid=1
+
+################## DES ##################
+
+algo=DES
+bcm=NONE
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=0
+valid=1
+
+algo=DES
+bcm=CTR
+key_len=64
+iv_len=64
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=GCM
+key_len=64
+iv_len=64
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CCM
+key_len=64
+iv_len=64
+valid=0
+
+################## 3DES_2TDEA ##################
+
+algo=3DES_2TDEA
+bcm=NONE
+key_len=128
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=3DES_2TDEA
+bcm=CTR
+key_len=128
+iv_len=64
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=GCM
+key_len=128
+iv_len=64
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=CFB1
+key_len=128
+iv_len=64
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB8
+key_len=128
+iv_len=64
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=CCM
+key_len=128
+iv_len=64
+valid=0
+
+################## 3DES_3TDEA ##################
+
+algo=3DES_3TDEA
+bcm=NONE
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=0
+valid=1
+
+algo=3DES_3TDEA
+bcm=CTR
+key_len=192
+iv_len=64
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=GCM
+key_len=192
+iv_len=64
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CCM
+key_len=192
+iv_len=64
+valid=0
+
+################## RC2 ##################
+
+algo=RC2
+bcm=NONE
+key_len=8
+iv_len=0
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=CTR
+key_len=8
+iv_len=64
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=GCM
+key_len=8
+iv_len=64
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=CFB1
+key_len=8
+iv_len=64
+valid=0
+
+algo=RC2
+bcm=CFB8
+key_len=8
+iv_len=64
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=CCM
+key_len=8
+iv_len=64
+valid=0
+
+################## RC4 ##################
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=ECB
+key_len=40
+iv_len=0
+valid=0
+
+algo=RC4
+bcm=CTR
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=CBC
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=GCM
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=CFB
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=CFB1
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=CFB8
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=OFB
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=CCM
+key_len=40
+iv_len=64
+valid=0
+
+################## CAST5 ##################
+
+algo=CAST5
+bcm=NONE
+key_len=40
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=CTR
+key_len=40
+iv_len=64
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=GCM
+key_len=40
+iv_len=64
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=CFB1
+key_len=40
+iv_len=64
+valid=0
+
+algo=CAST5
+bcm=CFB8
+key_len=40
+iv_len=64
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=CCM
+key_len=40
+iv_len=64
+valid=0
+
+################## check key_len for algorithm ##################
+
+################## AES ##################
+
+algo=AES
+bcm=ECB
+key_len=8
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=40
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=64
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=80
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=AES
+bcm=ECB
+key_len=192
+iv_len=0
+valid=1
+
+algo=AES
+bcm=ECB
+key_len=256
+iv_len=0
+valid=1
+
+algo=AES
+bcm=ECB
+key_len=512
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## DES ##################
+
+algo=DES
+bcm=ECB
+key_len=8
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=40
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=0
+valid=1
+
+algo=DES
+bcm=ECB
+key_len=80
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=128
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=192
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=256
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=512
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## 3DES_2TDEA ##################
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=8
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=40
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=64
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=80
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=256
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=512
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## 3DES_3TDEA ##################
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=8
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=40
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=64
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=80
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=128
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=0
+valid=1
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=256
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=512
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## RC2 ##################
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=40
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=64
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=80
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=192
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=256
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=512
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## RC4 ##################
+
+algo=RC4
+bcm=NONE
+key_len=8
+iv_len=0
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=64
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=80
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=128
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=192
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=256
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=512
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=1024
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=2048
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=4096
+iv_len=0
+valid=0
+
+################## CAST5 ##################
+
+algo=CAST5
+bcm=ECB
+key_len=8
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=ECB
+key_len=64
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=ECB
+key_len=80
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=ECB
+key_len=192
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=256
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=512
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=1024
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=2048
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=4096
+iv_len=0
+valid=0
+
+################## check iv_len for algorithm and bcm ##################
+
+################## AES ##################
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=128
+valid=0
+
+algo=AES
+bcm=ECB
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CTR
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CBC
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=56
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=64
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=96
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=104
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=GCM
+key_len=128
+iv_len=256
+valid=1
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CFB
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CFB1
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=CFB8
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=56
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=64
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=96
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=104
+valid=0
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=128
+valid=1
+
+algo=AES
+bcm=OFB
+key_len=128
+iv_len=256
+valid=0
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=0
+valid=0
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=56
+valid=1
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=64
+valid=1
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=96
+valid=1
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=104
+valid=1
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=128
+valid=0
+
+algo=AES
+bcm=CCM
+key_len=128
+iv_len=256
+valid=0
+
+################## DES ##################
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=0
+valid=1
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=64
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=ECB
+key_len=64
+iv_len=256
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=CBC
+key_len=64
+iv_len=256
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=CFB
+key_len=64
+iv_len=256
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=CFB1
+key_len=64
+iv_len=256
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=CFB8
+key_len=64
+iv_len=256
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=0
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=56
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=64
+valid=1
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=96
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=104
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=128
+valid=0
+
+algo=DES
+bcm=OFB
+key_len=64
+iv_len=256
+valid=0
+
+################## 3DES_2TDEA ##################
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=0
+valid=1
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=56
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=64
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=96
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=104
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=128
+valid=0
+
+algo=3DES_2TDEA
+bcm=ECB
+key_len=128
+iv_len=256
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=56
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=96
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=104
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=128
+valid=0
+
+algo=3DES_2TDEA
+bcm=CBC
+key_len=128
+iv_len=256
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=56
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=96
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=104
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=128
+valid=0
+
+algo=3DES_2TDEA
+bcm=CFB
+key_len=128
+iv_len=256
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=0
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=56
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=64
+valid=1
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=96
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=104
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=128
+valid=0
+
+algo=3DES_2TDEA
+bcm=OFB
+key_len=128
+iv_len=256
+valid=0
+
+################## 3DES_3TDEA ##################
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=0
+valid=1
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=64
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=ECB
+key_len=192
+iv_len=256
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=CBC
+key_len=192
+iv_len=256
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=OFB
+key_len=192
+iv_len=256
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB
+key_len=192
+iv_len=256
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB1
+key_len=192
+iv_len=256
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=0
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=56
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=64
+valid=1
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=96
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=104
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=128
+valid=0
+
+algo=3DES_3TDEA
+bcm=CFB8
+key_len=192
+iv_len=256
+valid=0
+
+################## RC2 ##################
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=0
+valid=1
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=56
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=64
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=96
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=104
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=128
+valid=0
+
+algo=RC2
+bcm=ECB
+key_len=8
+iv_len=256
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=0
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=56
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=96
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=104
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=128
+valid=0
+
+algo=RC2
+bcm=CBC
+key_len=8
+iv_len=256
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=0
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=56
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=96
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=104
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=128
+valid=0
+
+algo=RC2
+bcm=CFB
+key_len=8
+iv_len=256
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=0
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=56
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=64
+valid=1
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=96
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=104
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=128
+valid=0
+
+algo=RC2
+bcm=OFB
+key_len=8
+iv_len=256
+valid=0
+
+################## RC4 ##################
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=0
+valid=1
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=56
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=64
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=96
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=104
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=128
+valid=0
+
+algo=RC4
+bcm=NONE
+key_len=40
+iv_len=256
+valid=0
+
+################## CAST5 ##################
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=0
+valid=1
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=56
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=64
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=96
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=104
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=128
+valid=0
+
+algo=CAST5
+bcm=ECB
+key_len=40
+iv_len=256
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=56
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=96
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=104
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=128
+valid=0
+
+algo=CAST5
+bcm=CBC
+key_len=40
+iv_len=256
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=56
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=96
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=104
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=128
+valid=0
+
+algo=CAST5
+bcm=CFB
+key_len=40
+iv_len=256
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=0
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=56
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=64
+valid=1
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=96
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=104
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=128
+valid=0
+
+algo=CAST5
+bcm=OFB
+key_len=40
+iv_len=256
+valid=0
+
index 447b8e9..a726892 100644 (file)
@@ -24,6 +24,8 @@
 
 #include "dpl/test/test_runner.h"
 #include "yaca-test-common.h"
+#include "yaca-test-vector.h"
+
 #include <yaca_encrypt.h>
 #include <yaca_key.h>
 
@@ -48,6 +50,43 @@ ChrPtr out_buf_alloc(const CtxPtr& ctx_ptr, size_t input_len, size_t &out_len)
     return create_yaca_buffer(out_len);
 }
 
+void check_test_vector_init(yaca_encrypt_algorithm_e algo,
+                            yaca_block_cipher_mode_e bcm,
+                            size_t key_len,
+                            size_t iv_len,
+                            bool valid)
+{
+    yaca_context_h ctx = YACA_CONTEXT_NULL;
+    int expected = YACA_ERROR_NONE;
+    yaca_key_type_e key_type;
+
+    if (!valid)
+       expected = YACA_ERROR_INVALID_PARAMETER;
+
+    auto iv_ptr = (iv_len > 0) ? generate_key(YACA_KEY_TYPE_IV, iv_len)
+                               : null_key();
+
+    /*
+     * Invalid DES key cannot be created using yaca_key_generate().
+     * If test case is incorrect, wrong key (symmetric) is generated
+     * in order to check how api behave with inappropriate key imported
+     */
+
+    if ((algo == YACA_ENCRYPT_UNSAFE_DES || algo == YACA_ENCRYPT_UNSAFE_3DES_2TDEA ||
+        algo == YACA_ENCRYPT_3DES_3TDEA) && valid)
+        key_type = YACA_KEY_TYPE_DES;
+    else
+        key_type = YACA_KEY_TYPE_SYMMETRIC;
+
+    auto key_ptr = generate_key(key_type, key_len);
+
+    YACA_RESULT(expected, yaca_encrypt_initialize(&ctx, algo, bcm, key_ptr.get(), iv_ptr.get()));
+    yaca_context_destroy(ctx);
+    ctx = YACA_CONTEXT_NULL;
+    YACA_RESULT(expected, yaca_decrypt_initialize(&ctx, algo, bcm, key_ptr.get(), iv_ptr.get()));
+    yaca_context_destroy(ctx);
+}
+
 }//namespace anonymous
 
 RUNNER_TEST_GROUP_INIT(T3000_YACA_ENCRYPT);
@@ -246,3 +285,24 @@ RUNNER_TEST(T3070_yaca_get_iv_bits_invalid_param, YacaTest)
     YACA_INVALID_PARAM(yaca_encrypt_get_iv_bit_length(YACA_ENCRYPT_AES, YACA_BCM_CBC,
                                                       KEY_LEN, nullptr));
 }
+
+RUNNER_TEST(T3080_yaca_encrypt_decrypt_init_param_comb, YacaTest)
+{
+    auto tvv = loadTestVector("encrypt_param_comb.txt");
+
+    for (const auto& tv : tvv) {
+        yaca_encrypt_algorithm_e algo;
+        yaca_block_cipher_mode_e bcm;
+        size_t key_len;
+        size_t iv_len;
+        bool valid;
+
+        tv.get("algo", algo);
+        tv.get("bcm", bcm);
+        tv.get("key_len", key_len);
+        tv.get("iv_len", iv_len);
+        tv.get("valid", valid);
+
+        check_test_vector_init(algo, bcm, key_len, iv_len, valid);
+    }
+}
index f415963..b0c2087 100644 (file)
@@ -102,15 +102,16 @@ std::unordered_map<std::string, yaca_encrypt_algorithm_e> str2encrypt = {
 };
 
 std::unordered_map<std::string, yaca_block_cipher_mode_e> str2bcm = {
-    std::make_pair("ECB",   YACA_BCM_ECB),
-    std::make_pair("CTR",   YACA_BCM_CTR),
-    std::make_pair("CBC",   YACA_BCM_CBC),
-    std::make_pair("GCM",   YACA_BCM_GCM),
-    std::make_pair("CFB",   YACA_BCM_CFB),
-    std::make_pair("CFB1",  YACA_BCM_CFB1),
-    std::make_pair("CFB8",  YACA_BCM_CFB8),
-    std::make_pair("OFB",   YACA_BCM_OFB),
-    std::make_pair("CCM",   YACA_BCM_CCM)
+    std::make_pair("NONE", YACA_BCM_NONE),
+    std::make_pair("ECB",  YACA_BCM_ECB),
+    std::make_pair("CTR",  YACA_BCM_CTR),
+    std::make_pair("CBC",  YACA_BCM_CBC),
+    std::make_pair("GCM",  YACA_BCM_GCM),
+    std::make_pair("CFB",  YACA_BCM_CFB),
+    std::make_pair("CFB1", YACA_BCM_CFB1),
+    std::make_pair("CFB8", YACA_BCM_CFB8),
+    std::make_pair("OFB",  YACA_BCM_OFB),
+    std::make_pair("CCM",  YACA_BCM_CCM)
 };
 
 } // anonymous namespace