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)
{
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++)
{
vnet_crypto_op_init (op2,
ad->op_by_type
[VNET_CRYPTO_OP_TYPE_AEAD_DECRYPT]);
- op1->flags = VNET_CRYPTO_OP_FLAG_INIT_IV;
op1->src = op2->src = op1->dst = op2->dst = b->data;
op1->key_index = op2->key_index = key_index;
+ op1->tag = op2->tag = b->data - 32;
op1->iv = op2->iv = b->data - 64;
op1->aad = op2->aad = b->data - VLIB_BUFFER_PRE_DATA_SIZE;
- op1->aad_len = op2->aad_len = 0;
+ op1->aad_len = op2->aad_len = 64;
+ op1->tag_len = op2->tag_len = 16;
n_bytes += op1->len = op2->len = buffer_size;
break;
case VNET_CRYPTO_OP_TYPE_HMAC: