Commit 54e7bb6a authored by Eric Biggers's avatar Eric Biggers
Browse files

wireguard: kconfig: simplify crypto kconfig selections

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: default avatarEric Biggers <ebiggers@kernel.org>
parent cb2d6b13
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -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