]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wireguard: kconfig: simplify crypto kconfig selections
authorEric Biggers <ebiggers@kernel.org>
Sat, 6 Sep 2025 21:35:23 +0000 (14:35 -0700)
committerEric Biggers <ebiggers@kernel.org>
Mon, 8 Sep 2025 16:44:08 +0000 (09:44 -0700)
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.

Link: https://lore.kernel.org/r/20250906213523.84915-13-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
drivers/net/Kconfig

index b29628d46be9b3c3b0158c239a7d7ddc6e0b9f1e..ac12eaf11755dd19123f7fa98672ec5e3030dbad 100644 (file)
@@ -76,24 +76,11 @@ 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