From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Stefan Berger" <stefanb@linux.vnet.ibm.com>,
<keyrings@vger.kernel.org>, <linux-crypto@vger.kernel.org>,
<herbert@gondor.apana.org.au>, <davem@davemloft.net>
Cc: <linux-kernel@vger.kernel.org>, <saulo.alessandre@tse.jus.br>,
<lukas@wunner.de>, <bbhushan2@marvell.com>,
"Stefan Berger" <stefanb@linux.ibm.com>
Subject: Re: [PATCH v6 08/13] crypto: ecc - Add NIST P521 curve parameters
Date: Mon, 18 Mar 2024 23:05:33 +0200 [thread overview]
Message-ID: <CZX6JM30P6FG.138133OLNGMS2@kernel.org> (raw)
In-Reply-To: <20240312183618.1211745-9-stefanb@linux.vnet.ibm.com>
On Tue Mar 12, 2024 at 8:36 PM EET, Stefan Berger wrote:
> From: Stefan Berger <stefanb@linux.ibm.com>
>
> Add the parameters for the NIST P521 curve and define a new curve ID
> for it. Make the curve available in ecc_get_curve.
This is rare example of "complete story" in this series despite being
short, so no complains :-)
>
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
> Tested-by: Lukas Wunner <lukas@wunner.de>
> ---
> crypto/ecc.c | 2 ++
> crypto/ecc_curve_defs.h | 45 +++++++++++++++++++++++++++++++++++++++++
> include/crypto/ecdh.h | 1 +
> 3 files changed, 48 insertions(+)
>
> diff --git a/crypto/ecc.c b/crypto/ecc.c
> index ead40b5ebb46..4f6fa8617308 100644
> --- a/crypto/ecc.c
> +++ b/crypto/ecc.c
> @@ -60,6 +60,8 @@ const struct ecc_curve *ecc_get_curve(unsigned int curve_id)
> return &nist_p256;
> case ECC_CURVE_NIST_P384:
> return &nist_p384;
> + case ECC_CURVE_NIST_P521:
> + return &nist_p521;
> default:
> return NULL;
> }
> diff --git a/crypto/ecc_curve_defs.h b/crypto/ecc_curve_defs.h
> index ab1ef3d94be5..0ecade7d02f5 100644
> --- a/crypto/ecc_curve_defs.h
> +++ b/crypto/ecc_curve_defs.h
> @@ -89,6 +89,51 @@ static struct ecc_curve nist_p384 = {
> .b = nist_p384_b
> };
>
> +/* NIST P-521 */
> +static u64 nist_p521_g_x[] = { 0xf97e7e31c2e5bd66ull, 0x3348b3c1856a429bull,
> + 0xfe1dc127a2ffa8deull, 0xa14b5e77efe75928ull,
> + 0xf828af606b4d3dbaull, 0x9c648139053fb521ull,
> + 0x9e3ecb662395b442ull, 0x858e06b70404e9cdull,
> + 0xc6ull };
> +static u64 nist_p521_g_y[] = { 0x88be94769fd16650ull, 0x353c7086a272c240ull,
> + 0xc550b9013fad0761ull, 0x97ee72995ef42640ull,
> + 0x17afbd17273e662cull, 0x98f54449579b4468ull,
> + 0x5c8a5fb42c7d1bd9ull, 0x39296a789a3bc004ull,
> + 0x118ull };
> +static u64 nist_p521_p[] = { 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0x1ffull };
> +static u64 nist_p521_n[] = { 0xbb6fb71e91386409ull, 0x3bb5c9b8899c47aeull,
> + 0x7fcc0148f709a5d0ull, 0x51868783bf2f966bull,
> + 0xfffffffffffffffaull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0x1ffull };
> +static u64 nist_p521_a[] = { 0xfffffffffffffffcull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0xffffffffffffffffull, 0xffffffffffffffffull,
> + 0x1ffull };
> +static u64 nist_p521_b[] = { 0xef451fd46b503f00ull, 0x3573df883d2c34f1ull,
> + 0x1652c0bd3bb1bf07ull, 0x56193951ec7e937bull,
> + 0xb8b489918ef109e1ull, 0xa2da725b99b315f3ull,
> + 0x929a21a0b68540eeull, 0x953eb9618e1c9a1full,
> + 0x051ull };
> +static struct ecc_curve nist_p521 = {
> + .name = "nist_521",
> + .nbits = 521,
> + .g = {
> + .x = nist_p521_g_x,
> + .y = nist_p521_g_y,
> + .ndigits = 9,
> + },
> + .p = nist_p521_p,
> + .n = nist_p521_n,
> + .a = nist_p521_a,
> + .b = nist_p521_b
> +};
> +
> /* curve25519 */
> static u64 curve25519_g_x[] = { 0x0000000000000009, 0x0000000000000000,
> 0x0000000000000000, 0x0000000000000000 };
> diff --git a/include/crypto/ecdh.h b/include/crypto/ecdh.h
> index a9f98078d29c..9784ecdd2fb4 100644
> --- a/include/crypto/ecdh.h
> +++ b/include/crypto/ecdh.h
> @@ -26,6 +26,7 @@
> #define ECC_CURVE_NIST_P192 0x0001
> #define ECC_CURVE_NIST_P256 0x0002
> #define ECC_CURVE_NIST_P384 0x0003
> +#define ECC_CURVE_NIST_P521 0x0004
>
> /**
> * struct ecdh - define an ECDH private key
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
BR, Jarkko
next prev parent reply other threads:[~2024-03-18 21:05 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-12 18:36 [PATCH v6 00/13] Add support for NIST P521 to ecdsa Stefan Berger
2024-03-12 18:36 ` [PATCH v6 01/13] crypto: ecc - Use ECC_CURVE_NIST_P192/256/384_DIGITS where possible Stefan Berger
2024-03-18 20:08 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 02/13] crypto: ecdsa - Convert byte arrays with key coordinates to digits Stefan Berger
2024-03-18 20:21 ` Jarkko Sakkinen
2024-03-18 20:35 ` Lukas Wunner
2024-03-18 22:20 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 03/13] crypto: ecdsa - Adjust tests on length of key parameters Stefan Berger
2024-03-18 20:25 ` Jarkko Sakkinen
2024-03-18 20:32 ` Lukas Wunner
2024-03-18 22:25 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 04/13] crypto: ecdsa - Extend res.x mod n calculation for NIST P521 Stefan Berger
2024-03-18 20:33 ` Jarkko Sakkinen
2024-03-18 20:39 ` Lukas Wunner
2024-03-18 22:19 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 05/13] crypto: ecc - Add nbits field to ecc_curve structure Stefan Berger
2024-03-18 20:34 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 06/13] crypto: ecc - Implement vli_mmod_fast_521 for NIST p521 Stefan Berger
2024-03-18 5:47 ` [EXTERNAL] " Bharat Bhushan
2024-03-18 18:38 ` Stefan Berger
2024-03-19 3:53 ` Bharat Bhushan
2024-03-18 20:35 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 07/13] crypto: ecc - Add special case for NIST P521 in ecc_point_mult Stefan Berger
2024-03-18 20:50 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 08/13] crypto: ecc - Add NIST P521 curve parameters Stefan Berger
2024-03-18 21:05 ` Jarkko Sakkinen [this message]
2024-03-18 22:54 ` Stefan Berger
2024-03-12 18:36 ` [PATCH v6 09/13] crypto: ecdsa - Replace ndigits with nbits where precision is needed Stefan Berger
2024-03-18 21:06 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 10/13] crypto: ecdsa - Rename keylen to bufsize where necessary Stefan Berger
2024-03-18 21:07 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 11/13] crypto: ecdsa - Register NIST P521 and extend test suite Stefan Berger
2024-03-18 21:08 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 12/13] crypto: asymmetric_keys - Adjust signature size calculation for NIST P521 Stefan Berger
2024-03-18 5:58 ` [EXTERNAL] " Bharat Bhushan
2024-03-18 7:06 ` Lukas Wunner
2024-03-19 3:38 ` Bharat Bhushan
2024-03-18 21:12 ` Jarkko Sakkinen
2024-03-18 22:42 ` Stefan Berger
2024-03-19 18:21 ` Jarkko Sakkinen
2024-03-12 18:36 ` [PATCH v6 13/13] crypto: x509 - Add OID for NIST P521 and extend parser for it Stefan Berger
2024-03-15 17:10 ` [PATCH v6 00/13] Add support for NIST P521 to ecdsa Stefan Berger
2024-03-18 18:48 ` Lukas Wunner
2024-03-18 22:42 ` Stefan Berger
2024-03-19 18:22 ` Jarkko Sakkinen
2024-03-19 18:25 ` Jarkko Sakkinen
2024-03-19 18:55 ` Stefan Berger
2024-03-19 19:14 ` Jarkko Sakkinen
2024-03-20 5:40 ` Lukas Wunner
2024-03-20 14:41 ` Konstantin Ryabitsev
2024-03-21 16:17 ` Jarkko Sakkinen
2024-03-21 16:19 ` Jarkko Sakkinen
2024-03-21 16:36 ` Stefan Berger
2024-03-21 16:50 ` Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CZX6JM30P6FG.138133OLNGMS2@kernel.org \
--to=jarkko@kernel.org \
--cc=bbhushan2@marvell.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=keyrings@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=saulo.alessandre@tse.jus.br \
--cc=stefanb@linux.ibm.com \
--cc=stefanb@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.