Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp315381pxt; Fri, 6 Aug 2021 02:46:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/pMjXmaNn8/Zf9PUrhAXZ8uIcVZr5p2X60jUCXinLTje2FvSx5lIr3ppxDlkb+uNkfOnW X-Received: by 2002:a5d:925a:: with SMTP id e26mr238877iol.195.1628243161727; Fri, 06 Aug 2021 02:46:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628243161; cv=none; d=google.com; s=arc-20160816; b=lxXaQAxKzCuw8Wmh/cItiYmkSzKs2auICFkQuLWXQtx8SX/de+mTqzmN/yDyOi1YKb D/VgR+G4c3PaTLED4XWO4i29pmiTsh1u51o0Uee+dQC7HWePJbPnAkPSco0164ZcuXyy GRqLTe6I0I4ELuJ6DmKP4vdNncopMQwnw3QkC/U65JuwIipyU5qJqKlmmC3/fvBwNrf2 N9/zMv6BEJDs2+EUlJ1QGFBgKSXNC7Jj+U9T3p6vbDfokt1k1foYMTl0s/wuaKzYYE0e ZrxrNPfRf+p8kHhgeGOsmvRG3+xGPQu/rLZRvr6tTyKXx30mVQuP4CkFm9/98vYfcvri EEew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=vhR1oJz+7l0aVR1JaHU0jdUw7D6Jfpc6dTd9EN2dYyU=; b=ZEBvRSi8muoLSJjK1ZYilPfEbh+fDhQtyYwLZGTzMBpsbjAYC9kXXi2B/Fk6Tih0mt 2lkVX+MnPUMdEhaZ+xyWVDORU93Z2JLrL3OZXdk70r3yfkCrW0m85CBuHzcoJN/gdgeQ kHfzUWg2mtWz0suM364f6hkUb10jupogH9XxxrVCSpkyrZL9Zt1D7gbmaoG2WXy/SP7X VfZyd3ml1W3pU0aJJ+BzjjtDJ2X9bK6bMK6GugpMyAts6JYh3P6CriQQcaQ7ReMdDuIR plnPag+Z0dmdVj6OqpwEWRrBzZQBHSzDCj+0NFCiO9frsXTu1kn3wyBWnRK440Ve9Yw5 ex9g== 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=NONE sp=NONE 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 w15si11066300iov.42.2021.08.06.02.45.49; Fri, 06 Aug 2021 02:46:01 -0700 (PDT) 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=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244708AbhHFJps (ORCPT + 99 others); Fri, 6 Aug 2021 05:45:48 -0400 Received: from szxga08-in.huawei.com ([45.249.212.255]:13241 "EHLO szxga08-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244632AbhHFJpl (ORCPT ); Fri, 6 Aug 2021 05:45:41 -0400 Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.55]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4Gh0vb37XTz1CSmk; Fri, 6 Aug 2021 17:45:15 +0800 (CST) Received: from dggpeml500012.china.huawei.com (7.185.36.15) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 6 Aug 2021 17:45:23 +0800 Received: from huawei.com (10.69.192.56) by dggpeml500012.china.huawei.com (7.185.36.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Fri, 6 Aug 2021 17:45:23 +0800 From: Kai Ye To: CC: , , , Subject: [PATCH v2 4/5] crypto: hisilicon/sec - fix the CTR mode BD configuration Date: Fri, 6 Aug 2021 17:44:25 +0800 Message-ID: <1628243066-32648-5-git-send-email-yekai13@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1628243066-32648-1-git-send-email-yekai13@huawei.com> References: <1628243066-32648-1-git-send-email-yekai13@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpeml500012.china.huawei.com (7.185.36.15) 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 387fb3c..5be1034 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 @@ -1301,6 +1303,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 9f71c35..5e039b5 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.7.4