[PATCH 03/11] crypto/ffdhe: Finite Field DH Ephemeral Parameters
Hannes Reinecke
hare at suse.de
Sat Jul 17 06:57:33 PDT 2021
On 7/17/21 8:14 AM, Sagi Grimberg wrote:
>> Add helper functions to generaten Finite Field DH Ephemeral Parameters as
>> specified in RFC 7919.
>>
>> Signed-off-by: Hannes Reinecke <hare at 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.h
>>
>> diff --git a/crypto/Kconfig b/crypto/Kconfig
>> index ca3b02dcbbfa..1bea506ba56f 100644
>> --- a/crypto/Kconfig
>> +++ b/crypto/Kconfig
>> @@ -231,6 +231,14 @@ config CRYPTO_DH
>> help
>> 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.
>> + select CRYPTO_DH
>> + select CRYPTO_KPP
>> + select CRYPTO_RNG_DEFAULT
>> + help
>> + Generic implementation of the Finite Field DH algorithm
>
> Diffie-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.
>> +
>> config CRYPTO_ECC
>> tristate
>> diff --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.o
>> obj-$(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.o
>> diff --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 at 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
More information about the Linux-nvme
mailing list