Re: [PATCH 03/11] crypto/ffdhe: Finite Field DH Ephemeral Parameters
From: Hannes Reinecke <hare@suse.de>
Date: 2021-07-17 13:58:02
Also in:
linux-nvme
On 7/17/21 8:14 AM, Sagi Grimberg wrote:
quoted
Add helper functions to generaten Finite Field DH Ephemeral Parameters as specified in RFC 7919. Signed-off-by: Hannes Reinecke <hare@suse.de> --- crypto/Kconfig | 8 + crypto/Makefile | 1 + crypto/ffdhe_helper.c | 877 +++++++++++++++++++++++++++++++++++++++++ include/crypto/ffdhe.h | 24 ++ 4 files changed, 910 insertions(+) create mode 100644 crypto/ffdhe_helper.c create mode 100644 include/crypto/ffdhe.hdiff --git a/crypto/Kconfig b/crypto/Kconfig index ca3b02dcbbfa..1bea506ba56f 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig@@ -231,6 +231,14 @@ config CRYPTO_DHhelp Generic implementation of the Diffie-Hellman algorithm. +config CRYPTO_FFDHE + tristate "Finite Field DH (RFC 7919) ephemeral parameters"I'd stick with "Diffie-Hellman" in the tristate.
Ok.
quoted
+ select CRYPTO_DH + select CRYPTO_KPP + select CRYPTO_RNG_DEFAULT + help + Generic implementation of the Finite Field DH algorithmDiffie-Hellman algorithm And not sure I'd call it algorithm implementation, but rather a helper but maybe something like: Finite Field Diffie-Hellman ephemeral parameters helper implementation
Wasn't sure how to call it myself; as stated I'm not a security expert.
quoted
+ config CRYPTO_ECC tristatediff --git a/crypto/Makefile b/crypto/Makefile index 10526d4559b8..d3bc79fba23f 100644 --- a/crypto/Makefile +++ b/crypto/Makefile@@ -177,6 +177,7 @@ obj-$(CONFIG_CRYPTO_OFB) += ofb.oobj-$(CONFIG_CRYPTO_ECC) += ecc.o obj-$(CONFIG_CRYPTO_ESSIV) += essiv.o obj-$(CONFIG_CRYPTO_CURVE25519) += curve25519-generic.o +obj-$(CONFIG_CRYPTO_FFDHE) += ffdhe_helper.o ecdh_generic-y += ecdh.o ecdh_generic-y += ecdh_helper.odiff --git a/crypto/ffdhe_helper.c b/crypto/ffdhe_helper.c new file mode 100644 index 000000000000..dc023e30c4e5 --- /dev/null +++ b/crypto/ffdhe_helper.c@@ -0,0 +1,877 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Finite Field DH Ephemeral Parameters (RFC 7919) + * + * Copyright (c) 2021, Hannes Reinecke, SUSE Software Products + * + */ + +#include <linux/module.h> +#include <crypto/internal/kpp.h> +#include <crypto/kpp.h> +#include <crypto/dh.h> +#include <linux/mpi.h> + +/* + * ffdhe2048 generator (g), modulus (p) and group size (q)Maybe worth to refer exactly the source of these parameters in the comment body (rfc section/appendix).
Sure. These actually are copies from RFC 7919, so will be adding a reference to it. Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer