bn_exp.c: fix x86_64-specific crash with one-word modulus.
authorAndy Polyakov <appro@openssl.org>
Wed, 2 Jul 2014 17:35:50 +0000 (19:35 +0200)
committerAndy Polyakov <appro@openssl.org>
Wed, 2 Jul 2014 19:21:02 +0000 (21:21 +0200)
PR: #3397
(cherry picked from commit eca441b2b4d33d2a18d163ef9b4b3aff14251c73)

crypto/bn/bn_exp.c

index 2abf6fd67871aa43cfbfc12aa6d02cb9e6903efc..5e7eb3373ffd170ef7d826d497bc42d69f9b5d31 100644 (file)
@@ -680,7 +680,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
 
     /* Dedicated window==4 case improves 512-bit RSA sign by ~15%, but as
      * 512-bit RSA is hardly relevant, we omit it to spare size... */ 
-    if (window==5)
+    if (window==5 && top>1)
        {
        void bn_mul_mont_gather5(BN_ULONG *rp,const BN_ULONG *ap,
                        const void *table,const BN_ULONG *np,