mirror of
https://github.com/openssl/openssl.git
synced 2025-03-25 20:00:44 +08:00
EVP: Add EVP_<TYPE>_description()
The following operation types are covered: EVP_MD, EVP_CIPHER, EVP_MAC, EVP_RAND, EVP_KEYMGMT, EVP_SIGNATURE, EVP_ASYM_CIPHER, EVP_KEM, EVP_KEYEXCH, EVP_KDF. Also EVP_PKEY. For EVP_MD and EVP_CIPHER, OBJ_nid2ln() is used as a fallback for legacy implementations. For EVP_PKEY, the info field of the EVP_PKEY_ASN1_METHOD is used as a fallback for legacy implementations. Fixes #14514 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14656)
This commit is contained in:
parent
b638dad970
commit
0388823329
@ -435,6 +435,11 @@ int EVP_ASYM_CIPHER_number(const EVP_ASYM_CIPHER *cipher)
|
||||
return cipher->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_ASYM_CIPHER_description(const EVP_ASYM_CIPHER *cipher)
|
||||
{
|
||||
return cipher->description;
|
||||
}
|
||||
|
||||
void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_ASYM_CIPHER *cipher,
|
||||
void *arg),
|
||||
|
@ -645,6 +645,17 @@ const char *EVP_CIPHER_name(const EVP_CIPHER *cipher)
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *EVP_CIPHER_description(const EVP_CIPHER *cipher)
|
||||
{
|
||||
if (cipher->description != NULL)
|
||||
return cipher->description;
|
||||
#ifndef FIPS_MODULE
|
||||
return OBJ_nid2ln(EVP_CIPHER_nid(cipher));
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data)
|
||||
@ -677,6 +688,17 @@ int EVP_MD_number(const EVP_MD *md)
|
||||
return md->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_MD_description(const EVP_MD *md)
|
||||
{
|
||||
if (md->description != NULL)
|
||||
return md->description;
|
||||
#ifndef FIPS_MODULE
|
||||
return OBJ_nid2ln(EVP_MD_nid(md));
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *EVP_MD_name(const EVP_MD *md)
|
||||
{
|
||||
if (md->prov != NULL)
|
||||
|
@ -295,6 +295,11 @@ const char *EVP_RAND_name(const EVP_RAND *rand)
|
||||
return evp_first_name(rand->prov, rand->name_id);
|
||||
}
|
||||
|
||||
const char *EVP_RAND_description(const EVP_RAND *rand)
|
||||
{
|
||||
return rand->description;
|
||||
}
|
||||
|
||||
int EVP_RAND_is_a(const EVP_RAND *rand, const char *name)
|
||||
{
|
||||
return evp_is_a(rand->prov, rand->name_id, NULL, name);
|
||||
|
@ -465,6 +465,11 @@ int EVP_KEYEXCH_number(const EVP_KEYEXCH *keyexch)
|
||||
return keyexch->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_KEYEXCH_description(const EVP_KEYEXCH *keyexch)
|
||||
{
|
||||
return keyexch->description;
|
||||
}
|
||||
|
||||
int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name)
|
||||
{
|
||||
return evp_is_a(keyexch->prov, keyexch->name_id, NULL, name);
|
||||
|
@ -95,6 +95,11 @@ const char *EVP_KDF_name(const EVP_KDF *kdf)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *EVP_KDF_description(const EVP_KDF *kdf)
|
||||
{
|
||||
return kdf->description;
|
||||
}
|
||||
|
||||
int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name)
|
||||
{
|
||||
return evp_is_a(kdf->prov, kdf->name_id, NULL, name);
|
||||
|
@ -343,6 +343,11 @@ int EVP_KEM_number(const EVP_KEM *kem)
|
||||
return kem->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_KEM_description(const EVP_KEM *kem)
|
||||
{
|
||||
return kem->description;
|
||||
}
|
||||
|
||||
void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_KEM *kem, void *arg),
|
||||
void *arg)
|
||||
|
@ -251,6 +251,11 @@ int EVP_KEYMGMT_number(const EVP_KEYMGMT *keymgmt)
|
||||
return keymgmt->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_KEYMGMT_description(const EVP_KEYMGMT *keymgmt)
|
||||
{
|
||||
return keymgmt->description;
|
||||
}
|
||||
|
||||
const char *EVP_KEYMGMT_get0_first_name(const EVP_KEYMGMT *keymgmt)
|
||||
{
|
||||
return evp_first_name(keymgmt->prov, keymgmt->name_id);
|
||||
|
@ -170,6 +170,11 @@ const char *EVP_MAC_name(const EVP_MAC *mac)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *EVP_MAC_description(const EVP_MAC *mac)
|
||||
{
|
||||
return mac->description;
|
||||
}
|
||||
|
||||
int EVP_MAC_is_a(const EVP_MAC *mac, const char *name)
|
||||
{
|
||||
return evp_is_a(mac->prov, mac->name_id, NULL, name);
|
||||
|
@ -1723,6 +1723,20 @@ int EVP_PKEY_size(const EVP_PKEY *pkey)
|
||||
return size < 0 ? 0 : size;
|
||||
}
|
||||
|
||||
const char *EVP_PKEY_description(const EVP_PKEY *pkey)
|
||||
{
|
||||
if (!evp_pkey_is_assigned(pkey))
|
||||
return NULL;
|
||||
|
||||
if (evp_pkey_is_provided(pkey) && pkey->keymgmt->description != NULL)
|
||||
return pkey->keymgmt->description;
|
||||
#ifndef FIPS_MODULE
|
||||
if (pkey->ameth != NULL)
|
||||
return pkey->ameth->info;
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *evp_pkey_export_to_provider(EVP_PKEY *pk, OSSL_LIB_CTX *libctx,
|
||||
EVP_KEYMGMT **keymgmt,
|
||||
const char *propquery)
|
||||
|
@ -319,6 +319,11 @@ int EVP_SIGNATURE_number(const EVP_SIGNATURE *signature)
|
||||
return signature->name_id;
|
||||
}
|
||||
|
||||
const char *EVP_SIGNATURE_description(const EVP_SIGNATURE *signature)
|
||||
{
|
||||
return signature->description;
|
||||
}
|
||||
|
||||
void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_SIGNATURE *signature,
|
||||
void *arg),
|
||||
|
@ -5,6 +5,7 @@
|
||||
EVP_ASYM_CIPHER_fetch, EVP_ASYM_CIPHER_free, EVP_ASYM_CIPHER_up_ref,
|
||||
EVP_ASYM_CIPHER_number, EVP_ASYM_CIPHER_is_a, EVP_ASYM_CIPHER_provider,
|
||||
EVP_ASYM_CIPHER_do_all_provided, EVP_ASYM_CIPHER_names_do_all,
|
||||
EVP_ASYM_CIPHER_description,
|
||||
EVP_ASYM_CIPHER_gettable_ctx_params, EVP_ASYM_CIPHER_settable_ctx_params
|
||||
- Functions to manage EVP_ASYM_CIPHER algorithm objects
|
||||
|
||||
@ -26,6 +27,7 @@ EVP_ASYM_CIPHER_gettable_ctx_params, EVP_ASYM_CIPHER_settable_ctx_params
|
||||
int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
const char *EVP_ASYM_CIPHER_description(const EVP_ASYM_CIPHER *cipher);
|
||||
const OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER *cip);
|
||||
const OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER *cip);
|
||||
|
||||
@ -64,6 +66,10 @@ I<cipher>.
|
||||
EVP_ASYM_CIPHER_names_do_all() traverses all names for I<cipher>, and calls
|
||||
I<fn> with each name and I<data>.
|
||||
|
||||
EVP_ASYM_CIPHER_description() returns a description of the I<cipher>, meant
|
||||
for display and human consumption. The description is at the discretion of
|
||||
the I<cipher> implementation.
|
||||
|
||||
EVP_ASYM_CIPHER_gettable_ctx_params() and EVP_ASYM_CIPHER_settable_ctx_params()
|
||||
return a constant B<OSSL_PARAM> array that describes the names and types of key
|
||||
parameters that can be retrieved or set by a key encryption algorithm using
|
||||
|
@ -12,7 +12,8 @@ EVP_MD_CTX_settable_params, EVP_MD_CTX_gettable_params,
|
||||
EVP_MD_CTX_set_flags, EVP_MD_CTX_clear_flags, EVP_MD_CTX_test_flags,
|
||||
EVP_Digest, EVP_DigestInit_ex2, EVP_DigestInit_ex, EVP_DigestInit,
|
||||
EVP_DigestUpdate, EVP_DigestFinal_ex, EVP_DigestFinalXOF, EVP_DigestFinal,
|
||||
EVP_MD_is_a, EVP_MD_name, EVP_MD_number, EVP_MD_names_do_all, EVP_MD_provider,
|
||||
EVP_MD_is_a, EVP_MD_name, EVP_MD_description, EVP_MD_number,
|
||||
EVP_MD_names_do_all, EVP_MD_provider,
|
||||
EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size, EVP_MD_block_size, EVP_MD_flags,
|
||||
EVP_MD_CTX_name,
|
||||
EVP_MD_CTX_md, EVP_MD_CTX_type, EVP_MD_CTX_size, EVP_MD_CTX_block_size,
|
||||
@ -64,6 +65,7 @@ EVP_MD_do_all_provided
|
||||
int EVP_MD_CTX_copy(EVP_MD_CTX *out, EVP_MD_CTX *in);
|
||||
|
||||
const char *EVP_MD_name(const EVP_MD *md);
|
||||
const char *EVP_MD_description(const EVP_MD *md);
|
||||
int EVP_MD_number(const EVP_MD *md);
|
||||
int EVP_MD_is_a(const EVP_MD *md, const char *name);
|
||||
int EVP_MD_names_do_all(const EVP_MD *md,
|
||||
@ -314,6 +316,11 @@ recommended to use EVP_MD_names_do_all() instead.
|
||||
Traverses all names for the I<md>, and calls I<fn> with each name and
|
||||
I<data>. This is only useful with fetched B<EVP_MD>s.
|
||||
|
||||
=item EVP_MD_description()
|
||||
|
||||
Returns a description of the digest, meant for display and human consumption.
|
||||
The description is at the discretion of the digest implementation.
|
||||
|
||||
=item EVP_MD_provider()
|
||||
|
||||
Returns an B<OSSL_PROVIDER> pointer to the provider that implements the given
|
||||
|
@ -34,6 +34,7 @@ EVP_get_cipherbynid,
|
||||
EVP_get_cipherbyobj,
|
||||
EVP_CIPHER_is_a,
|
||||
EVP_CIPHER_name,
|
||||
EVP_CIPHER_description,
|
||||
EVP_CIPHER_number,
|
||||
EVP_CIPHER_names_do_all,
|
||||
EVP_CIPHER_provider,
|
||||
@ -143,6 +144,7 @@ EVP_CIPHER_do_all_provided
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
const char *EVP_CIPHER_name(const EVP_CIPHER *cipher);
|
||||
const char *EVP_CIPHER_description(const EVP_CIPHER *cipher);
|
||||
const OSSL_PROVIDER *EVP_CIPHER_provider(const EVP_CIPHER *cipher);
|
||||
int EVP_CIPHER_block_size(const EVP_CIPHER *e);
|
||||
int EVP_CIPHER_key_length(const EVP_CIPHER *e);
|
||||
@ -408,6 +410,10 @@ EVP_CIPHER_names_do_all() traverses all names for the I<cipher>, and
|
||||
calls I<fn> with each name and I<data>. This is only useful with
|
||||
fetched B<EVP_CIPHER>s.
|
||||
|
||||
EVP_CIPHER_description() returns a description of the cipher, meant for
|
||||
display and human consumption. The description is at the discretion of the
|
||||
cipher implementation.
|
||||
|
||||
EVP_CIPHER_provider() returns an B<OSSL_PROVIDER> pointer to the provider
|
||||
that implements the given B<EVP_CIPHER>.
|
||||
|
||||
|
@ -6,7 +6,7 @@ EVP_KDF, EVP_KDF_fetch, EVP_KDF_free, EVP_KDF_up_ref,
|
||||
EVP_KDF_CTX, EVP_KDF_CTX_new, EVP_KDF_CTX_free, EVP_KDF_CTX_dup,
|
||||
EVP_KDF_CTX_reset, EVP_KDF_derive,
|
||||
EVP_KDF_CTX_get_kdf_size, EVP_KDF_provider, EVP_KDF_CTX_kdf, EVP_KDF_is_a,
|
||||
EVP_KDF_number, EVP_KDF_name, EVP_KDF_names_do_all,
|
||||
EVP_KDF_number, EVP_KDF_name, EVP_KDF_names_do_all, EVP_KDF_description,
|
||||
EVP_KDF_CTX_get_params, EVP_KDF_CTX_set_params, EVP_KDF_do_all_provided,
|
||||
EVP_KDF_get_params, EVP_KDF_gettable_params,
|
||||
EVP_KDF_gettable_ctx_params, EVP_KDF_settable_ctx_params,
|
||||
@ -34,6 +34,7 @@ EVP_KDF_CTX_gettable_params, EVP_KDF_CTX_settable_params - EVP KDF routines
|
||||
int EVP_KDF_number(const EVP_KDF *kdf);
|
||||
int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name);
|
||||
const char *EVP_KDF_name(const EVP_KDF *kdf);
|
||||
const char *EVP_KDF_description(const EVP_KDF *kdf);
|
||||
const OSSL_PROVIDER *EVP_KDF_provider(const EVP_KDF *kdf);
|
||||
void EVP_KDF_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_KDF *kdf, void *arg),
|
||||
@ -179,6 +180,10 @@ recommended to use EVP_KDF_names_do_all() instead.
|
||||
EVP_KDF_names_do_all() traverses all names for I<kdf>, and calls
|
||||
I<fn> with each name and I<data>.
|
||||
|
||||
EVP_KDF_description() returns a description of the I<kdf>, meant for display
|
||||
and human consumption. The description is at the discretion of the I<kdf>
|
||||
implementation.
|
||||
|
||||
=head1 PARAMETERS
|
||||
|
||||
The standard parameter names are:
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
EVP_KEM_fetch, EVP_KEM_free, EVP_KEM_up_ref,
|
||||
EVP_KEM_number, EVP_KEM_is_a, EVP_KEM_provider,
|
||||
EVP_KEM_do_all_provided, EVP_KEM_names_do_all,
|
||||
EVP_KEM_do_all_provided, EVP_KEM_names_do_all, EVP_KEM_description,
|
||||
EVP_KEM_gettable_ctx_params, EVP_KEM_settable_ctx_params
|
||||
- Functions to manage EVP_KEM algorithm objects
|
||||
|
||||
@ -23,6 +23,7 @@ EVP_KEM_gettable_ctx_params, EVP_KEM_settable_ctx_params
|
||||
void (*fn)(EVP_KEM *kem, void *arg), void *arg);
|
||||
int EVP_KEM_names_do_all(const EVP_KEM *kem,
|
||||
void (*fn)(const char *name, void *data), void *data);
|
||||
const char *EVP_KEM_description(const EVP_KEM *kem);
|
||||
const OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem);
|
||||
const OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem);
|
||||
|
||||
@ -58,6 +59,10 @@ EVP_KEM_number() returns the internal dynamic number assigned to I<kem>.
|
||||
EVP_KEM_names_do_all() traverses all names for I<kem>, and calls I<fn> with
|
||||
each name and I<data>.
|
||||
|
||||
EVP_KEM_description() returns a description of the I<kem>, meant for display
|
||||
and human consumption. The description is at the discretion of the I<kem>
|
||||
implementation.
|
||||
|
||||
EVP_KEM_gettable_ctx_params() and EVP_KEM_settable_ctx_params() return
|
||||
a constant B<OSSL_PARAM> array that describes the names and types of key
|
||||
parameters that can be retrieved or set by a key encapsulation algorithm using
|
||||
|
@ -5,6 +5,7 @@
|
||||
EVP_KEYEXCH_fetch, EVP_KEYEXCH_free, EVP_KEYEXCH_up_ref, EVP_KEYEXCH_provider,
|
||||
EVP_KEYEXCH_is_a, EVP_KEYEXCH_do_all_provided,
|
||||
EVP_KEYEXCH_number, EVP_KEYEXCH_names_do_all,
|
||||
EVP_KEYEXCH_description,
|
||||
EVP_KEYEXCH_gettable_ctx_params, EVP_KEYEXCH_settable_ctx_params
|
||||
- Functions to manage EVP_KEYEXCH algorithm objects
|
||||
|
||||
@ -25,6 +26,7 @@ EVP_KEYEXCH_gettable_ctx_params, EVP_KEYEXCH_settable_ctx_params
|
||||
int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *exchange,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
const char *EVP_KEYEXCH_description(const EVP_KEYEXCH *keyexch);
|
||||
const OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch);
|
||||
const OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch);
|
||||
|
||||
@ -56,6 +58,10 @@ the I<exchange>.
|
||||
EVP_KEYEXCH_names_do_all() traverses all names for the I<exchange>, and
|
||||
calls I<fn> with each name and I<data>.
|
||||
|
||||
EVP_KEYEXCH_description() returns a description of the I<keyexch>, meant for
|
||||
display and human consumption. The description is at the discretion of the
|
||||
I<keyexch> implementation.
|
||||
|
||||
EVP_KEYEXCH_do_all_provided() traverses all key exchange implementations by
|
||||
all activated providers in the library context I<libctx>, and for each
|
||||
of the implementations, calls I<fn> with the implementation method and
|
||||
|
@ -9,6 +9,7 @@ EVP_KEYMGMT_free,
|
||||
EVP_KEYMGMT_provider,
|
||||
EVP_KEYMGMT_is_a,
|
||||
EVP_KEYMGMT_number,
|
||||
EVP_KEYMGMT_description,
|
||||
EVP_KEYMGMT_get0_first_name,
|
||||
EVP_KEYMGMT_do_all_provided,
|
||||
EVP_KEYMGMT_names_do_all,
|
||||
@ -31,6 +32,7 @@ EVP_KEYMGMT_gen_settable_params
|
||||
int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name);
|
||||
int EVP_KEYMGMT_number(const EVP_KEYMGMT *keymgmt);
|
||||
const char *EVP_KEYMGMT_get0_first_name(const EVP_KEYMGMT *keymgmt);
|
||||
const char *EVP_KEYMGMT_description(const EVP_KEYMGMT *keymgmt);
|
||||
|
||||
void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_KEYMGMT *keymgmt, void *arg),
|
||||
@ -81,6 +83,10 @@ not be freed by the caller.
|
||||
EVP_KEYMGMT_names_do_all() traverses all names for the I<keymgmt>, and
|
||||
calls I<fn> with each name and I<data>.
|
||||
|
||||
EVP_KEYMGMT_description() returns a description of the I<keymgmt>, meant for
|
||||
display and human consumption. The description is at the discretion of the
|
||||
I<keymgmt> implementation.
|
||||
|
||||
EVP_KEYMGMT_do_all_provided() traverses all key keymgmt implementations by
|
||||
all activated providers in the library context I<libctx>, and for each
|
||||
of the implementations, calls I<fn> with the implementation method and
|
||||
@ -125,6 +131,9 @@ EVP_KEYMGMT_number() returns an integer.
|
||||
|
||||
EVP_KEYMGMT_get0_first_name() returns the name that is found or NULL on error.
|
||||
|
||||
EVP_KEYMGMT_description() returns a pointer to a decription, or NULL if
|
||||
there isn't one.
|
||||
|
||||
EVP_KEYMGMT_gettable_params(), EVP_KEYMGMT_settable_params() and
|
||||
EVP_KEYMGMT_gen_settable_params() return a constant B<OSSL_PARAM> array or
|
||||
NULL on error.
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
=head1 NAME
|
||||
|
||||
EVP_MAC, EVP_MAC_fetch, EVP_MAC_up_ref, EVP_MAC_free,
|
||||
EVP_MAC_is_a, EVP_MAC_number, EVP_MAC_name, EVP_MAC_names_do_all,
|
||||
EVP_MAC, EVP_MAC_fetch, EVP_MAC_up_ref, EVP_MAC_free, EVP_MAC_is_a,
|
||||
EVP_MAC_number, EVP_MAC_name, EVP_MAC_names_do_all, EVP_MAC_description,
|
||||
EVP_MAC_provider, EVP_MAC_get_params, EVP_MAC_gettable_params,
|
||||
EVP_MAC_CTX, EVP_MAC_CTX_new, EVP_MAC_CTX_free, EVP_MAC_CTX_dup,
|
||||
EVP_MAC_CTX_mac, EVP_MAC_CTX_get_params, EVP_MAC_CTX_set_params,
|
||||
@ -29,6 +29,7 @@ EVP_MAC_do_all_provided - EVP MAC routines
|
||||
int EVP_MAC_names_do_all(const EVP_MAC *mac,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
const char *EVP_MAC_description(const EVP_MAC *mac);
|
||||
const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
|
||||
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
|
||||
|
||||
@ -205,6 +206,10 @@ recommended to use EVP_MAC_names_do_all() instead.
|
||||
EVP_MAC_names_do_all() traverses all names for I<mac>, and calls
|
||||
I<fn> with each name and I<data>.
|
||||
|
||||
EVP_MAC_description() returns a description of the I<mac>, meant for display
|
||||
and human consumption. The description is at the discretion of the mac
|
||||
implementation.
|
||||
|
||||
=head1 PARAMETERS
|
||||
|
||||
Parameters are identified by name as strings, and have an expected
|
||||
|
@ -7,6 +7,7 @@ EVP_PKEY_new,
|
||||
EVP_PKEY_up_ref,
|
||||
EVP_PKEY_dup,
|
||||
EVP_PKEY_free,
|
||||
EVP_PKEY_description,
|
||||
EVP_PKEY_new_raw_private_key_ex,
|
||||
EVP_PKEY_new_raw_private_key,
|
||||
EVP_PKEY_new_raw_public_key_ex,
|
||||
@ -27,6 +28,7 @@ EVP_PKEY_get_raw_public_key
|
||||
int EVP_PKEY_up_ref(EVP_PKEY *key);
|
||||
EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *key);
|
||||
void EVP_PKEY_free(EVP_PKEY *key);
|
||||
const char *EVP_PKEY_description(const EVP_PKEY *key);
|
||||
|
||||
EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx,
|
||||
const char *keytype,
|
||||
@ -90,6 +92,10 @@ a raw key, otherwise the duplication will fail.
|
||||
EVP_PKEY_free() decrements the reference count of I<key> and, if the reference
|
||||
count is zero, frees it up. If I<key> is NULL, nothing is done.
|
||||
|
||||
EVP_PKEY_description() returns a description of the type of B<EVP_PKEY>, meant
|
||||
for display and human consumption. The description is at the discretion of the
|
||||
key type implementation.
|
||||
|
||||
EVP_PKEY_new_raw_private_key_ex() allocates a new B<EVP_PKEY>. Unless an
|
||||
engine should be used for the key type, a provider for the key is found using
|
||||
the library context I<libctx> and the property query string I<propq>. The
|
||||
|
@ -4,11 +4,12 @@
|
||||
|
||||
EVP_RAND, EVP_RAND_fetch, EVP_RAND_free, EVP_RAND_up_ref, EVP_RAND_CTX,
|
||||
EVP_RAND_CTX_new, EVP_RAND_CTX_free, EVP_RAND_instantiate,
|
||||
EVP_RAND_uninstantiate, EVP_RAND_generate, EVP_RAND_reseed,
|
||||
EVP_RAND_nonce, EVP_RAND_enable_locking,
|
||||
EVP_RAND_verify_zeroization, EVP_RAND_strength, EVP_RAND_state,
|
||||
EVP_RAND_uninstantiate, EVP_RAND_generate, EVP_RAND_reseed, EVP_RAND_nonce,
|
||||
EVP_RAND_enable_locking, EVP_RAND_verify_zeroization, EVP_RAND_strength,
|
||||
EVP_RAND_state,
|
||||
EVP_RAND_provider, EVP_RAND_CTX_rand, EVP_RAND_is_a, EVP_RAND_number,
|
||||
EVP_RAND_name, EVP_RAND_names_do_all, EVP_RAND_get_ctx_params,
|
||||
EVP_RAND_name, EVP_RAND_names_do_all, EVP_RAND_description,
|
||||
EVP_RAND_get_ctx_params,
|
||||
EVP_RAND_set_ctx_params, EVP_RAND_do_all_provided, EVP_RAND_get_params,
|
||||
EVP_RAND_gettable_ctx_params, EVP_RAND_settable_ctx_params,
|
||||
EVP_RAND_CTX_gettable_params, EVP_RAND_CTX_settable_params,
|
||||
@ -39,6 +40,7 @@ EVP_RAND_STATE_ERROR - EVP RAND routines
|
||||
const OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx);
|
||||
int EVP_RAND_number(const EVP_RAND *rand);
|
||||
const char *EVP_RAND_name(const EVP_RAND *rand);
|
||||
const char *EVP_RAND_description(const EVP_RAND *rand);
|
||||
int EVP_RAND_is_a(const EVP_RAND *rand, const char *name);
|
||||
const OSSL_PROVIDER *EVP_RAND_provider(const EVP_RAND *rand);
|
||||
void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
@ -248,6 +250,10 @@ EVP_RAND_name() returns the canonical name of I<rand>.
|
||||
EVP_RAND_names_do_all() traverses all names for I<rand>, and calls
|
||||
I<fn> with each name and I<data>.
|
||||
|
||||
EVP_RAND_description() returns a description of the rand, meant for display
|
||||
and human consumption. The description is at the discretion of the rand
|
||||
implementation.
|
||||
|
||||
EVP_RAND_verify_zeroization() confirms if the internal DRBG state is
|
||||
currently zeroed. This is used by the FIPS provider to support the mandatory
|
||||
self tests.
|
||||
|
@ -5,6 +5,7 @@
|
||||
EVP_SIGNATURE_fetch, EVP_SIGNATURE_free, EVP_SIGNATURE_up_ref,
|
||||
EVP_SIGNATURE_number, EVP_SIGNATURE_is_a, EVP_SIGNATURE_provider,
|
||||
EVP_SIGNATURE_do_all_provided, EVP_SIGNATURE_names_do_all,
|
||||
EVP_SIGNATURE_description,
|
||||
EVP_SIGNATURE_gettable_ctx_params, EVP_SIGNATURE_settable_ctx_params
|
||||
- Functions to manage EVP_SIGNATURE algorithm objects
|
||||
|
||||
@ -26,6 +27,7 @@ EVP_SIGNATURE_gettable_ctx_params, EVP_SIGNATURE_settable_ctx_params
|
||||
int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
const char *EVP_SIGNATURE_description(const EVP_SIGNATURE *signature);
|
||||
const OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig);
|
||||
const OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig);
|
||||
|
||||
@ -64,6 +66,10 @@ I<signature>.
|
||||
EVP_SIGNATURE_names_do_all() traverses all names for I<signature>, and calls
|
||||
I<fn> with each name and I<data>.
|
||||
|
||||
EVP_SIGNATURE_description() returns a description of the I<signature>, meant
|
||||
for display and human consumption. The description is at the discretion of
|
||||
the I<signature> implementation.
|
||||
|
||||
EVP_SIGNATURE_gettable_ctx_params() and EVP_SIGNATURE_settable_ctx_params()
|
||||
return a constant B<OSSL_PARAM> array that describes the names and types of key
|
||||
parameters that can be retrieved or set by a signature algorithm using
|
||||
|
@ -526,6 +526,7 @@ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
|
||||
int EVP_MD_type(const EVP_MD *md);
|
||||
# define EVP_MD_nid(e) EVP_MD_type(e)
|
||||
const char *EVP_MD_name(const EVP_MD *md);
|
||||
const char *EVP_MD_description(const EVP_MD *md);
|
||||
int EVP_MD_number(const EVP_MD *md);
|
||||
int EVP_MD_is_a(const EVP_MD *md, const char *name);
|
||||
int EVP_MD_names_do_all(const EVP_MD *md,
|
||||
@ -557,6 +558,7 @@ void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx);
|
||||
|
||||
int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
|
||||
const char *EVP_CIPHER_name(const EVP_CIPHER *cipher);
|
||||
const char *EVP_CIPHER_description(const EVP_CIPHER *cipher);
|
||||
int EVP_CIPHER_number(const EVP_CIPHER *cipher);
|
||||
int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name);
|
||||
int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher,
|
||||
@ -1151,6 +1153,7 @@ int EVP_MAC_up_ref(EVP_MAC *mac);
|
||||
void EVP_MAC_free(EVP_MAC *mac);
|
||||
int EVP_MAC_number(const EVP_MAC *mac);
|
||||
const char *EVP_MAC_name(const EVP_MAC *mac);
|
||||
const char *EVP_MAC_description(const EVP_MAC *mac);
|
||||
int EVP_MAC_is_a(const EVP_MAC *mac, const char *name);
|
||||
const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
|
||||
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
|
||||
@ -1188,6 +1191,7 @@ int EVP_RAND_up_ref(EVP_RAND *rand);
|
||||
void EVP_RAND_free(EVP_RAND *rand);
|
||||
int EVP_RAND_number(const EVP_RAND *rand);
|
||||
const char *EVP_RAND_name(const EVP_RAND *rand);
|
||||
const char *EVP_RAND_description(const EVP_RAND *md);
|
||||
int EVP_RAND_is_a(const EVP_RAND *rand, const char *name);
|
||||
const OSSL_PROVIDER *EVP_RAND_provider(const EVP_RAND *rand);
|
||||
int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]);
|
||||
@ -1320,6 +1324,7 @@ EVP_PKEY *EVP_PKEY_new(void);
|
||||
int EVP_PKEY_up_ref(EVP_PKEY *pkey);
|
||||
EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey);
|
||||
void EVP_PKEY_free(EVP_PKEY *pkey);
|
||||
const char *EVP_PKEY_description(const EVP_PKEY *pkey);
|
||||
|
||||
EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,
|
||||
long length);
|
||||
@ -1671,6 +1676,7 @@ int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt);
|
||||
void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt);
|
||||
const OSSL_PROVIDER *EVP_KEYMGMT_provider(const EVP_KEYMGMT *keymgmt);
|
||||
const char *EVP_KEYMGMT_get0_first_name(const EVP_KEYMGMT *keymgmt);
|
||||
const char *EVP_KEYMGMT_description(const EVP_KEYMGMT *keymgmt);
|
||||
int EVP_KEYMGMT_number(const EVP_KEYMGMT *keymgmt);
|
||||
int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name);
|
||||
void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
@ -1755,6 +1761,7 @@ EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
|
||||
const char *properties);
|
||||
int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name);
|
||||
int EVP_SIGNATURE_number(const EVP_SIGNATURE *signature);
|
||||
const char *EVP_SIGNATURE_description(const EVP_SIGNATURE *signature);
|
||||
void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_SIGNATURE *signature,
|
||||
void *data),
|
||||
@ -1772,6 +1779,7 @@ EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
|
||||
const char *properties);
|
||||
int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char *name);
|
||||
int EVP_ASYM_CIPHER_number(const EVP_ASYM_CIPHER *cipher);
|
||||
const char *EVP_ASYM_CIPHER_description(const EVP_ASYM_CIPHER *cipher);
|
||||
void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_ASYM_CIPHER *cipher,
|
||||
void *arg),
|
||||
@ -1789,6 +1797,7 @@ EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
|
||||
const char *properties);
|
||||
int EVP_KEM_is_a(const EVP_KEM *wrap, const char *name);
|
||||
int EVP_KEM_number(const EVP_KEM *wrap);
|
||||
const char *EVP_KEM_description(const EVP_KEM *wrap);
|
||||
void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_KEM *wrap, void *arg), void *arg);
|
||||
int EVP_KEM_names_do_all(const EVP_KEM *wrap,
|
||||
@ -2045,6 +2054,7 @@ EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
|
||||
OSSL_PROVIDER *EVP_KEYEXCH_provider(const EVP_KEYEXCH *exchange);
|
||||
int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name);
|
||||
int EVP_KEYEXCH_number(const EVP_KEYEXCH *keyexch);
|
||||
const char *EVP_KEYEXCH_description(const EVP_KEYEXCH *keyexch);
|
||||
void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||
void (*fn)(EVP_KEYEXCH *keyexch, void *data),
|
||||
void *data);
|
||||
|
@ -34,6 +34,7 @@ EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf);
|
||||
void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx);
|
||||
EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src);
|
||||
int EVP_KDF_number(const EVP_KDF *kdf);
|
||||
const char *EVP_KDF_description(const EVP_KDF *kdf);
|
||||
int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name);
|
||||
const char *EVP_KDF_name(const EVP_KDF *kdf);
|
||||
const OSSL_PROVIDER *EVP_KDF_provider(const EVP_KDF *kdf);
|
||||
|
@ -5336,3 +5336,14 @@ EVP_PKEY_derive_set_peer_ex ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_DECODER_description ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_ENCODER_description ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_STORE_LOADER_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_MD_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_CIPHER_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_MAC_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_RAND_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_KEYMGMT_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_SIGNATURE_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_ASYM_CIPHER_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_KEM_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_KEYEXCH_description ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_KDF_description ? 3_0_0 EXIST::FUNCTION:
|
||||
|
Loading…
x
Reference in New Issue
Block a user