2016-02-09 10:17:59 +00:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
OPENSSL_init_ssl - OpenSSL (libssl and libcrypto) initialisation
|
2016-02-09 10:17:59 +00:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/ssl.h>
|
|
|
|
|
2016-02-10 13:59:15 +00:00
|
|
|
int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
2016-02-09 10:17:59 +00:00
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
During normal operation OpenSSL (libssl and libcrypto) will allocate various
|
|
|
|
resources at start up that must, subsequently, be freed on close down of the
|
|
|
|
library. Additionally some resources are allocated on a per thread basis (if the
|
|
|
|
application is multi-threaded), and these resources must be freed prior to the
|
|
|
|
thread closing.
|
|
|
|
|
|
|
|
As of version 1.1.0 OpenSSL will automatically allocate all resources that it
|
|
|
|
needs so no explicit initialisation is required. Similarly it will also
|
|
|
|
automatically deinitialise as required.
|
|
|
|
|
2016-02-15 23:32:22 +00:00
|
|
|
However, there may be situations when explicit initialisation is desirable or
|
2016-02-09 10:17:59 +00:00
|
|
|
needed, for example when some non-default initialisation is required. The
|
2016-02-09 16:52:40 +00:00
|
|
|
function OPENSSL_init_ssl() can be used for this purpose. Calling
|
2016-02-09 10:17:59 +00:00
|
|
|
this function will explicitly initialise BOTH libcrypto and libssl. To
|
|
|
|
explicitly initialise ONLY libcrypto see the
|
2016-02-09 16:52:40 +00:00
|
|
|
L<OPENSSL_init_crypto(3)> function.
|
2016-02-09 13:12:34 +00:00
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
Numerous internal OpenSSL functions call OPENSSL_init_ssl().
|
2016-02-09 13:12:34 +00:00
|
|
|
Therefore, in order to perform non-default initialisation,
|
2016-02-09 16:52:40 +00:00
|
|
|
OPENSSL_init_ssl() MUST be called by application code prior to
|
2016-02-09 13:12:34 +00:00
|
|
|
any other OpenSSL function calls.
|
2016-02-09 10:17:59 +00:00
|
|
|
|
|
|
|
The B<opts> parameter specifies which aspects of libssl and libcrypto should be
|
|
|
|
initialised. Valid options for libcrypto are described on the
|
2016-02-09 16:52:40 +00:00
|
|
|
L<OPENSSL_init_crypto(3)> page. In addition to any libcrypto
|
2016-02-09 10:17:59 +00:00
|
|
|
specific option the following libssl options can also be used:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item OPENSSL_INIT_NO_LOAD_SSL_STRINGS
|
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
Suppress automatic loading of the libssl error strings. This option is
|
2016-02-09 10:17:59 +00:00
|
|
|
not a default option. Once selected subsequent calls to
|
2016-02-09 16:52:40 +00:00
|
|
|
OPENSSL_init_ssl() with the option
|
|
|
|
B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored.
|
2016-02-09 10:17:59 +00:00
|
|
|
|
|
|
|
=item OPENSSL_INIT_LOAD_SSL_STRINGS
|
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
Automatic loading of the libssl error strings. This option is a
|
2016-02-09 10:17:59 +00:00
|
|
|
default option. Once selected subsequent calls to
|
2016-02-09 16:52:40 +00:00
|
|
|
OPENSSL_init_ssl() with the option
|
2016-02-09 10:17:59 +00:00
|
|
|
B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
2016-02-10 14:55:48 +00:00
|
|
|
OPENSSL_init_ssl() takes a B<settings> parameter which can be used to
|
|
|
|
set parameter values. See L<OPENSSL_init_crypto(3)> for details.
|
2016-02-09 10:17:59 +00:00
|
|
|
|
2016-02-10 13:59:15 +00:00
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
|
|
|
The function OPENSSL_init_ssl() returns 1 on success or 0 on error.
|
|
|
|
|
2016-02-09 10:17:59 +00:00
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
L<OPENSSL_init_crypto(3)>
|
2016-02-09 10:17:59 +00:00
|
|
|
|
|
|
|
=head1 HISTORY
|
|
|
|
|
2016-02-09 16:52:40 +00:00
|
|
|
The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0.
|
2016-02-09 10:17:59 +00:00
|
|
|
|
2016-05-18 15:44:05 +00:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
|
|
|
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
|
|
|
2018-12-06 13:04:44 +00:00
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
2016-05-18 15:44:05 +00:00
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|