• Stephan Müller's avatar
    crypto: jitter - add interface for gathering of raw entropy · 69f1c387
    Stephan Müller authored
    The test interface allows a privileged process to capture the raw
    unconditioned noise that is collected by the Jitter RNG for statistical
    analysis. Such testing allows the analysis how much entropy
    the Jitter RNG noise source provides on a given platform. The obtained
    data is the time stamp sampled by the Jitter RNG. Considering that
    the Jitter RNG inserts the delta of this time stamp compared to the
    immediately preceding time stamp, the obtained data needs to be
    post-processed accordingly to obtain the data the Jitter RNG inserts
    into its entropy pool.
    
    The raw entropy collection is provided to obtain the raw unmodified
    time stamps that are about to be added to the Jitter RNG entropy pool
    and are credited with entropy. Thus, this patch adds an interface
    which renders the Jitter RNG insecure. This patch is NOT INTENDED
    FOR PRODUCTION SYSTEMS, but solely for development/test systems to
    verify the available entropy rate.
    
    Access to the data is given through the jent_raw_hires debugfs file.
    The data buffer should be multiples of sizeof(u32) to fill the entire
    buffer. Using the option jitterentropy_testing.boot_raw_hires_test=1
    the raw noise of the first 1000 entropy events since boot can be
    sampled.
    
    This test interface allows generating the data required for
    analysis whether the Jitter RNG is in compliance with SP800-90B
    sections 3.1.3 and 3.1.4.
    
    If the test interface is not compiled, its code is a noop which has no
    impact on the performance.
    Signed-off-by: default avatarStephan Mueller <smueller@chronox.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    69f1c387
jitterentropy-testing.c 6.95 KB