]>
Commit | Line | Data |
---|---|---|
8b75603c MC |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
f672aee4 | 5 | OPENSSL_init_ssl - OpenSSL (libssl and libcrypto) initialisation |
8b75603c MC |
6 | |
7 | =head1 SYNOPSIS | |
8 | ||
9 | #include <openssl/ssl.h> | |
10 | ||
0fc32b07 | 11 | int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); |
8b75603c MC |
12 | |
13 | =head1 DESCRIPTION | |
14 | ||
15 | During normal operation OpenSSL (libssl and libcrypto) will allocate various | |
16 | resources at start up that must, subsequently, be freed on close down of the | |
17 | library. Additionally some resources are allocated on a per thread basis (if the | |
18 | application is multi-threaded), and these resources must be freed prior to the | |
19 | thread closing. | |
20 | ||
21 | As of version 1.1.0 OpenSSL will automatically allocate all resources that it | |
22 | needs so no explicit initialisation is required. Similarly it will also | |
23 | automatically deinitialise as required. | |
24 | ||
73b6924e | 25 | However, there may be situations when explicit initialisation is desirable or |
8b75603c | 26 | needed, for example when some non-default initialisation is required. The |
f672aee4 | 27 | function OPENSSL_init_ssl() can be used for this purpose. Calling |
8b75603c MC |
28 | this function will explicitly initialise BOTH libcrypto and libssl. To |
29 | explicitly initialise ONLY libcrypto see the | |
f672aee4 | 30 | L<OPENSSL_init_crypto(3)> function. |
35d8fa56 | 31 | |
f672aee4 | 32 | Numerous internal OpenSSL functions call OPENSSL_init_ssl(). |
35d8fa56 | 33 | Therefore, in order to perform non-default initialisation, |
f672aee4 | 34 | OPENSSL_init_ssl() MUST be called by application code prior to |
35d8fa56 | 35 | any other OpenSSL function calls. |
8b75603c MC |
36 | |
37 | The B<opts> parameter specifies which aspects of libssl and libcrypto should be | |
38 | initialised. Valid options for libcrypto are described on the | |
f672aee4 | 39 | L<OPENSSL_init_crypto(3)> page. In addition to any libcrypto |
8b75603c MC |
40 | specific option the following libssl options can also be used: |
41 | ||
42 | =over 4 | |
43 | ||
44 | =item OPENSSL_INIT_NO_LOAD_SSL_STRINGS | |
45 | ||
f672aee4 | 46 | Suppress automatic loading of the libssl error strings. This option is |
8b75603c | 47 | not a default option. Once selected subsequent calls to |
f672aee4 RS |
48 | OPENSSL_init_ssl() with the option |
49 | B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored. | |
8b75603c MC |
50 | |
51 | =item OPENSSL_INIT_LOAD_SSL_STRINGS | |
52 | ||
f672aee4 | 53 | Automatic loading of the libssl error strings. This option is a |
8b75603c | 54 | default option. Once selected subsequent calls to |
f672aee4 | 55 | OPENSSL_init_ssl() with the option |
8b75603c MC |
56 | B<OPENSSL_INIT_LOAD_SSL_STRINGS> will be ignored. |
57 | ||
58 | =back | |
59 | ||
7253fd55 RS |
60 | OPENSSL_init_ssl() takes a B<settings> parameter which can be used to |
61 | set parameter values. See L<OPENSSL_init_crypto(3)> for details. | |
8b75603c | 62 | |
0fc32b07 MC |
63 | =head1 RETURN VALUES |
64 | ||
65 | The function OPENSSL_init_ssl() returns 1 on success or 0 on error. | |
66 | ||
8b75603c MC |
67 | =head1 SEE ALSO |
68 | ||
f672aee4 | 69 | L<OPENSSL_init_crypto(3)> |
8b75603c MC |
70 | |
71 | =head1 HISTORY | |
72 | ||
f672aee4 | 73 | The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0. |
8b75603c | 74 | |
e2f92610 RS |
75 | =head1 COPYRIGHT |
76 | ||
77 | Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. | |
78 | ||
79 | Licensed under the OpenSSL license (the "License"). You may not use | |
80 | this file except in compliance with the License. You can obtain a copy | |
81 | in the file LICENSE in the source distribution or at | |
82 | L<https://www.openssl.org/source/license.html>. | |
83 | ||
84 | =cut |