summaryrefslogtreecommitdiffstats
path: root/engines
diff options
context:
space:
mode:
authorRich Salz <rsalz@openssl.org>2015-04-30 21:37:06 -0400
committerRich Salz <rsalz@openssl.org>2015-04-30 21:37:06 -0400
commit23a1d5e97cd543d2b8e1b01dbf0f619b2e5ce540 (patch)
tree2d9372864fc2b34939d21b3706768ec225c9548f /engines
parent34166d41892643a36ad2d1f53cc0025e2edc2a39 (diff)
free NULL cleanup 7
This gets BN_.*free: BN_BLINDING_free BN_CTX_free BN_FLG_FREE BN_GENCB_free BN_MONT_CTX_free BN_RECP_CTX_free BN_clear_free BN_free BUF_MEM_free Also fix a call to DSA_SIG_free to ccgost engine and remove some #ifdef'd dead code in engines/e_ubsec. Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'engines')
-rw-r--r--engines/ccgost/gost2001.c27
-rw-r--r--engines/ccgost/gost_ameth.c20
-rw-r--r--engines/ccgost/gost_sign.c30
-rw-r--r--engines/e_cswift.c16
-rw-r--r--engines/e_ubsec.c40
5 files changed, 39 insertions, 94 deletions
diff --git a/engines/ccgost/gost2001.c b/engines/ccgost/gost2001.c
index 83cc693f75..5490a5d760 100644
--- a/engines/ccgost/gost2001.c
+++ b/engines/ccgost/gost2001.c
@@ -111,10 +111,9 @@ int fill_GOST2001_params(EC_KEY *eckey, int nid)
err:
if (P) EC_POINT_free(P);
if (grp) EC_GROUP_free(grp);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
+ BN_CTX_free(ctx);
return ok;
}
@@ -241,15 +240,13 @@ DSA_SIG *gost2001_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)
ret = newsig;
err:
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
+ BN_CTX_free(ctx);
if (C) EC_POINT_free(C);
- if (md) BN_free(md);
- if (!ret && newsig) {
+ BN_free(md);
+ if (!ret)
DSA_SIG_free(newsig);
- }
return ret;
}
@@ -365,11 +362,10 @@ int gost2001_do_verify(const unsigned char *dgst, int dgst_len,
}
err:
if (C) EC_POINT_free(C);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
- if (md) BN_free(md);
+ BN_CTX_free(ctx);
+ BN_free(md);
return ok;
}
@@ -418,10 +414,9 @@ int gost2001_compute_public(EC_KEY *ec)
ok = 256;
err:
if (pub_key) EC_POINT_free(pub_key);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
+ BN_CTX_free(ctx);
return ok;
}
diff --git a/engines/ccgost/gost_ameth.c b/engines/ccgost/gost_ameth.c
index b1615bfa6c..0b694f5cf1 100644
--- a/engines/ccgost/gost_ameth.c
+++ b/engines/ccgost/gost_ameth.c
@@ -525,12 +525,14 @@ static int param_copy_gost94(EVP_PKEY *to, const EVP_PKEY *from)
dto = DSA_new();
EVP_PKEY_assign(to, EVP_PKEY_base_id(from), dto);
}
-#define COPYBIGNUM(a,b,x) if (a->x) BN_free(a->x); a->x=BN_dup(b->x);
- COPYBIGNUM(dto, dfrom, p)
- COPYBIGNUM(dto, dfrom, q)
- COPYBIGNUM(dto, dfrom, g)
-
- if (dto->priv_key)
+ BN_free(dto->p);
+ dto->p = BN_dup(dfrom->p);
+ BN_free(dto->q);
+ dto->q = BN_dup(dfrom->q);
+ BN_free(dto->g);
+ dto->g = BN_dup(dfrom->g);
+
+ if (dto->priv_key)
gost94_compute_public(dto);
return 1;
}
@@ -758,10 +760,8 @@ static int pub_encode_gost01(X509_PUBKEY *pub, const EVP_PKEY *pk)
Y = BN_new();
if (!X || !Y) {
GOSTerr(GOST_F_PUB_ENCODE_GOST01, ERR_R_MALLOC_FAILURE);
- if (X)
- BN_free(X);
- if (Y)
- BN_free(Y);
+ BN_free(X);
+ BN_free(Y);
BN_free(order);
return 0;
}
diff --git a/engines/ccgost/gost_sign.c b/engines/ccgost/gost_sign.c
index c2516ead0e..543c399688 100644
--- a/engines/ccgost/gost_sign.c
+++ b/engines/ccgost/gost_sign.c
@@ -114,13 +114,11 @@ DSA_SIG *gost_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
ret = newsig;
err:
BN_free(md);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
- if (!ret && newsig) {
+ BN_CTX_free(ctx);
+ if (!ret)
DSA_SIG_free(newsig);
- }
return ret;
}
@@ -214,13 +212,11 @@ int gost_do_verify(const unsigned char *dgst, int dgst_len,
GOSTerr(GOST_F_GOST_DO_VERIFY, GOST_R_SIGNATURE_MISMATCH);
}
err:
- if (md)
- BN_free(md);
- if (ctx) {
+ BN_free(md);
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
- return ok;
+ BN_CTX_free(ctx);
+ return (ok == 0);
}
/*
@@ -268,19 +264,13 @@ int fill_GOST94_params(DSA *dsa, int nid)
return 0;
}
#define dump_signature(a,b,c)
- if (dsa->p) {
- BN_free(dsa->p);
- }
+ BN_free(dsa->p);
dsa->p = NULL;
BN_dec2bn(&(dsa->p), params->p);
- if (dsa->q) {
- BN_free(dsa->q);
- }
+ BN_free(dsa->q);
dsa->q = NULL;
BN_dec2bn(&(dsa->q), params->q);
- if (dsa->g) {
- BN_free(dsa->g);
- }
+ BN_free(dsa->g);
dsa->g = NULL;
BN_dec2bn(&(dsa->g), params->a);
return 1;
diff --git a/engines/e_cswift.c b/engines/e_cswift.c
index adab4d4188..848d10f018 100644
--- a/engines/e_cswift.c
+++ b/engines/e_cswift.c
@@ -717,10 +717,8 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
OPENSSL_free(sw_param.up.crt.dmq1.value);
if (sw_param.up.crt.iqmp.value)
OPENSSL_free(sw_param.up.crt.iqmp.value);
- if (result)
- BN_free(result);
- if (argument)
- BN_free(argument);
+ BN_free(result);
+ BN_free(argument);
if (acquired)
release_context(hac);
return to_return;
@@ -877,10 +875,9 @@ static DSA_SIG *cswift_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa)
err:
if (acquired)
release_context(hac);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
+ BN_CTX_free(ctx);
return to_return;
}
@@ -980,10 +977,9 @@ static int cswift_dsa_verify(const unsigned char *dgst, int dgst_len,
err:
if (acquired)
release_context(hac);
- if (ctx) {
+ if (ctx)
BN_CTX_end(ctx);
- BN_CTX_free(ctx);
- }
+ BN_CTX_free(ctx);
return to_return;
}
# endif
diff --git a/engines/e_ubsec.c b/engines/e_ubsec.c
index 6f09ffb965..9e2662e981 100644
--- a/engines/e_ubsec.c
+++ b/engines/e_ubsec.c
@@ -680,40 +680,6 @@ static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
}
# endif
-# ifndef OPENSSL_NO_DSA
-# ifdef NOT_USED
-static int ubsec_dsa_mod_exp(DSA *dsa, BIGNUM *rr, BIGNUM *a1,
- BIGNUM *p1, BIGNUM *a2, BIGNUM *p2, BIGNUM *m,
- BN_CTX *ctx, BN_MONT_CTX *in_mont)
-{
- BIGNUM t;
- int to_return = 0;
-
- BN_init(&t);
- /* let rr = a1 ^ p1 mod m */
- if (!ubsec_mod_exp(rr, a1, p1, m, ctx))
- goto end;
- /* let t = a2 ^ p2 mod m */
- if (!ubsec_mod_exp(&t, a2, p2, m, ctx))
- goto end;
- /* let rr = rr * t mod m */
- if (!BN_mod_mul(rr, rr, &t, m, ctx))
- goto end;
- to_return = 1;
- end:
- BN_free(&t);
- return to_return;
-}
-
-static int ubsec_mod_exp_dsa(DSA *dsa, BIGNUM *r, BIGNUM *a,
- const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx,
- BN_MONT_CTX *m_ctx)
-{
- return ubsec_mod_exp(r, a, p, m, ctx);
-}
-# endif
-# endif
-
# ifndef OPENSSL_NO_RSA
/*
@@ -825,10 +791,8 @@ static DSA_SIG *ubsec_dsa_do_sign(const unsigned char *dgst, int dlen,
err:
if (!to_return) {
- if (r)
- BN_free(r);
- if (s)
- BN_free(s);
+ BN_free(r);
+ BN_free(s);
}
BN_clear_free(&m);
return to_return;