• Nicolai Stange's avatar
    crypto: jitter - quit sample collection loop upon RCT failure · 710ce4b8
    Nicolai Stange authored
    The jitterentropy collection loop in jent_gen_entropy() can in principle
    run indefinitely without making any progress if it only receives stuck
    measurements as determined by jent_stuck(). After 31 consecutive stuck
    samples, the Repetition Count Test (RCT) would fail anyway and the
    jitterentropy RNG instances moved into ->health_failure == 1 state.
    jent_gen_entropy()'s caller, jent_read_entropy() would then check for
    this ->health_failure condition and return an error if found set. It
    follows that there's absolutely no point in continuing the collection loop
    in jent_gen_entropy() once the RCT has failed.
    
    Make the jitterentropy collection loop more robust by terminating it upon
    jent_health_failure() so that it won't continue to run indefinitely without
    making any progress.
    Signed-off-by: default avatarNicolai Stange <nstange@suse.de>
    Reviewed-by: default avatarStephan Mueller <smueller@chronox.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    710ce4b8
jitterentropy.c 25.1 KB