Skip to content

Commit

Permalink
crypto/dpaa2_sec: fix handling of session init failure
Browse files Browse the repository at this point in the history
[ upstream commit c0ed103 ]

The session init shall return failure if the internal
session create fails for any reasons.

Fixes: 1327325 ("crypto/dpaa2_sec: support AES-GCM and CTR")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
  • Loading branch information
hemantagr authored and kevintraynor committed Aug 28, 2019
1 parent 8f00090 commit 9e832db
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
Expand Up @@ -2193,6 +2193,7 @@ dpaa2_sec_set_session_parameters(struct rte_cryptodev *dev,
struct rte_crypto_sym_xform *xform, void *sess)
{
dpaa2_sec_session *session = sess;
int ret;

PMD_INIT_FUNC_TRACE();

Expand All @@ -2208,37 +2209,37 @@ dpaa2_sec_set_session_parameters(struct rte_cryptodev *dev,
/* Cipher Only */
if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && xform->next == NULL) {
session->ctxt_type = DPAA2_SEC_CIPHER;
dpaa2_sec_cipher_init(dev, xform, session);
ret = dpaa2_sec_cipher_init(dev, xform, session);

/* Authentication Only */
} else if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH &&
xform->next == NULL) {
session->ctxt_type = DPAA2_SEC_AUTH;
dpaa2_sec_auth_init(dev, xform, session);
ret = dpaa2_sec_auth_init(dev, xform, session);

/* Cipher then Authenticate */
} 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;
dpaa2_sec_aead_chain_init(dev, xform, session);
ret = dpaa2_sec_aead_chain_init(dev, xform, session);

/* Authenticate then Cipher */
} 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;
dpaa2_sec_aead_chain_init(dev, xform, session);
ret = dpaa2_sec_aead_chain_init(dev, xform, session);

/* AEAD operation for AES-GCM kind of Algorithms */
} else if (xform->type == RTE_CRYPTO_SYM_XFORM_AEAD &&
xform->next == NULL) {
dpaa2_sec_aead_init(dev, xform, session);
ret = dpaa2_sec_aead_init(dev, xform, session);

} else {
DPAA2_SEC_ERR("Invalid crypto type");
return -EINVAL;
}

return 0;
return ret;
}

static int
Expand Down

0 comments on commit 9e832db

Please sign in to comment.