Thread (154 messages) 154 messages, 11 authors, 2020-01-20

Re: [PATCH v28 09/12] LRNG - add Jitter RNG fast noise source

From: Randy Dunlap <hidden>
Date: 2020-01-16 00:17:41
Also in: linux-api, lkml

On 1/15/20 2:34 AM, Stephan Müller wrote:
quoted hunk ↗ jump to hunk
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.c
diff --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_JITTERENTROPY
Don't select unless CRYPTO is already set/enabled.
+	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 # LRNG
quoted hunk ↗ jump to hunk
diff --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 of LRNG_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.

-- 
~Randy
Reported-by: Randy Dunlap <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help