EVP_SET_DEFAULT_PROPERTIES(3ossl)
π NAME π
okay so bestie, this is the manual page for EVP_SET_DEFAULT_PROPERTIES(3ossl), and it is literally about managing default properties for future algorithm fetches. The squad is:
EVP_set_default_propertiesEVP_default_properties_enable_fipsEVP_default_properties_is_fips_enabledEVP_get1_default_properties
β¦and yes, all four of them manage default properties for future algorithm fetches. periodt β¨
π SYNOPSIS π
bestie, start with this header:
#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);
πΈ DESCRIPTION πΈ
EVP_set_default_properties() sets the default properties for all future EVP algorithm fetches, implicit as well as explicit. If you need the full tea on implicit vs explicit fetching, see "ALGORITHM FETCHING" in crypto(7). π«Ά
It stores the properties given with the string propq 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. not me evicting the old default π
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 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(). π§
EVP_default_properties_is_fips_enabled() indicates if fips=yes is a default property for the given libctx. vibe check: fips or not? π
π₯ NOTES π₯
β οΈ thread-safety warning, bestie:EVP_set_default_properties()andEVP_default_properties_enable_fips()are not thread safe. They are intended to be called only during the initialisation phase of alibctx.
β οΈ also: 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. donβt let another thread mess with your defaults, fr π
π RETURN VALUES π
EVP_set_default_properties()andEVP_default_properties_enable_fips()return1on success, or0on failure. An error is placed on the error stack if a failure occurs. πEVP_default_properties_is_fips_enabled()returns1if thefips=yesdefault property is set for the givenlibctx, otherwise it returns0.EVP_get1_default_properties()returns allocated memory that must be freed byOPENSSL_free(3)on success andNULLon failure. free it, bestie, itβs not decorative π
π¦ SEE ALSO π¦
EVP_MD_fetch(3)β go read that too. iykyk π
π HISTORY π
- The functions
EVP_set_default_properties(),EVP_default_properties_enable_fips(),EVP_default_properties_is_fips_enabled()were added in OpenSSL3.0. iconic behavior π - The function
EVP_get1_default_properties()was added in OpenSSL3.5. periodt β¨
β COPYRIGHT β
okay legal bestie, hereβs the required text:
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>.
mwah π β this cutie is from OpenSSL 3.5.6, dated 2026-04-07. byeee π«Ά
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms