Browse Source

STORE: Deprecate legacy / ENGINE functions

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12587)
Richard Levitte 3 years ago
parent
commit
a1447076be

+ 3 - 0
crypto/init.c

@@ -412,8 +412,11 @@ void OPENSSL_cleanup(void)
     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();

+ 6 - 1
crypto/pem/pem_pkey.c

@@ -7,6 +7,9 @@
  * 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>
@@ -58,11 +61,13 @@ static EVP_PKEY *pem_read_bio_key(BIO *bp, EVP_PKEY **x,
                                  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)

+ 5 - 2
crypto/store/build.info

@@ -1,4 +1,7 @@
 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

+ 21 - 0
crypto/store/store_lib.c

@@ -11,6 +11,9 @@
 #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>
@@ -80,6 +83,7 @@ OSSL_STORE_open_with_libctx(const char *uri,
      */
     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,
@@ -87,6 +91,7 @@ OSSL_STORE_open_with_libctx(const char *uri,
             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) {
@@ -186,6 +191,7 @@ OSSL_STORE_CTX *OSSL_STORE_open(const char *uri,
                                        post_process, post_process_data);
 }
 
+#ifndef OPENSSL_NO_DEPRECATED_3_0
 int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ...)
 {
     va_list args;
@@ -229,6 +235,7 @@ int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args)
      */
     return 1;
 }
+#endif
 
 int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type)
 {
@@ -333,12 +340,14 @@ int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search)
         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;
@@ -382,10 +391,12 @@ OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx)
             }
             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) {
@@ -424,8 +435,10 @@ int OSSL_STORE_error(OSSL_STORE_CTX *ctx)
 
     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;
 }
 
@@ -435,8 +448,10 @@ int OSSL_STORE_eof(OSSL_STORE_CTX *ctx)
 
     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;
 }
 
@@ -450,8 +465,10 @@ static int ossl_store_close_it(OSSL_STORE_CTX *ctx)
 
     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);
@@ -769,6 +786,7 @@ int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type)
             break;
         }
     }
+#ifndef OPENSSL_NO_DEPRECATED_3_0
     if (ctx->fetched_loader == NULL) {
         OSSL_STORE_SEARCH tmp_search;
 
@@ -777,6 +795,7 @@ int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type)
         tmp_search.search_type = search_type;
         ret = ctx->loader->find(NULL, &tmp_search);
     }
+#endif
     return ret;
 }
 
@@ -907,9 +926,11 @@ OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bp, const char *scheme,
         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) {

+ 7 - 0
crypto/store/store_local.h

@@ -80,6 +80,7 @@ OSSL_STORE_LOADER *ossl_store_unregister_loader_int(const char *scheme);
 
 /* loader stuff */
 struct ossl_store_loader_st {
+#ifndef OPENSSL_NO_DEPRECATED_3_0
     /* Legacy stuff */
     const char *scheme;
     ENGINE *engine;
@@ -93,6 +94,7 @@ struct ossl_store_loader_st {
     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;
@@ -116,6 +118,11 @@ DEFINE_LHASH_OF(OSSL_STORE_LOADER);
 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
  *  ---------------------

+ 7 - 6
doc/man3/OSSL_STORE_LOADER.pod

@@ -52,8 +52,9 @@ unregister STORE loaders for different URI schemes
                                      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
@@ -146,11 +147,11 @@ I<data> as arguments.
 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 { ... }>.
@@ -366,7 +367,7 @@ OSSL_STORE_LOADER_set_eof(), OSSL_STORE_LOADER_set_close(),
 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
 

+ 6 - 6
doc/man3/OSSL_STORE_SEARCH.pod

@@ -139,27 +139,27 @@ OSSL_STORE_SEARCH_by_name(),
 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

+ 10 - 9
doc/man3/OSSL_STORE_open.pod

@@ -27,18 +27,23 @@ OSSL_STORE_error, OSSL_STORE_close
                              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().
@@ -110,12 +115,6 @@ by OSSL_STORE_open() and frees all other information that was stored in the
 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
@@ -171,6 +170,8 @@ was introduced in OpenSSL 1.1.1h.
 
 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.

+ 57 - 33
include/openssl/store.h

@@ -69,8 +69,12 @@ OSSL_STORE_open_with_libctx(const char *uri,
  * 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.
@@ -80,6 +84,8 @@ int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args);
 /* 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.
@@ -271,6 +277,8 @@ void OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader,
  *  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)
@@ -297,42 +305,58 @@ typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx);
 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
 }

+ 18 - 18
util/libcrypto.num

@@ -4154,18 +4154,18 @@ ERR_load_strings_const                  4242	3_0_0	EXIST::FUNCTION:
 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:
@@ -4175,26 +4175,26 @@ OSSL_STORE_INFO_get1_CERT               4264	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:
@@ -4333,10 +4333,10 @@ EVP_sha512_256                          4428	3_0_0	EXIST::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:
@@ -4349,7 +4349,7 @@ OSSL_STORE_SEARCH_get0_string           4445	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:
@@ -5126,7 +5126,7 @@ OSSL_PARAM_construct_time_t             ?	3_0_0	EXIST::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
@@ -5272,7 +5272,7 @@ PEM_read_bio_PUBKEY_ex                  ?	3_0_0	EXIST::FUNCTION:
 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: