app/crypto-perf: fix IV allocation for AEAD
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 1 Aug 2017 00:33:36 +0000 (01:33 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 3 Aug 2017 21:46:41 +0000 (23:46 +0200)
Memory is reserved after each crypto operation
for the necessary IV(s), which could be for cipher,
authentication or AEAD algorithms.
However, for AEAD algorithms (such as AES-GCM), this
memory was not being reserved, leading to potential
memory overflow.

Fixes: 8a5b494a7f99 ("app/test-crypto-perf: add AEAD parameters")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
app/test-crypto-perf/cperf_test_latency.c
app/test-crypto-perf/cperf_test_throughput.c
app/test-crypto-perf/cperf_test_verify.c

index 20e9686..7e610d9 100644 (file)
@@ -291,7 +291,8 @@ cperf_latency_test_constructor(struct rte_mempool *sess_mp,
 
        uint16_t priv_size = sizeof(struct priv_op_data) +
                        test_vector->cipher_iv.length +
-                       test_vector->auth_iv.length;
+                       test_vector->auth_iv.length +
+                       test_vector->aead_iv.length;
        ctx->crypto_op_pool = rte_crypto_op_pool_create(pool_name,
                        RTE_CRYPTO_OP_TYPE_SYMMETRIC, options->pool_sz,
                        512, priv_size, rte_socket_id());
index 85ed21a..3bb1cb0 100644 (file)
@@ -271,7 +271,7 @@ cperf_throughput_test_constructor(struct rte_mempool *sess_mp,
                        dev_id);
 
        uint16_t priv_size = test_vector->cipher_iv.length +
-               test_vector->auth_iv.length;
+               test_vector->auth_iv.length + test_vector->aead_iv.length;
 
        ctx->crypto_op_pool = rte_crypto_op_pool_create(pool_name,
                        RTE_CRYPTO_OP_TYPE_SYMMETRIC, options->pool_sz,
index 1827e6f..a314646 100644 (file)
@@ -275,7 +275,7 @@ cperf_verify_test_constructor(struct rte_mempool *sess_mp,
                        dev_id);
 
        uint16_t priv_size = test_vector->cipher_iv.length +
-               test_vector->auth_iv.length;
+               test_vector->auth_iv.length + test_vector->aead_iv.length;
        ctx->crypto_op_pool = rte_crypto_op_pool_create(pool_name,
                        RTE_CRYPTO_OP_TYPE_SYMMETRIC, options->pool_sz,
                        512, priv_size, rte_socket_id());