This patch series implements FIPS 140-3 compliance requirements for random
number generation in the Linux kernel 6.12 stable. The changes ensure that
when the kernel is operating in FIPS mode, FIPS-compliant random number
generators from the Crypto API are used to override the default
/dev/random implementation.
The series consists of two patches:
1. "random: Add hook to override device reads and getrandom(2)" - This patch
introduces the infrastructure to allow external RNGs to override the
default random number generation. Originally authored by Herbert Xu, this has
been adapted for kernel 6.12.
2. "crypto: rng - Override drivers/char/random only after FIPS RNGs available" -
This patch implements the actual FIPS mode override using a workqueue-based
approach to ensure proper initialization timing. It addresses timing issues
in a previous commit "crypto: rng - Override drivers/char/random only after
FIPS RNGs available" where the crypto RNG would attempt to override before
dependencies were ready, preventing potential boot failures.
These patches are required for FIPS 140-3 certification and compliance in
government and enterprise environments where cryptographic standards must
be strictly enforced.
Herbert Xu (1):
random: Add hook to override device reads and getrandom(2)
Jay Wang (1):
crypto: rng - Override drivers/char/random only after FIPS RNGs
available
crypto/rng.c | 92 +++++++++++++++++++++++++++++++++
drivers/char/random.c | 114 +++++++++++++++++++++++++++++++++++++++++
include/linux/random.h | 7 +++
3 files changed, 213 insertions(+)
--
2.47.1