diff options
author | Nicolai Stange <nstange@suse.de> | 2021-11-30 15:10:07 +0100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2021-12-11 16:48:06 +1100 |
commit | 32bc8c28369c10ec61e86a025b35aaeebbd7b2b3 (patch) | |
tree | c5325739708ed68f22b53d27b34162cb59b4ada9 /crypto | |
parent | 2ee55aa7c24e076d3f086e66ee9b652201786e43 (diff) | |
download | linux-crypto-32bc8c28369c10ec61e86a025b35aaeebbd7b2b3.tar.gz linux-crypto-32bc8c28369c10ec61e86a025b35aaeebbd7b2b3.zip |
crypto: drbg - ignore jitterentropy errors if not in FIPS mode
A subsequent patch will make the jitterentropy RNG to unconditionally
report health test errors back to callers, independent of whether
fips_enabled is set or not. The DRBG needs access to a functional
jitterentropy instance only in FIPS mode (because it's the only SP800-90B
compliant entropy source as it currently stands). Thus, it is perfectly
fine for the DRBGs to obtain entropy from the jitterentropy source only
on a best effort basis if fips_enabled is off.
Make the DRBGs to ignore jitterentropy failures if fips_enabled is not set.
Signed-off-by: Nicolai Stange <nstange@suse.de>
Reviewed-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/drbg.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crypto/drbg.c b/crypto/drbg.c index 5977a72a..177983b6 100644 --- a/crypto/drbg.c +++ b/crypto/drbg.c @@ -1193,11 +1193,14 @@ static int drbg_seed(struct drbg_state *drbg, struct drbg_string *pers, pr_devel("DRBG: (re)seeding with %u bytes of entropy\n", entropylen); } else { - /* Get seed from Jitter RNG */ + /* + * Get seed from Jitter RNG, failures are + * fatal only in FIPS mode. + */ ret = crypto_rng_get_bytes(drbg->jent, entropy + entropylen, entropylen); - if (ret) { + if (fips_enabled && ret) { pr_devel("DRBG: jent failed with %d\n", ret); /* |