[dpdk-dev] [EXT] [dpdk-dev v2] test/cryptodev: fix incomplete data length
Anoob Joseph
anoobj at marvell.com
Tue Nov 9 11:32:05 CET 2021
Hi Kai,
Minor nit inline.
Thanks,
Anoob
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Kai Ji
> Sent: Tuesday, November 9, 2021 3:57 PM
> To: dev at dpdk.org
> Cc: Kai Ji <kai.ji at intel.com>; pablo.de.lara.guarch at intel.com;
> adamx.dybkowski at intel.com; damianx.nowak at intel.com
> Subject: [EXT] [dpdk-dev] [dpdk-dev v2] test/cryptodev: fix incomplete data
> length
>
> External Email
>
> ----------------------------------------------------------------------
> This patch fixes incorrect data lengths computation in cryptodev unit test.
> Previously some data lengths were incorrectly set, which was insensitive for
> crypto op unit tets but is critical for raw data path API unit tests. The patch
> addressed the issue by setting the correct data lengths for some tests.
>
> Fixes: 681f540da52b ("cryptodev: do not use AAD in wireless algorithms")
> Cc: pablo.de.lara.guarch at intel.com
>
> Fixes: e847fc512817 ("test/crypto: add encrypted digest case for AES-CTR-
> CMAC")
> Cc: adamx.dybkowski at intel.com
>
> Fixes: b1c1df46878d ("test/crypto: add ZUC test cases for auth-cipher")
> Cc: damianx.nowak at intel.com
>
> Signed-off-by: Kai Ji <kai.ji at intel.com>
> ---
> app/test/test_cryptodev.c | 28 +++++++++++++++-------------
> 1 file changed, 15 insertions(+), 13 deletions(-)
>
> diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index
> 52457596e2..2dd1bbb64c 100644
> --- a/app/test/test_cryptodev.c
> +++ b/app/test/test_cryptodev.c
> @@ -4102,9 +4102,9 @@ test_kasumi_decryption(const struct
> kasumi_test_data *tdata)
>
> /* Create KASUMI operation */
> retval = create_wireless_algo_cipher_operation(tdata-
> >cipher_iv.data,
> - tdata->cipher_iv.len,
> - tdata->ciphertext.len,
> - tdata->validCipherOffsetInBits.len);
> + tdata->cipher_iv.len,
> + RTE_ALIGN_CEIL(tdata->validCipherLenInBits.len, 8),
> + tdata->validCipherOffsetInBits.len);
> if (retval < 0)
> return retval;
>
> @@ -6332,20 +6332,20 @@ test_zuc_auth_cipher(const struct
> wireless_test_data *tdata,
> ciphertext = (uint8_t *)rte_pktmbuf_append(ut_params-
> >ibuf,
> ciphertext_pad_len);
> memcpy(ciphertext, tdata->ciphertext.data, ciphertext_len);
> - if (op_mode == OUT_OF_PLACE)
> - rte_pktmbuf_append(ut_params->obuf,
> ciphertext_pad_len);
> debug_hexdump(stdout, "ciphertext:", ciphertext,
> ciphertext_len);
> } else {
> + /* make sure enough space to cover partial digest verify case
> */
> plaintext = (uint8_t *)rte_pktmbuf_append(ut_params-
> >ibuf,
> - plaintext_pad_len);
> + ciphertext_pad_len);
> memcpy(plaintext, tdata->plaintext.data, plaintext_len);
> - if (op_mode == OUT_OF_PLACE)
> - rte_pktmbuf_append(ut_params->obuf,
> plaintext_pad_len);
> debug_hexdump(stdout, "plaintext:", plaintext,
> plaintext_len);
> }
>
> + if (op_mode == OUT_OF_PLACE)
> + rte_pktmbuf_append(ut_params->obuf,
> ciphertext_pad_len);
> +
> /* Create ZUC operation */
> retval = create_wireless_algo_auth_cipher_operation(
> tdata->digest.data, tdata->digest.len, @@ -7395,24 +7395,26
> @@ test_mixed_auth_cipher(const struct mixed_cipher_auth_test_data
> *tdata,
> plaintext_len = ceil_byte_length(tdata->plaintext.len_bits);
> ciphertext_pad_len = RTE_ALIGN_CEIL(ciphertext_len, 16);
> plaintext_pad_len = RTE_ALIGN_CEIL(plaintext_len, 16);
> + if (ciphertext_pad_len > plaintext_pad_len)
> + printf("NOOB: \n");
[Anoob] Is the above intentional?
>
> if (verify) {
> ciphertext = (uint8_t *)rte_pktmbuf_append(ut_params-
> >ibuf,
> ciphertext_pad_len);
> memcpy(ciphertext, tdata->ciphertext.data, ciphertext_len);
> - if (op_mode == OUT_OF_PLACE)
> - rte_pktmbuf_append(ut_params->obuf,
> ciphertext_pad_len);
> debug_hexdump(stdout, "ciphertext:", ciphertext,
> ciphertext_len);
> } else {
> + /* make sure enough space to cover partial digest verify case
> */
> plaintext = (uint8_t *)rte_pktmbuf_append(ut_params-
> >ibuf,
> - plaintext_pad_len);
> + ciphertext_pad_len);
> memcpy(plaintext, tdata->plaintext.data, plaintext_len);
> - if (op_mode == OUT_OF_PLACE)
> - rte_pktmbuf_append(ut_params->obuf,
> plaintext_pad_len);
> debug_hexdump(stdout, "plaintext:", plaintext,
> plaintext_len);
> }
>
> + if (op_mode == OUT_OF_PLACE)
> + rte_pktmbuf_append(ut_params->obuf,
> ciphertext_pad_len);
> +
> /* Create the operation */
> retval = create_wireless_algo_auth_cipher_operation(
> tdata->digest_enc.data, tdata->digest_enc.len,
> --
> 2.17.1
More information about the dev
mailing list