Skip to content

Commit

Permalink
genrsa: introduce -verbose option to enable output
Browse files Browse the repository at this point in the history
Other commands like 'req' support -verbose, so why not genrsa?

Signed-off-by: Philip Prindeville <[email protected]>

Reviewed-by: Richard Levitte <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
(Merged from openssl#6897)
  • Loading branch information
pprindeville authored and paulidale committed May 1, 2019
1 parent 3914707 commit c43fa56
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
18 changes: 14 additions & 4 deletions apps/genrsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ NON_EMPTY_TRANSLATION_UNIT
# define DEFBITS 2048
# define DEFPRIMES 2

static int verbose = 0;

static int genrsa_cb(int p, int n, BN_GENCB *cb);

typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
OPT_3, OPT_F4, OPT_ENGINE,
OPT_OUT, OPT_PASSOUT, OPT_CIPHER, OPT_PRIMES,
OPT_OUT, OPT_PASSOUT, OPT_CIPHER, OPT_PRIMES, OPT_VERBOSE,
OPT_R_ENUM
} OPTION_CHOICE;

Expand All @@ -52,6 +54,7 @@ const OPTIONS genrsa_options[] = {
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif
{"primes", OPT_PRIMES, 'p', "Specify number of primes"},
{"verbose", OPT_VERBOSE, '-', "Verbose output"},
{NULL}
};

Expand Down Expand Up @@ -115,6 +118,9 @@ int genrsa_main(int argc, char **argv)
if (!opt_int(opt_arg(), &primes))
goto end;
break;
case OPT_VERBOSE:
verbose = 1;
break;
}
}
argc = opt_num_rest();
Expand Down Expand Up @@ -143,8 +149,9 @@ int genrsa_main(int argc, char **argv)
if (out == NULL)
goto end;

BIO_printf(bio_err, "Generating RSA private key, %d bit long modulus (%d primes)\n",
num, primes);
if (verbose)
BIO_printf(bio_err, "Generating RSA private key, %d bit long modulus (%d primes)\n",
num, primes);
rsa = eng ? RSA_new_method(eng) : RSA_new();
if (rsa == NULL)
goto end;
Expand All @@ -156,7 +163,7 @@ int genrsa_main(int argc, char **argv)
RSA_get0_key(rsa, NULL, &e, NULL);
hexe = BN_bn2hex(e);
dece = BN_bn2dec(e);
if (hexe && dece) {
if (hexe && dece && verbose) {
BIO_printf(bio_err, "e is %s (0x%s)\n", dece, hexe);
}
OPENSSL_free(hexe);
Expand Down Expand Up @@ -186,6 +193,9 @@ static int genrsa_cb(int p, int n, BN_GENCB *cb)
{
char c = '*';

if (!verbose)
return 1;

if (p == 0)
c = '.';
if (p == 1)
Expand Down
5 changes: 5 additions & 0 deletions doc/man1/genrsa.pod
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ B<openssl> B<genrsa>
[B<-writerand file>]
[B<-engine id>]
[B<-primes num>]
[B<-verbose>]
[B<numbits>]

=head1 DESCRIPTION
Expand Down Expand Up @@ -91,6 +92,10 @@ parameter must be a positive integer that is greater than 1 and less than 16.
If B<num> is greater than 2, then the generated key is called a 'multi-prime'
RSA key, which is defined in RFC 8017.

=item B<-verbose>

Print extra details about the operations being performed.

=item B<numbits>

The size of the private key to generate in bits. This must be the last option
Expand Down

0 comments on commit c43fa56

Please sign in to comment.