EVP_get_default_properties - documentation

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25434)
This commit is contained in:
Dmitry Belyavskiy 2024-09-11 16:02:38 +02:00 committed by Pauli
parent 54fb2fd013
commit 41b51bf6bc
1 changed files with 19 additions and 3 deletions

View File

@ -3,14 +3,15 @@
=head1 NAME =head1 NAME
EVP_set_default_properties, EVP_default_properties_enable_fips, EVP_set_default_properties, EVP_default_properties_enable_fips,
EVP_default_properties_is_fips_enabled EVP_default_properties_is_fips_enabled, EVP_get1_default_properties
- Set default properties for future algorithm fetches - manage default properties for future algorithm fetches
=head1 SYNOPSIS =head1 SYNOPSIS
#include <openssl/evp.h> #include <openssl/evp.h>
int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq); int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq);
char *EVP_get1_default_properties(OSSL_LIB_CTX *libctx);
int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable); int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable);
int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx); int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx);
@ -28,6 +29,10 @@ given with I<libctx> (NULL signifies the default library context).
Any previous default property for the specified library context will Any previous default property for the specified library context will
be dropped. be dropped.
EVP_get1_default_properties() gets the default properties set for all future EVP
algorithm fetches, implicit as well as explicit, for the specific library
context.
EVP_default_properties_enable_fips() sets the 'fips=yes' to be a default property EVP_default_properties_enable_fips() sets the 'fips=yes' to be a default property
if I<enable> is non zero, otherwise it clears 'fips' from the default property if I<enable> is non zero, otherwise it clears 'fips' from the default property
query for the given I<libctx>. It merges the fips default property query with any query for the given I<libctx>. It merges the fips default property query with any
@ -42,6 +47,10 @@ EVP_set_default_properties() and EVP_default_properties_enable_fips() are not
thread safe. They are intended to be called only during the initialisation thread safe. They are intended to be called only during the initialisation
phase of a I<libctx>. phase of a I<libctx>.
EVP_get1_default_properties() is not thread safe. The application must ensure
that the context reference is valid and default fetching properties are not
being modified by a different thread.
=head1 RETURN VALUES =head1 RETURN VALUES
EVP_set_default_properties() and EVP_default_properties_enable_fips() return 1 EVP_set_default_properties() and EVP_default_properties_enable_fips() return 1
@ -51,13 +60,20 @@ failure occurs.
EVP_default_properties_is_fips_enabled() returns 1 if the 'fips=yes' default EVP_default_properties_is_fips_enabled() returns 1 if the 'fips=yes' default
property is set for the given I<libctx>, otherwise it returns 0. property is set for the given I<libctx>, otherwise it returns 0.
EVP_get1_default_properties() returns allocated memory that must be freed by
L<OPENSSL_free(3)> on success and NULL on failure.
=head1 SEE ALSO =head1 SEE ALSO
L<EVP_MD_fetch(3)> L<EVP_MD_fetch(3)>
=head1 HISTORY =head1 HISTORY
The functions described here were added in OpenSSL 3.0. The functions EVP_set_default_properties(), EVP_default_properties_enable_fips(),
EVP_default_properties_is_fips_enabled() were added in OpenSSL 3.0.
The function EVP_get1_default_properties() was added in OpenSSL 3.5.
=head1 COPYRIGHT =head1 COPYRIGHT