Add missing genpkey -rand support

Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23294)
This commit is contained in:
Viktor Dukhovni 2024-01-12 19:22:17 -05:00 committed by Tomas Mraz
parent aac531e5da
commit 7698f80ab1
2 changed files with 14 additions and 2 deletions

View File

@ -24,7 +24,7 @@ typedef enum OPTION_choice {
OPT_ENGINE, OPT_OUTFORM, OPT_OUT, OPT_PASS, OPT_PARAMFILE, OPT_ENGINE, OPT_OUTFORM, OPT_OUT, OPT_PASS, OPT_PARAMFILE,
OPT_ALGORITHM, OPT_PKEYOPT, OPT_GENPARAM, OPT_TEXT, OPT_CIPHER, OPT_ALGORITHM, OPT_PKEYOPT, OPT_GENPARAM, OPT_TEXT, OPT_CIPHER,
OPT_VERBOSE, OPT_QUIET, OPT_CONFIG, OPT_OUTPUBKEY, OPT_VERBOSE, OPT_QUIET, OPT_CONFIG, OPT_OUTPUBKEY,
OPT_PROV_ENUM OPT_PROV_ENUM, OPT_R_ENUM
} OPTION_CHOICE; } OPTION_CHOICE;
const OPTIONS genpkey_options[] = { const OPTIONS genpkey_options[] = {
@ -51,6 +51,7 @@ const OPTIONS genpkey_options[] = {
{"", OPT_CIPHER, '-', "Cipher to use to encrypt the key"}, {"", OPT_CIPHER, '-', "Cipher to use to encrypt the key"},
OPT_PROV_OPTIONS, OPT_PROV_OPTIONS,
OPT_R_OPTIONS,
/* This is deliberately last. */ /* This is deliberately last. */
{OPT_HELP_STR, 1, 1, {OPT_HELP_STR, 1, 1,
@ -188,6 +189,10 @@ int genpkey_main(int argc, char **argv)
if (!opt_provider(o)) if (!opt_provider(o))
goto end; goto end;
break; break;
case OPT_R_CASES:
if (!opt_rand(o))
goto end;
break;
} }
} }
@ -195,6 +200,9 @@ int genpkey_main(int argc, char **argv)
if (!opt_check_rest_arg(NULL)) if (!opt_check_rest_arg(NULL))
goto opthelp; goto opthelp;
if (!app_RAND_load())
goto end;
/* Fetch cipher, etc. */ /* Fetch cipher, etc. */
if (paramfile != NULL) { if (paramfile != NULL) {
if (!init_keygen_file(&ctx, paramfile, e, libctx, app_get0_propq())) if (!init_keygen_file(&ctx, paramfile, e, libctx, app_get0_propq()))

View File

@ -25,7 +25,9 @@ B<openssl> B<genpkey>
[B<-pkeyopt> I<opt>:I<value>] [B<-pkeyopt> I<opt>:I<value>]
[B<-genparam>] [B<-genparam>]
[B<-text>] [B<-text>]
{- $OpenSSL::safe::opt_engine_synopsis -}{- $OpenSSL::safe::opt_provider_synopsis -} {- $OpenSSL::safe::opt_r_synopsis -}
{- $OpenSSL::safe::opt_engine_synopsis -}
{- $OpenSSL::safe::opt_provider_synopsis -}
{- $OpenSSL::safe::opt_config_synopsis -} {- $OpenSSL::safe::opt_config_synopsis -}
=head1 DESCRIPTION =head1 DESCRIPTION
@ -119,6 +121,8 @@ are mutually exclusive.
Print an (unencrypted) text representation of private and public keys and Print an (unencrypted) text representation of private and public keys and
parameters along with the PEM or DER structure. parameters along with the PEM or DER structure.
{- $OpenSSL::safe::opt_r_item -}
{- $OpenSSL::safe::opt_engine_item -} {- $OpenSSL::safe::opt_engine_item -}
{- $OpenSSL::safe::opt_provider_item -} {- $OpenSSL::safe::opt_provider_item -}