From 91f239378d022ff521d784ff722e2d89cc4e4334 Mon Sep 17 00:00:00 2001 From: Damian Nowak Date: Mon, 15 Jul 2019 14:14:51 +0200 Subject: [PATCH] test/crypto: add capability check for ZUC cases This patch adds checking if device support ZUC algorithms before running ZUC test cases. It also removes unnecessary checks of digest appended space and fixes some comments wording. Signed-off-by: Damian Nowak Acked-by: Fiona Trahe --- app/test/test_cryptodev.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 05422daff2..c8221640d8 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -2909,8 +2909,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len, (op_mode == IN_PLACE ? ut_params->ibuf : ut_params->obuf), data_pad_len); - TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data, - "no room to append auth tag"); memset(sym_op->auth.digest.data, 0, auth_tag_len); } else { uint16_t remaining_off = (auth_offset >> 3) + (auth_len >> 3); @@ -2924,8 +2922,6 @@ create_wireless_algo_auth_cipher_operation(unsigned int auth_tag_len, uint8_t *, remaining_off); sym_op->auth.digest.phys_addr = rte_pktmbuf_iova_offset(sgl_buf, remaining_off); - TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data, - "no room to append auth tag"); memset(sym_op->auth.digest.data, 0, remaining_off); while (sgl_buf->next != NULL) { memset(rte_pktmbuf_mtod(sgl_buf, uint8_t *), @@ -5002,7 +4998,7 @@ test_kasumi_auth_cipher_sgl(const struct kasumi_test_data *tdata, } memset(buffer, 0, sizeof(buffer)); - /* Create SNOW 3G operation */ + /* Create KASUMI operation */ retval = create_wireless_algo_auth_cipher_operation( tdata->digest.len, tdata->cipher_iv.data, tdata->cipher_iv.len, @@ -5432,6 +5428,15 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata, unsigned int ciphertext_len; struct rte_cryptodev_info dev_info; + struct rte_cryptodev_sym_capability_idx cap_idx; + + /* 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) + return -ENOTSUP; rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); @@ -5444,7 +5449,7 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata, } } - /* Create KASUMI session */ + /* Create ZUC session */ retval = create_wireless_algo_auth_cipher_session( ts_params->valid_devs[0], (verify ? RTE_CRYPTO_CIPHER_OP_DECRYPT @@ -5473,8 +5478,6 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata, ciphertext_len = ceil_byte_length(tdata->ciphertext.len); plaintext_len = ceil_byte_length(tdata->plaintext.len); - /* Append data which is padded to a multiple of */ - /* the algorithms block size */ ciphertext_pad_len = RTE_ALIGN_CEIL(ciphertext_len, 16); plaintext_pad_len = RTE_ALIGN_CEIL(plaintext_len, 16); @@ -5600,6 +5603,15 @@ test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata, uint8_t digest_buffer[10000]; struct rte_cryptodev_info dev_info; + struct rte_cryptodev_sym_capability_idx cap_idx; + + /* 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) + return -ENOTSUP; rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); -- 2.20.1