From e40175c5c56a6a355e022aec106400d25b4f294d Mon Sep 17 00:00:00 2001 From: Archana Muniganti Date: Wed, 5 Feb 2020 18:46:16 +0530 Subject: [PATCH] common/cpt: check cipher and auth keys are set Returning error when cipher and auth key are not getting set Fixes: 6cc54096520d ("crypto/octeontx: add supported sessions") Cc: stable@dpdk.org Signed-off-by: Archana Muniganti Signed-off-by: Anoob Joseph --- drivers/common/cpt/cpt_ucode.h | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h index 4ef87c298e..081249cd7b 100644 --- a/drivers/common/cpt/cpt_ucode.h +++ b/drivers/common/cpt/cpt_ucode.h @@ -298,7 +298,7 @@ cpt_fc_ciph_set_key(void *ctx, cipher_type_t type, const uint8_t *key, cpt_fc_ciph_set_key_kasumi_f8_cbc(cpt_ctx, key, key_len); goto success; default: - break; + return -1; } /* Only for FC_GEN case */ @@ -2616,10 +2616,13 @@ fill_sess_aead(struct rte_crypto_sym_xform *xform, sess->iv_length = aead_form->iv.length; sess->aad_length = aead_form->aad_length; - cpt_fc_ciph_set_key(ctx, enc_type, aead_form->key.data, - aead_form->key.length, NULL); + if (unlikely(cpt_fc_ciph_set_key(ctx, enc_type, aead_form->key.data, + aead_form->key.length, NULL))) + return -1; - cpt_fc_auth_set_key(ctx, auth_type, NULL, 0, aead_form->digest_length); + if (unlikely(cpt_fc_auth_set_key(ctx, auth_type, NULL, 0, + aead_form->digest_length))) + return -1; return 0; } @@ -2719,8 +2722,9 @@ fill_sess_cipher(struct rte_crypto_sym_xform *xform, sess->iv_length = c_form->iv.length; sess->is_null = is_null; - cpt_fc_ciph_set_key(SESS_PRIV(sess), enc_type, c_form->key.data, - c_form->key.length, NULL); + if (unlikely(cpt_fc_ciph_set_key(SESS_PRIV(sess), enc_type, + c_form->key.data, c_form->key.length, NULL))) + return -1; return 0; } @@ -2814,8 +2818,10 @@ fill_sess_auth(struct rte_crypto_sym_xform *xform, sess->auth_iv_offset = a_form->iv.offset; sess->auth_iv_length = a_form->iv.length; } - cpt_fc_auth_set_key(SESS_PRIV(sess), auth_type, a_form->key.data, - a_form->key.length, a_form->digest_length); + if (unlikely(cpt_fc_auth_set_key(SESS_PRIV(sess), auth_type, + a_form->key.data, a_form->key.length, + a_form->digest_length))) + return -1; return 0; } @@ -2858,9 +2864,13 @@ fill_sess_gmac(struct rte_crypto_sym_xform *xform, sess->iv_length = a_form->iv.length; sess->mac_len = a_form->digest_length; - cpt_fc_ciph_set_key(ctx, enc_type, a_form->key.data, - a_form->key.length, NULL); - cpt_fc_auth_set_key(ctx, auth_type, NULL, 0, a_form->digest_length); + if (unlikely(cpt_fc_ciph_set_key(ctx, enc_type, a_form->key.data, + a_form->key.length, NULL))) + return -1; + + if (unlikely(cpt_fc_auth_set_key(ctx, auth_type, NULL, 0, + a_form->digest_length))) + return -1; return 0; } -- 2.20.1