}
}
+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;
/* 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
"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"},
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;
[B<-commands>]
[B<-digest-commands>]
[B<-digest-algorithms>]
+[B<-mac-algorithms>]
[B<-cipher-commands>]
[B<-cipher-algorithms>]
[B<-public-key-algorithms>]
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