EVP_CIPHER_DO_ALL(3) | Library Functions Manual | EVP_CIPHER_DO_ALL(3) |
NAME¶
EVP_CIPHER_do_all
,
EVP_CIPHER_do_all_sorted
,
EVP_MD_do_all
,
EVP_MD_do_all_sorted
,
OBJ_NAME_do_all
,
OBJ_NAME_do_all_sorted
—
iterate over lookup tables for ciphers and
digests
SYNOPSIS¶
#include
<openssl/evp.h>
void
EVP_CIPHER_do_all
(void (*fn)(const
EVP_CIPHER *cipher, const char *from, const char *to, void *arg),
void *arg);
void
EVP_CIPHER_do_all_sorted
(void
(*fn)(const EVP_CIPHER *cipher, const char *from, const char *to, void
*arg), void *arg);
void
EVP_MD_do_all
(void (*fn)(const EVP_MD
*md, const char *from, const char *to, void *arg),
void *arg);
void
EVP_MD_do_all_sorted
(void (*fn)(const
EVP_MD *md, const char *from, const char *to, void *arg),
void *arg);
typedef struct { int type; int alias; const char *name; const char *data; } OBJ_NAME;
void
OBJ_NAME_do_all
(int type,
void (*fn)(const OBJ_NAME *obj_name, void *arg),
void *arg);
void
OBJ_NAME_do_all_sorted
(int type,
void (*fn)(const OBJ_NAME *obj_name, void *arg),
void *arg);
DESCRIPTION¶
EVP_CIPHER_do_all
()
calls fn on every entry of the global table of cipher
names and aliases. For a cipher name entry, fn is
called with a non-NULL cipher, its non-NULL cipher
name from, a NULL to, and the
arg pointer. For an alias entry,
fn is called with a NULL cipher,
its alias from, the cipher name that alias points
to, and the arg pointer.
EVP_CIPHER_do_all_sorted
()
is similar, except that it processes the cipher names and aliases in
lexicographic order of their from names as determined
by strcmp(3).
EVP_MD_do_all
()
calls fn on every entry of the global table of digest
names and aliases. For a digest name entry, fn is
called with a non-NULL md, its non-NULL digest name
from, a NULL to, and the
arg pointer. For an alias entry,
fn is called with a NULL md, its
alias from, the digest name that alias points
to, and the arg pointer.
EVP_MD_do_all_sorted
()
is similar, except that it processes the digest names and aliases in
lexicographic order of their from names as determined
by strcmp(3).
OBJ_NAME is an abstraction of the types
underlying the lookup tables for ciphers and their aliases, and digests and
their aliases, respectively. For a cipher, type is
OBJ_NAME_TYPE_CIPHER_METH
,
alias is 0, name is its lookup
name and data is the EVP_CIPHER
object it represents, cast to const char *. For a
cipher alias, type is
OBJ_NAME_TYPE_CIPHER_METH
,
alias is OBJ_NAME_ALIAS
,
name is its lookup name and data
is the name it aliases. Digests representing an EVP_MD
object and their aliases are represented similarly, except that their type
is OBJ_NAME_TYPE_MD_METH
.
OBJ_NAME_do_all
()
calls fn on every obj_name in
the table that has the given type (either
OBJ_NAME_TYPE_CIPHER_METH
or
OBJ_NAME_TYPE_MD_METH
), also passing the
arg pointer.
OBJ_NAME_do_all_sorted
()
is similar except that it processes the obj_name in
lexicographic order of their names as determined by
strcmp(3).
SEE ALSO¶
HISTORY¶
These functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.
CAVEATS¶
EVP_CIPHER_do_all_sorted
(),
EVP_MD_do_all_sorted
(), and
OBJ_NAME_do_all_sorted
() cannot report errors. In
some implementations they need to allocate internally and if memory
allocation fails they do nothing at all, without telling the caller about
the problem.
March 14, 2024 | Linux 6.4.0-150600.23.25-default |