提交 f672aee4 编写于 作者: R Rich Salz 提交者: Rich Salz

Rename INIT funtions, deprecate old ones.

Man, there were a lot of renamings :)
Reviewed-by: NRichard Levitte <levitte@openssl.org>
上级 ea7736a0
......@@ -172,8 +172,8 @@ static int apps_startup()
#endif
/* Set non-default library initialisation settings */
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_ALL_BUILTIN
| OPENSSL_INIT_LOAD_CONFIG, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN
| OPENSSL_INIT_LOAD_CONFIG, NULL);
setup_ui_method();
......
......@@ -97,7 +97,7 @@ err:
static async_ctx *async_get_ctx(void)
{
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ASYNC, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ASYNC, NULL);
return async_arch_get_ctx();
}
......@@ -361,7 +361,7 @@ int ASYNC_init_thread(size_t max_size, size_t init_size)
return 0;
}
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ASYNC, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ASYNC, NULL);
if (!ossl_init_thread_start(OPENSSL_INIT_THREAD_ASYNC)) {
ASYNCerr(ASYNC_F_ASYNC_INIT_THREAD, ERR_R_MALLOC_FAILURE);
return 0;
......
......@@ -291,7 +291,7 @@ COMP_METHOD *COMP_zlib(void)
zlib_loaded++;
if (zlib_loaded)
meth = &zlib_stateful_method;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ZLIB, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ZLIB, NULL);
}
}
#endif
......
......@@ -83,7 +83,7 @@ void OPENSSL_config(const char *config_name)
settings[0].value.type_string = config_name;
settings[1].name = OPENSSL_INIT_SET_END;
settings[1].value.type_int = 0;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CONFIG, settings);
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, settings);
}
void openssl_config_internal(const char *config_name)
......
......@@ -234,7 +234,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
OPENSSL_INIT_thread_stop();
OPENSSL_thread_stop();
break;
case DLL_PROCESS_DETACH:
break;
......
......@@ -894,8 +894,7 @@ ERR_STATE *ERR_get_state(void)
* the first one that we just replaced.
*/
ERR_STATE_free(tmpp);
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CRYPTO_STRINGS,
NULL);
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
/* Ignore failures from this */
ossl_init_thread_start(OPENSSL_INIT_THREAD_ERR_STATE);
}
......
......@@ -110,7 +110,7 @@ const EVP_CIPHER *EVP_get_cipherbyname(const char *name)
{
const EVP_CIPHER *cp;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
cp = (const EVP_CIPHER *)OBJ_NAME_get(name, OBJ_NAME_TYPE_CIPHER_METH);
return (cp);
......@@ -120,7 +120,7 @@ const EVP_MD *EVP_get_digestbyname(const char *name)
{
const EVP_MD *cp;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
cp = (const EVP_MD *)OBJ_NAME_get(name, OBJ_NAME_TYPE_MD_METH);
return (cp);
......@@ -166,7 +166,7 @@ void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,
{
struct doall_cipher dc;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
dc.fn = fn;
dc.arg = arg;
......@@ -179,7 +179,7 @@ void EVP_CIPHER_do_all_sorted(void (*fn) (const EVP_CIPHER *ciph,
{
struct doall_cipher dc;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL);
dc.fn = fn;
dc.arg = arg;
......@@ -207,7 +207,7 @@ void EVP_MD_do_all(void (*fn) (const EVP_MD *md,
{
struct doall_md dc;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
dc.fn = fn;
dc.arg = arg;
......@@ -220,7 +220,7 @@ void EVP_MD_do_all_sorted(void (*fn) (const EVP_MD *md,
{
struct doall_md dc;
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL);
dc.fn = fn;
dc.arg = arg;
......
/*
* Written by Matt Caswell for the OpenSSL project
*/
/* ====================================================================
* Copyright (c) 2015 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include <openssl/conf.h>
void openssl_config_internal(const char *config_name);
void openssl_no_config_internal(void);
......@@ -268,7 +268,7 @@ static void ossl_init_base(void)
fprintf(stderr, "OPENSSL_INIT: ossl_init_base: Setting up stop handlers\n");
#endif
ossl_init_setup_thread_stop();
atexit(OPENSSL_INIT_library_stop);
atexit(OPENSSL_cleanup);
OPENSSL_cpuid_setup();
base_inited = 1;
}
......@@ -499,7 +499,7 @@ static void ossl_init_thread_stop(struct thread_local_inits_st *locals)
ossl_init_thread_stop_cleanup();
}
void OPENSSL_INIT_thread_stop(void)
void OPENSSL_thread_stop(void)
{
ossl_init_thread_stop(
(struct thread_local_inits_st *)ossl_init_get_thread_local(0));
......@@ -531,7 +531,7 @@ int ossl_init_thread_start(uint64_t opts)
return 1;
}
void OPENSSL_INIT_library_stop(void)
void OPENSSL_cleanup(void)
{
OPENSSL_INIT_STOP *currhandler, *lasthandler;
......@@ -565,7 +565,7 @@ void OPENSSL_INIT_library_stop(void)
if (zlib_inited) {
#ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: OPENSSL_INIT_library_stop: "
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"COMP_zlib_cleanup()\n");
#endif
COMP_zlib_cleanup();
......@@ -574,7 +574,7 @@ void OPENSSL_INIT_library_stop(void)
#ifndef OPENSSL_NO_ENGINE
if (engine_inited) {
# ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: OPENSSL_INIT_library_stop: "
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"ENGINE_cleanup()\n");
# endif
ENGINE_cleanup();
......@@ -583,7 +583,7 @@ void OPENSSL_INIT_library_stop(void)
if (load_crypto_strings_inited) {
#ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: OPENSSL_INIT_library_stop: "
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
"ERR_free_strings()\n");
#endif
ERR_free_strings();
......@@ -626,8 +626,7 @@ static const OPENSSL_INIT_SETTINGS *ossl_init_get_setting(
* called prior to any threads making calls to any OpenSSL functions,
* i.e. passing a non-null settings value is assumed to be single-threaded.
*/
void OPENSSL_INIT_crypto_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings)
void OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
{
/* XXX TODO WARNING To be updated to return a value not assert. */
assert(!stopped);
......@@ -719,7 +718,7 @@ void OPENSSL_INIT_crypto_library_start(uint64_t opts,
}
}
int OPENSSL_INIT_register_stop_handler(void (*handler)(void))
int OPENSSL_atexit(void (*handler)(void))
{
OPENSSL_INIT_STOP *newhand;
......
......@@ -640,7 +640,7 @@ int CRYPTO_mem_leaks(BIO *b)
return 1;
/* Ensure all resources are released */
OPENSSL_INIT_library_stop();
OPENSSL_cleanup();
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE);
......
......@@ -31,9 +31,6 @@ to produce the error message:
=head1 SEE ALSO
L<err(3)>,
L<ERR_load_crypto_strings(3)>,
L<SSL_load_error_strings(3)>
L<err(3)>
=cut
......@@ -140,10 +140,6 @@ unencrypted example in L<BIO_s_connect(3)>.
SSL_CTX *ctx;
SSL *ssl;
ERR_load_crypto_strings();
ERR_load_SSL_strings();
OpenSSL_add_all_algorithms();
/* We would seed the PRNG here if the platform didn't
* do it automatically
*/
......@@ -207,10 +203,6 @@ a client and also echoes the request to standard output.
SSL_CTX *ctx;
SSL *ssl;
ERR_load_crypto_strings();
ERR_load_SSL_strings();
OpenSSL_add_all_algorithms();
/* Might seed PRNG here */
ctx = SSL_CTX_new(TLS_server_method());
......
......@@ -160,7 +160,7 @@ This example accepts two connections on port 4444, sends messages
down each and finally closes both down.
BIO *abio, *cbio, *cbio2;
ERR_load_crypto_strings();
abio = BIO_new_accept("4444");
/* First call to BIO_accept() sets up accept BIO */
......
......@@ -164,7 +164,7 @@ to retrieve a page and copy the result to standard output.
BIO *cbio, *out;
int len;
char tmpbuf[1024];
ERR_load_crypto_strings();
cbio = BIO_new_connect("localhost:http");
out = BIO_new_fp(stdout, BIO_NOCLOSE);
if(BIO_do_connect(cbio) <= 0) {
......
......@@ -22,9 +22,6 @@ is detached. It will normally be set to NULL.
=head1 NOTES
OpenSSL_add_all_algorithms() (or equivalent) should be called before using this
function or errors about unknown algorithms will occur.
Although the recipients certificate is not needed to decrypt the data it is
needed to locate the appropriate (of possible several) recipients in the CMS
structure.
......
......@@ -45,12 +45,6 @@ return an error.
B<CONF_MFLAGS_DEFAULT_SECTION> if set and B<appname> is not NULL will use the
default section pointed to by B<openssl_conf> if B<appname> does not exist.
Applications should call these functions after loading builtin modules using
OPENSSL_load_builtin_modules(), any ENGINEs for example using
ENGINE_load_builtin_engines(), any algorithms for example
OPENSSL_add_all_algorithms() and (if the application uses libssl)
SSL_library_init().
By using CONF_modules_load_file() with appropriate flags an application can
customise application configuration to best suit its needs. In some cases the
use of a configuration file is optional and its absence is not an error: in
......
......@@ -42,10 +42,6 @@ ERR_lib_error_string(), ERR_func_error_string() and
ERR_reason_error_string() return the library name, function
name and reason string respectively.
The OpenSSL error strings should be loaded by calling
L<ERR_load_crypto_strings(3)> or, for SSL
applications, L<SSL_load_error_strings(3)>
first.
If there is no text string registered for the given error code,
the error string will contain the numeric code.
......@@ -64,8 +60,6 @@ none is registered for the error code.
=head1 SEE ALSO
L<err(3)>, L<ERR_get_error(3)>,
L<ERR_load_crypto_strings(3)>,
L<SSL_load_error_strings(3)>
L<ERR_print_errors(3)>
=cut
......@@ -37,4 +37,10 @@ ERR_free_strings() return no values.
L<err(3)>, L<ERR_error_string(3)>
=head1 HISTORY
The ERR_load_crypto_strings(), SSL_load_error_strings(), and
ERR_free_strings() functions were deprecated in OpenSSL 1.1.0 by
OPENSSL_init_crypto() and OPENSSL_init_ssl().
=cut
......@@ -39,8 +39,6 @@ ERR_print_errors() and ERR_print_errors_fp() return no values.
=head1 SEE ALSO
L<err(3)>, L<ERR_error_string(3)>,
L<ERR_get_error(3)>,
L<ERR_load_crypto_strings(3)>,
L<SSL_load_error_strings(3)>
L<ERR_get_error(3)>.
=cut
......@@ -143,8 +143,7 @@ returns is of zero length.
EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
return an B<EVP_MD> structure when passed a digest name, a digest NID or
an ASN1_OBJECT structure respectively. The digest table must be initialized
using, for example, OpenSSL_add_all_digests() for these functions to work.
an ASN1_OBJECT structure respectively.
=head1 RETURN VALUES
......@@ -210,8 +209,6 @@ digest name passed on the command line.
unsigned char md_value[EVP_MAX_MD_SIZE];
int md_len, i;
OpenSSL_add_all_digests();
if(!argv[1]) {
printf("Usage: mdtest digestname\n");
exit(1);
......
......@@ -60,4 +60,9 @@ L<conf(5)>,
L<CONF_modules_load_file(3)>,
L<CONF_modules_free(3)>
=head1 HISTORY
The OPENSSL_no_config() and OPENSSL_config() functions were
deprecated in OpenSSL 1.1.0 by OPENSSL_init_crypto().
=cut
......@@ -2,19 +2,18 @@
=head1 NAME
OPENSSL_INIT_crypto_library_start, OPENSSL_INIT_library_stop,
OPENSSL_INIT_register_stop_handler, OPENSSL_INIT_thread_stop - OpenSSL
OPENSSL_init_crypto, OPENSSL_cleanup,
OPENSSL_atexit, OPENSSL_thread_stop - OpenSSL
initialisation and deinitialisation functions
=head1 SYNOPSIS
#include <openssl/crypto.h>
void OPENSSL_INIT_library_stop(void);
void OPENSSL_INIT_crypto_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings);
int OPENSSL_INIT_register_stop_handler(void (*handler)(void));
void OPENSSL_INIT_thread_stop(void);
void OPENSSL_cleanup(void);
void OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
int OPENSSL_atexit(void (*handler)(void));
void OPENSSL_thread_stop(void);
=head1 DESCRIPTION
......@@ -30,13 +29,13 @@ automatically deinitialise as required.
However, there way be situations when explicit initialisation is desirable or
needed, for example when some non-default initialisation is required. The
function OPENSSL_INIT_crypto_library_start() can be used for this purpose for
libcrypto (see also L<OPENSSL_INIT_ssl_library_start(3)> for the libssl
function OPENSSL_init_crypto() can be used for this purpose for
libcrypto (see also L<OPENSSL_init_ssl(3)> for the libssl
equivalent).
Numerous internal OpenSSL functions call OPENSSL_INIT_crypto_library_start().
Numerous internal OpenSSL functions call OPENSSL_init_crypto().
Therefore, in order to perform non-default initialisation,
OPENSSL_INIT_crypto_library_start() MUST be called by application code prior to
OPENSSL_init_crypto() MUST be called by application code prior to
any other OpenSSL function calls.
The B<opts> parameter specifies which aspects of libcrypto should be
......@@ -46,49 +45,45 @@ initialised. Valid options are:
=item OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS
Suppress automatic loading of the libcrypto error strings. With this option the
library will not automatically call ERR_load_crypto_strings(). This option is
Suppress automatic loading of the libcrypto error strings. This option is
not a default option. Once selected subsequent calls to
OPENSSL_INIT_crypto_library_start() with the option
B<OPENSSL_INIT_LOAD_CRYPTO_STRINGS> will be ignored. Applications may call
ERR_load_crypto_strings() directly if they wish even if this option has been
selected. If they do so then they must also explicitly call ERR_free_strings()
on application close down.
OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_LOAD_CRYPTO_STRINGS> will be ignored.
=item OPENSSL_INIT_LOAD_CRYPTO_STRINGS
Automatic loading of the libcrypto error strings. With this option the
library will automatically call ERR_load_crypto_strings(). This option is a
default option. Once selected subsequent calls to
OPENSSL_INIT_crypto_library_start() with the option
library will automatically load the libcrypto error strings.
This option is a default option. Once selected subsequent calls to
OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS> will be ignored.
=item OPENSSL_INIT_ADD_ALL_CIPHERS
With this option the library will automatically load and make available all
libcrypto ciphers. This option is a default option. Once selected subsequent
calls to OPENSSL_INIT_crypto_library_start() with the option
calls to OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_NO_ADD_ALL_CIPHERS> will be ignored.
=item OPENSSL_INIT_ADD_ALL_DIGESTS
With this option the library will automatically load and make available all
libcrypto digests. This option is a default option. Once selected subsequent
calls to OPENSSL_INIT_crypto_library_start() with the option
calls to OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_NO_ADD_ALL_CIPHERS> will be ignored.
=item OPENSSL_INIT_NO_ADD_ALL_CIPHERS
With this option the library will suppress automatic loading of libcrypto
ciphers. This option is not a default option. Once selected subsequent
calls to OPENSSL_INIT_crypto_library_start() with the option
calls to OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_ADD_ALL_CIPHERS> will be ignored.
=item OPENSSL_INIT_NO_ADD_ALL_DIGESTS
With this option the library will suppress automatic loading of libcrypto
digests. This option is not a default option. Once selected subsequent
calls to OPENSSL_INIT_crypto_library_start() with the option
calls to OPENSSL_init_crypto() with the option
B<OPENSSL_INIT_ADD_ALL_DIGESTS> will be ignored.
=item OPENSSL_INIT_LOAD_CONFIG
......@@ -168,30 +163,30 @@ configuration file is assumed. For example
{ OPENSSL_INIT_SET_CONF_FILENAME, .value.type_string = "myconf.cnf" },
{ OPENSSL_INIT_SET_END, .value.type_int = 0 }
};
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CONFIG, settings);
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, settings);
The B<settings> parameter must be an array of OPENSSL_INIT_SETTINGS values
terminated with an OPENSSL_INIT_SET_END entry.
The OPENSSL_INIT_library_stop() function deinitialises OpenSSL (both libcrypto
The OPENSSL_cleanup() function deinitialises OpenSSL (both libcrypto
and libssl). All resources allocated by OpenSSL are freed. Typically there
should be no need to call this function directly as it is initiated
automatically on application exit. This is done via the standard C library
L<atexit(3)> function. In the event that the application will close in a manner
that will not call the registered atexit() handlers then the application should
call OPENSSL_INIT_library_stop() directly. Developers of libraries using OpenSSL
call OPENSSL_cleanup() directly. Developers of libraries using OpenSSL
are discouraged from calling this function and should instead, typically, rely
on auto-deinitialisation. This is to avoid error conditions where both an
application and a library it depends on both use OpenSSL, and the library
deinitialises it before the application has finished using it.
The OPENSSL_INIT_register_stop_handler() function enables the registration of a
function to be called during OPENSSL_INIT_library_stop(). Stop handlers are
The OPENSSL_atexit() function enables the registration of a
function to be called during OPENSSL_cleanup(). Stop handlers are
called after deinitialisation of resources local to a thread, but before other
process wide resources are freed. In the event that multiple stop handlers are
registered, no guarantees are made about the order of execution.
The OPENSSL_INIT_thread_stop() function deallocates resources associated
The OPENSSL_thread_stop() function deallocates resources associated
with the current thread. Typically this function will be called automatically by
the library when the thread exits. This should only be called directly if
resources should be freed at an earlier time, or under the circumstances
......@@ -205,23 +200,22 @@ platforms this is done in response to a DLL_THREAD_DETACH message being sent to
the libeay32.dll entry point. Some windows functions may cause threads to exit
without sending this message (for example ExitProcess()). If the application
uses such functions, then the application must free up OpenSSL resources
directly via a call to OPENSSL_INIT_thread_stop(). Similarly this message will
directly via a call to OPENSSL_thread_stop(). Similarly this message will
also not be sent if OpenSSL is linked statically, and therefore applications
using static linking should also call OPENSSL_INIT_thread_stop().
using static linking should also call OPENSSL_thread_stop().
=head1 RETURN VALUES
The function OPENSSL_INIT_register_stop_handler() returns 1 on success or 0 on
The function OPENSSL_atexit() returns 1 on success or 0 on
error.
=head1 SEE ALSO
L<OPENSSL_INIT_ssl_library_start(3)>
L<OPENSSL_init_ssl(3)>
=head1 HISTORY
The OPENSSL_INIT_library_stop, OPENSSL_INIT_crypto_library_start,
OPENSSL_INIT_register_stop_handler and OPENSSL_INIT_thread_stop functions were
added in OpenSSL 1.1.0.
The OPENSSL_init_crypto(), OPENSSL_cleanup(), OPENSSL_atexit(),
and OPENSSL_thread_stop() functions were added in OpenSSL 1.1.0.
=cut
......@@ -63,4 +63,10 @@ too much of a problem in practice.
L<evp(3)>, L<EVP_DigestInit(3)>,
L<EVP_EncryptInit(3)>
=head1 HISTORY
The OpenSSL_add_all_algorithms(), OpenSSL_add_all_ciphers(),
OpenSSL_add_all_digests(), and EVP_cleanup(), functions
were deprecated in OpenSSL 1.1.0 by OPENSSL_init_crypto().
=cut
......@@ -19,9 +19,6 @@ B<flags> is an optional set of flags.
=head1 NOTES
OpenSSL_add_all_algorithms() (or equivalent) should be called before using this
function or errors about unknown algorithms will occur.
Although the recipients certificate is not needed to decrypt the data it is needed
to locate the appropriate (of possible several) recipients in the PKCS#7 structure.
......
......@@ -39,10 +39,6 @@ corresponding B<PEM> function as described in the L<pem(3)> manual page.
=head1 NOTES
Before using these functions L<OpenSSL_add_all_algorithms(3)>
should be called to initialize the internal algorithm lookup tables otherwise errors about
unknown algorithms will occur if an attempt is made to decrypt a private key.
These functions are currently the only way to store encrypted private keys using DER format.
Currently all the functions use BIOs or FILE pointers, there are no functions which
......
......@@ -21,14 +21,6 @@ engine - ENGINE cryptographic module support
int ENGINE_init(ENGINE *e);
int ENGINE_finish(ENGINE *e);
void ENGINE_load_openssl(void);
void ENGINE_load_dynamic(void);
#ifndef OPENSSL_NO_STATIC_ENGINE
void ENGINE_load_chil(void);
void ENGINE_load_gmp(void);
void ENGINE_load_ubsec(void);
#endif
void ENGINE_load_cryptodev(void);
void ENGINE_load_builtin_engines(void);
void ENGINE_cleanup(void);
......@@ -301,17 +293,7 @@ it uses static linking against openssl, then the resulting application
binary will not contain any alternative ENGINE code at all. So the first
consideration is whether any/all available ENGINE implementations should be
made visible to OpenSSL - this is controlled by calling the various "load"
functions, eg.
/* Make the "dynamic" ENGINE available */
void ENGINE_load_dynamic(void);
/* Make the CryptoSwift hardware acceleration support available */
void ENGINE_load_cswift(void);
/* Make support for nCipher's "CHIL" hardware available */
void ENGINE_load_chil(void);
...
/* Make ALL ENGINE implementations bundled with OpenSSL available */
void ENGINE_load_builtin_engines(void);
functions.
Having called any of these functions, ENGINE objects would have been
dynamically allocated and populated with these implementations and linked
......@@ -567,6 +549,11 @@ extension).
=head1 SEE ALSO
L<rsa(3)>, L<dsa(3)>, L<dh(3)>, L<rand(3)>
L<OPENSSL_init_crypto(3)>, L<rsa(3)>, L<dsa(3)>, L<dh(3)>, L<rand(3)>
=head1 HISTORY
ENGINE_load_openssl(), ENGINE_load_dynamic(), and ENGINE_load_cryptodev()
were deprecated in OpenSSL 1.1.0 by OPENSSL_init_crypto().
=cut
......@@ -188,4 +188,9 @@ L<ERR_put_error(3)>,
L<ERR_load_strings(3)>,
L<SSL_get_error(3)>
=head1 HISTORY
The ERR_load_crypto_strings() function was deprecated in OpenSSL 1.1.0 by
OPENSSL_init_crypto().
=cut
......@@ -61,8 +61,6 @@ based encryption. Careful selection of the parameters will provide a PKCS#5 PBKD
implementation. However, new applications should not typically use this (preferring, for example,
PBKDF2 from PCKS#5).
Algorithms are loaded with L<OpenSSL_add_all_algorithms(3)>.
All the symmetric algorithms (ciphers), digests and asymmetric algorithms
(public key algorithms) can be replaced by L<engine(3)> modules providing alternative
implementations. If ENGINE implementations of ciphers or digests are registered
......@@ -97,7 +95,6 @@ L<EVP_PKEY_verify(3)>,
L<EVP_PKEY_verify_recover(3)>,
L<EVP_PKEY_derive(3)>,
L<EVP_BytesToKey(3)>,
L<OpenSSL_add_all_algorithms(3)>,
L<engine(3)>
=cut
......@@ -2,14 +2,13 @@
=head1 NAME
OPENSSL_INIT_ssl_library_start - OpenSSL (libssl and libcrypto) initialisation
OPENSSL_init_ssl - OpenSSL (libssl and libcrypto) initialisation
=head1 SYNOPSIS
#include <openssl/ssl.h>
void OPENSSL_INIT_ssl_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings);
void OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
=head1 DESCRIPTION
......@@ -25,40 +24,35 @@ automatically deinitialise as required.
However, there way be situations when explicit initialisation is desirable or
needed, for example when some non-default initialisation is required. The
function OPENSSL_INIT_ssl_library_start() can be used for this purpose. Calling
function OPENSSL_init_ssl() can be used for this purpose. Calling
this function will explicitly initialise BOTH libcrypto and libssl. To
explicitly initialise ONLY libcrypto see the
L<OPENSSL_INIT_crypto_library_start(3)> function.
L<OPENSSL_init_crypto(3)> function.
Numerous internal OpenSSL functions call OPENSSL_INIT_ssl_library_start().
Numerous internal OpenSSL functions call OPENSSL_init_ssl().
Therefore, in order to perform non-default initialisation,
OPENSSL_INIT_ssl_library_start() MUST be called by application code prior to
OPENSSL_init_ssl() MUST be called by application code prior to
any other OpenSSL function calls.
The B<opts> parameter specifies which aspects of libssl and libcrypto should be
initialised. Valid options for libcrypto are described on the
L<OPENSSL_INIT_crypto_library_start(3)> page. In addition to any libcrypto
L<OPENSSL_init_crypto(3)> page. In addition to any libcrypto
specific option the following libssl options can also be used:
=over 4
=item OPENSSL_INIT_NO_LOAD_SSL_STRINGS
Suppress automatic loading of the libssl error strings. With this option the
library will not automatically call ERR_load_SSL_strings(). This option is
Suppress automatic loading of the libssl error strings. This option is
not a default option. Once selected subsequent calls to
OPENSSL_INIT_ssl_library_start() with the option
B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored. Applications may call
ERR_load_SSL_strings() directly if they wish even if this option has been
selected. If they do so then they must also explicitly call ERR_free_strings()
on application close down.
OPENSSL_init_ssl() with the option
B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored.
=item OPENSSL_INIT_LOAD_SSL_STRINGS
Automatic loading of the libssl error strings. With this option the
library will automatically call ERR_load_SSL_strings(). This option is a
Automatic loading of the libssl error strings. This option is a
default option. Once selected subsequent calls to
OPENSSL_INIT_ssl_library_start() with the option
OPENSSL_init_ssl() with the option
B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored.
=back
......@@ -66,15 +60,15 @@ B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored.
The B<settings> parameter specifies optional settings values to an option.
Currently no such settings are available for libssl specific options. However
these settings will also be passed internally to a call to
L<OPENSSL_INIT_crypto_library_start(3)>, so this parameter can also be used to
L<OPENSSL_init_crypto(3)>, so this parameter can also be used to
provide libcrypto settings values.
=head1 SEE ALSO
L<OPENSSL_INIT_crypto_library_start(3)>
L<OPENSSL_init_crypto(3)>
=head1 HISTORY
The OPENSSL_INIT_ssl_library_start function was added in OpenSSL 1.1.0.
The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0.
=cut
......@@ -28,14 +28,6 @@ SSL_library_init() is not reentrant.
SSL_library_init() adds ciphers and digests used directly and indirectly by
SSL/TLS.
=head1 EXAMPLES
A typical TLS/SSL application will start with the library initialization,
and provide readable error messages.
SSL_load_error_strings(); /* readable error messages */
SSL_library_init(); /* initialize library */
=head1 RETURN VALUES
SSL_library_init() always returns "1", so it is safe to discard the return
......@@ -43,7 +35,12 @@ value.
=head1 SEE ALSO
L<ssl(3)>, L<SSL_load_error_strings(3)>,
L<ssl(3)>,
L<RAND_add(3)>
=head1 HISTORY
The SSL_library_init() and OpenSSL_add_ssl_algorithms() functions were
deprecated in OpenSSL 1.1.0 by OPENSSL_init_ssl().
=cut
......@@ -13,9 +13,6 @@ The OpenSSL B<ssl> library implements the Secure Sockets Layer (SSL v2/v3) and
Transport Layer Security (TLS v1) protocols. It provides a rich API which is
documented here.
At first the library must be initialized; see
L<SSL_library_init(3)>.
Then an B<SSL_CTX> object is created as a framework to establish
TLS/SSL enabled connections (see L<SSL_CTX_new(3)>).
Various options regarding certificates, algorithms etc. can be set
......@@ -560,8 +557,6 @@ fresh handle for each connection.
=item STACK *B<SSL_load_client_CA_file>(char *file);
=item void B<SSL_load_error_strings>(void);
=item SSL *B<SSL_new>(SSL_CTX *ctx);
=item void SSL_up_ref(SSL *s);
......@@ -742,7 +737,6 @@ L<SSL_get_rbio(3)>,
L<SSL_get_session(3)>,
L<SSL_get_verify_result(3)>,
L<SSL_get_version(3)>,
L<SSL_library_init(3)>,
L<SSL_load_client_CA_file(3)>,
L<SSL_new(3)>,
L<SSL_pending(3)>,
......
/*
* Copyright (c) 2014 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
#ifndef HEADER_INTERNAL_CONF_H
# define INTERNAL_CONF_H
#include <openssl/conf.h>
#ifdef __cplusplus
extern "C" {
#endif
void openssl_config_internal(const char *config_name);
void openssl_no_config_internal(void);
#ifdef __cplusplus
}
#endif
#endif
......@@ -137,9 +137,11 @@ int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out);
#endif
int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out);
#if OPENSSL_API_COMPAT < 0x10100000L
void OPENSSL_config(const char *config_name);
#define OPENSSL_no_config() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_NO_LOAD_CONFIG, NULL)
# define OPENSSL_no_config() \
OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL)
#endif
/*
* New conf code. The semantics are different from the functions above. If
......
......@@ -597,11 +597,10 @@ typedef struct ossl_init_settings_st {
typedef struct ossl_init_stop_st OPENSSL_INIT_STOP;
/* Library initialisation functions */
void OPENSSL_INIT_library_stop(void);
void OPENSSL_INIT_crypto_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings);
int OPENSSL_INIT_register_stop_handler(void (*handler)(void));
void OPENSSL_INIT_thread_stop(void);
void OPENSSL_cleanup(void);
void OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
int OPENSSL_atexit(void (*handler)(void));
void OPENSSL_thread_stop(void);
/* BEGIN ERROR CODES */
/*
......
......@@ -385,23 +385,25 @@ int ENGINE_add(ENGINE *e);
int ENGINE_remove(ENGINE *e);
/* Retrieve an engine from the list by its unique "id" value. */
ENGINE *ENGINE_by_id(const char *id);
/* Add all the built-in engines. */
#define ENGINE_load_openssl() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_OPENSSL, NULL)
#define ENGINE_load_dynamic() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_DYNAMIC, NULL)
#if OPENSSL_API_COMPAT < 0x10100000L
# define ENGINE_load_openssl() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL)
# define ENGINE_load_dynamic() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL)
# ifndef OPENSSL_NO_STATIC_ENGINE
# define ENGINE_load_padlock() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_PADLOCK, NULL)
#define ENGINE_load_capi() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_CAPI, NULL)
#define ENGINE_load_dasync() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_DASYNC, NULL)
# define ENGINE_load_padlock() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL)
# define ENGINE_load_capi() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL)
# define ENGINE_load_dasync() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DASYNC, NULL)
# endif
#define ENGINE_load_cryptodev() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL)
#define ENGINE_load_rdrand() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_RDRAND, NULL)
# define ENGINE_load_cryptodev() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL)
# define ENGINE_load_rdrand() \
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL)
#endif
void ENGINE_load_builtin_engines(void);
/*
......
......@@ -355,8 +355,10 @@ void ERR_load_strings(int lib, ERR_STRING_DATA str[]);
void ERR_unload_strings(int lib, ERR_STRING_DATA str[]);
void ERR_load_ERR_strings(void);
#define ERR_load_crypto_strings() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
#if OPENSSL_API_COMPAT < 0x10100000L
# define ERR_load_crypto_strings() \
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
#endif
void ERR_free_strings(void);
......
......@@ -870,29 +870,31 @@ const EVP_CIPHER *EVP_seed_cfb128(void);
const EVP_CIPHER *EVP_seed_ofb(void);
# endif
# define OPENSSL_add_all_algorithms_conf() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS \
| OPENSSL_INIT_LOAD_CONFIG, NULL)
# define OPENSSL_add_all_algorithms_noconf() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# ifdef OPENSSL_LOAD_CONF
# define OpenSSL_add_all_algorithms() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS \
| OPENSSL_INIT_LOAD_CONFIG, NULL)
# else
# define OpenSSL_add_all_algorithms() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# endif
# if OPENSSL_API_COMPAT < 0x10100000L
# define OPENSSL_add_all_algorithms_conf() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS \
| OPENSSL_INIT_LOAD_CONFIG, NULL)
# define OPENSSL_add_all_algorithms_noconf() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# ifdef OPENSSL_LOAD_CONF
# define OpenSSL_add_all_algorithms() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS \
| OPENSSL_INIT_LOAD_CONFIG, NULL)
# else
# define OpenSSL_add_all_algorithms() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
| OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# endif
# define OpenSSL_add_all_ciphers() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL)
# define OpenSSL_add_all_digests() \
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# define OpenSSL_add_all_ciphers() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL)
# define OpenSSL_add_all_digests() \
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# endif
int EVP_add_cipher(const EVP_CIPHER *cipher);
int EVP_add_digest(const EVP_MD *digest);
......
......@@ -1443,9 +1443,11 @@ __owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
const char *dir);
#define SSL_load_error_strings() \
OPENSSL_INIT_ssl_library_start(OPENSSL_INIT_LOAD_SSL_STRINGS \
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
#if OPENSSL_API_COMPAT < 0x10100000L
# define SSL_load_error_strings() \
OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
#endif
__owur const char *SSL_state_string(const SSL *s);
__owur const char *SSL_rstate_string(const SSL *s);
......@@ -1676,7 +1678,9 @@ void SSL_set_accept_state(SSL *s);
__owur long SSL_get_default_timeout(const SSL *s);
#define SSL_library_init() OPENSSL_INIT_ssl_library_start(0, NULL)
#if OPENSSL_API_COMPAT < 0x10100000L
# define SSL_library_init() OPENSSL_init_ssl(0, NULL)
#endif
__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size);
__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);
......@@ -1936,8 +1940,7 @@ __owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx);
#define OPENSSL_INIT_SSL_DEFAULT \
(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS)
void OPENSSL_INIT_ssl_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings);
void OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
# ifndef OPENSSL_NO_UNIT_TEST
__owur const struct openssl_ssl_test_functions *SSL_test_functions(void);
......
......@@ -234,7 +234,7 @@ static void ossl_init_ssl_base(void)
* We ignore an error return here. Not much we can do - but not that bad
* either. We can still safely continue.
*/
OPENSSL_INIT_register_stop_handler(ssl_library_stop);
OPENSSL_atexit(ssl_library_stop);
ssl_base_inited = 1;
}
......@@ -299,14 +299,13 @@ static void ssl_library_stop(void)
* called prior to any threads making calls to any OpenSSL functions,
* i.e. passing a non-null settings value is assumed to be single-threaded.
*/
void OPENSSL_INIT_ssl_library_start(uint64_t opts,
const OPENSSL_INIT_SETTINGS *settings)
void OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
{
/* XXX TODO WARNING To be updated to return a value not assert. */
assert(!stopped);
OPENSSL_INIT_crypto_library_start(opts | OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS, settings);
OPENSSL_init_crypto(opts | OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS, settings);
ossl_init_once_run(&ssl_base, ossl_init_ssl_base);
......
......@@ -2270,7 +2270,7 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth)
return (NULL);
}
OPENSSL_INIT_ssl_library_start(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
if (FIPS_mode() && (meth->version < TLS1_VERSION)) {
SSLerr(SSL_F_SSL_CTX_NEW, SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE);
......
......@@ -183,7 +183,7 @@ int main(int argc, char **argv)
CRYPTO_set_mem_debug(1);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_ALL_BUILTIN, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN, NULL);
printf("PKCS5_PBKDF2_HMAC() tests ");
for (i = 0; test->pass != NULL; i++, test++) {
......
......@@ -4725,7 +4725,7 @@ PKCS8_get_attr 5206 1_1_0 EXIST::FUNCTION:
PKCS12_SAFEBAG_get0_attr 5207 1_1_0 EXIST::FUNCTION:
PKCS12_get0_mac 5208 1_1_0 EXIST::FUNCTION:
PKCS12_SAFEBAG_get0_pkcs8 5209 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_library_stop 5210 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_register_stop_handler 5211 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_crypto_library_start 5212 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_thread_stop 5213 1_1_0 EXIST::FUNCTION:
OPENSSL_cleanup 5210 1_1_0 EXIST::FUNCTION:
OPENSSL_atexit 5211 1_1_0 EXIST::FUNCTION:
OPENSSL_init_crypto 5212 1_1_0 EXIST::FUNCTION:
OPENSSL_thread_stop 5213 1_1_0 EXIST::FUNCTION:
......@@ -416,4 +416,4 @@ SSL_up_ref 471 1_1_0 EXIST::FUNCTION:
SSL_CTX_up_ref 472 1_1_0 EXIST::FUNCTION:
DTLSv1_listen 473 1_1_0 EXIST::FUNCTION:
SSL_get0_verified_chain 474 1_1_0 EXIST::FUNCTION:
OPENSSL_INIT_ssl_library_start 475 1_1_0 EXIST::FUNCTION:
OPENSSL_init_ssl 475 1_1_0 EXIST::FUNCTION:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册