]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN
authorEric Biggers <ebiggers@kernel.org>
Tue, 11 Nov 2025 20:29:41 +0000 (12:29 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:34 +0000 (06:12 +0900)
commit 44e8241c51f762aafa50ed116da68fd6ecdcc954 upstream.

On big endian arm kernels, the arm optimized Curve25519 code produces
incorrect outputs and fails the Curve25519 test.  This has been true
ever since this code was added.

It seems that hardly anyone (or even no one?) actually uses big endian
arm kernels.  But as long as they're ostensibly supported, we should
disable this code on them so that it's not accidentally used.

Note: for future-proofing, use !CPU_BIG_ENDIAN instead of
CPU_LITTLE_ENDIAN.  Both of these are arch-specific options that could
get removed in the future if big endian support gets dropped.

Fixes: d8f1308a025f ("crypto: arm/curve25519 - wire up NEON implementation")
Cc: stable@vger.kernel.org
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20251104054906.716914-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/crypto/Kconfig

index 3858c4d4cb98854d023075626878bc928062a42d..f6323b84631ff58f5c35dc27c055311649f974dc 100644 (file)
@@ -4,7 +4,7 @@ menu "Accelerated Cryptographic Algorithms for CPU (arm)"
 
 config CRYPTO_CURVE25519_NEON
        tristate "Public key crypto: Curve25519 (NEON)"
-       depends on KERNEL_MODE_NEON
+       depends on KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
        select CRYPTO_LIB_CURVE25519_GENERIC
        select CRYPTO_ARCH_HAVE_LIB_CURVE25519
        help