]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Workaround for RSA on AArch64 Big Endian
authorNikolay Nikolaev <nicknickolaev@gmail.com>
Tue, 24 Dec 2024 11:26:09 +0000 (13:26 +0200)
committerTomas Mraz <tomas@openssl.org>
Wed, 15 Jan 2025 16:53:26 +0000 (17:53 +0100)
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)

(cherry picked from commit b26894ec6945656113fd9556527765aba08e4355)

crypto/bn/asm/armv8-mont.pl

index 54d2e8245f15a803d2b2f634f03d16a2e9ef50ff..7c596bfccd59267e5493f4e99f403a93c93db345 100755 (executable)
@@ -84,10 +84,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