Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1606925pxj; Fri, 21 May 2021 19:49:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyfPlHZAnKfbt7R8/pgF3kZAoxnRHRwJSk35jaEI4ro4gaAZ6gQaqB4amki3htv0y57Jeep X-Received: by 2002:a5e:a704:: with SMTP id b4mr2481904iod.35.1621651797223; Fri, 21 May 2021 19:49:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621651797; cv=none; d=google.com; s=arc-20160816; b=R9D6naf2Gn5++Y1MtD+h/dSf5jYys1T7vNCm5OUIqymnxP1oikYBXRl7fF6uNo5K10 kAEckkd9V9jQV7Bm8ZtI3du5ZTcqhjN/qKEUlgi7+LqZ5JHwrFP/OW2Yt4KsKEoOAxG1 5FA+UkyvJ1wsa9isNymKHVarL/GbQX/bg9ZJlxnPysR+bObPZaxs5rkrJMQcELG1HP/A Ok8OGwIVAM/TTpYXWD2iEqrSztNKA6nq/DCffyMkba/NdxvJBkUJkIHuXI6CLe3+O/XR sbjVJ7DLu5NQTfNxd1r5QyvOwKovBgvk1qOQ/G6waBGyrFVxwfh8YdHoqYzvGAXvZcL6 ryRw== 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=efIvmFE1oEEqPes+VKH5e9uT6aYZTEp1Dv7LVcYbdGM=; b=H6I5YTI9D4eCvdNWngv2afPHGjs0rxBhW0C22IG1ZqE0DETTsrpK77pOai6ZFhWUi5 LyVUhxamIohRzhKRsB+7GgPvuNqQeOzuvrkPxZWFxITGECw17wrHvnNIuJS6aA7bqgdt 0mI8G7RB3aioXH5AgrRbCR+jdTHmYYyp2fAbBUasL7I038PDtGySMWHJBVlUlpHncJb2 nxeX1zf8xHqOXGNx4P5i/0+PA73WoGEPYzsAKse37WPrVkm/uRJLKAlcwbSFf67LAeWZ HVxjIM7hBsiy3p0qyIA5jQulln+2GFLEFvhyaXkx+fTqHpKnYyAY7nJecG7bFUX7tIaB yHpw== 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 t14si7340718ios.45.2021.05.21.19.49.43; Fri, 21 May 2021 19:49:57 -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 S231226AbhEVCtK (ORCPT + 99 others); Fri, 21 May 2021 22:49:10 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:3650 "EHLO szxga06-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231193AbhEVCtI (ORCPT ); Fri, 21 May 2021 22:49:08 -0400 Received: from dggems703-chm.china.huawei.com (unknown [172.30.72.60]) by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4Fn7BD6rKwzmXc4; Sat, 22 May 2021 10:45:24 +0800 (CST) Received: from dggemi760-chm.china.huawei.com (10.1.198.146) by dggems703-chm.china.huawei.com (10.3.19.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2176.2; Sat, 22 May 2021 10:47:42 +0800 Received: from localhost.localdomain (10.67.165.24) by dggemi760-chm.china.huawei.com (10.1.198.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Sat, 22 May 2021 10:47:42 +0800 From: Hui Tang To: , CC: , , , Subject: [PATCH v3 3/4] crypto: ecdh - register NIST P384 tfm Date: Sat, 22 May 2021 10:44:30 +0800 Message-ID: <1621651471-42010-4-git-send-email-tanghui20@huawei.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1621651471-42010-1-git-send-email-tanghui20@huawei.com> References: <1621651471-42010-1-git-send-email-tanghui20@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggemi760-chm.china.huawei.com (10.1.198.146) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Add ecdh_nist_p384_init_tfm and register and unregister P384 tfm. Signed-off-by: Hui Tang --- crypto/ecdh.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/crypto/ecdh.c b/crypto/ecdh.c index e2c4808..70f312e 100644 --- a/crypto/ecdh.c +++ b/crypto/ecdh.c @@ -173,6 +173,31 @@ static struct kpp_alg ecdh_nist_p256 = { }, }; +static int ecdh_nist_p384_init_tfm(struct crypto_kpp *tfm) +{ + struct ecdh_ctx *ctx = ecdh_get_ctx(tfm); + + ctx->curve_id = ECC_CURVE_NIST_P384; + ctx->ndigits = ECC_CURVE_NIST_P384_DIGITS; + + return 0; +} + +static struct kpp_alg ecdh_nist_p384 = { + .set_secret = ecdh_set_secret, + .generate_public_key = ecdh_compute_value, + .compute_shared_secret = ecdh_compute_value, + .max_size = ecdh_max_size, + .init = ecdh_nist_p384_init_tfm, + .base = { + .cra_name = "ecdh-nist-p384", + .cra_driver_name = "ecdh-nist-p384-generic", + .cra_priority = 100, + .cra_module = THIS_MODULE, + .cra_ctxsize = sizeof(struct ecdh_ctx), + }, +}; + static bool ecdh_nist_p192_registered; static int ecdh_init(void) @@ -187,8 +212,15 @@ static int ecdh_init(void) if (ret) goto nist_p256_error; + ret = crypto_register_kpp(&ecdh_nist_p384); + if (ret) + goto nist_p384_error; + return 0; +nist_p384_error: + crypto_unregister_kpp(&ecdh_nist_p256); + nist_p256_error: if (ecdh_nist_p192_registered) crypto_unregister_kpp(&ecdh_nist_p192); @@ -200,6 +232,7 @@ static void ecdh_exit(void) if (ecdh_nist_p192_registered) crypto_unregister_kpp(&ecdh_nist_p192); crypto_unregister_kpp(&ecdh_nist_p256); + crypto_unregister_kpp(&ecdh_nist_p384); } subsys_initcall(ecdh_init); -- 2.8.1