[PATCH] lib/crypto: blake2s: Disable self test if CONFIG_CRYPTO isn't enabled

Daniel Palmer posted 1 patch 7 months, 4 weeks ago
lib/crypto/blake2s.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] lib/crypto: blake2s: Disable self test if CONFIG_CRYPTO isn't enabled
Posted by Daniel Palmer 7 months, 4 weeks ago
From: Daniel Palmer <daniel@thingy.jp>

Currently CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is used to remove
the self test code. CONFIG_CRYPTO_MANAGER_DISABLE_TESTS depends on
CONFIG_CRYPTO so its impossible to disable the self test without
enabling CONFIG_CRYPTO.

If you don't want CONFIG_CRYPTO you probably don't want self tests
so remove the self tests in that case too.

Fixes: 66d7fb94e4ff ("crypto: blake2s - generic C library implementation and selftest")

Signed-off-by: Daniel Palmer <daniel@thingy.jp>
---
 lib/crypto/blake2s.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/crypto/blake2s.c b/lib/crypto/blake2s.c
index 71a316552cc5..89d54e462fb5 100644
--- a/lib/crypto/blake2s.c
+++ b/lib/crypto/blake2s.c
@@ -60,7 +60,8 @@ EXPORT_SYMBOL(blake2s_final);
 
 static int __init blake2s_mod_init(void)
 {
-	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) &&
+	if (IS_ENABLED(CONFIG_CRYPTO) &&
+	    !IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) &&
 	    WARN_ON(!blake2s_selftest()))
 		return -ENODEV;
 	return 0;
-- 
2.47.2
Re: [PATCH] lib/crypto: blake2s: Disable self test if CONFIG_CRYPTO isn't enabled
Posted by Eric Biggers 7 months, 4 weeks ago
On Fri, Apr 18, 2025 at 09:02:16PM +0900, Daniel Palmer wrote:
> From: Daniel Palmer <daniel@thingy.jp>
> 
> Currently CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is used to remove
> the self test code. CONFIG_CRYPTO_MANAGER_DISABLE_TESTS depends on
> CONFIG_CRYPTO so its impossible to disable the self test without
> enabling CONFIG_CRYPTO.
> 
> If you don't want CONFIG_CRYPTO you probably don't want self tests
> so remove the self tests in that case too.
> 
> Fixes: 66d7fb94e4ff ("crypto: blake2s - generic C library implementation and selftest")
> 
> Signed-off-by: Daniel Palmer <daniel@thingy.jp>
> ---
>  lib/crypto/blake2s.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Acked-by: Eric Biggers <ebiggers@kernel.org>

This is okay as a quick fix, but really the lib/crypto/ tests should be
refactored into KUnit tests that aren't dependent on CRYPTO.  FWIW, I recently
fixed this for the CRC functions: lib/tests/crc_kunit.c.

- Eric
Re: [PATCH] lib/crypto: blake2s: Disable self test if CONFIG_CRYPTO isn't enabled
Posted by Eric Biggers 7 months, 3 weeks ago
On Fri, Apr 18, 2025 at 07:59:45AM -0700, Eric Biggers wrote:
> On Fri, Apr 18, 2025 at 09:02:16PM +0900, Daniel Palmer wrote:
> > From: Daniel Palmer <daniel@thingy.jp>
> > 
> > Currently CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is used to remove
> > the self test code. CONFIG_CRYPTO_MANAGER_DISABLE_TESTS depends on
> > CONFIG_CRYPTO so its impossible to disable the self test without
> > enabling CONFIG_CRYPTO.
> > 
> > If you don't want CONFIG_CRYPTO you probably don't want self tests
> > so remove the self tests in that case too.
> > 
> > Fixes: 66d7fb94e4ff ("crypto: blake2s - generic C library implementation and selftest")
> > 
> > Signed-off-by: Daniel Palmer <daniel@thingy.jp>
> > ---
> >  lib/crypto/blake2s.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Acked-by: Eric Biggers <ebiggers@kernel.org>
> 
> This is okay as a quick fix, but really the lib/crypto/ tests should be
> refactored into KUnit tests that aren't dependent on CRYPTO.  FWIW, I recently
> fixed this for the CRC functions: lib/tests/crc_kunit.c.
> 

My series "[PATCH 0/9] Clean up the crypto testing options"
(https://lore.kernel.org/r/20250419161543.139344-1-ebiggers@kernel.org/) also
fixes this by replacing CRYPTO_MANAGER_DISABLE_TESTS with a non-negated option.
(But we should still disentangle the library tests from CRYPTO at some point.)

- Eric