* [PATCH 2/5] test/crypto: fix ZUC digest length in comparison [not found] <20230301163916.2248543-1-ciara.power@intel.com> @ 2023-03-01 16:39 ` Ciara Power 2023-03-01 16:39 ` [PATCH 4/5] test/crypto: fix capability check for ZUC cipher auth Ciara Power [not found] ` <20230303093821.2367309-1-ciara.power@intel.com> 2 siblings, 0 replies; 4+ messages in thread From: Ciara Power @ 2023-03-01 16:39 UTC (permalink / raw) To: Akhil Goyal, Fan Zhang Cc: dev, kai.ji, pablo.de.lara.guarch, Ciara Power, vvelumuri, stable The digest length used in ZUC tests for verifying the digest was hardcoded at 4 bytes, which was suitable for ZUC128 only. Now that ZUC256 is supported by these test functions, the digest length can vary. Using the test vector digest length directly in these comparisons allows for variable digest length. Fixes: 83397b9f0739 ("test/crypto: add further ZUC test cases") Fixes: fa5bf9345d4e ("test/crypto: add ZUC cases with 256-bit keys") Cc: vvelumuri@marvell.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> --- app/test/test_cryptodev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index ca7f10557c..72d359dd91 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -4853,7 +4853,7 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) TEST_ASSERT_BUFFERS_ARE_EQUAL( ut_params->digest, tdata->digest.data, - 4, + tdata->digest.len, "ZUC Generated auth tag not as expected"); return 0; } @@ -6499,7 +6499,7 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata, TEST_ASSERT_BUFFERS_ARE_EQUAL( ut_params->digest, tdata->digest.data, - DIGEST_BYTE_LENGTH_KASUMI_F9, + tdata->digest.len, "ZUC Generated auth tag not as expected"); } return 0; @@ -6706,7 +6706,7 @@ test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata, TEST_ASSERT_BUFFERS_ARE_EQUAL( digest, tdata->digest.data, - DIGEST_BYTE_LENGTH_KASUMI_F9, + tdata->digest.len, "ZUC Generated auth tag not as expected"); } return 0; -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 4/5] test/crypto: fix capability check for ZUC cipher auth [not found] <20230301163916.2248543-1-ciara.power@intel.com> 2023-03-01 16:39 ` [PATCH 2/5] test/crypto: fix ZUC digest length in comparison Ciara Power @ 2023-03-01 16:39 ` Ciara Power [not found] ` <20230303093821.2367309-1-ciara.power@intel.com> 2 siblings, 0 replies; 4+ messages in thread From: Ciara Power @ 2023-03-01 16:39 UTC (permalink / raw) To: Akhil Goyal, Fan Zhang Cc: dev, kai.ji, pablo.de.lara.guarch, Ciara Power, stable The cipher-auth test function for ZUC was not using the improved cipher and auth capability check functions. This meant the required key and IV lengths were not being checked, leading to problems with ZUC256 tests running, and failing, on devices that only support ZUC128. Fixes: 27b787132484 ("test/crypto: check cipher parameters") Fixes: f93fce6de4aa ("test/crypto: check auth parameters") Cc: pablo.de.lara.guarch@intel.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> --- app/test/test_cryptodev.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 9b90bae206..80e98ed2c7 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -136,6 +136,17 @@ security_proto_supported(enum rte_security_session_action_type action, static int dev_configure_and_start(uint64_t ff_disable); +static int +check_cipher_capability(const struct crypto_testsuite_params *ts_params, + const enum rte_crypto_cipher_algorithm cipher_algo, + const uint16_t key_size, const uint16_t iv_size); + +static int +check_auth_capability(const struct crypto_testsuite_params *ts_params, + const enum rte_crypto_auth_algorithm auth_algo, + const uint16_t key_size, const uint16_t iv_size, + const uint16_t tag_size); + static struct rte_mbuf * setup_test_string(struct rte_mempool *mpool, const char *string, size_t len, uint8_t blocksize) @@ -4761,7 +4772,6 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) unsigned int plaintext_len; struct rte_cryptodev_info dev_info; - struct rte_cryptodev_sym_capability_idx cap_idx; rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); uint64_t feat_flags = dev_info.feature_flags; @@ -4783,19 +4793,14 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) return TEST_SKIPPED; /* Check if device supports ZUC EEA3 */ - cap_idx.type = RTE_CRYPTO_SYM_XFORM_CIPHER; - cap_idx.algo.cipher = RTE_CRYPTO_CIPHER_ZUC_EEA3; - - if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], - &cap_idx) == NULL) + if (check_cipher_capability(ts_params, RTE_CRYPTO_CIPHER_ZUC_EEA3, + tdata->key.len, tdata->cipher_iv.len) < 0) return TEST_SKIPPED; /* Check if device supports ZUC EIA3 */ - cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH; - cap_idx.algo.auth = RTE_CRYPTO_AUTH_ZUC_EIA3; - - if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], - &cap_idx) == NULL) + if (check_auth_capability(ts_params, RTE_CRYPTO_AUTH_ZUC_EIA3, + tdata->key.len, tdata->auth_iv.len, + tdata->digest.len) < 0) return TEST_SKIPPED; /* Create ZUC session */ -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20230303093821.2367309-1-ciara.power@intel.com>]
* [PATCH v2 2/5] test/crypto: fix ZUC digest length in comparison [not found] ` <20230303093821.2367309-1-ciara.power@intel.com> @ 2023-03-03 9:38 ` Ciara Power 2023-03-03 9:38 ` [PATCH v2 4/5] test/crypto: fix capability check for ZUC cipher auth Ciara Power 1 sibling, 0 replies; 4+ messages in thread From: Ciara Power @ 2023-03-03 9:38 UTC (permalink / raw) To: Akhil Goyal, Fan Zhang Cc: dev, kai.ji, pablo.de.lara.guarch, Ciara Power, vvelumuri, stable, Brian Dooley The digest length used in ZUC tests for verifying the digest was hardcoded at 4 bytes, which was suitable for ZUC128 only. Now that ZUC256 is supported by these test functions, the digest length can vary. Using the test vector digest length directly in these comparisons allows for variable digest length. Fixes: 83397b9f0739 ("test/crypto: add further ZUC test cases") Fixes: fa5bf9345d4e ("test/crypto: add ZUC cases with 256-bit keys") Cc: vvelumuri@marvell.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> Acked-by: Brian Dooley <brian.dooley@intel.com> --- app/test/test_cryptodev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index ca7f10557c..72d359dd91 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -4853,7 +4853,7 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) TEST_ASSERT_BUFFERS_ARE_EQUAL( ut_params->digest, tdata->digest.data, - 4, + tdata->digest.len, "ZUC Generated auth tag not as expected"); return 0; } @@ -6499,7 +6499,7 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata, TEST_ASSERT_BUFFERS_ARE_EQUAL( ut_params->digest, tdata->digest.data, - DIGEST_BYTE_LENGTH_KASUMI_F9, + tdata->digest.len, "ZUC Generated auth tag not as expected"); } return 0; @@ -6706,7 +6706,7 @@ test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata, TEST_ASSERT_BUFFERS_ARE_EQUAL( digest, tdata->digest.data, - DIGEST_BYTE_LENGTH_KASUMI_F9, + tdata->digest.len, "ZUC Generated auth tag not as expected"); } return 0; -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 4/5] test/crypto: fix capability check for ZUC cipher auth [not found] ` <20230303093821.2367309-1-ciara.power@intel.com> 2023-03-03 9:38 ` [PATCH v2 2/5] test/crypto: fix ZUC digest length in comparison Ciara Power @ 2023-03-03 9:38 ` Ciara Power 1 sibling, 0 replies; 4+ messages in thread From: Ciara Power @ 2023-03-03 9:38 UTC (permalink / raw) To: Akhil Goyal, Fan Zhang Cc: dev, kai.ji, pablo.de.lara.guarch, Ciara Power, stable, Brian Dooley The cipher-auth test function for ZUC was not using the improved cipher and auth capability check functions. This meant the required key and IV lengths were not being checked, leading to problems with ZUC256 tests running, and failing, on devices that only support ZUC128. Fixes: 27b787132484 ("test/crypto: check cipher parameters") Fixes: f93fce6de4aa ("test/crypto: check auth parameters") Cc: pablo.de.lara.guarch@intel.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> Acked-by: Brian Dooley <brian.dooley@intel.com> --- app/test/test_cryptodev.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 9b90bae206..80e98ed2c7 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -136,6 +136,17 @@ security_proto_supported(enum rte_security_session_action_type action, static int dev_configure_and_start(uint64_t ff_disable); +static int +check_cipher_capability(const struct crypto_testsuite_params *ts_params, + const enum rte_crypto_cipher_algorithm cipher_algo, + const uint16_t key_size, const uint16_t iv_size); + +static int +check_auth_capability(const struct crypto_testsuite_params *ts_params, + const enum rte_crypto_auth_algorithm auth_algo, + const uint16_t key_size, const uint16_t iv_size, + const uint16_t tag_size); + static struct rte_mbuf * setup_test_string(struct rte_mempool *mpool, const char *string, size_t len, uint8_t blocksize) @@ -4761,7 +4772,6 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) unsigned int plaintext_len; struct rte_cryptodev_info dev_info; - struct rte_cryptodev_sym_capability_idx cap_idx; rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); uint64_t feat_flags = dev_info.feature_flags; @@ -4783,19 +4793,14 @@ test_zuc_cipher_auth(const struct wireless_test_data *tdata) return TEST_SKIPPED; /* Check if device supports ZUC EEA3 */ - cap_idx.type = RTE_CRYPTO_SYM_XFORM_CIPHER; - cap_idx.algo.cipher = RTE_CRYPTO_CIPHER_ZUC_EEA3; - - if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], - &cap_idx) == NULL) + if (check_cipher_capability(ts_params, RTE_CRYPTO_CIPHER_ZUC_EEA3, + tdata->key.len, tdata->cipher_iv.len) < 0) return TEST_SKIPPED; /* Check if device supports ZUC EIA3 */ - cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH; - cap_idx.algo.auth = RTE_CRYPTO_AUTH_ZUC_EIA3; - - if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], - &cap_idx) == NULL) + if (check_auth_capability(ts_params, RTE_CRYPTO_AUTH_ZUC_EIA3, + tdata->key.len, tdata->auth_iv.len, + tdata->digest.len) < 0) return TEST_SKIPPED; /* Create ZUC session */ -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-03-03 9:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20230301163916.2248543-1-ciara.power@intel.com> 2023-03-01 16:39 ` [PATCH 2/5] test/crypto: fix ZUC digest length in comparison Ciara Power 2023-03-01 16:39 ` [PATCH 4/5] test/crypto: fix capability check for ZUC cipher auth Ciara Power [not found] ` <20230303093821.2367309-1-ciara.power@intel.com> 2023-03-03 9:38 ` [PATCH v2 2/5] test/crypto: fix ZUC digest length in comparison Ciara Power 2023-03-03 9:38 ` [PATCH v2 4/5] test/crypto: fix capability check for ZUC cipher auth Ciara Power
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).