From: Akhil Goyal <akhil.goyal@nxp.com>
To: Adam Dybkowski <adamx.dybkowski@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"fiona.trahe@intel.com" <fiona.trahe@intel.com>,
"arkadiuszx.kusztal@intel.com" <arkadiuszx.kusztal@intel.com>
Subject: Re: [dpdk-dev] [PATCH v2 2/2] test/crypto: add more tests for mixed encypted-digest
Date: Wed, 15 Jan 2020 13:50:17 +0000 [thread overview]
Message-ID: <VE1PR04MB6639458930022D61150387B0E6370@VE1PR04MB6639.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20191211140935.9503-3-adamx.dybkowski@intel.com>
Hi Adam,
>
> This patch adds unit tests for QAT PMD for mixed encrypted-digest
> cases, involving SNOW3G UIA2, ZUC EIA3, AES CMAC and NULL auth
> algorithms together with SNOW3G UEA2, ZUC EEA3, AES CTR and NULL
> cipher algorithms in various combinations.
>
> Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
This patch doesn't apply on current tree.
Could you please rebase.
> ---
> app/test/test_cryptodev.c | 470 ++++++-
> app/test/test_cryptodev_mixed_test_vectors.h | 1320 +++++++++++++++++-
> 2 files changed, 1721 insertions(+), 69 deletions(-)
>
//snip
> /* Create the session */
> - retval = create_wireless_algo_auth_cipher_session(
> - ts_params->valid_devs[0],
> - (verify ? RTE_CRYPTO_CIPHER_OP_DECRYPT
> - : RTE_CRYPTO_CIPHER_OP_ENCRYPT),
> - (verify ? RTE_CRYPTO_AUTH_OP_VERIFY
> - : RTE_CRYPTO_AUTH_OP_GENERATE),
> - tdata->auth_algo,
> - tdata->cipher_algo,
> - tdata->auth_key.data, tdata->auth_key.len,
> - tdata->auth_iv.len, tdata->digest_enc.len,
> - tdata->cipher_iv.len);
> -
> + if (verify)
> + retval = create_wireless_algo_cipher_auth_session(
> + ts_params->valid_devs[0],
> + RTE_CRYPTO_CIPHER_OP_DECRYPT,
> + RTE_CRYPTO_AUTH_OP_VERIFY,
> + tdata->auth_algo,
> + tdata->cipher_algo,
> + tdata->auth_key.data, tdata->auth_key.len,
> + tdata->auth_iv.len, tdata->digest_enc.len,
> + tdata->cipher_iv.len);
> + else
> + retval = create_wireless_algo_auth_cipher_session(
> + ts_params->valid_devs[0],
> + RTE_CRYPTO_CIPHER_OP_ENCRYPT,
> + RTE_CRYPTO_AUTH_OP_GENERATE,
> + tdata->auth_algo,
> + tdata->cipher_algo,
> + tdata->auth_key.data, tdata->auth_key.len,
> + tdata->auth_iv.len, tdata->digest_enc.len,
> + tdata->cipher_iv.len);
Why are these changes done? It looked better previously.
> if (retval < 0)
> return retval;
>
> @@ -6642,25 +6690,45 @@ test_mixed_auth_cipher(const struct
> mixed_cipher_auth_test_data *tdata,
> }
>
> /* Create the operation */
> - retval = create_wireless_algo_auth_cipher_operation(
> - tdata->digest_enc.len,
> - tdata->cipher_iv.data, tdata->cipher_iv.len,
> - tdata->auth_iv.data, tdata->auth_iv.len,
> - (tdata->digest_enc.offset == 0 ?
> - (verify ? ciphertext_pad_len : plaintext_pad_len)
> - : tdata->digest_enc.offset),
> - tdata->validCipherLen.len_bits,
> - tdata->cipher.offset_bits,
> - tdata->validAuthLen.len_bits,
> - tdata->auth.offset_bits,
> - op_mode, 0);
> -
> + if (verify)
> + retval = create_wireless_algo_cipher_hash_operation(
> + tdata->digest_enc.data, tdata->digest_enc.len,
> + tdata->auth_iv.data, tdata->auth_iv.len,
> + plaintext_len, RTE_CRYPTO_AUTH_OP_VERIFY,
> + tdata->cipher_iv.data, tdata->cipher_iv.len,
> + tdata->validCipherLen.len_bits,
> + tdata->cipher.offset_bits,
> + tdata->validAuthLen.len_bits,
> + tdata->auth.offset_bits);
> + else
> + retval = create_wireless_algo_auth_cipher_operation(
> + tdata->digest_enc.len,
> + tdata->cipher_iv.data, tdata->cipher_iv.len,
> + tdata->auth_iv.data, tdata->auth_iv.len,
> + (tdata->digest_enc.offset == 0 ?
> + plaintext_pad_len
> + : tdata->digest_enc.offset),
> + tdata->validCipherLen.len_bits,
> + tdata->cipher.offset_bits,
> + tdata->validAuthLen.len_bits,
> + tdata->auth.offset_bits,
> + op_mode, 0);
> if (retval < 0)
> return retval;
>
> - ut_params->op = process_crypto_request(ts_params->valid_devs[0],
> + op = process_crypto_request(ts_params->valid_devs[0],
> ut_params->op);
>
> + /* Check if the op failed because the device doesn't */
> + /* support this particular combination of algorithms */
> + if (op == NULL && ut_params->op->status ==
> + RTE_CRYPTO_OP_STATUS_INVALID_SESSION) {
> + printf("Device doesn't support this mixed combination. "
> + "Test Skipped.\n");
> + return -ENOTSUP;
> + }
> + ut_params->op = op;
> +
> TEST_ASSERT_NOT_NULL(ut_params->op, "failed to retrieve obuf");
>
> ut_params->obuf = (op_mode == IN_PLACE ?
> @@ -6675,12 +6743,10 @@ test_mixed_auth_cipher(const struct
> mixed_cipher_auth_test_data *tdata,
> (tdata->cipher.offset_bits >> 3);
>
> debug_hexdump(stdout, "plaintext:", plaintext,
> - (tdata->plaintext.len_bits >> 3) -
> - tdata->digest_enc.len);
> + tdata->plaintext.len_bits >> 3);
> debug_hexdump(stdout, "plaintext expected:",
> tdata->plaintext.data,
> - (tdata->plaintext.len_bits >> 3) -
> - tdata->digest_enc.len);
> + tdata->plaintext.len_bits >> 3);
> } else {
> if (ut_params->obuf)
> ciphertext = rte_pktmbuf_mtod(ut_params->obuf,
> @@ -6725,6 +6791,10 @@ test_mixed_auth_cipher(const struct
> mixed_cipher_auth_test_data *tdata,
> DIGEST_BYTE_LENGTH_SNOW3G_UIA2,
> "Generated auth tag not as expected");
> }
> +
> + TEST_ASSERT_EQUAL(ut_params->op->status,
> RTE_CRYPTO_OP_STATUS_SUCCESS,
> + "crypto op processing failed");
> +
> return 0;
> }
>
> @@ -6748,6 +6818,7 @@ test_mixed_auth_cipher_sgl(const struct
> mixed_cipher_auth_test_data *tdata,
> uint8_t digest_buffer[10000];
>
> struct rte_cryptodev_info dev_info;
> + struct rte_crypto_op *op;
>
> /* Check if device supports particular algorithms */
> if (test_mixed_check_if_unsupported(tdata))
> @@ -6776,18 +6847,26 @@ test_mixed_auth_cipher_sgl(const struct
> mixed_cipher_auth_test_data *tdata,
> }
>
> /* Create the session */
> - retval = create_wireless_algo_auth_cipher_session(
> - ts_params->valid_devs[0],
> - (verify ? RTE_CRYPTO_CIPHER_OP_DECRYPT
> - : RTE_CRYPTO_CIPHER_OP_ENCRYPT),
> - (verify ? RTE_CRYPTO_AUTH_OP_VERIFY
> - : RTE_CRYPTO_AUTH_OP_GENERATE),
> - tdata->auth_algo,
> - tdata->cipher_algo,
> - tdata->auth_key.data, tdata->auth_key.len,
> - tdata->auth_iv.len, tdata->digest_enc.len,
> - tdata->cipher_iv.len);
> -
> + if (verify)
> + retval = create_wireless_algo_cipher_auth_session(
> + ts_params->valid_devs[0],
> + RTE_CRYPTO_CIPHER_OP_DECRYPT,
> + RTE_CRYPTO_AUTH_OP_VERIFY,
> + tdata->auth_algo,
> + tdata->cipher_algo,
> + tdata->auth_key.data, tdata->auth_key.len,
> + tdata->auth_iv.len, tdata->digest_enc.len,
> + tdata->cipher_iv.len);
> + else
> + retval = create_wireless_algo_auth_cipher_session(
> + ts_params->valid_devs[0],
> + RTE_CRYPTO_CIPHER_OP_ENCRYPT,
> + RTE_CRYPTO_AUTH_OP_GENERATE,
> + tdata->auth_algo,
> + tdata->cipher_algo,
> + tdata->auth_key.data, tdata->auth_key.len,
> + tdata->auth_iv.len, tdata->digest_enc.len,
> + tdata->cipher_iv.len);
> if (retval < 0)
> return retval;
>
> @@ -6797,7 +6876,7 @@ test_mixed_auth_cipher_sgl(const struct
> mixed_cipher_auth_test_data *tdata,
> plaintext_pad_len = RTE_ALIGN_CEIL(plaintext_len, 16);
>
> ut_params->ibuf = create_segmented_mbuf(ts_params->mbuf_pool,
> - plaintext_pad_len, 15, 0);
> + ciphertext_pad_len, 15, 0);
> TEST_ASSERT_NOT_NULL(ut_params->ibuf,
> "Failed to allocate input buffer in mempool");
>
> @@ -6826,25 +6905,46 @@ test_mixed_auth_cipher_sgl(const struct
> mixed_cipher_auth_test_data *tdata,
> memset(buffer, 0, sizeof(buffer));
>
> /* Create the operation */
> - retval = create_wireless_algo_auth_cipher_operation(
> - tdata->digest_enc.len,
> - tdata->cipher_iv.data, tdata->cipher_iv.len,
> - tdata->auth_iv.data, tdata->auth_iv.len,
> - (tdata->digest_enc.offset == 0 ?
> - (verify ? ciphertext_pad_len : plaintext_pad_len)
> - : tdata->digest_enc.offset),
> - tdata->validCipherLen.len_bits,
> - tdata->cipher.offset_bits,
> - tdata->validAuthLen.len_bits,
> - tdata->auth.offset_bits,
> - op_mode, 1);
> -
> + if (verify)
> + retval = create_wireless_algo_cipher_hash_operation(
> + tdata->digest_enc.data, tdata->digest_enc.len,
> + tdata->auth_iv.data, tdata->auth_iv.len,
> + plaintext_len, RTE_CRYPTO_AUTH_OP_VERIFY,
> + tdata->cipher_iv.data, tdata->cipher_iv.len,
> + tdata->validCipherLen.len_bits,
> + tdata->cipher.offset_bits,
> + tdata->validAuthLen.len_bits,
> + tdata->auth.offset_bits);
> + else
> + retval = create_wireless_algo_auth_cipher_operation(
> + tdata->digest_enc.len,
> + tdata->cipher_iv.data, tdata->cipher_iv.len,
> + tdata->auth_iv.data, tdata->auth_iv.len,
> + (tdata->digest_enc.offset == 0 ?
> + plaintext_pad_len
> + : tdata->digest_enc.offset),
> + tdata->validCipherLen.len_bits,
> + tdata->cipher.offset_bits,
> + tdata->validAuthLen.len_bits,
> + tdata->auth.offset_bits,
> + op_mode, 1);
> if (retval < 0)
> return retval;
>
> - ut_params->op = process_crypto_request(ts_params->valid_devs[0],
> + op = process_crypto_request(ts_params->valid_devs[0],
> ut_params->op);
>
> + /* Check if the op failed because the device doesn't */
> + /* support this particular combination of algorithms */
> + if (op == NULL && ut_params->op->status ==
> + RTE_CRYPTO_OP_STATUS_INVALID_SESSION) {
> + printf("Device doesn't support this mixed combination. "
> + "Test Skipped.\n");
> + return -ENOTSUP;
> + }
> +
> + ut_params->op = op;
> +
> TEST_ASSERT_NOT_NULL(ut_params->op, "failed to retrieve obuf");
>
> ut_params->obuf = (op_mode == IN_PLACE ?
> @@ -6917,6 +7017,10 @@ test_mixed_auth_cipher_sgl(const struct
> mixed_cipher_auth_test_data *tdata,
> tdata->digest_enc.len,
> "Generated auth tag not as expected");
> }
> +
> + TEST_ASSERT_EQUAL(ut_params->op->status,
> RTE_CRYPTO_OP_STATUS_SUCCESS,
> + "crypto op processing failed");
> +
> return 0;
> }
>
> @@ -6978,6 +7082,176 @@
> test_verify_aes_cmac_aes_ctr_digest_enc_test_case_1_oop_sgl(void)
> &auth_aes_cmac_cipher_aes_ctr_test_case_1, OUT_OF_PLACE,
> 1);
> }
>
Can we have a single function to execute all cases with some function arguments?
> +/** MIXED AUTH + CIPHER */
> +
> +static int
> +test_auth_zuc_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_snow_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_zuc_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_snow_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_aes_cmac_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_snow_test_case_1, OUT_OF_PLACE,
> 0);
> +}
> +
> +static int
> +test_verify_auth_aes_cmac_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_snow_test_case_1, OUT_OF_PLACE,
> 1);
> +}
> +
> +static int
> +test_auth_zuc_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_zuc_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_snow_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_snow_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_snow_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_zuc_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_snow_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_zuc_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_aes_cmac_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_zuc_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_aes_cmac_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_zuc_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_null_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_snow_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_null_cipher_snow_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_snow_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_null_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_zuc_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_null_cipher_zuc_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_zuc_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_snow_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_null_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_snow_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_snow_cipher_null_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_zuc_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_null_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_zuc_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_zuc_cipher_null_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_null_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_null_cipher_aes_ctr_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_null_cipher_aes_ctr_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> +static int
> +test_auth_aes_cmac_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_null_test_case_1, OUT_OF_PLACE, 0);
> +}
> +
> +static int
> +test_verify_auth_aes_cmac_cipher_null_test_case_1(void)
> +{
> + return test_mixed_auth_cipher(
> + &auth_aes_cmac_cipher_null_test_case_1, OUT_OF_PLACE, 1);
> +}
> +
> static int
> test_3DES_chain_qat_all(void)
> {
> @@ -12288,6 +12562,68 @@ static struct unit_test_suite
> cryptodev_qat_testsuite = {
> TEST_CASE_ST(ut_setup, ut_teardown,
>
> test_verify_aes_cmac_aes_ctr_digest_enc_test_case_1_oop_sgl),
>
> + /** AUTH ZUC + CIPHER SNOW3G */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_zuc_cipher_snow_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_zuc_cipher_snow_test_case_1),
> + /** AUTH AES CMAC + CIPHER SNOW3G */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_aes_cmac_cipher_snow_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_aes_cmac_cipher_snow_test_case_1),
> + /** AUTH ZUC + CIPHER AES CTR */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_zuc_cipher_aes_ctr_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_zuc_cipher_aes_ctr_test_case_1),
> + /** AUTH SNOW3G + CIPHER AES CTR */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_snow_cipher_aes_ctr_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_snow_cipher_aes_ctr_test_case_1),
> + /** AUTH SNOW3G + CIPHER ZUC */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_snow_cipher_zuc_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_snow_cipher_zuc_test_case_1),
> + /** AUTH AES CMAC + CIPHER ZUC */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_aes_cmac_cipher_zuc_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_aes_cmac_cipher_zuc_test_case_1),
> +
> + /** AUTH NULL + CIPHER SNOW3G */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_null_cipher_snow_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_null_cipher_snow_test_case_1),
> + /** AUTH NULL + CIPHER ZUC */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_null_cipher_zuc_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_null_cipher_zuc_test_case_1),
> + /** AUTH SNOW3G + CIPHER NULL */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_snow_cipher_null_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_snow_cipher_null_test_case_1),
> + /** AUTH ZUC + CIPHER NULL */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_zuc_cipher_null_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_zuc_cipher_null_test_case_1),
> + /** AUTH NULL + CIPHER AES CTR */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_null_cipher_aes_ctr_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_null_cipher_aes_ctr_test_case_1),
> + /** AUTH AES CMAC + CIPHER NULL */
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_auth_aes_cmac_cipher_null_test_case_1),
> + TEST_CASE_ST(ut_setup, ut_teardown,
> + test_verify_auth_aes_cmac_cipher_null_test_case_1),
> +
> TEST_CASES_END() /**< NULL terminate unit test array */
> }
> };
next prev parent reply other threads:[~2020-01-15 13:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-11 14:09 [dpdk-dev] [PATCH v2 0/2] Handle mixed algorithms on GEN3 QAT Adam Dybkowski
2019-12-11 14:09 ` [dpdk-dev] [PATCH v2 1/2] crypto/qat: handle mixed hash-cipher requests " Adam Dybkowski
2019-12-11 14:09 ` [dpdk-dev] [PATCH v2 2/2] test/crypto: add more tests for mixed encypted-digest Adam Dybkowski
2020-01-15 13:50 ` Akhil Goyal [this message]
2019-12-11 14:27 ` [dpdk-dev] [PATCH v2 0/2] Handle mixed algorithms on GEN3 QAT Trahe, Fiona
2020-01-15 14:59 ` [dpdk-dev] [PATCH v3 " Adam Dybkowski
2020-01-15 14:59 ` [dpdk-dev] [PATCH v3 1/2] crypto/qat: handle mixed hash-cipher requests " Adam Dybkowski
2020-01-15 15:14 ` Trahe, Fiona
2020-01-15 14:59 ` [dpdk-dev] [PATCH v3 2/2] test/crypto: add more tests for mixed encypted-digest Adam Dybkowski
2020-01-15 15:14 ` Trahe, Fiona
2020-01-15 15:47 ` [dpdk-dev] [PATCH v3 0/2] Handle mixed algorithms on GEN3 QAT 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=VE1PR04MB6639458930022D61150387B0E6370@VE1PR04MB6639.eurprd04.prod.outlook.com \
--to=akhil.goyal@nxp.com \
--cc=adamx.dybkowski@intel.com \
--cc=arkadiuszx.kusztal@intel.com \
--cc=dev@dpdk.org \
--cc=fiona.trahe@intel.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 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).