xref: /freebsd/secure/lib/libcrypto/man/man3/EVP_set_default_properties.3 (revision f1c4c3daccbaf3820f0e2224de53df12fc952fcc)
-*- mode: troff; coding: utf-8 -*-
Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)

Standard preamble:
========================================================================
..
..
.. \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
. ds C` "" . ds C' "" 'br\} . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. .nr rF 0 . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF ========================================================================

Title "EVP_SET_DEFAULT_PROPERTIES 3ossl"
EVP_SET_DEFAULT_PROPERTIES 3ossl 2025-07-01 3.5.1 OpenSSL
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
NAME
EVP_set_default_properties, EVP_default_properties_enable_fips, EVP_default_properties_is_fips_enabled, EVP_get1_default_properties \- manage default properties for future algorithm fetches
SYNOPSIS
Header "SYNOPSIS" .Vb 1 #include <openssl/evp.h> \& 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_is_fips_enabled(OSSL_LIB_CTX *libctx); .Ve
DESCRIPTION
Header "DESCRIPTION" \fBEVP_set_default_properties() sets the default properties for all future EVP algorithm fetches, implicit as well as explicit. See "ALGORITHM FETCHING" in crypto\|(7) for information about implicit and explicit fetching.

EVP_set_default_properties stores the properties given with the string \fIpropq among the EVP data that's been stored in the library context given with libctx (NULL signifies the default library context).

Any previous default property for the specified library context will be dropped.

\fBEVP_get1_default_properties() gets the default properties set for all future EVP algorithm fetches, implicit as well as explicit, for the specific library context.

\fBEVP_default_properties_enable_fips() sets the 'fips=yes' to be a default property if enable is non zero, otherwise it clears 'fips' from the default property query for the given libctx. It merges the fips default property query with any existing query strings that have been set via EVP_set_default_properties().

\fBEVP_default_properties_is_fips_enabled() indicates if 'fips=yes' is a default property for the given libctx.

NOTES
Header "NOTES" \fBEVP_set_default_properties() and EVP_default_properties_enable_fips() are not thread safe. They are intended to be called only during the initialisation phase of a libctx.

\fBEVP_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.

"RETURN VALUES"
Header "RETURN VALUES" \fBEVP_set_default_properties() and EVP_default_properties_enable_fips() return 1 on success, or 0 on failure. An error is placed on the error stack if a failure occurs.

\fBEVP_default_properties_is_fips_enabled() returns 1 if the 'fips=yes' default property is set for the given libctx, otherwise it returns 0.

\fBEVP_get1_default_properties() returns allocated memory that must be freed by \fBOPENSSL_free\|(3) on success and NULL on failure.

"SEE ALSO"
Header "SEE ALSO" \fBEVP_MD_fetch\|(3)
HISTORY
Header "HISTORY" The functions EVP_set_default_properties(), EVP_default_properties_enable_fips(), \fBEVP_default_properties_is_fips_enabled() were added in OpenSSL 3.0.

The function EVP_get1_default_properties() was added in OpenSSL 3.5.

COPYRIGHT
Header "COPYRIGHT" Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.