[dpdk-stable] [dpdk-dev] [EXT] [PATCH v2 01/11] crypto/dpaa2_sec: fix to check next null for auth only case
Hemant Agrawal
hemant.agrawal at oss.nxp.com
Thu Sep 2 15:48:29 CEST 2021
On 9/2/2021 6:16 PM, Akhil Goyal wrote:
>> This patch fixes the issue to check for next pointer as
>> null in the integrity only case in pdcp-security context.
>>
>> Fixes: bef594ec5cc8 ("crypto/dpaa2_sec: support PDCP offload")
>> Cc: stable at dpdk.org
> This patch is not a fix and need not be backported, because integrity
> only case is not a valid case for PDCP before the introduction of short MAC.
> Since short MAC is supported here in this release only, this should be reworded
> as to support short MAC, integrity-only case is required to be supported for
> PDCP.
> And this patch should be part of the short MAC-I series and not this one.
Ok,
>> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
>> ---
>> drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 25 +++++++++++----------
>> 1 file changed, 13 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
>> b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
>> index fe90d9d2d8..87a94b2c04 100644
>> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
>> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
>> @@ -3095,7 +3095,7 @@ dpaa2_sec_set_pdcp_session(struct rte_cryptodev
>> *dev,
>> struct rte_security_pdcp_xform *pdcp_xform = &conf->pdcp;
>> struct rte_crypto_sym_xform *xform = conf->crypto_xform;
>> struct rte_crypto_auth_xform *auth_xform = NULL;
>> - struct rte_crypto_cipher_xform *cipher_xform;
>> + struct rte_crypto_cipher_xform *cipher_xform = NULL;
>> dpaa2_sec_session *session = (dpaa2_sec_session *)sess;
>> struct ctxt_priv *priv;
>> struct dpaa2_sec_dev_private *dev_priv = dev->data->dev_private;
>> @@ -3127,18 +3127,18 @@ dpaa2_sec_set_pdcp_session(struct
>> rte_cryptodev *dev,
>> flc = &priv->flc_desc[0].flc;
>>
>> /* find xfrm types */
>> - if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && xform-
>>> next == NULL) {
>> - cipher_xform = &xform->cipher;
>> - } else if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER &&
>> - xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) {
>> - session->ext_params.aead_ctxt.auth_cipher_text = true;
>> + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER) {
>> cipher_xform = &xform->cipher;
>> - auth_xform = &xform->next->auth;
>> - } else if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH &&
>> - xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER) {
>> - session->ext_params.aead_ctxt.auth_cipher_text = false;
>> - cipher_xform = &xform->next->cipher;
>> + if (xform->next != NULL) {
>> + session->ext_params.aead_ctxt.auth_cipher_text =
>> true;
>> + auth_xform = &xform->next->auth;
>> + }
>> + } else if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH) {
>> auth_xform = &xform->auth;
>> + if (xform->next != NULL) {
>> + session->ext_params.aead_ctxt.auth_cipher_text =
>> false;
>> + cipher_xform = &xform->next->cipher;
>> + }
>> } else {
>> DPAA2_SEC_ERR("Invalid crypto type");
>> return -EINVAL;
>> @@ -3177,7 +3177,8 @@ dpaa2_sec_set_pdcp_session(struct rte_cryptodev
>> *dev,
>> session->pdcp.hfn_threshold = pdcp_xform->hfn_threshold;
>> session->pdcp.hfn_ovd = pdcp_xform->hfn_ovrd;
>> /* hfv ovd offset location is stored in iv.offset value*/
>> - session->pdcp.hfn_ovd_offset = cipher_xform->iv.offset;
>> + if (cipher_xform)
>> + session->pdcp.hfn_ovd_offset = cipher_xform->iv.offset;
>>
>> cipherdata.key = (size_t)session->cipher_key.data;
>> cipherdata.keylen = session->cipher_key.length;
>> --
>> 2.17.1
More information about the stable
mailing list