Re: [PATCH v28 09/12] LRNG - add Jitter RNG fast noise source
From: Stephan Mueller <hidden>
Date: 2020-01-16 06:53:08
Also in:
linux-crypto, lkml
Am Donnerstag, 16. Januar 2020, 01:17:05 CET schrieb Randy Dunlap: Hi Randy,
On 1/15/20 2:34 AM, Stephan Müller wrote:quoted
CC: "Eric W. Biederman" <redacted> CC: "Alexander E. Patrakov" <redacted> CC: "Ahmed S. Darwish" <redacted> CC: "Theodore Y. Ts'o" <tytso@mit.edu> CC: Willy Tarreau <w@1wt.eu> CC: Matthew Garrett <mjg59@srcf.ucam.org> CC: Vito Caputo <redacted> CC: Andreas Dilger <adilger.kernel@dilger.ca> CC: Jan Kara <jack@suse.cz> CC: Ray Strode <redacted> CC: William Jon McCann <redacted> CC: zhangjs <redacted> CC: Andy Lutomirski <luto@kernel.org> CC: Florian Weimer <redacted> CC: Lennart Poettering <redacted> CC: Nicolai Stange <redacted> Reviewed-by: Marcelo Henrique Cerri <redacted> Reviewed-by: Roman Drahtmueller <redacted> Tested-by: Roman Drahtmüller <redacted> Tested-by: Marcelo Henrique Cerri <redacted> Tested-by: Neil Horman <redacted> Signed-off-by: Stephan Mueller <redacted> --- drivers/char/lrng/Kconfig | 11 +++++ drivers/char/lrng/Makefile | 1 + drivers/char/lrng/lrng_jent.c | 89 +++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 drivers/char/lrng/lrng_jent.cdiff --git a/drivers/char/lrng/Kconfig b/drivers/char/lrng/Kconfig index 0d070a3897dd..10b7cbdb8c8e 100644 --- a/drivers/char/lrng/Kconfig +++ b/drivers/char/lrng/Kconfig@@ -92,4 +92,15 @@ config LRNG_KCAPI provided by the selected kernel crypto API RNG. endif # LRNG_DRNG_SWITCH +config LRNG_JENT + bool "Enable Jitter RNG as LRNG Seed Source" + select CRYPTO_JITTERENTROPYDon't select unless CRYPTO is already set/enabled.
I added "depends on
quoted
+ help + The Linux RNG may use the Jitter RNG as noise source. Enabling + this option enables the use of the Jitter RNG. Its default + entropy level is 16 bits of entropy per 256 data bits delivered + by the Jitter RNG. This entropy level can be changed at boot + time or at runtime with the lrng_base.jitterrng configuration + variable. + endif # LRNGdiff --git a/drivers/char/lrng/lrng_jent.c b/drivers/char/lrng/lrng_jent.c new file mode 100644 index 000000000000..ff0bbe2680c4 --- /dev/null +++ b/drivers/char/lrng/lrng_jent.c@@ -0,0 +1,89 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +/* + * LRNG Fast Noise Source: Jitter RNG + * + * Copyright (C) 2016 - 2020, Stephan Mueller <smueller@chronox.de> + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/types.h> +#include <crypto/internal/jitterentropy.h> + +#include "lrng_internal.h" + +/* + * Estimated entropy of data is a 16th ofLRNG_DRNG_SECURITY_STRENGTH_BITS. + * Albeit a full entropy assessment is provided for the noise source indicating + * that it provides high entropy rates and considering that it deactivates + * when it detects insufficient hardware, the chosen under estimation of + * entropy is considered to be acceptable to all reviewers. + */ +static u32 jitterrng = LRNG_DRNG_SECURITY_STRENGTH_BITS>>4; +module_param(jitterrng, uint, 0644); +MODULE_PARM_DESC(jitterrng, "Entropy in bits of 256 data bits from Jitter " + "RNG noise source");One line for the string, please, not split to 2 lines.
Changed. Thank you. Ciao Stephan