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:16:45 +0000 (21:16 +0200)
PR: #3397
(cherry picked from commit eca441b2b4d33d2a18d163ef9b4b3aff14251c73)

crypto/bn/bn_exp.c

index 8fb319ad7cda8bc705edf50b73f467c8245944f5..735a300ace5d9e53a5ca726cf1dd073e816f0480 100644 (file)
@@ -908,7 +908,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,