diff options
author | Parménides GV <parmegv@sdf.org> | 2014-12-12 18:02:40 +0100 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-12-12 18:04:08 +0100 |
commit | 97aded26654ede8204a313dd6967b678a72a2a10 (patch) | |
tree | 5c519d75774eff664df41881777cbae171caddf5 /app/openssl/crypto/bn/bn_exp.c | |
parent | 0e7e4005460964cf8dac080e3d99e1df2a1bdc4d (diff) |
Updated ics-openvpn to last rev 14 Nov 2014.
Material design!
It still doesn't run properly on my tablet, openvpn keeps getting down
and exiting.
Diffstat (limited to 'app/openssl/crypto/bn/bn_exp.c')
-rw-r--r-- | app/openssl/crypto/bn/bn_exp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/app/openssl/crypto/bn/bn_exp.c b/app/openssl/crypto/bn/bn_exp.c index 2abf6fd6..611fa326 100644 --- a/app/openssl/crypto/bn/bn_exp.c +++ b/app/openssl/crypto/bn/bn_exp.c @@ -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, @@ -874,7 +874,14 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, bits = BN_num_bits(p); if (bits == 0) { - ret = BN_one(rr); + /* x**0 mod 1 is still zero. */ + if (BN_is_one(m)) + { + ret = 1; + BN_zero(rr); + } + else + ret = BN_one(rr); return ret; } if (a == 0) |