summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2020-11-12 09:19:24 +0100
committerRichard Levitte <levitte@openssl.org>2020-11-24 15:21:44 +0100
commitf5a46ed7fe66520c6f1016eb96e96cb241ba229f (patch)
treeaad7f22a6fbca9e545fa6f3af18b73c97059c6e1
parent9343d3fe3bc5a4a2d6461c640d34a96e950177ad (diff)
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)
-rw-r--r--CHANGES.md17
-rw-r--r--Configurations/unix-Makefile.tmpl3
-rw-r--r--NEWS.md1
-rw-r--r--crypto/err/build.info2
-rw-r--r--crypto/err/err.c6
-rw-r--r--crypto/err/err_all.c140
-rw-r--r--crypto/err/err_all_legacy.c101
-rw-r--r--include/crypto/err.h1
-rw-r--r--include/internal/dso.h2
-rw-r--r--include/openssl/cryptoerr_legacy.h81
-rw-r--r--include/openssl/err.h.in2
-rw-r--r--include/openssl/kdferr.h107
-rw-r--r--include/openssl/sslerr_legacy.h36
-rw-r--r--ssl/build.info2
-rw-r--r--ssl/ssl_err_legacy.c21
-rw-r--r--ssl/ssl_init.c5
-rw-r--r--util/libcrypto.num66
-rw-r--r--util/libssl.num2
-rw-r--r--util/missingcrypto.txt5
19 files changed, 373 insertions, 227 deletions
diff --git a/CHANGES.md b/CHANGES.md
index ca4e096ed2..48957676f6 100644
--- a/CHANGES.md
+++ b/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
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index 4fab096121..342e46d24d 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/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
diff --git a/NEWS.md b/NEWS.md
index 2ba338c745..054a55324f 100644
--- a/NEWS.md
+++ b/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.
diff --git a/crypto/err/build.info b/crypto/err/build.info
index c010ea4cb9..98f8801e34 100644
--- a/crypto/err/build.info
+++ b/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
diff --git a/crypto/err/err.c b/crypto/err/err.c
index a66ea63adf..8500fe7988 100644
--- a/crypto/err/err.c
+++ b/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;
diff --git a/crypto/err/err_all.c b/crypto/err/err_all.c
index f16cb6926f..e90928edef 100644
--- a/crypto/err/err_all.c
+++ b/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;
diff --git a/crypto/err/err_all_legacy.c b/crypto/err/err_all_legacy.c
new file mode 100644
index 0000000000..489036fd8b
--- /dev/null
+++ b/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
diff --git a/include/crypto/err.h b/include/crypto/err.h
index 527f19667d..d4c32bcf67 100644
--- a/include/crypto/err.h
+++ b/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 **);
diff --git a/include/internal/dso.h b/include/internal/dso.h
index 76cb3c6e0a..214362f692 100644
--- a/include/internal/dso.h
+++ b/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
diff --git a/include/openssl/cryptoerr_legacy.h b/include/openssl/cryptoerr_legacy.h
new file mode 100644
index 0000000000..2729afde70
--- /dev/null
+++ b/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
diff --git a/include/openssl/err.h.in b/include/openssl/err.h.in
index 1f2fde8317..c36fe7d1ed 100644
--- a/include/openssl/err.h.in
+++ b/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() \
diff --git a/include/openssl/kdferr.h b/include/openssl/kdferr.h
index 0daec1c2a5..d339871f6a 100644
--- a/include/openssl/kdferr.h
+++ b/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>
diff --git a/include/openssl/sslerr_legacy.h b/include/openssl/sslerr_legacy.h
new file mode 100644
index 0000000000..1607b4e7dc
--- /dev/null
+++ b/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
+
diff --git a/ssl/build.info b/ssl/build.info
index 4efd9d02cc..703cbaff50 100644
--- a/ssl/build.info
+++ b/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
diff --git a/ssl/ssl_err_legacy.c b/ssl/ssl_err_legacy.c
new file mode 100644
index 0000000000..d1f27c964e
--- /dev/null
+++ b/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
diff --git a/ssl/ssl_init.c b/ssl/ssl_init.c
index 73b0ce2b4d..772dc2b474 100644
--- a/ssl/ssl_init.c
+++ b/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;
diff --git a/util/libcrypto.num b/util/libcrypto.num
index 75d98a5fda..404a706fab 100644
--- a/util/libcrypto.num
+++ b/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:
diff --git a/util/libssl.num b/util/libssl.num
index a505e5300b..14430c9bf7 100644
--- a/util/libssl.num
+++ b/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:
diff --git a/util/missingcrypto.txt b/util/missingcrypto.txt
index dabce0db49..211a2c5737 100644
--- a/util/missingcrypto.txt
+++ b/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)