Browse Source

Modify the ERR init functions to use the internal ERR string loaders

This deprecates all the ERR_load_ functions, and moves their definition to
separate C source files that can easily be removed when those functions are
finally removed.

This also reduces include/openssl/kdferr.h to include cryptoerr_legacy.h,
moves the declaration of ERR_load_ERR_strings() from include/openssl/err.h
to include/openssl/cryptoerr_legacy.h, and finally removes the declaration
of ERR_load_DSO_strings(), which was entirely internal anyway.

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

+ 17 - 0
CHANGES.md

@@ -23,6 +23,23 @@ OpenSSL 3.0
 
 ### Changes between 1.1.1 and 3.0 [xx XXX xxxx]
 
+ * Deprecated all the libcrypto and libssl error string loading
+   functions: ERR_load_ASN1_strings(), ERR_load_ASYNC_strings(),
+   ERR_load_BIO_strings(), ERR_load_BN_strings(), ERR_load_BUF_strings(),
+   ERR_load_CMS_strings(), ERR_load_COMP_strings(), ERR_load_CONF_strings(),
+   ERR_load_CRYPTO_strings(), ERR_load_CT_strings(), ERR_load_DH_strings(),
+   ERR_load_DSA_strings(), ERR_load_EC_strings(), ERR_load_ENGINE_strings(),
+   ERR_load_ERR_strings(), ERR_load_EVP_strings(), ERR_load_KDF_strings(),
+   ERR_load_OBJ_strings(), ERR_load_OCSP_strings(), ERR_load_PEM_strings(),
+   ERR_load_PKCS12_strings(), ERR_load_PKCS7_strings(), ERR_load_RAND_strings(),
+   ERR_load_RSA_strings(), ERR_load_OSSL_STORE_strings(), ERR_load_TS_strings(),
+   ERR_load_UI_strings(), ERR_load_X509_strings(), ERR_load_X509V3_strings().
+
+   Calling these functions is not necessary since OpenSSL 1.1.0, as OpenSSL
+   now loads error strings automatically.
+
+   *Richard Levitte*
+
  * The functions SSL_CTX_set_tmp_dh_callback and SSL_set_tmp_dh_callback, as
    well as the macros SSL_CTX_set_tmp_dh() and SSL_set_tmp_dh() have been
    deprecated. These are used to set the Diffie-Hellman (DH) parameters that

+ 2 - 1
Configurations/unix-Makefile.tmpl

@@ -1083,7 +1083,8 @@ errors:
            include/openssl/sslerr.h
            include/openssl/tls1.h
            include/openssl/dtls1.h
-           include/openssl/srtp.h );
+           include/openssl/srtp.h
+           include/openssl/sslerr_legacy.h );
    my @cryptoheaders_tmpl =
        qw( include/internal/dso.h
            include/internal/o_dir.h

+ 1 - 0
NEWS.md

@@ -20,6 +20,7 @@ OpenSSL 3.0
 
 ### Major changes between OpenSSL 1.1.1 and OpenSSL 3.0 [under development]
 
+  * Deprecated the `ERR_load_` functions.
   * Remove the `RAND_DRBG` API.
   * Deprecated the `ENGINE` API.
   * Added `OSSL_LIB_CTX`, a libcrypto library context.

+ 1 - 1
crypto/err/build.info

@@ -1,3 +1,3 @@
 LIBS=../../libcrypto
 SOURCE[../../libcrypto]=\
-        err_blocks.c err.c err_all.c err_prn.c
+        err_blocks.c err.c err_all.c err_all_legacy.c err_prn.c

+ 3 - 3
crypto/err/err.c

@@ -237,7 +237,7 @@ static int err_load_strings(const ERR_STRING_DATA *str)
     return 1;
 }
 
