diff options
author | Andy Polyakov <appro@openssl.org> | 2011-10-29 19:25:13 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-10-29 19:25:13 +0000 |
commit | 093388711298d91223f20bd75d44f614335b3e75 (patch) | |
tree | d22afb923f36f89c7217f4d7edee3c49f86d0436 | |
parent | b08259cdfe8fbbde9a5cd2d2240e523054be4029 (diff) |
bn_exp.c: fix corner case in new constant-time code.
Submitted by: Emilia Kasper
-rw-r--r-- | crypto/bn/bn_exp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c index 5c492365f3..8454d42f84 100644 --- a/crypto/bn/bn_exp.c +++ b/crypto/bn/bn_exp.c @@ -693,6 +693,11 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, BN_ULONG *np=mont->N.d, *n0=mont->n0; + /* BN_to_montgomery can contaminate words above .top + * [in BN_DEBUG[_DEBUG] build]... */ + for (i=am.top; i<top; i++) am.d[i]=0; + for (i=tmp.top; i<top; i++) tmp.d[i]=0; + bn_scatter5(tmp.d,top,powerbuf,0); bn_scatter5(am.d,am.top,powerbuf,1); bn_mul_mont(tmp.d,am.d,am.d,np,n0,top); |