aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dsaparam.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2011-04-23 21:59:12 +0000
committerDr. Stephen Henson <steve@openssl.org>2011-04-23 21:59:12 +0000
commit69a80f7d5e1363276a9588546df28782a18a8c36 (patch)
tree0ea39725967589e7a2a3bb9fdd2a648e17755214 /apps/dsaparam.c
parentdc03504d090d7b4754bdd65f50d71d35ecb08390 (diff)
downloadopenssl-69a80f7d5e1363276a9588546df28782a18a8c36.tar.gz
More fixes for DSA FIPS overrides.
Diffstat (limited to 'apps/dsaparam.c')
-rw-r--r--apps/dsaparam.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/apps/dsaparam.c b/apps/dsaparam.c
index deb4aa9444..03e33f9f7e 100644
--- a/apps/dsaparam.c
+++ b/apps/dsaparam.c
@@ -435,13 +435,21 @@ bad:
assert(need_rand);
if ((dsakey=DSAparams_dup(dsa)) == NULL) goto end;
- if (!DSA_generate_key(dsakey)) goto end;
+ if (non_fips_allow)
+ dsakey->flags |= DSA_FLAG_NON_FIPS_ALLOW;
+ if (!DSA_generate_key(dsakey))
+ {
+ ERR_print_errors(bio_err);
+ DSA_free(dsakey);
+ goto end;
+ }
if (outformat == FORMAT_ASN1)
i=i2d_DSAPrivateKey_bio(out,dsakey);
else if (outformat == FORMAT_PEM)
i=PEM_write_bio_DSAPrivateKey(out,dsakey,NULL,NULL,0,NULL,NULL);
else {
BIO_printf(bio_err,"bad output format specified for outfile\n");
+ DSA_free(dsakey);
goto end;
}
DSA_free(dsakey);