Commit 465c9615 authored by Kai Ye's avatar Kai Ye Committed by Zheng Zengkai
Browse files

crypto: hisilicon/sec - fix the max length of AAD for the CCM mode

driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4750I?from=project-issue



----------------------------------------------------------------------

Fix the maximum length of AAD for the CCM mode due to the hardware limited.

Signed-off-by: default avatarKai Ye <yekai13@huawei.com>
Reviewed-by: default avatarHao Fang <fanghao11@huawei.com>
Reviewed-by: default avatarMingqiang Ling <lingmingqiang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 05aca98f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@
#define SEC_AUTH_CIPHER		0x1
#define SEC_MAX_MAC_LEN		64
#define SEC_MAX_AAD_LEN		65535
#define SEC_MAX_CCM_AAD_LEN	65279
#define SEC_TOTAL_MAC_SZ	(SEC_MAX_MAC_LEN * QM_Q_DEPTH)

#define SEC_PBUF_SZ			512
@@ -2219,6 +2220,10 @@ static int sec_aead_spec_check(struct sec_ctx *ctx, struct sec_req *sreq)
	}

	if (c_mode == SEC_CMODE_CCM) {
		if (unlikely(req->assoclen > SEC_MAX_CCM_AAD_LEN)) {
			dev_err_ratelimited(dev, "CCM input aad parameter is too long!\n");
			return -EINVAL;
		}
		ret = aead_iv_demension_check(req);
		if (ret) {
			dev_err(dev, "aead input iv param error!\n");