• Stephan Müller's avatar
    crypto: jitter - SP800-90B compliance · 764428fe
    Stephan Müller authored
    SP800-90B specifies various requirements for the noise source(s) that
    may seed any DRNG including SP800-90A DRBGs. In November 2020,
    SP800-90B will be mandated for all noise sources that provide entropy
    to DRBGs as part of a FIPS 140-[2|3] validation or other evaluation
    types. Without SP800-90B compliance, a noise source is defined to always
    deliver zero bits of entropy.
    
    This patch ports the SP800-90B compliance from the user space Jitter RNG
    version 2.2.0.
    
    The following changes are applied:
    
    - addition of (an enhanced version of) the repetitive count test (RCT)
      from SP800-90B section 4.4.1 - the enhancement is due to the fact of
      using the stuck test as input to the RCT.
    
    - addition of the adaptive proportion test (APT) from SP800-90B section
      4.4.2
    
    - update of the power-on self test to perform a test measurement of 1024
      noise samples compliant to SP800-90B section 4.3
    
    - remove of the continuous random number generator test which is
      replaced by APT and RCT
    
    Health test failures due to the SP800-90B operation are only enforced in
    FIPS mode. If a runtime health test failure is detected, the Jitter RNG
    is reset. If more than 1024 resets in a row are performed, a permanent
    error is returned to the caller.
    Signed-off-by: default avatarStephan Mueller <smueller@chronox.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    764428fe
jitterentropy.c 25.2 KB