aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/bn/bn_exp.c
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2004-03-13 23:57:20 +0000
committerGeoff Thorpe <geoff@openssl.org>2004-03-13 23:57:20 +0000
commitb6358c89a10128692875fb92921b663c4d079a1e (patch)
treed36362a84ee41209484b4b088c2b9d1728bfc613 /crypto/bn/bn_exp.c
parent5d735465d1b5b7853506979946ad5730cc3615bb (diff)
downloadopenssl-b6358c89a10128692875fb92921b663c4d079a1e.tar.gz
Convert openssl code not to assume the deprecated form of BN_zero().
Remove certain redundant BN_zero() initialisations, because BN_CTX_get(), BN_init(), [etc] already initialise to zero. Correct error checking in bn_sqr.c, and be less wishy-wash about how/why the result's 'top' value is set (note also, 'max' is always > 0 at this point).
Diffstat (limited to 'crypto/bn/bn_exp.c')
-rw-r--r--crypto/bn/bn_exp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
index aef77cb792..c11e5afd32 100644
--- a/crypto/bn/bn_exp.c
+++ b/crypto/bn/bn_exp.c
@@ -266,7 +266,8 @@ int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
if (!BN_nnmod(&(val[0]),a,m,ctx)) goto err; /* 1 */
if (BN_is_zero(&(val[0])))
{
- ret = BN_zero(r);
+ BN_zero(r);
+ ret = 1;
goto err;
}
@@ -409,7 +410,8 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
aa=a;
if (BN_is_zero(aa))
{
- ret = BN_zero(rr);
+ BN_zero(rr);
+ ret = 1;
goto err;
}
if (!BN_to_montgomery(&(val[0]),aa,mont,ctx)) goto err; /* 1 */
@@ -541,7 +543,8 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
}
if (a == 0)
{
- ret = BN_zero(rr);
+ BN_zero(rr);
+ ret = 1;
return ret;
}
@@ -666,7 +669,8 @@ int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
if (!BN_nnmod(&(val[0]),a,m,ctx)) goto err; /* 1 */
if (BN_is_zero(&(val[0])))
{
- ret = BN_zero(r);
+ BN_zero(r);
+ ret = 1;
goto err;
}