openssl list -mac-algorithms support.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7541)
This commit is contained in:
Pauli 2018-11-01 14:25:20 +10:00
parent 3bed01a090
commit 0d1f7ae3c9
2 changed files with 28 additions and 1 deletions

View File

@ -297,6 +297,20 @@ static void list_md_fn(const EVP_MD *m,
}
}
static void list_mac_fn(const EVP_MAC *m,
const char *from, const char *to, void *arg)
{
if (m != NULL) {
BIO_printf(arg, "%s\n", EVP_MAC_name(m));
} else {
if (from == NULL)
from = "<undefined>";
if (to == NULL)
to = "<undefined>";
BIO_printf(arg, "%s => %s\n", from, to);
}
}
static void list_missing_help(void)
{
const FUNCTION *fp;
@ -396,7 +410,7 @@ static void list_options_for_command(const char *command)
/* Unified enum for help and list commands. */
typedef enum HELPLIST_CHOICE {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ONE,
OPT_COMMANDS, OPT_DIGEST_COMMANDS, OPT_OPTIONS,
OPT_COMMANDS, OPT_DIGEST_COMMANDS, OPT_MAC_ALGORITHMS, OPT_OPTIONS,
OPT_DIGEST_ALGORITHMS, OPT_CIPHER_COMMANDS, OPT_CIPHER_ALGORITHMS,
OPT_PK_ALGORITHMS, OPT_PK_METHOD, OPT_DISABLED, OPT_MISSING_HELP,
OPT_OBJECTS
@ -410,6 +424,8 @@ const OPTIONS list_options[] = {
"List of message digest commands"},
{"digest-algorithms", OPT_DIGEST_ALGORITHMS, '-',
"List of message digest algorithms"},
{"mac-algorithms", OPT_MAC_ALGORITHMS, '-',
"List of message authentication code algorithms"},
{"cipher-commands", OPT_CIPHER_COMMANDS, '-', "List of cipher commands"},
{"cipher-algorithms", OPT_CIPHER_ALGORITHMS, '-',
"List of cipher algorithms"},
@ -457,6 +473,9 @@ opthelp:
case OPT_DIGEST_ALGORITHMS:
EVP_MD_do_all_sorted(list_md_fn, bio_out);
break;
case OPT_MAC_ALGORITHMS:
EVP_MAC_do_all_sorted(list_mac_fn, bio_out);
break;
case OPT_CIPHER_COMMANDS:
list_type(FT_cipher, one);
break;

View File

@ -13,6 +13,7 @@ B<openssl list>
[B<-commands>]
[B<-digest-commands>]
[B<-digest-algorithms>]
[B<-mac-algorithms>]
[B<-cipher-commands>]
[B<-cipher-algorithms>]
[B<-public-key-algorithms>]
@ -53,6 +54,13 @@ If a line is of the form
foo => bar
then B<foo> is an alias for the official algorithm name, B<bar>.
=item B<-mac-algorithms>
Display a list of message authentication code algorithms.
If a line is of the form
foo => bar
then B<foo> is an alias for the official algorithm name, B<bar>.
=item B<-cipher-commands>
Display a list of cipher commands, which are typically used as input