ipsec: add support for chained buffers
[vpp.git] / src / plugins / unittest / crypto / rfc2202_hmac_sha1.c
index 94ab03c..d009afe 100644 (file)
@@ -36,10 +36,10 @@ static u8 sha1_tc1_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc1) = {
   .name = "RFC2202 HMAC-SHA-1 TC1",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc1_key),
-  .data = TEST_DATA (sha1_tc1_data),
-  .expected = TEST_DATA (sha1_tc1_digest),
+  .plaintext = TEST_DATA (sha1_tc1_data),
+  .digest = TEST_DATA (sha1_tc1_digest),
 };
 /* *INDENT-ON* */
 
@@ -56,10 +56,10 @@ static u8 sha1_tc2_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc2) = {
   .name = "RFC2202 HMAC-SHA-1 TC2",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc2_key),
-  .data = TEST_DATA (sha1_tc2_data),
-  .expected = TEST_DATA (sha1_tc2_digest),
+  .plaintext = TEST_DATA (sha1_tc2_data),
+  .digest = TEST_DATA (sha1_tc2_digest),
 };
 /* *INDENT-ON* */
 
@@ -88,10 +88,10 @@ static u8 sha1_tc3_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc3) = {
   .name = "RFC2202 HMAC-SHA-1 TC3",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc3_key),
-  .data = TEST_DATA (sha1_tc3_data),
-  .expected = TEST_DATA (sha1_tc3_digest),
+  .plaintext = TEST_DATA (sha1_tc3_data),
+  .digest = TEST_DATA (sha1_tc3_digest),
 };
 /* *INDENT-ON* */
 
@@ -121,10 +121,10 @@ static u8 sha1_tc4_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc4) = {
   .name = "RFC2202 HMAC-SHA-1 TC4",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc4_key),
-  .data = TEST_DATA (sha1_tc4_data),
-  .expected = TEST_DATA (sha1_tc4_digest),
+  .plaintext = TEST_DATA (sha1_tc4_data),
+  .digest = TEST_DATA (sha1_tc4_digest),
 };
 /* *INDENT-ON* */
 
@@ -145,10 +145,25 @@ static u8 sha1_tc5_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc5) = {
   .name = "RFC2202 HMAC-SHA-1 TC5",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc5_key),
-  .data = TEST_DATA (sha1_tc5_data),
-  .expected = TEST_DATA (sha1_tc5_digest),
+  .plaintext = TEST_DATA (sha1_tc5_data),
+  .digest = TEST_DATA (sha1_tc5_digest),
+};
+/* *INDENT-ON* */
+
+static u8 sha1_tc5_digest_96[12] = {
+  0x4c, 0x1a, 0x03, 0x42, 0x4b, 0x55, 0xe0, 0x7f,
+  0xe7, 0xf2, 0x7b, 0xe1
+};
+
+/* *INDENT-OFF* */
+UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc5_trunc) = {
+  .name = "RFC2202 HMAC-SHA-1-96 TC5-trunc",
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
+  .key = TEST_DATA (sha1_tc5_key),
+  .plaintext = TEST_DATA (sha1_tc5_data),
+  .digest = TEST_DATA (sha1_tc5_digest_96),
 };
 /* *INDENT-ON* */
 
@@ -177,10 +192,10 @@ static u8 sha1_tc6_digest[] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc6) = {
   .name = "RFC2202 HMAC-SHA-1 TC6",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc6_key),
-  .data = TEST_DATA (sha1_tc6_data),
-  .expected = TEST_DATA (sha1_tc6_digest),
+  .plaintext = TEST_DATA (sha1_tc6_data),
+  .digest = TEST_DATA (sha1_tc6_digest),
 };
 /* *INDENT-ON* */
 
@@ -196,10 +211,25 @@ static u8 sha1_tc7_digest[20] = {
 /* *INDENT-OFF* */
 UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc7) = {
   .name = "RFC2202 HMAC-SHA-1 TC7",
-  .op = VNET_CRYPTO_OP_SHA1_HMAC,
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
   .key = TEST_DATA (sha1_tc6_key),
-  .data = TEST_DATA (sha1_tc7_data),
-  .expected = TEST_DATA (sha1_tc7_digest),
+  .plaintext = TEST_DATA (sha1_tc7_data),
+  .digest = TEST_DATA (sha1_tc7_digest),
+};
+/* *INDENT-ON* */
+
+/* *INDENT-OFF* */
+UNITTEST_REGISTER_CRYPTO_TEST (rfc_2202_sha1_tc7_chained) = {
+  .name = "RFC2202 HMAC-SHA-1 TC7 [chained]",
+  .alg = VNET_CRYPTO_ALG_HMAC_SHA1,
+  .key = TEST_DATA (sha1_tc6_key),
+  .digest = TEST_DATA (sha1_tc7_digest),
+
+  .is_chained = 1,
+  .pt_chunks = {
+    TEST_DATA_CHUNK (sha1_tc7_data, 0, 40),
+    TEST_DATA_CHUNK (sha1_tc7_data, 40, 33)
+  },
 };
 /* *INDENT-ON* */