Add -keyform.
This commit is contained in:
parent
ed2e24d564
commit
95874603b0
25
apps/smime.c
25
apps/smime.c
@ -104,6 +104,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char *inrand = NULL;
|
char *inrand = NULL;
|
||||||
int need_rand = 0;
|
int need_rand = 0;
|
||||||
int informat = FORMAT_SMIME, outformat = FORMAT_SMIME;
|
int informat = FORMAT_SMIME, outformat = FORMAT_SMIME;
|
||||||
|
int keyform = FORMAT_PEM;
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
|
|
||||||
args = argv + 1;
|
args = argv + 1;
|
||||||
@ -195,6 +196,11 @@ int MAIN(int argc, char **argv)
|
|||||||
args++;
|
args++;
|
||||||
keyfile = *args;
|
keyfile = *args;
|
||||||
} else badarg = 1;
|
} else badarg = 1;
|
||||||
|
} else if (!strcmp (*args, "-keyform")) {
|
||||||
|
if (args[1]) {
|
||||||
|
args++;
|
||||||
|
keyform = str2fmt(*args);
|
||||||
|
} else badarg = 1;
|
||||||
} else if (!strcmp (*args, "-certfile")) {
|
} else if (!strcmp (*args, "-certfile")) {
|
||||||
if (args[1]) {
|
if (args[1]) {
|
||||||
args++;
|
args++;
|
||||||
@ -288,6 +294,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "-in file input file\n");
|
BIO_printf (bio_err, "-in file input file\n");
|
||||||
BIO_printf (bio_err, "-inform arg input format SMIME (default), PEM or DER\n");
|
BIO_printf (bio_err, "-inform arg input format SMIME (default), PEM or DER\n");
|
||||||
BIO_printf (bio_err, "-inkey file input private key (if not signer or recipient)\n");
|
BIO_printf (bio_err, "-inkey file input private key (if not signer or recipient)\n");
|
||||||
|
BIO_printf (bio_err, "-keyform arg input private key format (PEM or ENGINE)\n");
|
||||||
BIO_printf (bio_err, "-out file output file\n");
|
BIO_printf (bio_err, "-out file output file\n");
|
||||||
BIO_printf (bio_err, "-outform arg output format SMIME (default), PEM or DER\n");
|
BIO_printf (bio_err, "-outform arg output format SMIME (default), PEM or DER\n");
|
||||||
BIO_printf (bio_err, "-content file supply or override content for detached signature\n");
|
BIO_printf (bio_err, "-content file supply or override content for detached signature\n");
|
||||||
@ -399,11 +406,19 @@ int MAIN(int argc, char **argv)
|
|||||||
} else keyfile = NULL;
|
} else keyfile = NULL;
|
||||||
|
|
||||||
if(keyfile) {
|
if(keyfile) {
|
||||||
if(!(key = load_key(bio_err,keyfile, FORMAT_PEM, passin, NULL))) {
|
if (keyform == FORMAT_ENGINE) {
|
||||||
BIO_printf(bio_err, "Can't read recipient certificate file %s\n", keyfile);
|
if (!e) {
|
||||||
ERR_print_errors(bio_err);
|
BIO_printf(bio_err,"no engine specified\n");
|
||||||
goto end;
|
goto err;
|
||||||
}
|
}
|
||||||
|
key = ENGINE_load_private_key(e, keyfile, passin);
|
||||||
|
} else {
|
||||||
|
if(!(key = load_key(bio_err,keyfile, FORMAT_PEM, passin, NULL))) {
|
||||||
|
BIO_printf(bio_err, "Can't read recipient certificate file %s\n", keyfile);
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (infile) {
|
if (infile) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user