Updates for auto init/deinit review comments

Fixes for the auto-init/deinit code based on review comments

Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Matt Caswell 2016-02-09 13:12:34 +00:00
parent 722cba2321
commit 35d8fa563c
10 changed files with 22 additions and 55 deletions

View file

@ -340,7 +340,7 @@
you can still use "no-threads" to suppress an annoying warning message
from the Configure script.)
OpenSSL provides in built support for two threading models: pthreads (found on
OpenSSL provides built-in support for two threading models: pthreads (found on
most UNIX/Linux systems), and Windows threads. No other threading models are
supported. If your platform does not provide pthreads or Windows threads then
you should Configure with the "no-threads" option.

View file

@ -190,19 +190,3 @@
your application code small "shim" snippet, which provides glue between
OpenSSL BIO layer and your compiler run-time. See the OPENSSL_Applink
manual page for further details.
Support for older Windows platforms
-----------------------------------
By default OpenSSL will use functions and capabilities of the Windows platform
only available in Windows Vista, Windows Server 2008 or later. It is possible
to enable support for older platforms by defining _WIN32_WINNT at Configure
time.
> perl Configure VC-WIN32 --prefix=c:\some\openssl\dir -D_WIN32_WINNT=0x0501
The value 0x0501 above corresponds to Windows XP which is the oldest supported
platform. The value 0x0600 corresponds to Windows Vista and Windows Server
2008. Refer to the Windows documentation for other possible values. Note that
by forcing support for an older OpenSSL version this may mean less optimal
approaches are used instead.

View file

@ -173,7 +173,7 @@ static int apps_startup()
/* Set non-default library initialisation settings */
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_ENGINE_ALL_BUILTIN
| OPENSSL_INIT_LOAD_CONFIG, NULL);
| OPENSSL_INIT_LOAD_CONFIG, NULL);
setup_ui_method();

View file

@ -81,8 +81,7 @@ void OPENSSL_config(const char *config_name)
{ OPENSSL_INIT_SET_CONF_FILENAME, .value.type_string = config_name },
{ OPENSSL_INIT_SET_END, .value.type_int = 0 }
};
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CONFIG,
(const OPENSSL_INIT_SETTINGS *)&settings);
OPENSSL_INIT_crypto_library_start(OPENSSL_INIT_LOAD_CONFIG, settings);
}
void openssl_config_internal(const char *config_name)

View file

@ -55,17 +55,6 @@
*
*/
#include <openssl/e_os2.h>
#if defined(OPENSSL_SYS_WINDOWS) && !defined(_WIN32_WINNT)
/*
* We default to requiring Windows Vista, Windows Server 2008 or later. We can
* support lower versions if _WIN32_WINNT is explicity defined to something
* less
*/
# define _WIN32_WINNT 0x0600
#endif
#include <internal/cryptlib_int.h>
#include <openssl/err.h>
#include <openssl/evp.h>

View file

@ -2,7 +2,7 @@
=head1 NAME
OPENSSL_INIT_library_stop, OPENSSL_INIT_crypto_library_start,
OPENSSL_INIT_crypto_library_start, OPENSSL_INIT_library_stop,
OPENSSL_INIT_register_stop_handler, OPENSSL_INIT_thread_stop - OpenSSL
initialisation and deinitialisation functions
@ -32,10 +32,12 @@ 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
equivalent). In order to perform non-default initialisation it MUST be called
prior to any other calls of this function. As numerous internal OpenSSL
functions also call this, this usually means you should call it prior to ANY
other OpenSSL function calls.
equivalent).
Numerous internal OpenSSL functions call OPENSSL_INIT_crypto_library_start().
Therefore, in order to perform non-default initialisation,
OPENSSL_INIT_crypto_library_start() MUST be called by application code prior to
any other OpenSSL function calls.
The B<opts> parameter specifies which aspects of libcrypto should be
initialised. Valid options are:
@ -166,8 +168,7 @@ 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,
(const OPENSSL_INIT_SETTINGS *)&settings);
OPENSSL_INIT_crypto_library_start(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.
@ -221,6 +222,6 @@ L<OPENSSL_INIT_ssl_library_start(3)>
The OPENSSL_INIT_library_stop, OPENSSL_INIT_crypto_library_start,
OPENSSL_INIT_register_stop_handler and OPENSSL_INIT_thread_stop functions were
first added in OpenSSL 1.1.0.
added in OpenSSL 1.1.0.
=cut

View file

@ -28,10 +28,12 @@ needed, for example when some non-default initialisation is required. The
function OPENSSL_INIT_ssl_library_start() 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. In order to perform
non-default initialisation it MUST be called prior to any other calls of this
function. As numerous internal OpenSSL functions also call this, this usually
means you should call it prior to ANY other OpenSSL function calls.
L<OPENSSL_INIT_crypto_library_start(3)> function.
Numerous internal OpenSSL functions call OPENSSL_INIT_ssl_library_start().
Therefore, in order to perform non-default initialisation,
OPENSSL_INIT_ssl_library_start() 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
@ -73,6 +75,6 @@ L<OPENSSL_INIT_crypto_library_start(3)>
=head1 HISTORY
The OPENSSL_INIT_ssl_library_start function was first added in OpenSSL 1.1.0.
The OPENSSL_INIT_ssl_library_start function was added in OpenSSL 1.1.0.
=cut

View file

@ -876,7 +876,7 @@ const EVP_CIPHER *EVP_seed_ofb(void);
| 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)
| OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
# ifdef OPENSSL_LOAD_CONF
# define OpenSSL_add_all_algorithms() \

View file

@ -55,16 +55,7 @@
*
*/
#include <openssl/e_os2.h>
#if defined(OPENSSL_SYS_WINDOWS) && !defined(_WIN32_WINNT)
/*
* We default to requiring Windows Vista, Windows Server 2008 or later. We can
* support lower versions if _WIN32_WINNT is explicity defined to something
* less
*/
# define _WIN32_WINNT 0x0600
#endif
#include "e_os.h"
#include <openssl/crypto.h>
#include <openssl/evp.h>

View file

@ -4815,3 +4815,4 @@ 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: