summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Nikolaev <nicknickolaev@gmail.com>2024-12-24 12:26:09 +0100
committerTomas Mraz <tomas@openssl.org>2025-01-15 17:52:29 +0100
commitb26894ec6945656113fd9556527765aba08e4355 (patch)
tree83c759c8979942eff036fa2edb5e6d99cc8e5a74
parentRemove non-existing error code. (diff)
downloadopenssl-b26894ec6945656113fd9556527765aba08e4355.tar.xz
openssl-b26894ec6945656113fd9556527765aba08e4355.zip
Workaround for RSA on AArch64 Big Endian
10646160125 introduced and optimized RSA NEON implementation for AArch64 architecture, namely Cortex-A72 and Neoverse N1. This implementation is broken in Big Endian mode, which is not widely used, therefore not properly verified. Here we disable this optimized implementation when Big Endian platform is used. Fixes: #22687 CLA: trivial Signed-off-by: Nikolay Nikolaev <nicknickolaev@gmail.com> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/26257)
-rwxr-xr-xcrypto/bn/asm/armv8-mont.pl2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/bn/asm/armv8-mont.pl b/crypto/bn/asm/armv8-mont.pl
index 912a7cf2f9..ea47e4c89d 100755
--- a/crypto/bn/asm/armv8-mont.pl
+++ b/crypto/bn/asm/armv8-mont.pl
@@ -85,10 +85,12 @@ bn_mul_mont:
cmp $num,#32
b.le .Lscalar_impl
#ifndef __KERNEL__
+#ifndef __AARCH64EB__
adrp x17,OPENSSL_armv8_rsa_neonized
ldr w17,[x17,#:lo12:OPENSSL_armv8_rsa_neonized]
cbnz w17, bn_mul8x_mont_neon
#endif
+#endif
.Lscalar_impl:
tst $num,#7