lib/crypto/blake2s.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
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
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
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
© 2016 - 2025 Red Hat, Inc.