crypto: drbg - Only fail when jent is unavailable in FIPS mode

[ Upstream commit 686cd976b6 ]

When jent initialisation fails for any reason other than ENOENT,
the entire drbg fails to initialise, even when we're not in FIPS
mode.  This is wrong because we can still use the kernel RNG when
we're not in FIPS mode.

Change it so that it only fails when we are in FIPS mode.

Fixes: 57225e6797 ("crypto: drbg - Use callback API for random readiness")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Herbert Xu 2023-03-28 11:35:23 +08:00 коммит произвёл Greg Kroah-Hartman
Родитель 9317d66120
Коммит 1056b20993
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -1520,7 +1520,7 @@ static int drbg_prepare_hrng(struct drbg_state *drbg)
const int err = PTR_ERR(drbg->jent); const int err = PTR_ERR(drbg->jent);
drbg->jent = NULL; drbg->jent = NULL;
if (fips_enabled || err != -ENOENT) if (fips_enabled)
return err; return err;
pr_info("DRBG: Continuing without Jitter RNG\n"); pr_info("DRBG: Continuing without Jitter RNG\n");
} }