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 17:35:50 +0000 (19:35 +0200)
PR: #3397

crypto/bn/bn_exp.c

index c121122f3cb28668fb900cb90475443afdfe8296..2d051b2c35b852da488ab1dbe3d4691f2ec1fdb9 100644 (file)
@@ -909,7 +909,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,