No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Stephan Müller 98e574a734 crypto: drbg - always seeded with SP800-90B compliant noise source
commit 97f2650e504033376e8813691cb6eccf73151676 upstream.

As the Jitter RNG provides an SP800-90B compliant noise source, use this
noise source always for the (re)seeding of the DRBG.

To make sure the DRBG is always properly seeded, the reseed threshold
is reduced to 1<<20 generate operations.

The Jitter RNG may report health test failures. Such health test
failures are treated as transient as follows. The DRBG will not reseed
from the Jitter RNG (but from get_random_bytes) in case of a health
test failure. Though, it produces the requested random number.

The Jitter RNG has a failure counter where at most 1024 consecutive
resets due to a health test failure are considered as a transient error.
If more consecutive resets are required, the Jitter RNG will return
a permanent error which is returned to the caller by the DRBG. With this
approach, the worst case reseed threshold is significantly lower than
mandated by SP800-90A in order to seed with an SP800-90B noise source:
the DRBG has a reseed threshold of 2^20 * 1024 = 2^30 generate requests.

Yet, in case of a transient Jitter RNG health test failure, the DRBG is
seeded with the data obtained from get_random_bytes.

However, if the Jitter RNG fails during the initial seeding operation
even due to a health test error, the DRBG will send an error to the
caller because at that time, the DRBG has received no seed that is
SP800-90B compliant.

Signed-off-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-22 14:11:18 +02:00
arch xtensa: use fallback for random_get_entropy() instead of zero 2022-06-22 14:11:15 +02:00
block
certs
crypto crypto: drbg - always seeded with SP800-90B compliant noise source 2022-06-22 14:11:18 +02:00
Documentation random: fix sysctl documentation nits 2022-06-22 14:11:14 +02:00
drivers Revert "random: use static branch for crng_ready()" 2022-06-22 14:11:18 +02:00
fs compat_ioctl: remove /dev/random commands 2022-06-22 14:11:03 +02:00
include crypto: drbg - always seeded with SP800-90B compliant noise source 2022-06-22 14:11:18 +02:00
init random: handle latent entropy and command line from random_init() 2022-06-22 14:11:17 +02:00
ipc
kernel timekeeping: Add raw clock fallback for random_get_entropy() 2022-06-22 14:11:15 +02:00
lib random: remove ratelimiting for in-kernel unseeded randomness 2022-06-22 14:11:17 +02:00
LICENSES
mm random: move randomize_page() into mm where it belongs 2022-06-22 14:11:17 +02:00
net tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd 2022-06-14 18:12:03 +02:00
samples
scripts scripts/gdb: change kernel config dumping method 2022-06-14 18:12:02 +02:00
security
sound ALSA: hda/conexant - Fix loopback issue with CX20632 2022-06-14 18:12:02 +02:00
tools
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: co-maintain random.c 2022-06-22 14:11:05 +02:00
Makefile Linux 5.4.199 2022-06-16 13:23:32 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.