random: use random.trust_{bootloader,cpu} command line option only
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 1 Nov 2022 12:03:55 +0000 (13:03 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 18 Nov 2022 01:18:10 +0000 (02:18 +0100)
It's very unusual to have both a command line option and a compile time
option, and apparently that's confusing to people. Also, basically
everybody enables the compile time option now, which means people who
want to disable this wind up having to use the command line option to
ensure that anyway. So just reduce the number of moving pieces and nix
the compile time option in favor of the more versatile command line
option.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Documentation/admin-guide/kernel-parameters.txt
arch/powerpc/configs/microwatt_defconfig
arch/s390/configs/debug_defconfig
arch/s390/configs/defconfig
arch/s390/configs/zfcpdump_defconfig
drivers/char/Kconfig
drivers/char/random.c
tools/testing/selftests/wireguard/qemu/kernel.config

index a465d52..7849379 100644 (file)
 
        ramdisk_start=  [RAM] RAM disk image start address
 
-       random.trust_cpu={on,off}
-                       [KNL] Enable or disable trusting the use of the
-                       CPU's random number generator (if available) to
-                       fully seed the kernel's CRNG. Default is controlled
-                       by CONFIG_RANDOM_TRUST_CPU.
-
-       random.trust_bootloader={on,off}
-                       [KNL] Enable or disable trusting the use of a
-                       seed passed by the bootloader (if available) to
-                       fully seed the kernel's CRNG. Default is controlled
-                       by CONFIG_RANDOM_TRUST_BOOTLOADER.
+       random.trust_cpu=off
+                       [KNL] Disable trusting the use of the CPU's
+                       random number generator (if available) to
+                       initialize the kernel's RNG.
+
+       random.trust_bootloader=off
+                       [KNL] Disable trusting the use of the a seed
+                       passed by the bootloader (if available) to
+                       initialize the kernel's RNG.
 
        randomize_kstack_offset=
                        [KNL] Enable or disable kernel stack offset
index ea2dbd7..18d4fe4 100644 (file)
@@ -68,7 +68,6 @@ CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_OF_PLATFORM=y
 CONFIG_SERIAL_NONSTANDARD=y
 # CONFIG_NVRAM is not set
-CONFIG_RANDOM_TRUST_CPU=y
 CONFIG_SPI=y
 CONFIG_SPI_DEBUG=y
 CONFIG_SPI_BITBANG=y
index 63807bd..a7b4e1d 100644 (file)
@@ -573,8 +573,6 @@ CONFIG_VIRTIO_CONSOLE=m
 CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TN3270_FS=y
-# CONFIG_RANDOM_TRUST_CPU is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
 CONFIG_PPS=m
 # CONFIG_PTP_1588_CLOCK is not set
 # CONFIG_HWMON is not set
index 4f9a982..2bc2d0f 100644 (file)
@@ -563,8 +563,6 @@ CONFIG_VIRTIO_CONSOLE=m
 CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TN3270_FS=y
-# CONFIG_RANDOM_TRUST_CPU is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
 # CONFIG_PTP_1588_CLOCK is not set
 # CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
index 5fe9948..ae14ab0 100644 (file)
@@ -58,7 +58,6 @@ CONFIG_ZFCP=y
 # CONFIG_VMCP is not set
 # CONFIG_MONWRITER is not set
 # CONFIG_S390_VMUR is not set
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
 # CONFIG_HID is not set
 # CONFIG_VIRTIO_MENU is not set
 # CONFIG_VHOST_MENU is not set
index 0f378d2..30fe984 100644 (file)
@@ -423,40 +423,4 @@ config ADI
          and SSM (Silicon Secured Memory).  Intended consumers of this
          driver include crash and makedumpfile.
 
-config RANDOM_TRUST_CPU
-       bool "Initialize RNG using CPU RNG instructions"
-       default y
-       help
-         Initialize the RNG using random numbers supplied by the CPU's
-         RNG instructions (e.g. RDRAND), if supported and available. These
-         random numbers are never used directly, but are rather hashed into
-         the main input pool, and this happens regardless of whether or not
-         this option is enabled. Instead, this option controls whether the
-         they are credited and hence can initialize the RNG. Additionally,
-         other sources of randomness are always used, regardless of this
-         setting.  Enabling this implies trusting that the CPU can supply high
-         quality and non-backdoored random numbers.
-
-         Say Y here unless you have reason to mistrust your CPU or believe
-         its RNG facilities may be faulty. This may also be configured at
-         boot time with "random.trust_cpu=on/off".
-
-config RANDOM_TRUST_BOOTLOADER
-       bool "Initialize RNG using bootloader-supplied seed"
-       default y
-       help
-         Initialize the RNG using a seed supplied by the bootloader or boot
-         environment (e.g. EFI or a bootloader-generated device tree). This
-         seed is not used directly, but is rather hashed into the main input
-         pool, and this happens regardless of whether or not this option is
-         enabled. Instead, this option controls whether the seed is credited
-         and hence can initialize the RNG. Additionally, other sources of
-         randomness are always used, regardless of this setting. Enabling
-         this implies trusting that the bootloader can supply high quality and
-         non-backdoored seeds.
-
-         Say Y here unless you have reason to mistrust your bootloader or
-         believe its RNG facilities may be faulty. This may also be configured
-         at boot time with "random.trust_bootloader=on/off".
-
 endmenu
index f5868dd..1c6fb89 100644 (file)
@@ -748,7 +748,7 @@ static void __cold _credit_init_bits(size_t bits)
  *
  * add_bootloader_randomness() is called by bootloader drivers, such as EFI
  * and device tree, and credits its input depending on whether or not the
- * configuration option CONFIG_RANDOM_TRUST_BOOTLOADER is set.
+ * command line option 'random.trust_bootloader'.
  *
  * add_vmfork_randomness() adds a unique (but not necessarily secret) ID
  * representing the current instance of a VM to the pool, without crediting,
@@ -774,8 +774,8 @@ static void __cold _credit_init_bits(size_t bits)
  *
  **********************************************************************/
 
-static bool trust_cpu __initdata = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
-static bool trust_bootloader __initdata = IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER);
+static bool trust_cpu __initdata = true;
+static bool trust_bootloader __initdata = true;
 static int __init parse_trust_cpu(char *arg)
 {
        return kstrtobool(arg, &trust_cpu);
@@ -926,8 +926,8 @@ void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy)
 EXPORT_SYMBOL_GPL(add_hwgenerator_randomness);
 
 /*
- * Handle random seed passed by bootloader, and credit it if
- * CONFIG_RANDOM_TRUST_BOOTLOADER is set.
+ * Handle random seed passed by bootloader, and credit it depending
+ * on the command line option 'random.trust_bootloader'.
  */
 void __init add_bootloader_randomness(const void *buf, size_t len)
 {
index ce2a047..6327c9c 100644 (file)
@@ -64,8 +64,6 @@ CONFIG_PROC_FS=y
 CONFIG_PROC_SYSCTL=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
-CONFIG_RANDOM_TRUST_CPU=y
-CONFIG_RANDOM_TRUST_BOOTLOADER=y
 CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
 CONFIG_LOG_BUF_SHIFT=18
 CONFIG_PRINTK_TIME=y