]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
crypto: cryptomgr - Select algorithm types only when CRYPTO_SELFTESTS
authorEric Biggers <ebiggers@kernel.org>
Fri, 27 Mar 2026 23:08:18 +0000 (16:08 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 3 Apr 2026 00:56:13 +0000 (08:56 +0800)
Enabling any template selects CRYPTO_MANAGER, which causes
CRYPTO_MANAGER2 to enable itself, which selects every algorithm type
option.  However, pulling in all algorithm types is needed only when the
self-tests are enabled.  So condition the selections accordingly.

To make this possible, also add the missing selections to various
symbols that were relying on transitive selections via CRYPTO_MANAGER.

Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Kconfig
drivers/crypto/Kconfig
drivers/crypto/allwinner/Kconfig
drivers/crypto/intel/qat/Kconfig

index 13686f033413fb4b6af0d41c05eec7ee75dd6c01..0731ceab8d9b5c7f2ad78b5140ffac3e14f6c2e7 100644 (file)
@@ -153,19 +153,20 @@ config CRYPTO_MANAGER
 
 config CRYPTO_MANAGER2
        def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
-       select CRYPTO_ACOMP2
-       select CRYPTO_AEAD2
-       select CRYPTO_AKCIPHER2
-       select CRYPTO_SIG2
-       select CRYPTO_HASH2
-       select CRYPTO_KPP2
-       select CRYPTO_RNG2
-       select CRYPTO_SKCIPHER2
+       select CRYPTO_ACOMP2 if CRYPTO_SELFTESTS
+       select CRYPTO_AEAD2 if CRYPTO_SELFTESTS
+       select CRYPTO_AKCIPHER2 if CRYPTO_SELFTESTS
+       select CRYPTO_SIG2 if CRYPTO_SELFTESTS
+       select CRYPTO_HASH2 if CRYPTO_SELFTESTS
+       select CRYPTO_KPP2 if CRYPTO_SELFTESTS
+       select CRYPTO_RNG2 if CRYPTO_SELFTESTS
+       select CRYPTO_SKCIPHER2 if CRYPTO_SELFTESTS
 
 config CRYPTO_USER
        tristate "Userspace cryptographic algorithm configuration"
        depends on NET
        select CRYPTO_MANAGER
+       select CRYPTO_RNG
        help
          Userspace configuration for cryptographic instantiations such as
          cbc(aes).
@@ -220,6 +221,7 @@ config CRYPTO_PCRYPT
 
 config CRYPTO_CRYPTD
        tristate "Software async crypto daemon"
+       select CRYPTO_AEAD
        select CRYPTO_SKCIPHER
        select CRYPTO_HASH
        select CRYPTO_MANAGER
@@ -253,7 +255,10 @@ config CRYPTO_KRB5ENC
 config CRYPTO_BENCHMARK
        tristate "Crypto benchmarking module"
        depends on m || EXPERT
+       select CRYPTO_AEAD
+       select CRYPTO_HASH
        select CRYPTO_MANAGER
+       select CRYPTO_SKCIPHER
        help
          Quick & dirty crypto benchmarking module.
 
@@ -263,10 +268,16 @@ config CRYPTO_BENCHMARK
 
 config CRYPTO_SIMD
        tristate
+       select CRYPTO_AEAD
        select CRYPTO_CRYPTD
 
 config CRYPTO_ENGINE
        tristate
+       select CRYPTO_AEAD
+       select CRYPTO_AKCIPHER
+       select CRYPTO_HASH
+       select CRYPTO_KPP
+       select CRYPTO_SKCIPHER
 
 endmenu
 
index 16fa56898d351c6ff6d9f2ee24ed3c93bf8f4ed2..189f5beb8bfa7b9b61eafb374ef83be030ee00e6 100644 (file)
@@ -301,6 +301,7 @@ config CRYPTO_DEV_PPC4XX
        select CRYPTO_CCM
        select CRYPTO_CTR
        select CRYPTO_GCM
+       select CRYPTO_RNG
        select CRYPTO_SKCIPHER
        help
          This option allows you to have support for AMCC crypto acceleration.
index b8e75210a0e3150900f2eeed78756f5c282b40b4..7270e5fbc57387fba21b214f3d6edfa7a960ee0e 100644 (file)
@@ -14,6 +14,7 @@ config CRYPTO_DEV_SUN4I_SS
        select CRYPTO_SHA1
        select CRYPTO_AES
        select CRYPTO_LIB_DES
+       select CRYPTO_RNG
        select CRYPTO_SKCIPHER
        help
          Some Allwinner SoC have a crypto accelerator named
@@ -49,6 +50,7 @@ config CRYPTO_DEV_SUN8I_CE
        select CRYPTO_CBC
        select CRYPTO_AES
        select CRYPTO_DES
+       select CRYPTO_RNG
        depends on CRYPTO_DEV_ALLWINNER
        depends on PM
        help
index 4b4861460dd4e36709bc885929290e8f70e6a437..6734b746ea70c4bf2ab9358a69617b6a0f394e1c 100644 (file)
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config CRYPTO_DEV_QAT
        tristate
+       select CRYPTO_ACOMP
        select CRYPTO_AEAD
        select CRYPTO_AUTHENC
        select CRYPTO_SKCIPHER