summaryrefslogtreecommitdiffstats
path: root/apps/smime.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/smime.c')
-rw-r--r--apps/smime.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/smime.c b/apps/smime.c
index fd1e2e6810..63578f28d5 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -146,7 +146,7 @@ int smime_main(int argc, char **argv)
char *certfile = NULL, *keyfile = NULL, *contfile = NULL;
char *infile = NULL, *outfile = NULL, *signerfile = NULL, *recipfile = NULL;
char *passinarg = NULL, *passin = NULL, *to = NULL, *from = NULL;
- char *subject = NULL, *digestname = NULL;
+ char *subject = NULL, *digestname = NULL, *ciphername = NULL;
OPTION_CHOICE o;
int noCApath = 0, noCAfile = 0, noCAstore = 0;
int flags = PKCS7_DETACHED, operation = 0, ret = 0, indef = 0;
@@ -297,8 +297,7 @@ int smime_main(int argc, char **argv)
digestname = opt_arg();
break;
case OPT_CIPHER:
- if (!opt_cipher(opt_unknown(), &cipher))
- goto opthelp;
+ ciphername = opt_unknown();
break;
case OPT_INKEY:
/* If previous -inkey argument add signer to list */
@@ -365,6 +364,10 @@ int smime_main(int argc, char **argv)
if (!opt_md(digestname, &sign_md))
goto opthelp;
}
+ if (ciphername != NULL) {
+ if (!opt_cipher(ciphername, &cipher))
+ goto opthelp;
+ }
if (!(operation & SMIME_SIGNERS) && (skkeys != NULL || sksigners != NULL)) {
BIO_puts(bio_err, "Multiple signers or keys not allowed\n");
goto opthelp;