OSSL_TRACE(INIT, "OPENSSL_cleanup: engine_cleanup_int()\n");
engine_cleanup_int();
#endif
+
+#ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_TRACE(INIT, "OPENSSL_cleanup: ossl_store_cleanup_int()\n");
ossl_store_cleanup_int();
+#endif
OSSL_TRACE(INIT, "OPENSSL_cleanup: openssl_ctx_default_deinit()\n");
openssl_ctx_default_deinit();
* https://www.openssl.org/source/license.html
*/
+/* We need to use some STORE deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
#include <stdio.h>
#include "internal/cryptlib.h"
#include <openssl/buffer.h>
NULL, NULL)) == NULL)
goto err;
#ifndef OPENSSL_NO_SECURE_HEAP
- if (try_secure) {
+# ifndef OPENSSL_NO_DEPRECATED_3_0
+ if (try_secure) {
int on = 1;
if (!OSSL_STORE_ctrl(ctx, OSSL_STORE_C_USE_SECMEM, &on))
goto err;
}
+# endif
#endif
while (!OSSL_STORE_eof(ctx)
LIBS=../../libcrypto
SOURCE[../../libcrypto]=\
- store_err.c store_lib.c store_result.c store_strings.c store_meth.c \
- store_init.c store_register.c
+ store_err.c store_lib.c store_result.c store_strings.c store_meth.c
+
+IF[{- !$disabled{'deprecated-3.0'} -}]
+ SOURCE[../../libcrypto]=store_init.c store_register.c
+ENDIF
#include <string.h>
#include <assert.h>
+/* We need to use some STORE deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
#include "e_os.h"
#include <openssl/crypto.h>
*/
for (i = 0; loader_ctx == NULL && i < schemes_n; i++) {
OSSL_TRACE1(STORE, "Looking up scheme %s\n", schemes[i]);
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if ((loader = ossl_store_get0_loader_int(schemes[i])) != NULL) {
if (loader->open_with_libctx != NULL)
loader_ctx = loader->open_with_libctx(loader, uri, libctx, propq,
else
loader_ctx = loader->open(loader, uri, ui_method, ui_data);
}
+#endif
if (loader == NULL
&& (fetched_loader =
OSSL_STORE_LOADER_fetch(schemes[i], libctx, propq)) != NULL) {
post_process, post_process_data);
}
+#ifndef OPENSSL_NO_DEPRECATED_3_0
int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ...)
{
va_list args;
*/
return 1;
}
+#endif
int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type)
{
OPENSSL_free(name_der);
BN_free(number);
} else {
+#ifndef OPENSSL_NO_DEPRECATED_3_0
/* legacy loader section */
if (ctx->loader->find == NULL) {
ERR_raise(ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION);
return 0;
}
ret = ctx->loader->find(ctx->loader_ctx, search);
+#endif
}
return ret;
}
v = load_data.v;
}
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if (ctx->fetched_loader == NULL)
v = ctx->loader->load(ctx->loader_ctx,
ctx->pwdata._.ui_method.ui_method,
ctx->pwdata._.ui_method.ui_method_data);
+#endif
}
if (ctx->post_process != NULL && v != NULL) {
if (ctx->fetched_loader != NULL)
ret = ctx->error_flag;
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if (ctx->fetched_loader == NULL)
ret = ctx->loader->error(ctx->loader_ctx);
+#endif
return ret;
}
if (ctx->fetched_loader != NULL)
ret = ctx->loader->p_eof(ctx->loader_ctx);
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if (ctx->fetched_loader == NULL)
ret = ctx->loader->eof(ctx->loader_ctx);
+#endif
return ret;
}
if (ctx->fetched_loader != NULL)
ret = ctx->loader->p_close(ctx->loader_ctx);
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if (ctx->fetched_loader == NULL)
ret = ctx->loader->close(ctx->loader_ctx);
+#endif
sk_OSSL_STORE_INFO_pop_free(ctx->cached_info, OSSL_STORE_INFO_free);
OSSL_STORE_LOADER_free(ctx->fetched_loader);
break;
}
}
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if (ctx->fetched_loader == NULL) {
OSSL_STORE_SEARCH tmp_search;
tmp_search.search_type = search_type;
ret = ctx->loader->find(NULL, &tmp_search);
}
+#endif
return ret;
}
scheme = "file";
OSSL_TRACE1(STORE, "Looking up scheme %s\n", scheme);
+#ifndef OPENSSL_NO_DEPRECATED_3_0
if ((loader = ossl_store_get0_loader_int(scheme)) != NULL)
loader_ctx = loader->attach(loader, bp, libctx, propq,
ui_method, ui_data);
+#endif
if (loader == NULL
&& (fetched_loader =
OSSL_STORE_LOADER_fetch(scheme, libctx, propq)) != NULL) {
/* loader stuff */
struct ossl_store_loader_st {
+#ifndef OPENSSL_NO_DEPRECATED_3_0
/* Legacy stuff */
const char *scheme;
ENGINE *engine;
OSSL_STORE_error_fn error;
OSSL_STORE_close_fn close;
OSSL_STORE_open_with_libctx_fn open_with_libctx;
+#endif
/* Provider stuff */
OSSL_PROVIDER *prov;
const OSSL_STORE_LOADER *ossl_store_get0_loader_int(const char *scheme);
void ossl_store_destroy_loaders_int(void);
+#ifdef OPENSSL_NO_DEPRECATED_3_0
+/* struct ossl_store_loader_ctx_st is defined differently by each loader */
+typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX;
+#endif
+
/*-
* OSSL_STORE_CTX stuff
* ---------------------
void (*fn)(const char *name, void *data),
void *data);
-Legacy functions, still present to support B<OSSL_STORE_LOADER>s provided
-by B<ENGINE>:
+Deprecated since OpenSSL 3.0, can be hidden entirely by defining
+B<OPENSSL_API_COMPAT> with a suitable version value, see
+L<openssl_user_macros(7)>:
OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme);
const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER
OSSL_STORE_LOADER_names_do_all() traverses all names for the given
I<loader>, and calls I<fn> with each name and I<data>.
-=head2 Legacy Types and Functions
+=head2 Legacy Types and Functions (deprecated)
These functions help applications and engines to create loaders for
-schemes they support. These are all discouraged in favour of provider
-implementations, see L<provider-storemgmt(7)>.
+schemes they support. These are all deprecated and discouraged in favour of
+provider implementations, see L<provider-storemgmt(7)>.
B<OSSL_STORE_LOADER_CTX> is a type template, to be defined by each loader
using C<struct ossl_store_loader_ctx_st { ... }>.
OSSL_STORE_LOADER_free(), OSSL_STORE_register_loader(),
OSSL_STORE_unregister_loader(), OSSL_STORE_open_fn(), OSSL_STORE_ctrl_fn(),
OSSL_STORE_load_fn(), OSSL_STORE_eof_fn() and OSSL_STORE_close_fn()
-were added in OpenSSL 1.1.1.
+were added in OpenSSL 1.1.1, and became deprecated in OpenSSL 3.0.
=head1 COPYRIGHT
OSSL_STORE_SEARCH_by_issuer_serial(),
OSSL_STORE_SEARCH_by_key_fingerprint(),
and OSSL_STORE_SEARCH_by_alias()
-return a B<OSSL_STORE_SEARCH> pointer on success, or B<NULL> on failure.
+return a B<OSSL_STORE_SEARCH> pointer on success, or NULL on failure.
OSSL_STORE_SEARCH_get_type() returns the criterion type of the given
B<OSSL_STORE_SEARCH>.
There is no error value.
OSSL_STORE_SEARCH_get0_name() returns a B<X509_NAME> pointer on success,
-or B<NULL> when the given B<OSSL_STORE_SEARCH> was of a different type.
+or NULL when the given B<OSSL_STORE_SEARCH> was of a different type.
OSSL_STORE_SEARCH_get0_serial() returns a B<ASN1_INTEGER> pointer on success,
-or B<NULL> when the given B<OSSL_STORE_SEARCH> was of a different type.
+or NULL when the given B<OSSL_STORE_SEARCH> was of a different type.
OSSL_STORE_SEARCH_get0_bytes() returns a B<const unsigned char> pointer and
-sets B<*length> to the strings length on success, or B<NULL> when the given
+sets I<*length> to the strings length on success, or NULL when the given
B<OSSL_STORE_SEARCH> was of a different type.
OSSL_STORE_SEARCH_get0_string() returns a B<const char> pointer on success,
-or B<NULL> when the given B<OSSL_STORE_SEARCH> was of a different type.
+or NULL when the given B<OSSL_STORE_SEARCH> was of a different type.
OSSL_STORE_SEARCH_get0_digest() returns a B<const EVP_MD> pointer.
-B<NULL> is a valid value and means that the store loader default will
+NULL is a valid value and means that the store loader default will
be used when applicable.
=head1 SEE ALSO
const UI_METHOD *ui_method, void *ui_data,
OSSL_STORE_post_process_info_fn post_process,
void *post_process_data);
- int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */);
+
OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx);
int OSSL_STORE_eof(OSSL_STORE_CTX *ctx);
int OSSL_STORE_error(OSSL_STORE_CTX *ctx);
int OSSL_STORE_close(OSSL_STORE_CTX *ctx);
+Deprecated since OpenSSL 3.0, can be hidden entirely by defining
+B<OPENSSL_API_COMPAT> with a suitable version value, see
+L<openssl_user_macros(7)>:
+
+ int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */);
+
=head1 DESCRIPTION
These functions help the application to fetch supported objects (see
L<OSSL_STORE_INFO(3)/SUPPORTED OBJECTS> for information on which those are)
-from a given URI (see L</SUPPORTED SCHEMES> for more information on
-the supported URI schemes).
+from a given URI.
The general method to do so is to "open" the URI using OSSL_STORE_open(),
read each available and supported object using OSSL_STORE_load() as long as
OSSL_STORE_eof() hasn't been reached, and finish it off with OSSL_STORE_close().
B<OSSL_STORE_CTX>, as well as the B<OSSL_STORE_CTX> itself.
If I<ctx> is NULL it does nothing.
-=head1 SUPPORTED SCHEMES
-
-The basic supported scheme is B<file:>.
-Any other scheme can be added dynamically, using
-OSSL_STORE_register_loader().
-
=head1 NOTES
A string without a scheme prefix (that is, a non-URI string) is
OSSL_STORE_open_with_libctx() was added in OpenSSL 3.0.
+OSSL_STORE_ctrl() and OSSL_STORE_vctrl() were deprecated in OpenSSL 3.0.
+
=head1 COPYRIGHT
Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
* determine which loader is used), except for common commands (see below).
* Each command takes different arguments.
*/
-int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */);
-int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args);
+DEPRECATEDIN_3_0(int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd,
+ ... /* args */))
+DEPRECATEDIN_3_0(int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd,
+ va_list args))
+
+# ifndef OPENSSL_NO_DEPRECATED_3_0
/*
* Common ctrl commands that different loaders may choose to support.
/* Where custom commands start */
# define OSSL_STORE_C_CUSTOM_START 100
+# endif
+
/*
* Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE
* functionality, given a context.
* scheme.
*/
+# ifndef OPENSSL_NO_DEPRECATED_3_0
+
/* struct ossl_store_loader_ctx_st is defined differently by each loader */
typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX;
typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)
typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx);
typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx);
-OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme);
-int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader,
- OSSL_STORE_open_fn open_function);
-int OSSL_STORE_LOADER_set_open_with_libctx
- (OSSL_STORE_LOADER *loader,
- OSSL_STORE_open_with_libctx_fn open_with_libctx_function);
-int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader,
- OSSL_STORE_attach_fn attach_function);
-int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader,
- OSSL_STORE_ctrl_fn ctrl_function);
-int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,
- OSSL_STORE_expect_fn expect_function);
-int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,
- OSSL_STORE_find_fn find_function);
-int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader,
- OSSL_STORE_load_fn load_function);
-int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader,
- OSSL_STORE_eof_fn eof_function);
-int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader,
- OSSL_STORE_error_fn error_function);
-int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader,
- OSSL_STORE_close_fn close_function);
-
-const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader);
-const char * OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader);
-
-int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader);
-OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme);
+# endif
+
+DEPRECATEDIN_3_0(OSSL_STORE_LOADER *OSSL_STORE_LOADER_new
+ (ENGINE *e, const char *scheme))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_open
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_open_fn open_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_open_with_libctx
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_open_with_libctx_fn open_with_libctx_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_attach
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_attach_fn attach_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_ctrl
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_ctrl_fn ctrl_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_expect
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_expect_fn expect_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_find
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_find_fn find_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_load
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_load_fn load_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_eof
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_eof_fn eof_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_error
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_error_fn error_function))
+DEPRECATEDIN_3_0(int OSSL_STORE_LOADER_set_close
+ (OSSL_STORE_LOADER *loader,
+ OSSL_STORE_close_fn close_function))
+
+DEPRECATEDIN_3_0(const ENGINE *OSSL_STORE_LOADER_get0_engine
+ (const OSSL_STORE_LOADER *loader))
+DEPRECATEDIN_3_0(const char * OSSL_STORE_LOADER_get0_scheme
+ (const OSSL_STORE_LOADER *loader))
+
+DEPRECATEDIN_3_0(int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader))
+DEPRECATEDIN_3_0(OSSL_STORE_LOADER *OSSL_STORE_unregister_loader
+ (const char *scheme))
/*-
* Functions to list STORE loaders
* -------------------------------
*/
-int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER
- *loader, void *do_arg),
- void *do_arg);
+DEPRECATEDIN_3_0(int OSSL_STORE_do_all_loaders
+ (void (*do_function)(const OSSL_STORE_LOADER *loader,
+ void *do_arg),
+ void *do_arg))
# ifdef __cplusplus
}
ASN1_TIME_to_tm 4243 3_0_0 EXIST::FUNCTION:
ASN1_TIME_set_string_X509 4244 3_0_0 EXIST::FUNCTION:
OCSP_resp_get1_id 4245 3_0_0 EXIST::FUNCTION:OCSP
-OSSL_STORE_register_loader 4246 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_error 4247 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_register_loader 4246 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_LOADER_set_error 4247 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_INFO_get0_PKEY 4248 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get_type 4249 3_0_0 EXIST::FUNCTION:
ERR_load_OSSL_STORE_strings 4250 3_0_0 EXIST::FUNCTION:
OSSL_STORE_LOADER_free 4251 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get1_PKEY 4252 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_free 4253 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_eof 4255 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_new 4256 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_eof 4255 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_LOADER_new 4256 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_INFO_get0_CERT 4257 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_close 4258 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_close 4258 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_INFO_new_PARAMS 4259 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_new_PKEY 4260 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get1_PARAMS 4261 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get0_PARAMS 4265 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_type_string 4266 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get1_NAME 4267 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_load 4268 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_get0_scheme 4269 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_load 4268 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_LOADER_get0_scheme 4269 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_open 4270 3_0_0 EXIST::FUNCTION:
OSSL_STORE_close 4271 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_new_CERT 4272 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get0_CRL 4273 3_0_0 EXIST::FUNCTION:
OSSL_STORE_load 4274 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get0_NAME 4275 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_unregister_loader 4276 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_unregister_loader 4276 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_INFO_new_CRL 4277 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_new_NAME 4278 3_0_0 EXIST::FUNCTION:
OSSL_STORE_eof 4279 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_open 4280 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_ctrl 4281 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_ctrl 4282 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_open 4280 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_LOADER_set_ctrl 4281 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_ctrl 4282 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_INFO_get0_NAME_description 4283 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_set0_NAME_description 4284 3_0_0 EXIST::FUNCTION:
OSSL_STORE_INFO_get1_NAME_description 4285 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_do_all_loaders 4286 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_get0_engine 4287 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_do_all_loaders 4286 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
+OSSL_STORE_LOADER_get0_engine 4287 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OPENSSL_fork_prepare 4288 3_0_0 EXIST:UNIX:FUNCTION:
OPENSSL_fork_parent 4289 3_0_0 EXIST:UNIX:FUNCTION:
OPENSSL_fork_child 4290 3_0_0 EXIST:UNIX:FUNCTION:
EVP_sha512_224 4429 3_0_0 EXIST::FUNCTION:
OCSP_basic_sign_ctx 4430 3_0_0 EXIST::FUNCTION:OCSP
RAND_DRBG_bytes 4431 3_0_0 NOEXIST::FUNCTION:
-OSSL_STORE_vctrl 4433 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_vctrl 4433 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_SEARCH_by_alias 4434 3_0_0 EXIST::FUNCTION:
BIO_bind 4435 3_0_0 EXIST::FUNCTION:SOCK
-OSSL_STORE_LOADER_set_expect 4436 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_expect 4436 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_expect 4437 3_0_0 EXIST::FUNCTION:
OSSL_STORE_SEARCH_by_key_fingerprint 4438 3_0_0 EXIST::FUNCTION:
OSSL_STORE_SEARCH_get0_serial 4439 3_0_0 EXIST::FUNCTION:
OSSL_STORE_SEARCH_by_issuer_serial 4446 3_0_0 EXIST::FUNCTION:
OSSL_STORE_SEARCH_get0_name 4447 3_0_0 EXIST::FUNCTION:
X509_get0_authority_key_id 4448 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_find 4449 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_find 4449 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_SEARCH_free 4450 3_0_0 EXIST::FUNCTION:
OSSL_STORE_SEARCH_get0_digest 4451 3_0_0 EXIST::FUNCTION:
RAND_DRBG_set_reseed_defaults 4452 3_0_0 NOEXIST::FUNCTION:
OSSL_PARAM_get_time_t ? 3_0_0 EXIST::FUNCTION:
OSSL_PARAM_set_time_t ? 3_0_0 EXIST::FUNCTION:
OSSL_STORE_attach ? 3_0_0 EXIST::FUNCTION:
-OSSL_STORE_LOADER_set_attach ? 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_attach ? 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen ? 3_0_0 EXIST::FUNCTION:RSA
EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md ? 3_0_0 EXIST::FUNCTION:RSA
EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name ? 3_0_0 EXIST::FUNCTION:RSA
PEM_read_PUBKEY_ex ? 3_0_0 EXIST::FUNCTION:STDIO
PEM_read_bio_Parameters_ex ? 3_0_0 EXIST::FUNCTION:
EC_GROUP_new_from_params ? 3_0_0 EXIST::FUNCTION:EC
-OSSL_STORE_LOADER_set_open_with_libctx ? 3_0_0 EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_open_with_libctx ? 3_0_0 EXIST::FUNCTION:DEPRECATEDIN_3_0
OSSL_STORE_LOADER_fetch ? 3_0_0 EXIST::FUNCTION:
OSSL_STORE_LOADER_up_ref ? 3_0_0 EXIST::FUNCTION:
OSSL_STORE_LOADER_provider ? 3_0_0 EXIST::FUNCTION: