crypto: fix crypto perf unittest crash 25/23225/4
authorFan Zhang <roy.fan.zhang@intel.com>
Mon, 4 Nov 2019 16:01:59 +0000 (16:01 +0000)
committerDamjan Marion <damarion@cisco.com>
Thu, 7 Nov 2019 20:34:30 +0000 (21:34 +0100)
Type: fix

crypto perf test crashes for key size different than 16 bytes.
This patch fixes the issue

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ic8a8ca83ca189c879815dc5d065b8c6f7826cd41

src/plugins/unittest/crypto_test.c

index 44c4359..9030415 100644 (file)
@@ -268,6 +268,37 @@ test_crypto (vlib_main_t * vm, crypto_test_main_t * tm)
   return 0;
 }
 
+static u32
+test_crypto_get_key_sz (vnet_crypto_alg_t alg)
+{
+  switch (alg)
+    {
+#define _(n, s, l) \
+  case VNET_CRYPTO_ALG_##n: \
+    return l;
+  /* *INDENT-OFF* */
+  foreach_crypto_cipher_alg
+  foreach_crypto_aead_alg
+  /* *INDENT-ON* */
+#undef _
+    case VNET_CRYPTO_ALG_HMAC_MD5:
+    case VNET_CRYPTO_ALG_HMAC_SHA1:
+      return 20;
+    case VNET_CRYPTO_ALG_HMAC_SHA224:
+      return 28;
+    case VNET_CRYPTO_ALG_HMAC_SHA256:
+      return 32;
+    case VNET_CRYPTO_ALG_HMAC_SHA384:
+      return 48;
+    case VNET_CRYPTO_ALG_HMAC_SHA512:
+      return 64;
+    default:
+      return 0;
+    }
+
+  return 0;
+}
+
 static clib_error_t *
 test_crypto_perf (vlib_main_t * vm, crypto_test_main_t * tm)
 {
@@ -320,7 +351,8 @@ test_crypto_perf (vlib_main_t * vm, crypto_test_main_t * tm)
   for (i = 0; i < sizeof (key); i++)
     key[i] = i;
 
-  key_index = vnet_crypto_key_add (vm, tm->alg, key, sizeof (key));
+  key_index = vnet_crypto_key_add (vm, tm->alg, key,
+                                  test_crypto_get_key_sz (tm->alg));
 
   for (i = 0; i < VNET_CRYPTO_OP_N_TYPES; i++)
     {