Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40)

Standard preamble:
========================================================================
..
..
.. Set up some character translations and predefined strings. \*(-- will
give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
double quote, and \*(R" will give a right double quote. \*(C+ will
give a nicer C++. Capital omega is used to do unbreakable dashes and
therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
nothing in troff, for use with C<>.
.tr \(*W- . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. .nr rF 0 . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF
Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] .\} . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents . \" corrections for vroff . \" for low resolution devices (crt and lpr) \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} ========================================================================

Title "OPENSSL_INIT_SSL 3"
OPENSSL_INIT_SSL 3 "2022-11-01" "1.1.1s" "OpenSSL"
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
"NAME"
OPENSSL_init_ssl - OpenSSL (libssl and libcrypto) initialisation
"SYNOPSIS"
Header "SYNOPSIS" .Vb 1 #include <openssl/ssl.h> \& int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); .Ve
"DESCRIPTION"
Header "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.

However, there may be situations when explicit initialisation is desirable or needed, for example when some nondefault initialisation is required. The function OPENSSL_init_ssl() can be used for this purpose. Calling this function will explicitly initialise \s-1BOTH\s0 libcrypto and libssl. To explicitly initialise \s-1ONLY\s0 libcrypto see the \fBOPENSSL_init_crypto\|(3) function.

Numerous internal OpenSSL functions call OPENSSL_init_ssl(). Therefore, in order to perform nondefault initialisation, \fBOPENSSL_init_ssl() \s-1MUST\s0 be called by application code prior to any other OpenSSL function calls.

The opts parameter specifies which aspects of libssl and libcrypto should be initialised. Valid options for libcrypto are described on the \fBOPENSSL_init_crypto\|(3) page. In addition to any libcrypto specific option the following libssl options can also be used:

"\s-1OPENSSL_INIT_NO_LOAD_SSL_STRINGS\s0" 4
Item "OPENSSL_INIT_NO_LOAD_SSL_STRINGS" Suppress automatic loading of the libssl error strings. This option is not a default option. Once selected subsequent calls to \fBOPENSSL_init_ssl() with the option \fB\s-1OPENSSL_INIT_LOAD_SSL_STRINGS\s0 will be ignored.
"\s-1OPENSSL_INIT_LOAD_SSL_STRINGS\s0" 4
Item "OPENSSL_INIT_LOAD_SSL_STRINGS" Automatic loading of the libssl error strings. This option is a default option. Once selected subsequent calls to \fBOPENSSL_init_ssl() with the option \fB\s-1OPENSSL_INIT_LOAD_SSL_STRINGS\s0 will be ignored.

\fBOPENSSL_init_ssl() takes a settings parameter which can be used to set parameter values. See OPENSSL_init_crypto\|(3) for details.

"RETURN VALUES"
Header "RETURN VALUES" The function OPENSSL_init_ssl() returns 1 on success or 0 on error.
"SEE ALSO"
Header "SEE ALSO" \fBOPENSSL_init_crypto\|(3)
"HISTORY"
Header "HISTORY" The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0.
"COPYRIGHT"
Header "COPYRIGHT" Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at <https://www.openssl.org/source/license.html>.