Skip to content

Commit

Permalink
crypto/qat: fix null hash algorithm digest size
Browse files Browse the repository at this point in the history
[ upstream commit 7283c59e37b114e692a379234a9d34f0d2c538e7 ]

Add check for null hash algorithm digest size.
Digest size should be 4B or request will be rejected.

Fixes: 1703e94 ("qat: add driver for QuickAssist devices")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
  • Loading branch information
bdoole1 authored and cpaelzer committed Nov 11, 2022
1 parent 346efcd commit db57762
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions drivers/crypto/qat/qat_sym_session.c
Original file line number Diff line number Diff line change
Expand Up @@ -1714,7 +1714,12 @@ int qat_sym_session_aead_create_cd_auth(struct qat_sym_session *cdesc,
hash_offset = cdesc->cd_cur_ptr-((uint8_t *)&cdesc->cd);
hash = (struct icp_qat_hw_auth_setup *)cdesc->cd_cur_ptr;
hash->auth_config.reserved = 0;
hash->auth_config.config =
if (cdesc->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL)
hash->auth_config.config =
ICP_QAT_HW_AUTH_CONFIG_BUILD(cdesc->auth_mode,
cdesc->qat_hash_alg, 4);
else
hash->auth_config.config =
ICP_QAT_HW_AUTH_CONFIG_BUILD(cdesc->auth_mode,
cdesc->qat_hash_alg, digestsize);

Expand Down Expand Up @@ -1978,10 +1983,16 @@ int qat_sym_session_aead_create_cd_auth(struct qat_sym_session *cdesc,
/* Auth CD config setup */
hash_cd_ctrl->hash_cfg_offset = hash_offset >> 3;
hash_cd_ctrl->hash_flags = ICP_QAT_FW_AUTH_HDR_FLAG_NO_NESTED;
hash_cd_ctrl->inner_res_sz = digestsize;
hash_cd_ctrl->final_sz = digestsize;
hash_cd_ctrl->inner_state1_sz = state1_size;
auth_param->auth_res_sz = digestsize;
if (cdesc->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
hash_cd_ctrl->inner_res_sz = 4;
hash_cd_ctrl->final_sz = 4;
auth_param->auth_res_sz = 4;
} else {
hash_cd_ctrl->inner_res_sz = digestsize;
hash_cd_ctrl->final_sz = digestsize;
auth_param->auth_res_sz = digestsize;
}

hash_cd_ctrl->inner_state2_sz = state2_size;
hash_cd_ctrl->inner_state2_offset = hash_cd_ctrl->hash_cfg_offset +
Expand Down

0 comments on commit db57762

Please sign in to comment.