Simplify the kconfig entry for WIREGUARD:

- Drop the selections of the arch-optimized ChaCha20, Poly1305, BLAKE2s,
  and Curve25519 code.  These options no longer exist, as lib/crypto/
  now enables the arch-optimized code automatically.

- Drop the selection of CRYPTO.  This was needed only to make the
  arch-optimized options visible.  lib/crypto/ now handles these options
  internally, without any dependency on CRYPTO.

- Drop the dependency on !KMSAN.  This was needed only to avoid
  selecting arch-optimized code that isn't compatible with KMSAN.
  lib/crypto/ now handles the !KMSAN dependencies internally.

- Add a selection of CRYPTO_LIB_UTILS, since WireGuard directly calls
  crypto_memneq().  This gets selected indirectly by
  CRYPTO_LIB_CURVE25519 and CRYPTO_LIB_CHACHA20POLY1305 anyway, but it's
  best to make this dependency explicit.

Signed-off-by: Eric Biggers <ebigg...@kernel.org>
---
 drivers/net/Kconfig | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index b29628d46be9b..ac12eaf11755d 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -74,28 +74,15 @@ config DUMMY
 
 config WIREGUARD
        tristate "WireGuard secure network tunnel"
        depends on NET && INET
        depends on IPV6 || !IPV6
-       depends on !KMSAN # KMSAN doesn't support the crypto configs below
        select NET_UDP_TUNNEL
        select DST_CACHE
-       select CRYPTO
        select CRYPTO_LIB_CURVE25519
        select CRYPTO_LIB_CHACHA20POLY1305
-       select CRYPTO_CHACHA20_X86_64 if X86 && 64BIT
-       select CRYPTO_POLY1305_X86_64 if X86 && 64BIT
-       select CRYPTO_BLAKE2S_X86 if X86 && 64BIT
-       select CRYPTO_CURVE25519_X86 if X86 && 64BIT
-       select CRYPTO_CHACHA20_NEON if ARM || (ARM64 && KERNEL_MODE_NEON)
-       select CRYPTO_POLY1305_NEON if ARM64 && KERNEL_MODE_NEON
-       select CRYPTO_POLY1305_ARM if ARM
-       select CRYPTO_BLAKE2S_ARM if ARM
-       select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
-       select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
-       select CRYPTO_POLY1305_MIPS if MIPS
-       select CRYPTO_CHACHA_S390 if S390
+       select CRYPTO_LIB_UTILS
        help
          WireGuard is a secure, fast, and easy to use replacement for IPSec
          that uses modern cryptography and clever networking tricks. It's
          designed to be fairly general purpose and abstract enough to fit most
          use cases, while at the same time remaining extremely simple to
-- 
2.50.1


Reply via email to