Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3057654pxb; Mon, 9 Nov 2020 01:02:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJyt6A05xUu5YX96Xm3HVw8IELmVb6WKfbybkRS7yxC3RhegNesFDoqHKZkx6PaKZxjxZ0Mf X-Received: by 2002:a17:906:39d1:: with SMTP id i17mr13602298eje.284.1604912555899; Mon, 09 Nov 2020 01:02:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604912555; cv=none; d=google.com; s=arc-20160816; b=kMo5QIIlTFsacvZ7lXykxhslyqgtSd2h5Tj8CFoBIz1hWJUg6HxzHAC+gbXjwMH+4q cnZw6SURwljfgywvnyYPv3j5QnXUeVcw/Yi4keL284z++xEyt3uVwSbxg4UdQD0s3rUd L0sdOzBMePTePpFaiBQ6wx1BWRMhS15dgGYibRPy6Va7DASA00MSOd4uGjCbxeLjaw/Y KgDVK7ZLw+7kcyssJg80F7ITabDgfV1s87wXAZDGSKXGIPRqlH8HT/Jke+lCU+Zgzkws 07RUTB00Zuutx40hzpC7m6VUyebFLJwqX1S6BjoZCbW1rl01xrtupmFrgLKIuBoVzdHI AxLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=rI4+abpqPpv0n0EvfT497uvQfAMpDiJF6vOHxdu+878=; b=dXNohDmC8ETToRDmO4XwAz+m+rpM8e7qcgrZsVul0SePy5M9CZ9KnVPI5n7OqdCX5j lhh9ZPESzT8IPAul1Nw02qDAtT2Uv+v5dwx41MH4z2T4ZNsI7R9jfEDqNCEOgrDc+Eg2 2KV1dDMdEXKdk0WE7q8H9lpzbMtg0m6wQ069VD8sGI6tWJctJvAw0K2PZJltsPu8FQyH LBb8u2pqKBNfzbYS6TfMqti/PKb57j1khoSX5MEYfnPndM1sm98sn/JWUfSi79OEohCW LKsNMAuA2yfQQa7SAZf24e4jb0EmCzyzmTONZHfLX1qqncAKLiothPG/Nvl0LpkOItwt Joqg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 18si6696384ejv.717.2020.11.09.01.02.05; Mon, 09 Nov 2020 01:02:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726176AbgKIJCA (ORCPT + 99 others); Mon, 9 Nov 2020 04:02:00 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:7157 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726127AbgKIJCA (ORCPT ); Mon, 9 Nov 2020 04:02:00 -0500 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4CV4k64dkmz15TLS for ; Mon, 9 Nov 2020 17:01:50 +0800 (CST) Received: from huawei.com (10.67.165.24) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.487.0; Mon, 9 Nov 2020 17:01:57 +0800 From: Kai Ye To: CC: Subject: [PATCH] crypto:hisilicon/sec2 - Fix aead authentication setting key error. Date: Mon, 9 Nov 2020 17:00:27 +0800 Message-ID: <1604912427-10543-1-git-send-email-yekai13@huawei.com> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Fix aead auth setting key process error. if use soft shash function, driver need to use digest size replace of the user input key length. Signed-off-by: Kai Ye --- drivers/crypto/hisilicon/sec2/sec_crypto.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/hisilicon/sec2/sec_crypto.c b/drivers/crypto/hisilicon/sec2/sec_crypto.c index 87bc08a..891e049 100644 --- a/drivers/crypto/hisilicon/sec2/sec_crypto.c +++ b/drivers/crypto/hisilicon/sec2/sec_crypto.c @@ -857,7 +857,7 @@ static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx, struct crypto_authenc_keys *keys) { struct crypto_shash *hash_tfm = ctx->hash_tfm; - int blocksize, ret; + int blocksize, digestsize, ret; if (!keys->authkeylen) { pr_err("hisi_sec2: aead auth key error!\n"); @@ -865,6 +865,7 @@ static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx, } blocksize = crypto_shash_blocksize(hash_tfm); + digestsize = crypto_shash_digestsize(hash_tfm); if (keys->authkeylen > blocksize) { ret = crypto_shash_tfm_digest(hash_tfm, keys->authkey, keys->authkeylen, ctx->a_key); @@ -872,7 +873,7 @@ static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx, pr_err("hisi_sec2: aead auth digest error!\n"); return -EINVAL; } - ctx->a_key_len = blocksize; + ctx->a_key_len = digestsize; } else { memcpy(ctx->a_key, keys->authkey, keys->authkeylen); ctx->a_key_len = keys->authkeylen; -- 2.8.1