From: Anoob Joseph <anoobj@marvell.com>
To: Akhil Goyal <gakhil@marvell.com>,
Fan Zhang <fanzhang.oss@gmail.com>,
Ciara Power <ciara.power@intel.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>,
Jerin Jacob <jerinj@marvell.com>,
Tejasree Kondoj <ktejasree@marvell.com>, <dev@dpdk.org>
Subject: [PATCH 1/2] test/crypto: use separate keys for auth and cipher
Date: Fri, 12 May 2023 11:03:52 +0530 [thread overview]
Message-ID: <20230512053353.68-1-anoobj@marvell.com> (raw)
The mixed test cases can have keys with different key lengths. The
routine which prepares the session parameters uses same key length for
both cipher & auth keys. Instead allow the caller to use same keys as
required.
Signed-off-by: Anoob Joseph <anoobj@marvell.com>
---
app/test/test_cryptodev.c | 48 +++++++++++++++++++++++----------------
1 file changed, 28 insertions(+), 20 deletions(-)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 31f4cb2cd5..5fdbe11094 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -2554,27 +2554,23 @@ create_wireless_algo_cipher_auth_session(uint8_t dev_id,
enum rte_crypto_auth_operation auth_op,
enum rte_crypto_auth_algorithm auth_algo,
enum rte_crypto_cipher_algorithm cipher_algo,
- const uint8_t *key, uint8_t key_len,
+ const uint8_t *a_key, uint8_t a_key_len,
+ const uint8_t *c_key, uint8_t c_key_len,
uint8_t auth_iv_len, uint8_t auth_len,
uint8_t cipher_iv_len)
{
- uint8_t cipher_auth_key[key_len];
-
struct crypto_testsuite_params *ts_params = &testsuite_params;
struct crypto_unittest_params *ut_params = &unittest_params;
- memcpy(cipher_auth_key, key, key_len);
-
/* Setup Authentication Parameters */
ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = NULL;
ut_params->auth_xform.auth.op = auth_op;
ut_params->auth_xform.auth.algo = auth_algo;
- ut_params->auth_xform.auth.key.length = key_len;
- /* Hash key = cipher key */
- ut_params->auth_xform.auth.key.data = cipher_auth_key;
+ ut_params->auth_xform.auth.key.length = a_key_len;
+ ut_params->auth_xform.auth.key.data = a_key;
ut_params->auth_xform.auth.digest_length = auth_len;
/* Auth IV will be after cipher IV */
ut_params->auth_xform.auth.iv.offset = IV_OFFSET + cipher_iv_len;
@@ -2586,12 +2582,13 @@ create_wireless_algo_cipher_auth_session(uint8_t dev_id,
ut_params->cipher_xform.cipher.algo = cipher_algo;
ut_params->cipher_xform.cipher.op = cipher_op;
- ut_params->cipher_xform.cipher.key.data = cipher_auth_key;
- ut_params->cipher_xform.cipher.key.length = key_len;
+ ut_params->cipher_xform.cipher.key.data = c_key;
+ ut_params->cipher_xform.cipher.key.length = c_key_len;
ut_params->cipher_xform.cipher.iv.offset = IV_OFFSET;
ut_params->cipher_xform.cipher.iv.length = cipher_iv_len;
- debug_hexdump(stdout, "key:", key, key_len);
+ debug_hexdump(stdout, "Auth key:", a_key, c_key_len);
+ debug_hexdump(stdout, "Cipher key:", c_key, c_key_len);
/* Create Crypto session*/
ut_params->sess = rte_cryptodev_sym_session_create(dev_id,
@@ -2677,23 +2674,21 @@ create_wireless_algo_auth_cipher_session(uint8_t dev_id,
enum rte_crypto_auth_operation auth_op,
enum rte_crypto_auth_algorithm auth_algo,
enum rte_crypto_cipher_algorithm cipher_algo,
- const uint8_t *key, const uint8_t key_len,
+ const uint8_t *a_key, const uint8_t a_key_len,
+ const uint8_t *c_key, const uint8_t c_key_len,
uint8_t auth_iv_len, uint8_t auth_len,
uint8_t cipher_iv_len)
{
- uint8_t auth_cipher_key[key_len];
struct crypto_testsuite_params *ts_params = &testsuite_params;
struct crypto_unittest_params *ut_params = &unittest_params;
- memcpy(auth_cipher_key, key, key_len);
-
/* Setup Authentication Parameters */
ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.auth.op = auth_op;
ut_params->auth_xform.next = &ut_params->cipher_xform;
ut_params->auth_xform.auth.algo = auth_algo;
- ut_params->auth_xform.auth.key.length = key_len;
- ut_params->auth_xform.auth.key.data = auth_cipher_key;
+ ut_params->auth_xform.auth.key.length = a_key_len;
+ ut_params->auth_xform.auth.key.data = a_key;
ut_params->auth_xform.auth.digest_length = auth_len;
/* Auth IV will be after cipher IV */
ut_params->auth_xform.auth.iv.offset = IV_OFFSET + cipher_iv_len;
@@ -2704,12 +2699,13 @@ create_wireless_algo_auth_cipher_session(uint8_t dev_id,
ut_params->cipher_xform.next = NULL;
ut_params->cipher_xform.cipher.algo = cipher_algo;
ut_params->cipher_xform.cipher.op = cipher_op;
- ut_params->cipher_xform.cipher.key.data = auth_cipher_key;
- ut_params->cipher_xform.cipher.key.length = key_len;
+ ut_params->cipher_xform.cipher.key.data = c_key;
+ ut_params->cipher_xform.cipher.key.length = c_key_len;
ut_params->cipher_xform.cipher.iv.offset = IV_OFFSET;
ut_params->cipher_xform.cipher.iv.length = cipher_iv_len;
- debug_hexdump(stdout, "key:", key, key_len);
+ debug_hexdump(stdout, "Auth key:", a_key, a_key_len);
+ debug_hexdump(stdout, "Cipher key:", c_key, c_key_len);
/* Create Crypto session*/
if (cipher_op == RTE_CRYPTO_CIPHER_OP_DECRYPT) {
@@ -4908,6 +4904,7 @@ test_snow3g_cipher_auth(const struct snow3g_test_data *tdata)
RTE_CRYPTO_AUTH_SNOW3G_UIA2,
RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
tdata->auth_iv.len, tdata->digest.len,
tdata->cipher_iv.len);
if (retval != 0)
@@ -5037,6 +5034,7 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata,
RTE_CRYPTO_AUTH_SNOW3G_UIA2,
RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
tdata->auth_iv.len, tdata->digest.len,
tdata->cipher_iv.len);
if (retval != 0)
@@ -5242,6 +5240,7 @@ test_snow3g_auth_cipher_sgl(const struct snow3g_test_data *tdata,
RTE_CRYPTO_AUTH_SNOW3G_UIA2,
RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
tdata->auth_iv.len, tdata->digest.len,
tdata->cipher_iv.len);
@@ -5443,6 +5442,7 @@ test_kasumi_auth_cipher(const struct kasumi_test_data *tdata,
RTE_CRYPTO_AUTH_KASUMI_F9,
RTE_CRYPTO_CIPHER_KASUMI_F8,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
0, tdata->digest.len,
tdata->cipher_iv.len);
@@ -5647,6 +5647,7 @@ test_kasumi_auth_cipher_sgl(const struct kasumi_test_data *tdata,
RTE_CRYPTO_AUTH_KASUMI_F9,
RTE_CRYPTO_CIPHER_KASUMI_F8,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
0, tdata->digest.len,
tdata->cipher_iv.len);
@@ -5828,6 +5829,7 @@ test_kasumi_cipher_auth(const struct kasumi_test_data *tdata)
RTE_CRYPTO_AUTH_KASUMI_F9,
RTE_CRYPTO_CIPHER_KASUMI_F8,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
0, tdata->digest.len,
tdata->cipher_iv.len);
if (retval != 0)
@@ -6382,6 +6384,7 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata,
RTE_CRYPTO_AUTH_ZUC_EIA3,
RTE_CRYPTO_CIPHER_ZUC_EEA3,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
tdata->auth_iv.len, tdata->digest.len,
tdata->cipher_iv.len);
@@ -6585,6 +6588,7 @@ test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata,
RTE_CRYPTO_AUTH_ZUC_EIA3,
RTE_CRYPTO_CIPHER_ZUC_EEA3,
tdata->key.data, tdata->key.len,
+ tdata->key.data, tdata->key.len,
tdata->auth_iv.len, tdata->digest.len,
tdata->cipher_iv.len);
@@ -7858,6 +7862,7 @@ test_mixed_auth_cipher(const struct mixed_cipher_auth_test_data *tdata,
tdata->auth_algo,
tdata->cipher_algo,
tdata->auth_key.data, tdata->auth_key.len,
+ tdata->cipher_key.data, tdata->cipher_key.len,
tdata->auth_iv.len, tdata->digest_enc.len,
tdata->cipher_iv.len);
else
@@ -7868,6 +7873,7 @@ test_mixed_auth_cipher(const struct mixed_cipher_auth_test_data *tdata,
tdata->auth_algo,
tdata->cipher_algo,
tdata->auth_key.data, tdata->auth_key.len,
+ tdata->cipher_key.data, tdata->cipher_key.len,
tdata->auth_iv.len, tdata->digest_enc.len,
tdata->cipher_iv.len);
if (retval != 0)
@@ -8071,6 +8077,7 @@ test_mixed_auth_cipher_sgl(const struct mixed_cipher_auth_test_data *tdata,
tdata->auth_algo,
tdata->cipher_algo,
tdata->auth_key.data, tdata->auth_key.len,
+ tdata->cipher_key.data, tdata->cipher_key.len,
tdata->auth_iv.len, tdata->digest_enc.len,
tdata->cipher_iv.len);
else
@@ -8081,6 +8088,7 @@ test_mixed_auth_cipher_sgl(const struct mixed_cipher_auth_test_data *tdata,
tdata->auth_algo,
tdata->cipher_algo,
tdata->auth_key.data, tdata->auth_key.len,
+ tdata->cipher_key.data, tdata->cipher_key.len,
tdata->auth_iv.len, tdata->digest_enc.len,
tdata->cipher_iv.len);
if (retval != 0)
--
2.25.1
next reply other threads:[~2023-05-12 5:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 5:33 Anoob Joseph [this message]
2023-05-12 5:33 ` [PATCH 2/2] test/crypto: specify correct parameters with null algos Anoob Joseph
2023-05-16 10:22 ` Akhil Goyal
2023-05-17 15:50 ` Power, Ciara
2023-05-16 10:22 ` [PATCH 1/2] test/crypto: use separate keys for auth and cipher Akhil Goyal
2023-05-17 15:41 ` Power, Ciara
2023-05-24 12:26 ` Akhil Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230512053353.68-1-anoobj@marvell.com \
--to=anoobj@marvell.com \
--cc=ciara.power@intel.com \
--cc=dev@dpdk.org \
--cc=fanzhang.oss@gmail.com \
--cc=gakhil@marvell.com \
--cc=hemant.agrawal@nxp.com \
--cc=jerinj@marvell.com \
--cc=ktejasree@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.