diff options
author | Richard Levitte <levitte@openssl.org> | 2020-11-12 09:19:24 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2020-11-24 15:21:44 +0100 |
commit | f5a46ed7fe66520c6f1016eb96e96cb241ba229f (patch) | |
tree | aad7f22a6fbca9e545fa6f3af18b73c97059c6e1 /crypto | |
parent | 9343d3fe3bc5a4a2d6461c640d34a96e950177ad (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)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/err/build.info | 2 | ||||
-rw-r--r-- | crypto/err/err.c | 6 | ||||
-rw-r--r-- | crypto/err/err_all.c | 140 | ||||
-rw-r--r-- | crypto/err/err_all_legacy.c | 101 |
4 files changed, 176 insertions, 73 deletions
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 |