Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2505576pxb; Sun, 23 Jan 2022 06:53:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwhuTB7Qrbso2zWTn7BJ79D4a95Y5HvunnoAHvMJaLiFlo6VZtx2xa8qLm1K+v5itP9xiR7 X-Received: by 2002:a62:5e43:0:b0:4c7:375e:bcd0 with SMTP id s64-20020a625e43000000b004c7375ebcd0mr10536062pfb.7.1642949592245; Sun, 23 Jan 2022 06:53:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642949592; cv=none; d=google.com; s=arc-20160816; b=A9piPz0jgCjAfa8Y8KGlz6pOI3jYAMLpLlFqm5VGQ6vTy6xeyFcfazpQ6ufzhvjiKK 7ZKOtUx/Guv+wr8s+MHH9h10wJlYODF35CwTO1cXzURxV/8/tPTxApTihoZBO/Yjzd2V h+AFTdlh1Y8AVJPZ1/5kUwhw7FMc3mCPNobNF7Q5A9nBt+Woj7/omP07oQfHpsJl1xGD 02YRMprNJKzlQlZd7E3o6yKFc+pt51ec+fxf8M03+Q6Kea0yKOhyYPRlvbcr6sklQ1Sc kYOBIAr12nt71xUUPR6jPa5rMkkyU+2URsnMZ1ZVi9QqFTMfGeDafMwLRzprxsb55khz 4DVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=SS0nR1MwVcoEC963l3lIkjWoVctcci5+oHGIsW4a4A8=; b=BMTzO0jARcieRpltQPUq9cXx8PK+J9484FKtZXmFknfsnXTJqOUcY5aTrQ9Sou6wwf vC0lAh35AIUMV7Q1cgfwmndy8Kt47tH0nTDd8keybPNBp4LidWGtgQU9X9gyDvDjr+aA 4tXYxiKtC9XDKoIxVc9bk4AXGjJJISMN8/Kwx+NQd25ZxC6BaVCXXVhv4UIdJgC4/E81 V7BZdEXOJNDIUh05qjcurMvU0cByk0MxmsT6weCcLX8R5x3QmNZXruycY2D/23SjpmEt vcqOKgLXWpv9RwWVZ/8JYm8EKTtdZR0t01nAGv91biTTs52kdLqM07ySRSbe1Qin9TF3 nz/A== 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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j4si11600181pgl.839.2022.01.23.06.52.59; Sun, 23 Jan 2022 06:53:12 -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; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230333AbiAVISc (ORCPT + 99 others); Sat, 22 Jan 2022 03:18:32 -0500 Received: from szxga03-in.huawei.com ([45.249.212.189]:31177 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229912AbiAVISY (ORCPT ); Sat, 22 Jan 2022 03:18:24 -0500 Received: from dggpeml500020.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4Jgpw13ldyz8wNQ; Sat, 22 Jan 2022 16:15:29 +0800 (CST) Received: from dggpeml100012.china.huawei.com (7.185.36.121) by dggpeml500020.china.huawei.com (7.185.36.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sat, 22 Jan 2022 16:18:22 +0800 Received: from huawei.com (10.67.165.24) by dggpeml100012.china.huawei.com (7.185.36.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sat, 22 Jan 2022 16:18:22 +0800 From: Kai Ye To: CC: , , , Subject: [PATCH v3 4/5] crypto: hisilicon/sec - fix the CTR mode BD configuration Date: Sat, 22 Jan 2022 16:13:11 +0800 Message-ID: <20220122081312.29121-5-yekai13@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220122081312.29121-1-yekai13@huawei.com> References: <20220122081312.29121-1-yekai13@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.165.24] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpeml100012.china.huawei.com (7.185.36.121) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org The CTR counter is 32bit rollover default on the BD. But the NIST standard is 128bit rollover. it cause the testing failed, so need to fix the BD configuration. Signed-off-by: Kai Ye --- drivers/crypto/hisilicon/sec2/sec_crypto.c | 6 ++++++ drivers/crypto/hisilicon/sec2/sec_crypto.h | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/hisilicon/sec2/sec_crypto.c b/drivers/crypto/hisilicon/sec2/sec_crypto.c index 8305eee9a3d3..7013272134b2 100644 --- a/drivers/crypto/hisilicon/sec2/sec_crypto.c +++ b/drivers/crypto/hisilicon/sec2/sec_crypto.c @@ -42,6 +42,8 @@ #define SEC_DE_OFFSET_V3 9 #define SEC_SCENE_OFFSET_V3 5 #define SEC_CKEY_OFFSET_V3 13 +#define SEC_CTR_CNT_OFFSET 25 +#define SEC_CTR_CNT_ROLLOVER 2 #define SEC_SRC_SGL_OFFSET_V3 11 #define SEC_DST_SGL_OFFSET_V3 14 #define SEC_CALG_OFFSET_V3 4 @@ -1303,6 +1305,10 @@ static int sec_skcipher_bd_fill_v3(struct sec_ctx *ctx, struct sec_req *req) cipher = SEC_CIPHER_DEC; sec_sqe3->c_icv_key |= cpu_to_le16(cipher); + /* Set the CTR counter mode is 128bit rollover */ + sec_sqe3->auth_mac_key = cpu_to_le32((u32)SEC_CTR_CNT_ROLLOVER << + SEC_CTR_CNT_OFFSET); + if (req->use_pbuf) { bd_param |= SEC_PBUF << SEC_SRC_SGL_OFFSET_V3; bd_param |= SEC_PBUF << SEC_DST_SGL_OFFSET_V3; diff --git a/drivers/crypto/hisilicon/sec2/sec_crypto.h b/drivers/crypto/hisilicon/sec2/sec_crypto.h index 9f71c358a6d3..5e039b50e9d4 100644 --- a/drivers/crypto/hisilicon/sec2/sec_crypto.h +++ b/drivers/crypto/hisilicon/sec2/sec_crypto.h @@ -354,8 +354,10 @@ struct sec_sqe3 { * akey_len: 9~14 bits * a_alg: 15~20 bits * key_sel: 21~24 bits - * updata_key: 25 bits - * reserved: 26~31 bits + * ctr_count_mode/sm4_xts: 25~26 bits + * sva_prefetch: 27 bits + * key_wrap_num: 28~30 bits + * update_key: 31 bits */ __le32 auth_mac_key; __le32 salt; -- 2.33.0