diff options
author | Philip Prindeville <philipp@redfish-solutions.com> | 2018-08-09 15:19:19 -0600 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2019-05-01 16:41:49 +1000 |
commit | b6a07f676071b2b9fdc0e625896ebd57563028cd (patch) | |
tree | 252e299684d6e5407f0dec94be57df52c09179a9 /apps | |
parent | c43fa566ea3918ec3b468d214fd9eb80d79e0d0d (diff) |
gendsa: dsaparam: introduce -verbose option to enable output
Other commands like 'req' support -verbose, so why not gendsa and dsaparam?
Part of a larger and more ambitious effort to add -verbose to all apps
that might be used in scripts and need to otherwise run silently (well,
without belching out anything that isn't a warning or error... which ties
into a later scrub of using STDOUT were appropriate for informative
messages instead of STDERR)... so that scripts also have the option of
doing >/dev/null without losing anything critical.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/6908)
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dsaparam.c | 20 | ||||
-rw-r--r-- | apps/gendsa.c | 11 |
2 files changed, 24 insertions, 7 deletions
diff --git a/apps/dsaparam.c b/apps/dsaparam.c index 70135a694c..959c33126a 100644 --- a/apps/dsaparam.c +++ b/apps/dsaparam.c @@ -25,12 +25,15 @@ NON_EMPTY_TRANSLATION_UNIT # include <openssl/x509.h> # include <openssl/pem.h> +static int verbose = 0; + static int dsa_cb(int p, int n, BN_GENCB *cb); typedef enum OPTION_choice { OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT, OPT_TEXT, OPT_C, - OPT_NOOUT, OPT_GENKEY, OPT_ENGINE, OPT_R_ENUM + OPT_NOOUT, OPT_GENKEY, OPT_ENGINE, OPT_VERBOSE, + OPT_R_ENUM } OPTION_CHOICE; const OPTIONS dsaparam_options[] = { @@ -47,6 +50,7 @@ const OPTIONS dsaparam_options[] = { # ifndef OPENSSL_NO_ENGINE {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"}, # endif + {"verbose", OPT_VERBOSE, '-', "Verbose output"}, {NULL} }; @@ -107,6 +111,9 @@ int dsaparam_main(int argc, char **argv) case OPT_NOOUT: noout = 1; break; + case OPT_VERBOSE: + verbose = 1; + break; } } argc = opt_num_rest(); @@ -145,9 +152,11 @@ int dsaparam_main(int argc, char **argv) BIO_printf(bio_err, "Error allocating DSA object\n"); goto end; } - BIO_printf(bio_err, "Generating DSA parameters, %d bit long prime\n", - num); - BIO_printf(bio_err, "This could take some time\n"); + if (verbose) { + BIO_printf(bio_err, "Generating DSA parameters, %d bit long prime\n", + num); + BIO_printf(bio_err, "This could take some time\n"); + } if (!DSA_generate_parameters_ex(dsa, num, NULL, 0, NULL, NULL, cb)) { ERR_print_errors(bio_err); BIO_printf(bio_err, "Error, DSA key generation failed\n"); @@ -251,6 +260,9 @@ static int dsa_cb(int p, int n, BN_GENCB *cb) static const char symbols[] = ".+*\n"; char c = (p >= 0 && (size_t)p < sizeof(symbols) - 1) ? symbols[p] : '?'; + if (!verbose) + return 1; + BIO_write(BN_GENCB_get_arg(cb), &c, 1); (void)BIO_flush(BN_GENCB_get_arg(cb)); return 1; diff --git a/apps/gendsa.c b/apps/gendsa.c index c44311b536..9671b23424 100644 --- a/apps/gendsa.c +++ b/apps/gendsa.c @@ -27,7 +27,7 @@ NON_EMPTY_TRANSLATION_UNIT typedef enum OPTION_choice { OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, - OPT_OUT, OPT_PASSOUT, OPT_ENGINE, OPT_CIPHER, + OPT_OUT, OPT_PASSOUT, OPT_ENGINE, OPT_CIPHER, OPT_VERBOSE, OPT_R_ENUM } OPTION_CHOICE; @@ -42,6 +42,7 @@ const OPTIONS gendsa_options[] = { # ifndef OPENSSL_NO_ENGINE {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, # endif + {"verbose", OPT_VERBOSE, '-', "Verbose output"}, {NULL} }; @@ -54,7 +55,7 @@ int gendsa_main(int argc, char **argv) char *dsaparams = NULL; char *outfile = NULL, *passoutarg = NULL, *passout = NULL, *prog; OPTION_CHOICE o; - int ret = 1, private = 0; + int ret = 1, private = 0, verbose = 0; const BIGNUM *p = NULL; prog = opt_init(argc, argv, gendsa_options); @@ -86,6 +87,9 @@ int gendsa_main(int argc, char **argv) if (!opt_cipher(opt_unknown(), &enc)) goto end; break; + case OPT_VERBOSE: + verbose = 1; + break; } } argc = opt_num_rest(); @@ -124,7 +128,8 @@ int gendsa_main(int argc, char **argv) " Your key size is %d! Larger key size may behave not as expected.\n", OPENSSL_DSA_MAX_MODULUS_BITS, BN_num_bits(p)); - BIO_printf(bio_err, "Generating DSA key, %d bits\n", BN_num_bits(p)); + if (verbose) + BIO_printf(bio_err, "Generating DSA key, %d bits\n", BN_num_bits(p)); if (!DSA_generate_key(dsa)) goto end; |