mirror of https://github.com/openssl/openssl.git
Check non-option arguments
Make sure all commands check to see if there are any "extra" arguments after the options, and print an error if so. Made all error messages consistent (which is to say, minimal). Fixes: #13527 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/13563)
This commit is contained in:
parent
c678f68a19
commit
021410ea3f
|
@ -157,6 +157,8 @@ int asn1parse_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -488,7 +488,9 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
end_of_options:
|
end_of_options:
|
||||||
|
/* Remaining args are files to certify. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
|
|
@ -176,11 +176,12 @@ int ciphers_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional arg is cipher name. */
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
ciphers = *argv;
|
ciphers = argv[0];
|
||||||
else if (argc != 0)
|
else if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
||||||
|
|
32
apps/cmp.c
32
apps/cmp.c
|
@ -2289,7 +2289,9 @@ static int get_opts(int argc, char **argv)
|
||||||
switch (o) {
|
switch (o) {
|
||||||
case OPT_EOF:
|
case OPT_EOF:
|
||||||
case OPT_ERR:
|
case OPT_ERR:
|
||||||
goto opt_err;
|
opthelp:
|
||||||
|
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
|
||||||
|
return 0;
|
||||||
case OPT_HELP:
|
case OPT_HELP:
|
||||||
opt_help(cmp_options);
|
opt_help(cmp_options);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2311,11 +2313,11 @@ static int get_opts(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
case OPT_MSG_TIMEOUT:
|
case OPT_MSG_TIMEOUT:
|
||||||
if ((opt_msg_timeout = opt_nat()) < 0)
|
if ((opt_msg_timeout = opt_nat()) < 0)
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
case OPT_TOTAL_TIMEOUT:
|
case OPT_TOTAL_TIMEOUT:
|
||||||
if ((opt_total_timeout = opt_nat()) < 0)
|
if ((opt_total_timeout = opt_nat()) < 0)
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
case OPT_TLS_USED:
|
case OPT_TLS_USED:
|
||||||
opt_tls_used = 1;
|
opt_tls_used = 1;
|
||||||
|
@ -2399,7 +2401,7 @@ static int get_opts(int argc, char **argv)
|
||||||
|
|
||||||
case OPT_V_CASES:
|
case OPT_V_CASES:
|
||||||
if (!opt_verify(o, vpm))
|
if (!opt_verify(o, vpm))
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
case OPT_CMD:
|
case OPT_CMD:
|
||||||
opt_cmd_s = opt_str("cmd");
|
opt_cmd_s = opt_str("cmd");
|
||||||
|
@ -2425,7 +2427,7 @@ static int get_opts(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
case OPT_DAYS:
|
case OPT_DAYS:
|
||||||
if ((opt_days = opt_nat()) < 0)
|
if ((opt_days = opt_nat()) < 0)
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
case OPT_REQEXTS:
|
case OPT_REQEXTS:
|
||||||
opt_reqexts = opt_str("reqexts");
|
opt_reqexts = opt_str("reqexts");
|
||||||
|
@ -2450,7 +2452,7 @@ static int get_opts(int argc, char **argv)
|
||||||
|| opt_popo < OSSL_CRMF_POPO_NONE
|
|| opt_popo < OSSL_CRMF_POPO_NONE
|
||||||
|| opt_popo > OSSL_CRMF_POPO_KEYENC) {
|
|| opt_popo > OSSL_CRMF_POPO_KEYENC) {
|
||||||
CMP_err("invalid popo spec. Valid values are -1 .. 2");
|
CMP_err("invalid popo spec. Valid values are -1 .. 2");
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OPT_CSR:
|
case OPT_CSR:
|
||||||
|
@ -2480,7 +2482,7 @@ static int get_opts(int argc, char **argv)
|
||||||
|| opt_revreason > CRL_REASON_AA_COMPROMISE
|
|| opt_revreason > CRL_REASON_AA_COMPROMISE
|
||||||
|| opt_revreason == 7) {
|
|| opt_revreason == 7) {
|
||||||
CMP_err("invalid revreason. Valid values are -1 .. 6, 8 .. 10");
|
CMP_err("invalid revreason. Valid values are -1 .. 6, 8 .. 10");
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OPT_CERTFORM:
|
case OPT_CERTFORM:
|
||||||
|
@ -2499,7 +2501,7 @@ static int get_opts(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
case OPT_PROV_CASES:
|
case OPT_PROV_CASES:
|
||||||
if (!opt_provider(o))
|
if (!opt_provider(o))
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPT_BATCH:
|
case OPT_BATCH:
|
||||||
|
@ -2531,7 +2533,7 @@ static int get_opts(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
case OPT_MAX_MSGS:
|
case OPT_MAX_MSGS:
|
||||||
if ((opt_max_msgs = opt_nat()) < 0)
|
if ((opt_max_msgs = opt_nat()) < 0)
|
||||||
goto opt_err;
|
goto opthelp;
|
||||||
break;
|
break;
|
||||||
case OPT_SRV_REF:
|
case OPT_SRV_REF:
|
||||||
opt_srv_ref = opt_str("srv_ref");
|
opt_srv_ref = opt_str("srv_ref");
|
||||||
|
@ -2604,17 +2606,13 @@ static int get_opts(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
if (argc != 0) {
|
if (argc != 0)
|
||||||
CMP_err1("unknown parameter %s", argv[0]);
|
goto opthelp;
|
||||||
goto opt_err;
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
opt_err:
|
|
||||||
CMP_err1("use -help for summary of '%s' options", prog);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int cmp_main(int argc, char **argv)
|
int cmp_main(int argc, char **argv)
|
||||||
|
|
|
@ -699,6 +699,8 @@ int cms_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remaining args are files to process. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
|
|
@ -201,6 +201,8 @@ int crl_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No remaining args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -102,6 +102,8 @@ int crl2pkcs7_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No remaining args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -220,6 +220,8 @@ int dgst_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remaining args are files to digest. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
if (keyfile != NULL && argc > 1) {
|
if (keyfile != NULL && argc > 1) {
|
||||||
|
|
|
@ -146,11 +146,17 @@ int dhparam_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One optional argument, bitsize to generate. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
if (argc == 1) {
|
||||||
|
if (!opt_int(argv[0], &num) || num <= 0)
|
||||||
|
goto opthelp;
|
||||||
|
} else if (argc != 0) {
|
||||||
|
goto opthelp;
|
||||||
|
}
|
||||||
|
|
||||||
if (argv[0] != NULL && (!opt_int(argv[0], &num) || num <= 0))
|
|
||||||
goto end;
|
|
||||||
|
|
||||||
if (g && !num)
|
if (g && !num)
|
||||||
num = DEFBITS;
|
num = DEFBITS;
|
||||||
|
|
|
@ -150,6 +150,8 @@ int dsa_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -125,15 +125,19 @@ int dsaparam_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional arg is bitsize. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
if (!opt_int(argv[0], &num) || num < 0)
|
if (!opt_int(argv[0], &num) || num < 0)
|
||||||
goto end;
|
goto opthelp;
|
||||||
/* generate a key */
|
} else if (argc != 0) {
|
||||||
numbits = num;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* generate a key */
|
||||||
|
numbits = num;
|
||||||
private = genkey ? 1 : 0;
|
private = genkey ? 1 : 0;
|
||||||
|
|
||||||
out = bio_open_owner(outfile, outformat, private);
|
out = bio_open_owner(outfile, outformat, private);
|
||||||
|
|
|
@ -166,6 +166,8 @@ int ec_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -172,6 +172,8 @@ int ecparam_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra args. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -295,10 +295,11 @@ int enc_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (opt_num_rest() != 0) {
|
|
||||||
BIO_printf(bio_err, "Extra arguments given.\n");
|
/* No extra arguments. */
|
||||||
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
|
|
||||||
if (cipher && EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
|
if (cipher && EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
|
||||||
BIO_printf(bio_err, "%s: AEAD ciphers not supported\n", prog);
|
BIO_printf(bio_err, "%s: AEAD ciphers not supported\n", prog);
|
||||||
|
|
|
@ -360,7 +360,7 @@ int engine_main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allow any trailing parameters as engine names. */
|
/* Any remaining arguments are engine names. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
for ( ; *argv; argv++) {
|
for ( ; *argv; argv++) {
|
||||||
|
|
|
@ -52,16 +52,19 @@ int errstr_main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We're not really an SSL application so this won't auto-init, but
|
||||||
|
* we're still interested in SSL error strings
|
||||||
|
*/
|
||||||
|
OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
|
||||||
|
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
||||||
|
|
||||||
|
/* All remaining arg are error code. */
|
||||||
ret = 0;
|
ret = 0;
|
||||||
for (argv = opt_rest(); *argv; argv++) {
|
for (argv = opt_rest(); *argv != NULL; argv++) {
|
||||||
if (sscanf(*argv, "%lx", &l) == 0) {
|
if (sscanf(*argv, "%lx", &l) == 0) {
|
||||||
ret++;
|
ret++;
|
||||||
} else {
|
} else {
|
||||||
/* We're not really an SSL application so this won't auto-init, but
|
|
||||||
* we're still interested in SSL error strings
|
|
||||||
*/
|
|
||||||
OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
|
|
||||||
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
|
|
||||||
ERR_error_string_n(l, buf, sizeof(buf));
|
ERR_error_string_n(l, buf, sizeof(buf));
|
||||||
BIO_printf(bio_out, "%s\n", buf);
|
BIO_printf(bio_out, "%s\n", buf);
|
||||||
}
|
}
|
||||||
|
|
|
@ -373,7 +373,11 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0)
|
||||||
|
goto opthelp;
|
||||||
|
|
||||||
if (parent_config != NULL) {
|
if (parent_config != NULL) {
|
||||||
/* Test that a parent config can load the module */
|
/* Test that a parent config can load the module */
|
||||||
|
@ -386,9 +390,8 @@ opthelp:
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (module_fname == NULL
|
if (module_fname == NULL
|
||||||
|| (verify && in_fname == NULL)
|
|| (verify && in_fname == NULL)
|
||||||
|| (!verify && out_fname == NULL)
|
|| (!verify && out_fname == NULL))
|
||||||
|| argc != 0)
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
||||||
tail = opt_path_end(module_fname);
|
tail = opt_path_end(module_fname);
|
||||||
|
|
|
@ -102,13 +102,15 @@ int gendsa_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One argument, the params file. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
private = 1;
|
|
||||||
|
|
||||||
if (argc != 1)
|
if (argc != 1)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
dsaparams = *argv;
|
|
||||||
|
dsaparams = argv[0];
|
||||||
|
private = 1;
|
||||||
|
|
||||||
if (!app_passwd(NULL, passoutarg, NULL, &passout)) {
|
if (!app_passwd(NULL, passoutarg, NULL, &passout)) {
|
||||||
BIO_printf(bio_err, "Error getting password\n");
|
BIO_printf(bio_err, "Error getting password\n");
|
||||||
|
|
|
@ -153,6 +153,8 @@ int genpkey_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -146,6 +146,8 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One optional argument, the bitsize. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
|
|
@ -86,10 +86,8 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (opt_num_rest() != 0) {
|
if (opt_num_rest() != 0)
|
||||||
BIO_printf(bio_err, "%s: Extra parameters given.\n", prog);
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
if (dirty > 1) {
|
if (dirty > 1) {
|
||||||
BIO_printf(bio_err, "%s: Only one item allowed\n", prog);
|
BIO_printf(bio_err, "%s: Only one item allowed\n", prog);
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -89,13 +89,12 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One argument, the KDF name. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
if (argc != 1)
|
||||||
if (argc != 1) {
|
|
||||||
BIO_printf(bio_err, "Invalid number of extra arguments\n");
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
|
|
||||||
if ((kdf = EVP_KDF_fetch(NULL, argv[0], NULL)) == NULL) {
|
if ((kdf = EVP_KDF_fetch(NULL, argv[0], NULL)) == NULL) {
|
||||||
BIO_printf(bio_err, "Invalid KDF name %s\n", argv[0]);
|
BIO_printf(bio_err, "Invalid KDF name %s\n", argv[0]);
|
||||||
|
|
|
@ -1529,10 +1529,10 @@ opthelp:
|
||||||
}
|
}
|
||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
if (opt_num_rest() != 0) {
|
|
||||||
BIO_printf(bio_err, "Extra arguments given.\n");
|
/* No extra arguments. */
|
||||||
|
if (opt_num_rest() != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
|
|
||||||
if (todo.commands)
|
if (todo.commands)
|
||||||
list_type(FT_general, one);
|
list_type(FT_general, one);
|
||||||
|
|
|
@ -98,13 +98,12 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One argument, the MAC name. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
if (argc != 1)
|
||||||
if (argc != 1) {
|
|
||||||
BIO_printf(bio_err, "Invalid number of extra arguments\n");
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
|
|
||||||
mac = EVP_MAC_fetch(NULL, argv[0], NULL);
|
mac = EVP_MAC_fetch(NULL, argv[0], NULL);
|
||||||
if (mac == NULL) {
|
if (mac == NULL) {
|
||||||
|
|
|
@ -71,6 +71,8 @@ int nseq_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -514,14 +514,17 @@ int ocsp_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0)
|
||||||
|
goto opthelp;
|
||||||
|
|
||||||
if (trailing_md) {
|
if (trailing_md) {
|
||||||
BIO_printf(bio_err, "%s: Digest must be before -cert or -serial\n",
|
BIO_printf(bio_err, "%s: Digest must be before -cert or -serial\n",
|
||||||
prog);
|
prog);
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
argc = opt_num_rest();
|
|
||||||
if (argc != 0)
|
|
||||||
goto opthelp;
|
|
||||||
|
|
||||||
/* Have we anything to do? */
|
/* Have we anything to do? */
|
||||||
if (req == NULL && reqin == NULL
|
if (req == NULL && reqin == NULL
|
||||||
|
|
|
@ -347,6 +347,7 @@ int help_main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One optional argument, the command to get help for. */
|
||||||
if (opt_num_rest() == 1) {
|
if (opt_num_rest() == 1) {
|
||||||
new_argv[0] = opt_rest()[0];
|
new_argv[0] = opt_rest()[0];
|
||||||
new_argv[1] = "--help";
|
new_argv[1] = "--help";
|
||||||
|
|
|
@ -184,9 +184,10 @@ int passwd_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* All remaining arguments are the password text */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
if (*argv != NULL) {
|
if (*argv != NULL) {
|
||||||
if (pw_source_defined)
|
if (pw_source_defined)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -335,7 +335,11 @@ int pkcs12_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0)
|
||||||
|
goto opthelp;
|
||||||
|
|
||||||
if (export_pkcs12) {
|
if (export_pkcs12) {
|
||||||
if ((options & INFO) != 0)
|
if ((options & INFO) != 0)
|
||||||
|
@ -421,8 +425,6 @@ int pkcs12_main(int argc, char **argv)
|
||||||
enc = EVP_des_ede3_cbc();
|
enc = EVP_des_ede3_cbc();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc != 0)
|
|
||||||
goto opthelp;
|
|
||||||
|
|
||||||
private = 1;
|
private = 1;
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,8 @@ int pkcs7_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -193,6 +193,8 @@ int pkcs8_main(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -185,6 +185,8 @@ int pkey_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -90,6 +90,8 @@ int pkeyparam_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -250,6 +250,8 @@ int pkeyutl_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -81,16 +81,14 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional arguments are numbers to check. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
if (generate) {
|
if (generate) {
|
||||||
if (argc != 0) {
|
if (argc != 0)
|
||||||
BIO_printf(bio_err, "Extra arguments given.\n");
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
} else if (argc == 0) {
|
} else if (argc == 0) {
|
||||||
BIO_printf(bio_err, "%s: No prime specified\n", prog);
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,13 +88,14 @@ int rand_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional argument is number of bytes to generate. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
if (!opt_int(argv[0], &num) || num <= 0)
|
if (!opt_int(argv[0], &num) || num <= 0)
|
||||||
goto end;
|
goto opthelp;
|
||||||
} else if (argc > 0) {
|
} else if (argc != 0) {
|
||||||
BIO_printf(bio_err, "Extra arguments given.\n");
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -515,6 +515,8 @@ int rehash_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional arguments are directories to scan. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
|
|
@ -449,6 +449,8 @@ int req_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -175,6 +175,8 @@ int rsa_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -171,6 +171,8 @@ int rsautl_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -1572,6 +1572,24 @@ int s_client_main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional argument is connect string if -connect not used. */
|
||||||
|
argc = opt_num_rest();
|
||||||
|
if (argc == 1) {
|
||||||
|
/*
|
||||||
|
* Don't allow -connect and a separate argument.
|
||||||
|
*/
|
||||||
|
if (connectstr != NULL) {
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"%s: cannot provide both -connect option and target parameter\n",
|
||||||
|
prog);
|
||||||
|
goto opthelp;
|
||||||
|
}
|
||||||
|
connect_type = use_inet;
|
||||||
|
freeandcopy(&connectstr, *opt_rest());
|
||||||
|
} else if (argc != 0) {
|
||||||
|
goto opthelp;
|
||||||
|
}
|
||||||
|
|
||||||
if (count4or6 >= 2) {
|
if (count4or6 >= 2) {
|
||||||
BIO_printf(bio_err, "%s: Can't use both -4 and -6\n", prog);
|
BIO_printf(bio_err, "%s: Can't use both -4 and -6\n", prog);
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
@ -1590,23 +1608,6 @@ int s_client_main(int argc, char **argv)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
argc = opt_num_rest();
|
|
||||||
if (argc == 1) {
|
|
||||||
/* If there's a positional argument, it's the equivalent of
|
|
||||||
* OPT_CONNECT.
|
|
||||||
* Don't allow -connect and a separate argument.
|
|
||||||
*/
|
|
||||||
if (connectstr != NULL) {
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"%s: must not provide both -connect option and target parameter\n",
|
|
||||||
prog);
|
|
||||||
goto opthelp;
|
|
||||||
}
|
|
||||||
connect_type = use_inet;
|
|
||||||
freeandcopy(&connectstr, *opt_rest());
|
|
||||||
} else if (argc != 0) {
|
|
||||||
goto opthelp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_NEXTPROTONEG
|
#ifndef OPENSSL_NO_NEXTPROTONEG
|
||||||
if (min_version == TLS1_3_VERSION && next_proto_neg_in != NULL) {
|
if (min_version == TLS1_3_VERSION && next_proto_neg_in != NULL) {
|
||||||
|
|
|
@ -1660,8 +1660,11 @@ int s_server_main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
if (argc != 0)
|
||||||
|
goto opthelp;
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_NEXTPROTONEG
|
#ifndef OPENSSL_NO_NEXTPROTONEG
|
||||||
if (min_version == TLS1_3_VERSION && next_proto_neg_in != NULL) {
|
if (min_version == TLS1_3_VERSION && next_proto_neg_in != NULL) {
|
||||||
|
|
|
@ -234,6 +234,8 @@ int s_time_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -96,6 +96,8 @@ int sess_id_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -356,6 +356,8 @@ int smime_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Extra arguments are files with recipient keys. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
@ -363,6 +365,11 @@ int smime_main(int argc, char **argv)
|
||||||
BIO_puts(bio_err, "Multiple signers or keys not allowed\n");
|
BIO_puts(bio_err, "Multiple signers or keys not allowed\n");
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
|
if (!operation) {
|
||||||
|
BIO_puts(bio_err,
|
||||||
|
"No operation (-encrypt|-sign|...) specified\n");
|
||||||
|
goto opthelp;
|
||||||
|
}
|
||||||
|
|
||||||
if (operation & SMIME_SIGNERS) {
|
if (operation & SMIME_SIGNERS) {
|
||||||
/* Check to see if any final signer needs to be appended */
|
/* Check to see if any final signer needs to be appended */
|
||||||
|
@ -398,8 +405,6 @@ int smime_main(int argc, char **argv)
|
||||||
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
|
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
} else if (!operation) {
|
|
||||||
goto opthelp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
|
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
|
||||||
|
|
|
@ -1807,10 +1807,11 @@ int speed_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remaining arguments are algorithms. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
/* Remaining arguments are algorithms. */
|
|
||||||
for (; *argv; argv++) {
|
for (; *argv; argv++) {
|
||||||
const char *algo = *argv;
|
const char *algo = *argv;
|
||||||
|
|
||||||
|
|
|
@ -125,6 +125,8 @@ int spkac_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
if (argc != 0)
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
|
@ -301,6 +301,8 @@ int srp_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Optional parameters are usernames. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
|
|
|
@ -256,17 +256,12 @@ int storeutl_main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* One argument, the URI */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
if (argc != 1)
|
||||||
if (argc == 0) {
|
|
||||||
BIO_printf(bio_err, "%s: No URI given, nothing to do...\n", prog);
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
if (argc > 1) {
|
|
||||||
BIO_printf(bio_err, "%s: Unknown extra parameters after URI\n", prog);
|
|
||||||
goto opthelp;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (criterion != 0) {
|
if (criterion != 0) {
|
||||||
switch (criterion) {
|
switch (criterion) {
|
||||||
|
|
|
@ -286,7 +286,10 @@ int ts_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mode == OPT_ERR || opt_num_rest() != 0)
|
|
||||||
|
/* No extra arguments. */
|
||||||
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0 || mode == OPT_ERR)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
|
|
||||||
if (mode == OPT_REPLY && passin &&
|
if (mode == OPT_REPLY && passin &&
|
||||||
|
|
|
@ -193,8 +193,11 @@ int verify_main(int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Extra arguments are certificates to verify. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
argv = opt_rest();
|
||||||
|
|
||||||
if (trusted != NULL
|
if (trusted != NULL
|
||||||
&& (CAfile != NULL || CApath != NULL || CAstore != NULL)) {
|
&& (CAfile != NULL || CApath != NULL || CAstore != NULL)) {
|
||||||
BIO_printf(bio_err,
|
BIO_printf(bio_err,
|
||||||
|
|
|
@ -97,10 +97,12 @@ opthelp:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (opt_num_rest() != 0) {
|
|
||||||
BIO_printf(bio_err, "Extra parameters given.\n");
|
/* No extra arguments. */
|
||||||
|
argc = opt_num_rest();
|
||||||
|
if (argc != 0)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
if (!dirty)
|
if (!dirty)
|
||||||
version = 1;
|
version = 1;
|
||||||
|
|
||||||
|
|
|
@ -490,12 +490,11 @@ int x509_main(int argc, char **argv)
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No extra arguments. */
|
||||||
argc = opt_num_rest();
|
argc = opt_num_rest();
|
||||||
argv = opt_rest();
|
if (argc != 0)
|
||||||
if (argc != 0) {
|
|
||||||
BIO_printf(bio_err, "%s: Unknown parameter %s\n", prog, argv[0]);
|
|
||||||
goto opthelp;
|
goto opthelp;
|
||||||
}
|
|
||||||
|
|
||||||
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
|
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
|
||||||
BIO_printf(bio_err, "Error getting password\n");
|
BIO_printf(bio_err, "Error getting password\n");
|
||||||
|
|
Loading…
Reference in New Issue