Linux Random Number Generator

Source Code

The following source code contains the implementation of the Linux Random Number Generator. Older versions of the LRNG are provided with a separate page.

Link Changes

v48 (Signature of source code)

Test code including SP800-90B tests (Signature of test code)

Patches to backport to older kernels

Individual patches

Documentation

Presentation

Covered kernel version: 6.1

add support for forced seeding if the fully seeded threshold cannot be reached in an appropriate time frame

update for API changes of kernel 6.1

fix: properly unlock in invalidate_batched_entropy

fix: ABI-incompatibility in RNDADDENTROPY - LRNG returns now 0 on success

SP800-90A/B/C compliant

AIS20/31 2011 compliant

AIS20/31 draft 2022 compliant

FIPS IG 7.19 / D.K compliant - use of DRBG as conditioning component for chaining DRBGs

v49 (Signature of source code)

Test code including SP800-90B tests (Signature of test code)

Patches to backport to older kernels

Individual patches

Documentation

Presentation

Covered kernel version: 6.2

Forced seeding applied with the first user space request

Forced seeding used for kernel DRNG (i.e. the atomic DRNG)

Adopt kernel API changes

Report health test state for scheduler ES, IRQ ES, Jitter RNG ES

Apply panic() for too many consecutive health failures to comply with FIPS 140-3

SP800-90A/B/C compliant

AIS20/31 2011 compliant

AIS20/31 draft 2022 compliant

FIPS IG 7.19 / D.K compliant - use of DRBG as conditioning component for chaining DRBGs

v50 (Signature of source code)

Test code including SP800-90B tests (Signature of test code)

Patches to backport to older kernels

Individual patches

Documentation

Presentation

Covered kernel version: 6.3, 6.4

add handling for permanent errors in FIPS mode

fix compile issue

Jitter RNG entropy source linking code simplified

SP800-90A/B/C compliant

AIS20/31 2011 compliant

AIS20/31 draft 2022 compliant

FIPS IG 7.19 / D.K compliant - use of DRBG as conditioning component for chaining DRBGs

v51 (Signature of source code)

Test code including SP800-90B tests (Signature of test code)

Patches to backport to older kernels

Individual patches

Documentation

Presentation

Covered kernel version: 6.5

add asynchronous Jitter RNG support

SP800-90A/B/C compliant

AIS20/31 2011 compliant

AIS20/31 draft 2022 compliant

FIPS IG 7.19 / D.K compliant - use of DRBG as conditioning component for chaining DRBGs

v52 (Signature of source code)

Test code including SP800-90B tests (Signature of test code)

Patches to backport to older kernels

Individual patches

Documentation

Presentation

Covered kernel version: 6.6

use seeding state enum for DRBG

SP800-90A/B/C compliant

AIS20/31 2011 compliant

AIS20/31 draft 2022 compliant

FIPS IG 7.19 / D.K compliant - use of DRBG as conditioning component for chaining DRBGs


2024-01-22 smueller at chronox.de