[#OPENSSL_init_ssl]
= OPENSSL&lowbar;init&lowbar;ssl
:mrdocs:

Explicitly initialise libssl and libcrypto with the given options and settings&period;

== Synopsis

Declared in `&lt;openssl&sol;ssl&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
int
OPENSSL&lowbar;init&lowbar;ssl(
    uint64&lowbar;t opts,
    xref:OPENSSL_INIT_SETTINGS.adoc[OPENSSL&lowbar;INIT&lowbar;SETTINGS] const* settings);
----

== Description

Automatic init usually makes this unnecessary&semi; call it before other OpenSSL APIs when non&hyphen;default initialisation is required&period;

== Return Value

1 on success, or 0 on error&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *opts*
| Bitwise OR of OPENSSL&lowbar;INIT&lowbar;&ast; flags (libcrypto options plus OPENSSL&lowbar;INIT&lowbar;LOAD&lowbar;SSL&lowbar;STRINGS &sol; OPENSSL&lowbar;INIT&lowbar;NO&lowbar;LOAD&lowbar;SSL&lowbar;STRINGS)&period;
| *settings*
| Optional init settings (see OPENSSL&lowbar;init&lowbar;crypto), or NULL&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