-int ERR_load_ERR_strings(void)
+int err_load_ERR_strings_int(void)
 {
 #ifndef OPENSSL_NO_ERR
     if (!RUN_ONCE(&err_string_init, do_err_strings_init))
@@ -251,7 +251,7 @@ int ERR_load_ERR_strings(void)
 
 int ERR_load_strings(int lib, ERR_STRING_DATA *str)
 {
-    if (ERR_load_ERR_strings() == 0)
+    if (err_load_ERR_strings_int() == 0)
         return 0;
 
     err_patch(lib, str);
@@ -261,7 +261,7 @@ int ERR_load_strings(int lib, ERR_STRING_DATA *str)
 
 int ERR_load_strings_const(const ERR_STRING_DATA *str)
 {
-    if (ERR_load_ERR_strings() == 0)
+    if (err_load_ERR_strings_int() == 0)
         return 0;
     err_load_strings(str);
     return 1;

+ 71 - 69
crypto/err/err_all.c

@@ -8,105 +8,107 @@
  */
 
 #include <stdio.h>
-#include "crypto/err.h"
-#include <openssl/asn1err.h>
-#include <openssl/bnerr.h>
-#include <openssl/ecerr.h>
-#include <openssl/buffererr.h>
-#include <openssl/bioerr.h>
-#include <openssl/comperr.h>
-#include <openssl/rsaerr.h>
-#include <openssl/dherr.h>
-#include <openssl/dsaerr.h>
-#include <openssl/evperr.h>
-#include <openssl/objectserr.h>
-#include <openssl/pemerr.h>
-#include <openssl/pkcs7err.h>
-#include <openssl/x509err.h>
-#include <openssl/x509v3err.h>
-#include <openssl/conferr.h>
-#include <openssl/pkcs12err.h>
-#include <openssl/randerr.h>
-#include "internal/dso.h"
-#include <openssl/engineerr.h>
-#include <openssl/uierr.h>
-#include <openssl/httperr.h>
-#include <openssl/ocsperr.h>
 #include <openssl/err.h>
-#include <openssl/tserr.h>
-#include <openssl/cmserr.h>
-#include <openssl/crmferr.h>
-#include <openssl/cmperr.h>
-#include <openssl/cterr.h>
-#include <openssl/asyncerr.h>
-#include <openssl/storeerr.h>
-#include <openssl/esserr.h>
+#include "crypto/err.h"
+#include "crypto/cryptoerr.h"
+#include "crypto/asn1err.h"
+#include "crypto/bnerr.h"
+#include "crypto/ecerr.h"
+#include "crypto/buffererr.h"
+#include "crypto/bioerr.h"
+#include "crypto/comperr.h"
+#include "crypto/rsaerr.h"
+#include "crypto/dherr.h"
+#include "crypto/dsaerr.h"
+#include "crypto/evperr.h"
+#include "crypto/objectserr.h"
+#include "crypto/pemerr.h"
+#include "crypto/pkcs7err.h"
+#include "crypto/x509err.h"
+#include "crypto/x509v3err.h"
+#include "crypto/conferr.h"
+#include "crypto/pkcs12err.h"
+#include "crypto/randerr.h"
+#include "internal/dsoerr.h"
+#include "crypto/engineerr.h"
+#include "crypto/uierr.h"
+#include "crypto/httperr.h"
+#include "crypto/ocsperr.h"
+#include "crypto/tserr.h"
+#include "crypto/cmserr.h"
+#include "crypto/crmferr.h"
+#include "crypto/cmperr.h"
+#include "crypto/cterr.h"
+#include "crypto/asyncerr.h"
+#include "crypto/storeerr.h"
+#include "crypto/esserr.h"
 #include "internal/propertyerr.h"
 #include "prov/providercommonerr.h"
 
 int err_load_crypto_strings_int(void)
 {
-    if (
+    if (0
 #ifndef OPENSSL_NO_ERR
-        ERR_load_ERR_strings() == 0 ||    /* include error strings for SYSerr */
-        ERR_load_BN_strings() == 0 ||
+        || err_load_ERR_strings_int() == 0 /* include error strings for SYSerr */
+        || err_load_BN_strings_int() == 0
 # ifndef OPENSSL_NO_RSA
-        ERR_load_RSA_strings() == 0 ||
+        || err_load_RSA_strings_int() == 0
 # endif
 # ifndef OPENSSL_NO_DH
-        ERR_load_DH_strings() == 0 ||
+        || err_load_DH_strings_int() == 0
 # endif
-        ERR_load_EVP_strings() == 0 ||
-        ERR_load_BUF_strings() == 0 ||
-        ERR_load_OBJ_strings() == 0 ||
-        ERR_load_PEM_strings() == 0 ||
+        || err_load_EVP_strings_int() == 0
+        || err_load_BUF_strings_int() == 0
+        || err_load_OBJ_strings_int() == 0
+        || err_load_PEM_strings_int() == 0
 # ifndef OPENSSL_NO_DSA
-        ERR_load_DSA_strings() == 0 ||
+        || err_load_DSA_strings_int() == 0
 # endif
-        ERR_load_X509_strings() == 0 ||
-        ERR_load_ASN1_strings() == 0 ||
-        ERR_load_CONF_strings() == 0 ||
-        ERR_load_CRYPTO_strings() == 0 ||
+        || err_load_X509_strings_int() == 0
+        || err_load_ASN1_strings_int() == 0
+        || err_load_CONF_strings_int() == 0
+        || err_load_CRYPTO_strings_int() == 0
 # ifndef OPENSSL_NO_COMP
-        ERR_load_COMP_strings() == 0 ||
+        || err_load_COMP_strings_int() == 0
 # endif
 # ifndef OPENSSL_NO_EC
-        ERR_load_EC_strings() == 0 ||
+        || err_load_EC_strings_int() == 0
 # endif
-        /* skip ERR_load_SSL_strings() because it is not in this library */
-        ERR_load_BIO_strings() == 0 ||
-        ERR_load_PKCS7_strings() == 0 ||
-        ERR_load_X509V3_strings() == 0 ||
-        ERR_load_PKCS12_strings() == 0 ||
-        ERR_load_RAND_strings() == 0 ||
-        ERR_load_DSO_strings() == 0 ||
+        /* skip err_load_SSL_strings_int() because it is not in this library */
+        || err_load_BIO_strings_int() == 0
+        || err_load_PKCS7_strings_int() == 0
+        || err_load_X509V3_strings_int() == 0
+        || err_load_PKCS12_strings_int() == 0
+        || err_load_RAND_strings_int() == 0
+        || err_load_DSO_strings_int() == 0
 # ifndef OPENSSL_NO_TS
-        ERR_load_TS_strings() == 0 ||
+        || err_load_TS_strings_int() == 0
 # endif
 # ifndef OPENSSL_NO_ENGINE
-        ERR_load_ENGINE_strings() == 0 ||
+        || err_load_ENGINE_strings_int() == 0
 # endif
-        ERR_load_HTTP_strings() == 0 ||
+        || err_load_HTTP_strings_int() == 0
 # ifndef OPENSSL_NO_OCSP
-        ERR_load_OCSP_strings() == 0 ||
+        || err_load_OCSP_strings_int() == 0
 # endif
-        ERR_load_UI_strings() == 0 ||
+        || err_load_UI_strings_int() == 0
 # ifndef OPENSSL_NO_CMS
-        ERR_load_CMS_strings() == 0 ||
+        || err_load_CMS_strings_int() == 0
 # endif
 # ifndef OPENSSL_NO_CRMF
-        ERR_load_CRMF_strings() == 0 ||
-        ERR_load_CMP_strings() == 0 ||
+        || err_load_CRMF_strings_int() == 0
+        || err_load_CMP_strings_int() == 0
 # endif
 # ifndef OPENSSL_NO_CT
-        ERR_load_CT_strings() == 0 ||
+        || err_load_CT_strings_int() == 0
 # endif
-        ERR_load_ESS_strings() == 0 ||
-        ERR_load_ASYNC_strings() == 0 ||
+        || err_load_ESS_strings_int() == 0
+        || err_load_ASYNC_strings_int() == 0
+        || err_load_OSSL_STORE_strings_int() == 0
+        || err_load_PROP_strings_int() == 0
+        || err_load_PROV_strings_int() == 0
 #endif
-        ERR_load_OSSL_STORE_strings() == 0 ||
-        ERR_load_PROP_strings() == 0 ||
-        ERR_load_PROV_strings() == 0)
+        )
         return 0;
 
     return 1;

+ 101 - 0
crypto/err/err_all_legacy.c

@@ -0,0 +1,101 @@
+/*
+ * Copyright 2020 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
+ */
+
+/* This is the C source file where we include this header directly */
+#include <openssl/cryptoerr_legacy.h>
+
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+
+#include "crypto/err.h"
+#include "crypto/asn1err.h"
+#include "crypto/asyncerr.h"
+#include "crypto/bnerr.h"
+#include "crypto/buffererr.h"
+#include "crypto/bioerr.h"
+#include "crypto/cmserr.h"
+#include "crypto/comperr.h"
+#include "crypto/conferr.h"
+#include "crypto/cryptoerr.h"
+#include "crypto/cterr.h"
+#include "crypto/dherr.h"
+#include "crypto/dsaerr.h"
+#include "internal/dsoerr.h"
+#include "crypto/ecerr.h"
+#include "crypto/engineerr.h"
+#include "crypto/evperr.h"
+#include "crypto/httperr.h"
+#include "crypto/objectserr.h"
+#include "crypto/ocsperr.h"
+#include "crypto/pemerr.h"
+#include "crypto/pkcs12err.h"
+#include "crypto/pkcs7err.h"
+#include "crypto/randerr.h"
+#include "crypto/rsaerr.h"
+#include "crypto/storeerr.h"
+#include "crypto/tserr.h"
+#include "crypto/uierr.h"
+#include "crypto/x509err.h"
+#include "crypto/x509v3err.h"
+
+# define IMPLEMENT_LEGACY_ERR_LOAD(lib)         \
+    int ERR_load_##lib##_strings(void)          \
+    {                                           \
+        return err_load_##lib##_strings_int();  \
+    }
+
+# ifndef OPENSSL_NO_ERR
+IMPLEMENT_LEGACY_ERR_LOAD(ASN1)
+IMPLEMENT_LEGACY_ERR_LOAD(ASYNC)
+IMPLEMENT_LEGACY_ERR_LOAD(BIO)
+IMPLEMENT_LEGACY_ERR_LOAD(BN)
+IMPLEMENT_LEGACY_ERR_LOAD(BUF)
+#  ifndef OPENSSL_NO_CMS
+IMPLEMENT_LEGACY_ERR_LOAD(CMS)
+#  endif
+#  ifndef OPENSSL_NO_COMP
+IMPLEMENT_LEGACY_ERR_LOAD(COMP)
+#  endif
+IMPLEMENT_LEGACY_ERR_LOAD(CONF)
+IMPLEMENT_LEGACY_ERR_LOAD(CRYPTO)
+#  ifndef OPENSSL_NO_CT
+IMPLEMENT_LEGACY_ERR_LOAD(CT)
+#  endif
+#  ifndef OPENSSL_NO_DH
+IMPLEMENT_LEGACY_ERR_LOAD(DH)
+#  endif
+#  ifndef OPENSSL_NO_DSA
+IMPLEMENT_LEGACY_ERR_LOAD(DSA)
+#  endif
+#  ifndef OPENSSL_NO_EC
+IMPLEMENT_LEGACY_ERR_LOAD(EC)
+#  endif
+#  ifndef OPENSSL_NO_ENGINE
+IMPLEMENT_LEGACY_ERR_LOAD(ENGINE)
+#  endif
+IMPLEMENT_LEGACY_ERR_LOAD(ERR)
+IMPLEMENT_LEGACY_ERR_LOAD(EVP)
+IMPLEMENT_LEGACY_ERR_LOAD(OBJ)
+#  ifndef OPENSSL_NO_OCSP
+IMPLEMENT_LEGACY_ERR_LOAD(OCSP)
+#  endif
+IMPLEMENT_LEGACY_ERR_LOAD(PEM)
+IMPLEMENT_LEGACY_ERR_LOAD(PKCS12)
+IMPLEMENT_LEGACY_ERR_LOAD(PKCS7)
+IMPLEMENT_LEGACY_ERR_LOAD(RAND)
+IMPLEMENT_LEGACY_ERR_LOAD(RSA)
+IMPLEMENT_LEGACY_ERR_LOAD(OSSL_STORE)
+#  ifndef OPENSSL_NO_TS
+IMPLEMENT_LEGACY_ERR_LOAD(TS)
+#  endif
+IMPLEMENT_LEGACY_ERR_LOAD(UI)
+IMPLEMENT_LEGACY_ERR_LOAD(X509)
+IMPLEMENT_LEGACY_ERR_LOAD(X509V3)
+# endif
+
+#endif

+ 1 - 0
include/crypto/err.h

@@ -10,6 +10,7 @@
 #ifndef OSSL_CRYPTO_ERR_H
 # define OSSL_CRYPTO_ERR_H
 
+int err_load_ERR_strings_int(void);
 int err_load_crypto_strings_int(void);
 void err_cleanup(void);
 int err_shelve_state(void **);

+ 0 - 2
include/internal/dso.h

@@ -160,6 +160,4 @@ DSO *DSO_dsobyaddr(void *addr, int flags);
  */
 void *DSO_global_lookup(const char *name);
 
-int ERR_load_DSO_strings(void);
-
 #endif

+ 81 - 0
include/openssl/cryptoerr_legacy.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2020 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
+ */
+
+/*
+ * This header file preserves symbols from pre-3.0 OpenSSL.
+ * It should never be included directly, as it's already included
+ * by the public {lib}err.h headers, and since it will go away some
+ * time in the future.
+ */
+
+#ifndef OPENSSL_CRYPTOERR_LEGACY_H
+# define OPENSSL_CRYPTOERR_LEGACY_H
+# pragma once
+
+# include <openssl/macros.h>
+# include <openssl/symhacks.h>
+
+# ifdef  __cplusplus
+extern "C" {
+# endif
+
+# ifndef OPENSSL_NO_DEPRECATED_3_0
+OSSL_DEPRECATEDIN_3_0 int ERR_load_ASN1_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_ASYNC_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_BIO_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_BN_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_BUF_strings(void);
+#  ifndef OPENSSL_NO_CMS
+OSSL_DEPRECATEDIN_3_0 int ERR_load_CMS_strings(void);
+#  endif
+#  ifndef OPENSSL_NO_COMP
+OSSL_DEPRECATEDIN_3_0 int ERR_load_COMP_strings(void);
+#  endif
+OSSL_DEPRECATEDIN_3_0 int ERR_load_CONF_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_CRYPTO_strings(void);
+#  ifndef OPENSSL_NO_CT
+OSSL_DEPRECATEDIN_3_0 int ERR_load_CT_strings(void);
+#  endif
+#  ifndef OPENSSL_NO_DH
+OSSL_DEPRECATEDIN_3_0 int ERR_load_DH_strings(void);
+#  endif
+#  ifndef OPENSSL_NO_DSA
+OSSL_DEPRECATEDIN_3_0 int ERR_load_DSA_strings(void);
+#  endif
+#  ifndef OPENSSL_NO_EC
+OSSL_DEPRECATEDIN_3_0 int ERR_load_EC_strings(void);
+#  endif
+#  ifndef OPENSSL_NO_ENGINE
+OSSL_DEPRECATEDIN_3_0 int ERR_load_ENGINE_strings(void);
+#  endif
+OSSL_DEPRECATEDIN_3_0 int ERR_load_ERR_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_EVP_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_KDF_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_OBJ_strings(void);
+#  ifndef OPENSSL_NO_OCSP
+OSSL_DEPRECATEDIN_3_0 int ERR_load_OCSP_strings(void);
+#  endif
+OSSL_DEPRECATEDIN_3_0 int ERR_load_PEM_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS12_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_PKCS7_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_RAND_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_RSA_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_OSSL_STORE_strings(void);
+#  ifndef OPENSSL_NO_TS
+OSSL_DEPRECATEDIN_3_0 int ERR_load_TS_strings(void);
+#  endif
+OSSL_DEPRECATEDIN_3_0 int ERR_load_UI_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_X509_strings(void);
+OSSL_DEPRECATEDIN_3_0 int ERR_load_X509V3_strings(void);
+# endif
+
+# ifdef  __cplusplus
+}
+# endif
+#endif

+ 1 - 1
include/openssl/err.h.in

@@ -30,6 +30,7 @@ use OpenSSL::stackhash qw(generate_lhash_macros);
 # include <openssl/types.h>
 # include <openssl/bio.h>
 # include <openssl/lhash.h>
+# include <openssl/cryptoerr_legacy.h>
 
 #ifdef  __cplusplus
 extern "C" {
@@ -454,7 +455,6 @@ void ERR_add_error_mem_bio(const char *sep, BIO *bio);
 int ERR_load_strings(int lib, ERR_STRING_DATA *str);
 int ERR_load_strings_const(const ERR_STRING_DATA *str);
 int ERR_unload_strings(int lib, ERR_STRING_DATA *str);
-int ERR_load_ERR_strings(void);
 
 #ifndef OPENSSL_NO_DEPRECATED_1_1_0
 # define ERR_load_crypto_strings() \

+ 2 - 105
include/openssl/kdferr.h

@@ -1,6 +1,5 @@
 /*
- * Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2020 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
@@ -8,106 +7,4 @@
  * https://www.openssl.org/source/license.html
  */
 
-#ifndef OPENSSL_KDFERR_H
-# define OPENSSL_KDFERR_H
-# pragma once
-
-# include <openssl/opensslconf.h>
-# include <openssl/symhacks.h>
-
-
-# ifdef  __cplusplus
-extern "C"
-# endif
-DEPRECATEDIN_3_0(int ERR_load_KDF_strings(void))
-
-/*
- * KDF function codes.
- */
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-#  define KDF_F_HKDF_EXTRACT                               0
-#  define KDF_F_KDF_HKDF_DERIVE                            0
-#  define KDF_F_KDF_HKDF_NEW                               0
-#  define KDF_F_KDF_HKDF_SIZE                              0
-#  define KDF_F_KDF_MD2CTRL                                0
-#  define KDF_F_KDF_PBKDF2_CTRL                            0
-#  define KDF_F_KDF_PBKDF2_CTRL_STR                        0
-#  define KDF_F_KDF_PBKDF2_DERIVE                          0
-#  define KDF_F_KDF_PBKDF2_NEW                             0
-#  define KDF_F_KDF_SCRYPT_CTRL_STR                        0
-#  define KDF_F_KDF_SCRYPT_CTRL_UINT32                     0
-#  define KDF_F_KDF_SCRYPT_CTRL_UINT64                     0
-#  define KDF_F_KDF_SCRYPT_DERIVE                          0
-#  define KDF_F_KDF_SCRYPT_NEW                             0
-#  define KDF_F_KDF_SSHKDF_CTRL                            0
-#  define KDF_F_KDF_SSHKDF_CTRL_STR                        0
-#  define KDF_F_KDF_SSHKDF_DERIVE                          0
-#  define KDF_F_KDF_SSHKDF_NEW                             0
-#  define KDF_F_KDF_TLS1_PRF_CTRL_STR                      0
-#  define KDF_F_KDF_TLS1_PRF_DERIVE                        0
-#  define KDF_F_KDF_TLS1_PRF_NEW                           0
-#  define KDF_F_PBKDF2_DERIVE                              0
-#  define KDF_F_PBKDF2_SET_MEMBUF                          0
-#  define KDF_F_PKEY_HKDF_CTRL_STR                         0
-#  define KDF_F_PKEY_HKDF_DERIVE                           0
-#  define KDF_F_PKEY_HKDF_INIT                             0
-#  define KDF_F_PKEY_SCRYPT_CTRL_STR                       0
-#  define KDF_F_PKEY_SCRYPT_CTRL_UINT64                    0
-#  define KDF_F_PKEY_SCRYPT_DERIVE                         0
-#  define KDF_F_PKEY_SCRYPT_INIT                           0
-#  define KDF_F_PKEY_SCRYPT_SET_MEMBUF                     0
-#  define KDF_F_PKEY_TLS1_PRF_CTRL_STR                     0
-#  define KDF_F_PKEY_TLS1_PRF_DERIVE                       0
-#  define KDF_F_PKEY_TLS1_PRF_INIT                         0
-#  define KDF_F_SCRYPT_SET_MEMBUF                          0
-#  define KDF_F_SSKDF_CTRL_STR                             0
-#  define KDF_F_SSKDF_DERIVE                               0
-#  define KDF_F_SSKDF_MAC2CTRL                             0
-#  define KDF_F_SSKDF_NEW                                  0
-#  define KDF_F_SSKDF_SIZE                                 0
-#  define KDF_F_TLS1_PRF_ALG                               0
-#  define KDF_F_X942KDF_CTRL                               0
-#  define KDF_F_X942KDF_DERIVE                             0
-#  define KDF_F_X942KDF_HASH_KDM                           0
-#  define KDF_F_X942KDF_NEW                                0
-#  define KDF_F_X942KDF_SIZE                               0
-#  define KDF_F_X963KDF_DERIVE                             0
-# endif
-
-/*
- * KDF reason codes.
- */
-# ifndef OPENSSL_NO_DEPRECATED_3_0
-#  define KDF_R_BAD_ENCODING                               122
-#  define KDF_R_BAD_LENGTH                                 123
-#  define KDF_R_BOTH_MODE_AND_MODE_INT                     127
-#  define KDF_R_INAVLID_UKM_LEN                            124
-#  define KDF_R_INVALID_DIGEST                             100
-#  define KDF_R_INVALID_ITERATION_COUNT                    119
-#  define KDF_R_INVALID_KEY_LEN                            120
-#  define KDF_R_INVALID_MAC_TYPE                           116
-#  define KDF_R_INVALID_MODE                               128
-#  define KDF_R_INVALID_MODE_INT                           129
-#  define KDF_R_INVALID_SALT_LEN                           121
-#  define KDF_R_MISSING_CEK_ALG                            125
-#  define KDF_R_MISSING_ITERATION_COUNT                    109
-#  define KDF_R_MISSING_KEY                                104
-#  define KDF_R_MISSING_MESSAGE_DIGEST                     105
-#  define KDF_R_MISSING_PARAMETER                          101
-#  define KDF_R_MISSING_PASS                               110
-#  define KDF_R_MISSING_SALT                               111
-#  define KDF_R_MISSING_SECRET                             107
-#  define KDF_R_MISSING_SEED                               106
-#  define KDF_R_MISSING_SESSION_ID                         113
-#  define KDF_R_MISSING_TYPE                               114
-#  define KDF_R_MISSING_XCGHASH                            115
-#  define KDF_R_NOT_SUPPORTED                              118
-#  define KDF_R_UNKNOWN_PARAMETER_TYPE                     103
-#  define KDF_R_UNSUPPORTED_CEK_ALG                        126
-#  define KDF_R_UNSUPPORTED_MAC_TYPE                       117
-#  define KDF_R_VALUE_ERROR                                108
-#  define KDF_R_VALUE_MISSING                              102
-#  define KDF_R_WRONG_OUTPUT_BUFFER_SIZE                   112
-# endif
-
-#endif
+#include <openssl/cryptoerr_legacy.h>

+ 36 - 0
include/openssl/sslerr_legacy.h

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2020 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
+ */
+
+/*
+ * This header file preserves symbols from pre-3.0 OpenSSL.
+ * It should never be included directly, as it's already included
+ * by the public sslerr.h headers, and since it will go away some
+ * time in the future.
+ */
+
+#ifndef OPENSSL_SSLERR_LEGACY_H
+# define OPENSSL_SSLERR_LEGACY_H
+# pragma once
+
+# include <openssl/macros.h>
+# include <openssl/symhacks.h>
+
+# ifdef  __cplusplus
+extern "C" {
+# endif
+
+# ifndef OPENSSL_NO_DEPRECATED_3_0
+OSSL_DEPRECATEDIN_3_0 int ERR_load_SSL_strings(void);
+# endif
+
+# ifdef  __cplusplus
+}
+# endif
+#endif
+

+ 1 - 1
ssl/build.info

@@ -30,7 +30,7 @@ SOURCE[../libssl]=\
         ssl_lib.c ssl_cert.c ssl_sess.c \
         ssl_ciph.c ssl_stat.c ssl_rsa.c \
         ssl_asn1.c ssl_txt.c ssl_init.c ssl_conf.c  ssl_mcnf.c \
-        bio_ssl.c ssl_err.c tls_srp.c t1_trce.c ssl_utst.c \
+        bio_ssl.c ssl_err.c ssl_err_legacy.c tls_srp.c t1_trce.c ssl_utst.c \
         record/ssl3_buffer.c record/ssl3_record.c record/dtls1_bitmap.c \
         statem/statem.c record/ssl3_record_tls13.c record/tls_pad.c \
         tls_depr.c $KTLSSRC

+ 21 - 0
ssl/ssl_err_legacy.c

@@ -0,0 +1,21 @@
+/*
+ * Copyright 2020 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
+ */
+
+/* This is the C source file where we include this header directly */
+#include <openssl/sslerr_legacy.h>
+#include "sslerr.h"
+
+#ifndef OPENSSL_NO_DEPRECATED_3_0
+int ERR_load_SSL_strings(void)
+{
+    return err_load_SSL_strings_int();
+}
+#else
+NON_EMPTY_TRANSLATION_UNIT
+#endif

+ 3 - 2
ssl/ssl_init.c

@@ -14,6 +14,7 @@
 #include <openssl/evp.h>
 #include <openssl/trace.h>
 #include "ssl_local.h"
+#include "sslerr.h"
 #include "internal/thread_once.h"
 
 static int stopped;
@@ -53,8 +54,8 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings)
      * pulling in all the error strings during static linking
      */
 #if !defined(OPENSSL_NO_ERR) && !defined(OPENSSL_NO_AUTOERRINIT)
-    OSSL_TRACE(INIT, "ossl_init_load_ssl_strings: ERR_load_SSL_strings()\n");
-    ERR_load_SSL_strings();
+    OSSL_TRACE(INIT, "ossl_init_load_ssl_strings: err_load_SSL_strings_int()\n");
+    err_load_SSL_strings_int();
     ssl_strings_inited = 1;
 #endif
     return 1;

+ 30 - 36
util/libcrypto.num

@@ -150,7 +150,7 @@ i2d_IPAddressFamily                     152	3_0_0	EXIST::FUNCTION:RFC3779
 ENGINE_get_ctrl_function                153	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 X509_REVOKED_get_ext_count              154	3_0_0	EXIST::FUNCTION:
 BN_is_prime_fasttest_ex                 155	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
-ERR_load_PKCS12_strings                 156	3_0_0	EXIST::FUNCTION:
+ERR_load_PKCS12_strings                 156	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 EVP_sha384                              157	3_0_0	EXIST::FUNCTION:
 i2d_DHparams                            158	3_0_0	EXIST::FUNCTION:DH
 TS_VERIFY_CTX_set_store                 159	3_0_0	EXIST::FUNCTION:TS
@@ -203,7 +203,7 @@ SCT_set_version                         206	3_0_0	EXIST::FUNCTION:CT
 CMS_add1_ReceiptRequest                 207	3_0_0	EXIST::FUNCTION:CMS
 d2i_CRL_DIST_POINTS                     208	3_0_0	EXIST::FUNCTION:
 X509_CRL_INFO_free                      209	3_0_0	EXIST::FUNCTION:
-ERR_load_UI_strings                     210	3_0_0	EXIST::FUNCTION:
+ERR_load_UI_strings                     210	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 ERR_load_strings                        211	3_0_0	EXIST::FUNCTION:
 RSA_X931_hash_id                        212	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 EC_KEY_set_method                       213	3_0_0	EXIST::FUNCTION:EC
@@ -416,7 +416,7 @@ RIPEMD160                               423	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3
 CRYPTO_ocb128_setiv                     424	3_0_0	EXIST::FUNCTION:OCB
 X509_CRL_digest                         425	3_0_0	EXIST::FUNCTION:
 EVP_aes_128_cbc_hmac_sha1               426	3_0_0	EXIST::FUNCTION:
-ERR_load_CMS_strings                    427	3_0_0	EXIST::FUNCTION:CMS
+ERR_load_CMS_strings                    427	3_0_0	EXIST::FUNCTION:CMS,DEPRECATEDIN_3_0
 EVP_MD_CTX_md                           428	3_0_0	EXIST::FUNCTION:
 X509_REVOKED_get_ext                    429	3_0_0	EXIST::FUNCTION:
 d2i_RSA_PSS_PARAMS                      430	3_0_0	EXIST::FUNCTION:RSA
@@ -556,7 +556,7 @@ TLS_FEATURE_new                         567	3_0_0	EXIST::FUNCTION:
 RSA_get_default_method                  568	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 CRYPTO_cts128_encrypt_block             569	3_0_0	EXIST::FUNCTION:
 ASN1_digest                             570	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
-ERR_load_X509V3_strings                 571	3_0_0	EXIST::FUNCTION:
+ERR_load_X509V3_strings                 571	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 EVP_PKEY_meth_get_cleanup               572	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 d2i_X509                                574	3_0_0	EXIST::FUNCTION:
 a2i_ASN1_STRING                         575	3_0_0	EXIST::FUNCTION:
@@ -564,7 +564,7 @@ EC_GROUP_get_mont_data                  576	3_0_0	EXIST::FUNCTION:EC
 CMAC_CTX_copy                           577	3_0_0	EXIST::FUNCTION:CMAC,DEPRECATEDIN_3_0
 EVP_camellia_128_cfb128                 579	3_0_0	EXIST::FUNCTION:CAMELLIA
 DH_compute_key_padded                   580	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
-ERR_load_CONF_strings                   581	3_0_0	EXIST::FUNCTION:
+ERR_load_CONF_strings                   581	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 ESS_ISSUER_SERIAL_dup                   582	3_0_0	EXIST::FUNCTION:
 BN_GF2m_mod_exp_arr                     583	3_0_0	EXIST::FUNCTION:EC2M
 ASN1_UTF8STRING_free                    584	3_0_0	EXIST::FUNCTION:
@@ -606,7 +606,7 @@ DES_ede3_ofb64_encrypt                  620	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3
 EC_KEY_METHOD_get_compute_key           621	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,EC
 RC2_cfb64_encrypt                       622	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RC2
 EVP_EncryptFinal_ex                     623	3_0_0	EXIST::FUNCTION:
-ERR_load_RSA_strings                    624	3_0_0	EXIST::FUNCTION:
+ERR_load_RSA_strings                    624	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 CRYPTO_secure_malloc_done               625	3_0_0	EXIST::FUNCTION:
 RSA_OAEP_PARAMS_new                     626	3_0_0	EXIST::FUNCTION:RSA
 X509_NAME_free                          627	3_0_0	EXIST::FUNCTION:
@@ -870,7 +870,7 @@ X509_EXTENSION_set_object               891	3_0_0	EXIST::FUNCTION:
 EVP_CIPHER_CTX_get_app_data             892	3_0_0	EXIST::FUNCTION:
 CRL_DIST_POINTS_it                      893	3_0_0	EXIST::FUNCTION:
 DIRECTORYSTRING_new                     894	3_0_0	EXIST::FUNCTION:
-ERR_load_ASYNC_strings                  895	3_0_0	EXIST::FUNCTION:
+ERR_load_ASYNC_strings                  895	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 EVP_bf_cfb64                            896	3_0_0	EXIST::FUNCTION:BF
 PKCS7_sign_add_signer                   897	3_0_0	EXIST::FUNCTION:
 X509_print_ex                           898	3_0_0	EXIST::FUNCTION:
@@ -961,7 +961,7 @@ X509_PURPOSE_get_by_id                  985	3_0_0	EXIST::FUNCTION:
 X509_get1_ocsp                          986	3_0_0	EXIST::FUNCTION:
 ISSUING_DIST_POINT_free                 987	3_0_0	EXIST::FUNCTION:
 ASN1_UTCTIME_free                       988	3_0_0	EXIST::FUNCTION:
-ERR_load_TS_strings                     989	3_0_0	EXIST::FUNCTION:TS
+ERR_load_TS_strings                     989	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,TS
 BN_nist_mod_func                        990	3_0_0	EXIST::FUNCTION:
 OCSP_ONEREQ_new                         991	3_0_0	EXIST::FUNCTION:OCSP
 DSA_SIG_new                             992	3_0_0	EXIST::FUNCTION:DSA
@@ -1048,7 +1048,7 @@ EVP_PKEY_encrypt_old                    1074	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 OPENSSL_LH_free                         1075	3_0_0	EXIST::FUNCTION:
 DES_is_weak_key                         1076	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_PKEY_verify                         1077	3_0_0	EXIST::FUNCTION:
-ERR_load_BIO_strings                    1078	3_0_0	EXIST::FUNCTION:
+ERR_load_BIO_strings                    1078	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 BIO_nread                               1079	3_0_0	EXIST::FUNCTION:
 PEM_read_bio_RSAPrivateKey              1080	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 OBJ_nid2obj                             1081	3_0_0	EXIST::FUNCTION:
@@ -1064,7 +1064,7 @@ ENGINE_set_DSA                          1090	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 EC_KEY_METHOD_set_sign                  1091	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,EC
 d2i_TS_MSG_IMPRINT                      1092	3_0_0	EXIST::FUNCTION:TS
 X509_print_ex_fp                        1093	3_0_0	EXIST::FUNCTION:STDIO
-ERR_load_PEM_strings                    1094	3_0_0	EXIST::FUNCTION:
+ERR_load_PEM_strings                    1094	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 ENGINE_unregister_pkey_asn1_meths       1095	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 IPAddressFamily_free                    1096	3_0_0	EXIST::FUNCTION:RFC3779
 UI_method_get_prompt_constructor        1097	3_0_0	EXIST::FUNCTION:
@@ -1398,7 +1398,7 @@ EVP_aes_192_wrap                        1430	3_0_0	EXIST::FUNCTION:
 OCSP_CERTID_it                          1431	3_0_0	EXIST::FUNCTION:OCSP
 ENGINE_get_RSA                          1432	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 RAND_get_rand_method                    1433	3_0_0	EXIST::FUNCTION:
-ERR_load_DSA_strings                    1434	3_0_0	EXIST::FUNCTION:DSA
+ERR_load_DSA_strings                    1434	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 ASN1_check_infinite_end                 1435	3_0_0	EXIST::FUNCTION:
 i2d_PKCS7_DIGEST                        1436	3_0_0	EXIST::FUNCTION:
 ERR_lib_error_string                    1437	3_0_0	EXIST::FUNCTION:
@@ -1511,7 +1511,7 @@ BN_is_word                              1544	3_0_0	EXIST::FUNCTION:
 EVP_CIPHER_key_length                   1545	3_0_0	EXIST::FUNCTION:
 EVP_CIPHER_asn1_to_param                1546	3_0_0	EXIST::FUNCTION:
 OCSP_request_onereq_get0                1547	3_0_0	EXIST::FUNCTION:OCSP
-ERR_load_PKCS7_strings                  1548	3_0_0	EXIST::FUNCTION:
+ERR_load_PKCS7_strings                  1548	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 X509_PUBKEY_get                         1549	3_0_0	EXIST::FUNCTION:
 EC_KEY_free                             1550	3_0_0	EXIST::FUNCTION:EC
 BIO_read                                1551	3_0_0	EXIST::FUNCTION:
@@ -1999,7 +1999,7 @@ ASN1_d2i_fp                             2045	3_0_0	EXIST::FUNCTION:STDIO
 EVP_DecryptFinal                        2046	3_0_0	EXIST::FUNCTION:
 ASN1_ENUMERATED_it                      2047	3_0_0	EXIST::FUNCTION:
 o2i_ECPublicKey                         2048	3_0_0	EXIST::FUNCTION:EC
-ERR_load_BUF_strings                    2049	3_0_0	EXIST::FUNCTION:
+ERR_load_BUF_strings                    2049	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 PEM_read_bio_RSA_PUBKEY                 2050	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 OCSP_SINGLERESP_new                     2051	3_0_0	EXIST::FUNCTION:OCSP
 ASN1_SCTX_free                          2052	3_0_0	EXIST::FUNCTION:
@@ -2062,8 +2062,8 @@ ENGINE_register_pkey_meths              2108	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 ENGINE_load_public_key                  2109	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 ASIdOrRange_it                          2110	3_0_0	EXIST::FUNCTION:RFC3779
 DHparams_print_fp                       2111	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DH,STDIO
-ERR_load_CRYPTO_strings                 2112	3_0_0	EXIST:!VMS:FUNCTION:
-ERR_load_CRYPTOlib_strings              2112	3_0_0	EXIST:VMS:FUNCTION:
+ERR_load_CRYPTO_strings                 2112	3_0_0	EXIST:!VMS:FUNCTION:DEPRECATEDIN_3_0
+ERR_load_CRYPTOlib_strings              2112	3_0_0	EXIST:VMS:FUNCTION:DEPRECATEDIN_3_0
 X509_REQ_set_version                    2113	3_0_0	EXIST::FUNCTION:
 d2i_ASN1_GENERALSTRING                  2114	3_0_0	EXIST::FUNCTION:
 i2d_ASIdentifiers                       2115	3_0_0	EXIST::FUNCTION:RFC3779
@@ -2102,7 +2102,7 @@ X509_NAME_ENTRY_it                      2147	3_0_0	EXIST::FUNCTION:
 CRYPTO_THREAD_compare_id                2148	3_0_0	EXIST::FUNCTION:
 d2i_IPAddressChoice                     2149	3_0_0	EXIST::FUNCTION:RFC3779
 IPAddressFamily_it                      2150	3_0_0	EXIST::FUNCTION:RFC3779
-ERR_load_OCSP_strings                   2151	3_0_0	EXIST::FUNCTION:OCSP
+ERR_load_OCSP_strings                   2151	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,OCSP
 BIO_push                                2152	3_0_0	EXIST::FUNCTION:
 ASN1_BMPSTRING_new                      2153	3_0_0	EXIST::FUNCTION:
 COMP_get_type                           2154	3_0_0	EXIST::FUNCTION:COMP
@@ -2171,7 +2171,7 @@ X509_PURPOSE_get_id                     2218	3_0_0	EXIST::FUNCTION:
 EC_KEY_get_ex_data                      2219	3_0_0	EXIST::FUNCTION:EC
 EVP_MD_size                             2220	3_0_0	EXIST::FUNCTION:
 CRYPTO_malloc                           2221	3_0_0	EXIST::FUNCTION:
-ERR_load_ASN1_strings                   2222	3_0_0	EXIST::FUNCTION:
+ERR_load_ASN1_strings                   2222	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 X509_REQ_get_extension_nids             2223	3_0_0	EXIST::FUNCTION:
 TS_REQ_get_ext_by_OBJ                   2224	3_0_0	EXIST::FUNCTION:TS
 i2d_X509                                2225	3_0_0	EXIST::FUNCTION:
@@ -2200,7 +2200,7 @@ TS_TST_INFO_delete_ext                  2247	3_0_0	EXIST::FUNCTION:TS
 TS_OBJ_print_bio                        2248	3_0_0	EXIST::FUNCTION:TS
 X509_time_adj_ex                        2249	3_0_0	EXIST::FUNCTION:
 OCSP_request_add1_cert                  2250	3_0_0	EXIST::FUNCTION:OCSP
-ERR_load_X509_strings                   2251	3_0_0	EXIST::FUNCTION:
+ERR_load_X509_strings                   2251	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 SHA1_Transform                          2252	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 CMS_signed_get_attr_by_NID              2253	3_0_0	EXIST::FUNCTION:CMS
 X509_STORE_CTX_get_by_subject           2254	3_0_0	EXIST::FUNCTION:
@@ -2429,7 +2429,7 @@ EVP_CIPHER_CTX_ctrl                     2479	3_0_0	EXIST::FUNCTION:
 ASN1_T61STRING_it                       2480	3_0_0	EXIST::FUNCTION:
 ENGINE_get_prev                         2481	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 OCSP_accept_responses_new               2482	3_0_0	EXIST::FUNCTION:OCSP
-ERR_load_EC_strings                     2483	3_0_0	EXIST::FUNCTION:EC
+ERR_load_EC_strings                     2483	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,EC
 X509V3_string_free                      2484	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_meth_set_paramgen              2485	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 ENGINE_set_load_ssl_client_cert_function 2486	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
@@ -2583,7 +2583,7 @@ BN_get_rfc2409_prime_1024               2637	3_0_0	EXIST::FUNCTION:
 CRYPTO_set_mem_functions                2638	3_0_0	EXIST::FUNCTION:
 i2d_ASN1_VISIBLESTRING                  2639	3_0_0	EXIST::FUNCTION:
 d2i_PBKDF2PARAM                         2640	3_0_0	EXIST::FUNCTION:
-ERR_load_COMP_strings                   2641	3_0_0	EXIST::FUNCTION:COMP
+ERR_load_COMP_strings                   2641	3_0_0	EXIST::FUNCTION:COMP,DEPRECATEDIN_3_0
 EVP_PKEY_meth_add0                      2642	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 EVP_rc4_40                              2643	3_0_0	EXIST::FUNCTION:RC4
 RSA_bits                                2645	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
@@ -2832,7 +2832,7 @@ CMS_add_simple_smimecap                 2893	3_0_0	EXIST::FUNCTION:CMS
 IPAddressChoice_free                    2894	3_0_0	EXIST::FUNCTION:RFC3779
 d2i_X509_AUX                            2895	3_0_0	EXIST::FUNCTION:
 X509_get_default_cert_area              2896	3_0_0	EXIST::FUNCTION:
-ERR_load_DSO_strings                    2897	3_0_0	EXIST::FUNCTION:
+ERR_load_DSO_strings                    2897	3_0_0	NOEXIST::FUNCTION:
 ASIdentifiers_it                        2898	3_0_0	EXIST::FUNCTION:RFC3779
 BN_mod_lshift                           2899	3_0_0	EXIST::FUNCTION:
 ENGINE_get_last                         2900	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
@@ -3001,7 +3001,7 @@ i2a_ASN1_INTEGER                        3065	3_0_0	EXIST::FUNCTION:
 d2i_TS_RESP                             3066	3_0_0	EXIST::FUNCTION:TS
 EVP_des_ede_cfb64                       3067	3_0_0	EXIST::FUNCTION:DES
 d2i_RSAPrivateKey                       3068	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
-ERR_load_BN_strings                     3069	3_0_0	EXIST::FUNCTION:
+ERR_load_BN_strings                     3069	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 BF_encrypt                              3070	3_0_0	EXIST::FUNCTION:BF,DEPRECATEDIN_3_0
 MD5                                     3071	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,MD5
 BN_GF2m_arr2poly                        3072	3_0_0	EXIST::FUNCTION:EC2M
@@ -3172,7 +3172,7 @@ ESS_CERT_ID_dup                         3237	3_0_0	EXIST::FUNCTION:
 CMS_SignerInfo_get0_signature           3238	3_0_0	EXIST::FUNCTION:CMS
 EVP_PKEY_verify_recover                 3239	3_0_0	EXIST::FUNCTION:
 i2d_PUBKEY                              3240	3_0_0	EXIST::FUNCTION:
-ERR_load_EVP_strings                    3241	3_0_0	EXIST::FUNCTION:
+ERR_load_EVP_strings                    3241	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 X509_ATTRIBUTE_set1_data                3242	3_0_0	EXIST::FUNCTION:
 d2i_X509_fp                             3243	3_0_0	EXIST::FUNCTION:STDIO
 MD2_Init                                3244	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,MD2
@@ -3468,7 +3468,7 @@ d2i_BASIC_CONSTRAINTS                   3539	3_0_0	EXIST::FUNCTION:
 X509_CERT_AUX_new                       3540	3_0_0	EXIST::FUNCTION:
 ENGINE_register_pkey_asn1_meths         3541	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
 CRYPTO_ocb128_tag                       3542	3_0_0	EXIST::FUNCTION:OCB
-ERR_load_OBJ_strings                    3544	3_0_0	EXIST::FUNCTION:
+ERR_load_OBJ_strings                    3544	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 BIO_ctrl_get_read_request               3545	3_0_0	EXIST::FUNCTION:
 BN_from_montgomery                      3546	3_0_0	EXIST::FUNCTION:
 DSO_new                                 3547	3_0_0	EXIST::FUNCTION:
@@ -3489,7 +3489,7 @@ X509_STORE_set1_param                   3563	3_0_0	EXIST::FUNCTION:
 RAND_file_name                          3564	3_0_0	EXIST::FUNCTION:
 EVP_CipherInit_ex                       3566	3_0_0	EXIST::FUNCTION:
 BIO_dgram_sctp_notification_cb          3567	3_0_0	EXIST::FUNCTION:DGRAM,SCTP
-ERR_load_RAND_strings                   3568	3_0_0	EXIST::FUNCTION:
+ERR_load_RAND_strings                   3568	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 X509_ATTRIBUTE_it                       3569	3_0_0	EXIST::FUNCTION:
 X509_ALGOR_it                           3570	3_0_0	EXIST::FUNCTION:
 OCSP_CRLID_free                         3571	3_0_0	EXIST::FUNCTION:OCSP
@@ -3567,7 +3567,7 @@ ASN1_INTEGER_dup                        3645	3_0_0	EXIST::FUNCTION:
 DSA_print                               3646	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 X509_REQ_set_extension_nids             3647	3_0_0	EXIST::FUNCTION:
 X509_free                               3648	3_0_0	EXIST::FUNCTION:
-ERR_load_ERR_strings                    3649	3_0_0	EXIST::FUNCTION:
+ERR_load_ERR_strings                    3649	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 ASN1_const_check_infinite_end           3650	3_0_0	EXIST::FUNCTION:
 RSA_null_method                         3651	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 TS_REQ_ext_free                         3652	3_0_0	EXIST::FUNCTION:TS
@@ -3582,7 +3582,7 @@ TS_CONF_load_certs                      3660	3_0_0	EXIST::FUNCTION:TS
 PEM_write_bio_DSAPrivateKey             3661	3_0_0	EXIST::FUNCTION:DSA
 CMS_encrypt                             3662	3_0_0	EXIST::FUNCTION:CMS
 CRYPTO_nistcts128_decrypt               3663	3_0_0	EXIST::FUNCTION:
-ERR_load_DH_strings                     3664	3_0_0	EXIST::FUNCTION:DH
+ERR_load_DH_strings                     3664	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DH
 EVP_MD_block_size                       3665	3_0_0	EXIST::FUNCTION:
 TS_X509_ALGOR_print_bio                 3666	3_0_0	EXIST::FUNCTION:TS
 d2i_PKCS7_ENVELOPE                      3667	3_0_0	EXIST::FUNCTION:
@@ -3732,8 +3732,8 @@ i2d_IPAddressRange                      3813	3_0_0	EXIST::FUNCTION:RFC3779
 CMS_unsigned_add1_attr_by_txt           3814	3_0_0	EXIST::FUNCTION:CMS
 d2i_RSA_PUBKEY                          3815	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RSA
 PKCS12_gen_mac                          3816	3_0_0	EXIST::FUNCTION:
-ERR_load_ENGINE_strings                 3817	3_0_0	EXIST::FUNCTION:ENGINE
-ERR_load_CT_strings                     3818	3_0_0	EXIST::FUNCTION:CT
+ERR_load_ENGINE_strings                 3817	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,ENGINE
+ERR_load_CT_strings                     3818	3_0_0	EXIST::FUNCTION:CT,DEPRECATEDIN_3_0
 OCSP_ONEREQ_it                          3819	3_0_0	EXIST::FUNCTION:OCSP
 X509_PURPOSE_get_by_sname               3820	3_0_0	EXIST::FUNCTION:
 X509_PURPOSE_set                        3821	3_0_0	EXIST::FUNCTION:
@@ -4158,7 +4158,7 @@ OSSL_STORE_register_loader              4246	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 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:
+ERR_load_OSSL_STORE_strings             4250	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 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:
@@ -4431,7 +4431,6 @@ ASYNC_WAIT_CTX_get_callback             ?	3_0_0	EXIST::FUNCTION:
 ASYNC_WAIT_CTX_set_callback             ?	3_0_0	EXIST::FUNCTION:
 ASYNC_WAIT_CTX_set_status               ?	3_0_0	EXIST::FUNCTION:
 ASYNC_WAIT_CTX_get_status               ?	3_0_0	EXIST::FUNCTION:
-ERR_load_ESS_strings                    ?	3_0_0	EXIST::FUNCTION:
 EVP_KDF_CTX_free                        ?	3_0_0	EXIST::FUNCTION:
 EVP_KDF_CTX_reset                       ?	3_0_0	EXIST::FUNCTION:
 EVP_KDF_CTX_get_kdf_size                ?	3_0_0	EXIST::FUNCTION:
@@ -4526,7 +4525,6 @@ OSSL_CRMF_CERTTEMPLATE_get0_serialNumber ?	3_0_0	EXIST::FUNCTION:CRMF
 OSSL_CRMF_CERTTEMPLATE_get0_issuer      ?	3_0_0	EXIST::FUNCTION:CRMF
 OSSL_CRMF_CERTTEMPLATE_fill             ?	3_0_0	EXIST::FUNCTION:CRMF
 OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert   ?	3_0_0	EXIST::FUNCTION:CRMF
-ERR_load_CRMF_strings                   ?	3_0_0	EXIST::FUNCTION:CRMF
 OSSL_PARAM_locate                       ?	3_0_0	EXIST::FUNCTION:
 OSSL_PARAM_construct_int                ?	3_0_0	EXIST::FUNCTION:
 OSSL_PARAM_construct_uint               ?	3_0_0	EXIST::FUNCTION:
@@ -4607,7 +4605,6 @@ OSSL_CMP_ITAV_get0_value                ?	3_0_0	EXIST::FUNCTION:CMP
 OSSL_CMP_ITAV_push0_stack_item          ?	3_0_0	EXIST::FUNCTION:CMP
 OSSL_CMP_ITAV_free                      ?	3_0_0	EXIST::FUNCTION:CMP
 OSSL_CMP_MSG_free                       ?	3_0_0	EXIST::FUNCTION:CMP
-ERR_load_CMP_strings                    ?	3_0_0	EXIST::FUNCTION:CMP
 EVP_MD_CTX_set_params                   ?	3_0_0	EXIST::FUNCTION:
 EVP_MD_CTX_get_params                   ?	3_0_0	EXIST::FUNCTION:
 BN_CTX_new_ex                           ?	3_0_0	EXIST::FUNCTION:
@@ -4853,7 +4850,6 @@ OSSL_ENCODER_CTX_set_cipher             ?	3_0_0	EXIST::FUNCTION:
 OSSL_ENCODER_CTX_set_passphrase         ?	3_0_0	EXIST::FUNCTION:
 OSSL_ENCODER_CTX_set_pem_password_cb    ?	3_0_0	EXIST::FUNCTION:
 OSSL_ENCODER_CTX_set_passphrase_ui      ?	3_0_0	EXIST::FUNCTION:
-ERR_load_OSSL_ENCODER_strings           ?	3_0_0	EXIST::FUNCTION:
 PEM_read_X509_PUBKEY                    ?	3_0_0	EXIST::FUNCTION:STDIO
 PEM_write_X509_PUBKEY                   ?	3_0_0	EXIST::FUNCTION:STDIO
 PEM_read_bio_X509_PUBKEY                ?	3_0_0	EXIST::FUNCTION:
@@ -4891,7 +4887,6 @@ ASN1_item_verify_ex                     ?	3_0_0	EXIST::FUNCTION:
 BIO_socket_wait                         ?	3_0_0	EXIST::FUNCTION:SOCK
 BIO_wait                                ?	3_0_0	EXIST::FUNCTION:
 BIO_do_connect_retry                    ?	3_0_0	EXIST::FUNCTION:
-ERR_load_HTTP_strings                   ?	3_0_0	EXIST::FUNCTION:
 OSSL_HTTP_get                           ?	3_0_0	EXIST::FUNCTION:
 OSSL_HTTP_get_asn1                      ?	3_0_0	EXIST::FUNCTION:
 OSSL_HTTP_post_asn1                     ?	3_0_0	EXIST::FUNCTION:
@@ -5134,7 +5129,6 @@ OSSL_DECODER_CTX_set_input_type         ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_export                     ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_INSTANCE_get_decoder       ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_INSTANCE_get_decoder_ctx   ?	3_0_0	EXIST::FUNCTION:
-ERR_load_OSSL_DECODER_strings           ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_gettable_params            ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_get_params                 ?	3_0_0	EXIST::FUNCTION:
 OSSL_DECODER_CTX_new_by_EVP_PKEY        ?	3_0_0	EXIST::FUNCTION:

+ 1 - 1
util/libssl.num

@@ -145,7 +145,7 @@ SSL_export_keying_material              145	3_0_0	EXIST::FUNCTION:
 SSL_callback_ctrl                       146	3_0_0	EXIST::FUNCTION:
 SSL_set_security_callback               147	3_0_0	EXIST::FUNCTION:
 SSL_SRP_CTX_init                        148	3_0_0	EXIST::FUNCTION:SRP
-ERR_load_SSL_strings                    149	3_0_0	EXIST::FUNCTION:
+ERR_load_SSL_strings                    149	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0
 SSL_CTX_SRP_CTX_init                    150	3_0_0	EXIST::FUNCTION:SRP
 SSL_SESSION_set_time                    151	3_0_0	EXIST::FUNCTION:
 i2d_SSL_SESSION                         152	3_0_0	EXIST::FUNCTION:

+ 0 - 5
util/missingcrypto.txt

@@ -617,7 +617,6 @@ ERR_load_CMP_strings(3)
 ERR_load_CMS_strings(3)
 ERR_load_COMP_strings(3)
 ERR_load_CONF_strings(3)
-ERR_load_CRMF_strings(3)
 ERR_load_CRYPTO_strings(3)
 ERR_load_CRYPTOlib_strings(3)
 ERR_load_CT_strings(3)
@@ -627,14 +626,10 @@ ERR_load_DSO_strings(3)
 ERR_load_EC_strings(3)
 ERR_load_ENGINE_strings(3)
 ERR_load_ERR_strings(3)
-ERR_load_ESS_strings(3)
 ERR_load_EVP_strings(3)
-ERR_load_HTTP_strings(3)
 ERR_load_KDF_strings(3)
 ERR_load_OBJ_strings(3)
 ERR_load_OCSP_strings(3)
-ERR_load_OSSL_ENCODER_strings(3)
-ERR_load_OSSL_DECODER_strings(3)
 ERR_load_OSSL_STORE_strings(3)
 ERR_load_PEM_strings(3)
 ERR_load_PKCS12_strings(3)