[dpdk-dev] app/crypto-perf: fix incorrect IV allocation
Checks
Commit Message
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 | 3 ++-
app/test-crypto-perf/cperf_test_throughput.c | 2 +-
app/test-crypto-perf/cperf_test_verify.c | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
Comments
01/08/2017 02:33, Pablo de Lara:
> 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>
Applied, thanks
@@ -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());
@@ -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,
@@ -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());