diff options
author | Parménides GV <parmegv@sdf.org> | 2014-12-15 16:22:58 +0100 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-12-15 16:22:58 +0100 |
commit | 18fef7c99aa36b3e5622b3865f36d78d0879e92d (patch) | |
tree | 7a04fc87318d5008bbc1f1ac145ebb505bb5238c /app/openssl/crypto/bn/bn_exp.c | |
parent | 56fe0400b8983ce57112ed5a0f993985a87741c0 (diff) | |
parent | 33c5958a18599267820f73b151d8161d83f93d88 (diff) |
Merge branch 'research/Test-on-Android-5-#6543' into develop
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) |