aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bn/asm
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-11-21 15:15:52 +0100
committerAndy Polyakov <appro@openssl.org>2016-11-25 17:18:24 +0100
commit90fc4832a392f60d2da2f5684d8d20ac8d91cebd (patch)
treeefc83290e6be0958003abb9683ccd2cb88a222cb /crypto/bn/asm
parent20d14461fb179d00b4f8991fe9fd9560d71f8fb6 (diff)
downloadopenssl-90fc4832a392f60d2da2f5684d8d20ac8d91cebd.tar.gz
bn/asm/ppc-mont.pl: signal no-op in 32-bit bit build.
The bug was introduced in 80d27cdb84985c697f8fabb7649abf1f54714d13, one too many instructions was removed. It went unnoticed, because new subroutine introduced in previous commit is called in real-life RSA/DSA/DH cases, while original code is called only in rare tests. The bug was caught in test_fuzz. Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/bn/asm')
-rw-r--r--crypto/bn/asm/ppc-mont.pl1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/bn/asm/ppc-mont.pl b/crypto/bn/asm/ppc-mont.pl
index fdc049ae0e..b747f70132 100644
--- a/crypto/bn/asm/ppc-mont.pl
+++ b/crypto/bn/asm/ppc-mont.pl
@@ -135,6 +135,7 @@ $code=<<___;
.align 5
.bn_mul_mont_int:
mr $rp,r3 ; $rp is reassigned
+ li r3,0
___
$code.=<<___ if ($BNSZ==4);
cmpwi $num,32 ; longer key performance is not better