DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 1/2] test/crypto: use separate keys for auth and cipher
@ 2023-05-12  5:33 Anoob Joseph
  2023-05-12  5:33 ` [PATCH 2/2] test/crypto: specify correct parameters with null algos Anoob Joseph
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Anoob Joseph @ 2023-05-12  5:33 UTC (permalink / raw)
  To: Akhil Goyal, Fan Zhang, Ciara Power
  Cc: Hemant Agrawal, Jerin Jacob, Tejasree Kondoj, dev

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


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-05-24 12:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-12  5:33 [PATCH 1/2] test/crypto: use separate keys for auth and cipher Anoob Joseph
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).