1=pod
2
3=head1 NAME
4
5EVP_set_default_properties, EVP_default_properties_enable_fips,
6EVP_default_properties_is_fips_enabled
7- Set default properties for future algorithm fetches
8
9=head1 SYNOPSIS
10
11 #include <openssl/evp.h>
12
13 int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq);
14 int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable);
15 int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx);
16
17=head1 DESCRIPTION
18
19EVP_set_default_properties() sets the default properties for all
20future EVP algorithm fetches, implicit as well as explicit. See
21L<crypto(7)/ALGORITHM FETCHING> for information about implicit and explicit
22fetching.
23
24EVP_set_default_properties stores the properties given with the string
25I<propq> among the EVP data that's been stored in the library context
26given with I<libctx> (NULL signifies the default library context).
27
28Any previous default property for the specified library context will
29be dropped.
30
31EVP_default_properties_enable_fips() sets the 'fips=yes' to be a default property
32if I<enable> is non zero, otherwise it clears 'fips' from the default property
33query for the given I<libctx>. It merges the fips default property query with any
34existing query strings that have been set via EVP_set_default_properties().
35
36EVP_default_properties_is_fips_enabled() indicates if 'fips=yes' is a default
37property for the given I<libctx>.
38
39=head1 RETURN VALUES
40
41EVP_set_default_properties() and  EVP_default_properties_enable_fips() return 1
42on success, or 0 on failure. An error is placed on the error stack if a
43failure occurs.
44
45EVP_default_properties_is_fips_enabled() returns 1 if the 'fips=yes' default
46property is set for the given I<libctx>, otherwise it returns 0.
47
48=head1 SEE ALSO
49
50L<EVP_MD_fetch(3)>
51
52=head1 HISTORY
53
54The functions described here were added in OpenSSL 3.0.
55
56=head1 COPYRIGHT
57
58Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
59
60Licensed under the Apache License 2.0 (the "License").  You may not use
61this file except in compliance with the License.  You can obtain a copy
62in the file LICENSE in the source distribution or at
63L<https://www.openssl.org/source/license.html>.
64
65=cut
66