summaryrefslogtreecommitdiffstats
path: root/engines/ccgost/gost_sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'engines/ccgost/gost_sign.c')
-rw-r--r--engines/ccgost/gost_sign.c30
1 files changed, 10 insertions, 20 deletions
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;