summaryrefslogtreecommitdiffstats
path: root/apps/gendsa.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gendsa.c')
-rw-r--r--apps/gendsa.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/gendsa.c b/apps/gendsa.c
index 81ab10d07c..c6c84c9a56 100644
--- a/apps/gendsa.c
+++ b/apps/gendsa.c
@@ -57,7 +57,7 @@ int gendsa_main(int argc, char **argv)
EVP_PKEY *pkey = NULL;
EVP_PKEY_CTX *ctx = NULL;
const EVP_CIPHER *enc = NULL;
- char *dsaparams = NULL;
+ char *dsaparams = NULL, *ciphername = NULL;
char *outfile = NULL, *passoutarg = NULL, *passout = NULL, *prog;
OPTION_CHOICE o;
int ret = 1, private = 0, verbose = 0;
@@ -93,8 +93,7 @@ int gendsa_main(int argc, char **argv)
goto end;
break;
case OPT_CIPHER:
- if (!opt_cipher(opt_unknown(), &enc))
- goto end;
+ ciphername = opt_unknown();
break;
case OPT_VERBOSE:
verbose = 1;
@@ -107,9 +106,13 @@ int gendsa_main(int argc, char **argv)
argv = opt_rest();
if (argc != 1)
goto opthelp;
+ dsaparams = argv[0];
app_RAND_load();
- dsaparams = argv[0];
+ if (ciphername != NULL) {
+ if (!opt_cipher(ciphername, &enc))
+ goto end;
+ }
private = 1;
if (!app_passwd(NULL, passoutarg, NULL, &passout)) {