app/test: add bit-level SNOW 3G UIA2
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 20 Jun 2016 14:45:00 +0000 (15:45 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 20 Jun 2016 20:38:51 +0000 (22:38 +0200)
Snow3G PMD supports now buffers that are non byte multiple,
so tests to cover this case have been added.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
app/test/test_cryptodev.c
app/test/test_cryptodev_snow3g_hash_test_vectors.h

index 803f1f6..546ae92 100644 (file)
@@ -2047,6 +2047,24 @@ test_snow3g_hash_generate_test_case_3(void)
        return test_snow3g_authentication(&snow3g_hash_test_case_3);
 }
 
+static int
+test_snow3g_hash_generate_test_case_4(void)
+{
+       return test_snow3g_authentication(&snow3g_hash_test_case_4);
+}
+
+static int
+test_snow3g_hash_generate_test_case_5(void)
+{
+       return test_snow3g_authentication(&snow3g_hash_test_case_5);
+}
+
+static int
+test_snow3g_hash_generate_test_case_6(void)
+{
+       return test_snow3g_authentication(&snow3g_hash_test_case_6);
+}
+
 static int
 test_snow3g_hash_verify_test_case_1(void)
 {
@@ -2066,6 +2084,24 @@ test_snow3g_hash_verify_test_case_3(void)
        return test_snow3g_authentication_verify(&snow3g_hash_test_case_3);
 }
 
+static int
+test_snow3g_hash_verify_test_case_4(void)
+{
+       return test_snow3g_authentication_verify(&snow3g_hash_test_case_4);
+}
+
+static int
+test_snow3g_hash_verify_test_case_5(void)
+{
+       return test_snow3g_authentication_verify(&snow3g_hash_test_case_5);
+}
+
+static int
+test_snow3g_hash_verify_test_case_6(void)
+{
+       return test_snow3g_authentication_verify(&snow3g_hash_test_case_6);
+}
+
 static int
 test_kasumi_hash_generate_test_case_1(void)
 {
@@ -4079,12 +4115,26 @@ static struct unit_test_suite cryptodev_sw_snow3g_testsuite  = {
                        test_snow3g_hash_generate_test_case_2),
                TEST_CASE_ST(ut_setup, ut_teardown,
                        test_snow3g_hash_generate_test_case_3),
+               /* Tests with buffers which length is not byte-aligned */
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_generate_test_case_4),
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_generate_test_case_5),
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_generate_test_case_6),
                TEST_CASE_ST(ut_setup, ut_teardown,
                        test_snow3g_hash_verify_test_case_1),
                TEST_CASE_ST(ut_setup, ut_teardown,
                        test_snow3g_hash_verify_test_case_2),
                TEST_CASE_ST(ut_setup, ut_teardown,
                        test_snow3g_hash_verify_test_case_3),
+               /* Tests with buffers which length is not byte-aligned */
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_verify_test_case_4),
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_verify_test_case_5),
+               TEST_CASE_ST(ut_setup, ut_teardown,
+                       test_snow3g_hash_verify_test_case_6),
                TEST_CASE_ST(ut_setup, ut_teardown,
                        test_snow3g_authenticated_encryption_test_case_1),
                TEST_CASE_ST(ut_setup, ut_teardown,
index fe4906b..a8a47db 100644 (file)
@@ -438,4 +438,111 @@ struct snow3g_hash_test_data snow3g_hash_test_case_3 = {
        }
 };
 
+struct snow3g_hash_test_data snow3g_hash_test_case_4 = {
+       .key = {
+               .data = {
+                       0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
+                       0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
+               },
+       .len = 16
+       },
+       .aad = {
+               .data = {
+                       0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
+                       0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
+               },
+               .len = 16
+       },
+       .plaintext = {
+               .data = {
+                       0x6B, 0x22, 0x77, 0x37, 0x29, 0x6F, 0x39, 0x3C,
+                       0x80, 0x79, 0x35, 0x3E, 0xDC, 0x87, 0xE2, 0xE8,
+                       0x05, 0xD2, 0xEC, 0x49, 0xA4, 0xF2, 0xD8, 0xE0
+               },
+               .len = 189
+       },
+       .validAuthLenInBits = {
+               .len = 189
+               },
+       .validAuthOffsetLenInBits = {
+               .len = 128
+       },
+       .digest = {
+               .data = {0x2B, 0xCE, 0x18, 0x20},
+               .len  = 4
+       }
+};
+
+struct snow3g_hash_test_data snow3g_hash_test_case_5 = {
+       .key = {
+               .data = {
+                       0xD4, 0x2F, 0x68, 0x24, 0x28, 0x20, 0x1C, 0xAF,
+                       0xCD, 0x9F, 0x97, 0x94, 0x5E, 0x6D, 0xE7, 0xB7
+               },
+               .len = 16
+       },
+       .aad = {
+               .data = {
+                       0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2,
+                       0xBE, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0x58, 0xE2
+               },
+               .len = 16
+       },
+       .plaintext = {
+               .data = {
+                       0xB5, 0x92, 0x43, 0x84, 0x32, 0x8A, 0x4A, 0xE0,
+                       0x0B, 0x73, 0x71, 0x09, 0xF8, 0xB6, 0xC8, 0xDD,
+                       0x2B, 0x4D, 0xB6, 0x3D, 0xD5, 0x33, 0x98, 0x1C,
+                       0xEB, 0x19, 0xAA, 0xD5, 0x2A, 0x5B, 0x2B, 0xC0
+               },
+               .len = 254
+       },
+       .validAuthLenInBits = {
+               .len = 254
+               },
+       .validAuthOffsetLenInBits = {
+               .len = 128
+       },
+       .digest = {
+               .data = {0xFC, 0x7B, 0x18, 0xBD},
+               .len  = 4
+       }
+};
+
+struct snow3g_hash_test_data snow3g_hash_test_case_6 = {
+       .key = {
+               .data = {
+                       0xFD, 0xB9, 0xCF, 0xDF, 0x28, 0x93, 0x6C, 0xC4,
+                       0x83, 0xA3, 0x18, 0x69, 0xD8, 0x1B, 0x8F, 0xAB
+               },
+               .len = 16
+       },
+       .aad = {
+               .data = {
+                       0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A,
+                       0xB6, 0xAF, 0x61, 0x44, 0x98, 0x38, 0x70, 0x3A
+               },
+               .len = 16
+       },
+       .plaintext = {
+               .data = {
+                       0x59, 0x32, 0xBC, 0x0A, 0xCE, 0x2B, 0x0A, 0xBA,
+                       0x33, 0xD8, 0xAC, 0x18, 0x8A, 0xC5, 0x4F, 0x34,
+                       0x6F, 0xAD, 0x10, 0xBF, 0x9D, 0xEE, 0x29, 0x20,
+                       0xB4, 0x3B, 0xD0, 0xC5, 0x3A, 0x91, 0x5C, 0xB7,
+                       0xDF, 0x6C, 0xAA, 0x72, 0x05, 0x3A, 0xBF, 0xF2
+               },
+               .len = 319
+       },
+       .validAuthLenInBits = {
+               .len = 319
+               },
+       .validAuthOffsetLenInBits = {
+               .len = 128
+       },
+       .digest = {
+               .data = {0x02, 0xF1, 0xFA, 0xAF},
+               .len  = 4
+       }
+};
 #endif /* TEST_CRYPTODEV_SNOW3G_HASH_TEST_VECTORS_H_ */