Message ID | 20231029204823.663930-1-dimitri.ledkov@canonical.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Herbert Xu |
Headers | show |
Series | [1/4] crypto: drbg - ensure most preferred type is FIPS health checked | expand |
Am Sonntag, 29. Oktober 2023, 21:48:20 CET schrieb Dimitri John Ledkov: Hi Dimitri, > drbg supports multiple types of drbg, and multiple parameters of > each. Health check sanity only checks one drbg of a single type. One > can enable all three types of drbg. And instead of checking the most > preferred algorithm (last one wins), it is currently checking first > one instead. The purpose of the sanity check is to make sure the various thresholds are effective. For this, you need "a" DRBG, no matter which one. > > Update ifdef to ensure that healthcheck prefers HMAC, over HASH, over > CTR, last one wins, like all other code and functions. I can see that this patch makes the code more consistent with the rest. Yet, I would doubt the "Fixes" indicator below is needed, though. Anyhow: Reviewed-by: Stephan Mueller <smueller@chronox.de> Ciao Stephan
diff --git a/crypto/drbg.c b/crypto/drbg.c index ff4ebbc68e..2cce18dcfc 100644 --- a/crypto/drbg.c +++ b/crypto/drbg.c @@ -2018,9 +2018,11 @@ static inline int __init drbg_healthcheck_sanity(void) #ifdef CONFIG_CRYPTO_DRBG_CTR drbg_convert_tfm_core("drbg_nopr_ctr_aes128", &coreref, &pr); -#elif defined CONFIG_CRYPTO_DRBG_HASH +#endif +#ifdef CONFIG_CRYPTO_DRBG_HASH drbg_convert_tfm_core("drbg_nopr_sha256", &coreref, &pr); -#else +#endif +#ifdef CONFIG_CRYPTO_DRBG_HMAC drbg_convert_tfm_core("drbg_nopr_hmac_sha256", &coreref, &pr); #endif
drbg supports multiple types of drbg, and multiple parameters of each. Health check sanity only checks one drbg of a single type. One can enable all three types of drbg. And instead of checking the most preferred algorithm (last one wins), it is currently checking first one instead. Update ifdef to ensure that healthcheck prefers HMAC, over HASH, over CTR, last one wins, like all other code and functions. Fixes: 541af946fe ("crypto: drbg - SP800-90A Deterministic Random Bit Generator") Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com> --- crypto/drbg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)