
#use wml::openssl-macros area=docs page=SSL_library_init

<title>Documents, SSL_library_init(3)</title>

<h1>SSL_library_init(3)</h1>

#use wml::imp::generic

{:
## What's this? [[s|(<STRONG>[^<].+?)</A>(</STRONG><DD>)|$1$2|sg]]
[[s|<P>\s+<P>|<P>|sg]]
[[s|<P>\s+</|</|sg]]
[[s|<DD>\s*<DT>|<DD>&nbsp;<DT>|sg]]
[[s|<DD>\s*</DL>|<DD>&nbsp;</DL>|sg]]
[[s|\[|&#91;|sg]]
[[s|\]|&#93;|sg]]

<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#NAME">NAME</A>
	<LI><A HREF="#SYNOPSIS">SYNOPSIS</A>
	<LI><A HREF="#DESCRIPTION">DESCRIPTION</A>
	<LI><A HREF="#NOTES">NOTES</A>
	<LI><A HREF="#WARNING">WARNING</A>
	<LI><A HREF="#EXAMPLES">EXAMPLES</A>
	<LI><A HREF="#RETURN_VALUES">RETURN VALUES</A>
	<LI><A HREF="#NOTES">NOTES</A>
	<LI><A HREF="#SEE_ALSO">SEE ALSO</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
SSL_library_init, OpenSSL_add_ssl_algorithms, SSLeay_add_ssl_algorithms -
initialize SSL library by registering algorithms

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/ssl.h&gt;
</PRE>
<PRE> int SSL_library_init(void);
 \#define OpenSSL_add_ssl_algorithms()    SSL_library_init()
 \#define SSLeay_add_ssl_algorithms()     SSL_library_init()
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
<CODE>SSL_library_init()</CODE> registers the available SSL/TLS ciphers and
digests.

</P>
<P>
<CODE>OpenSSL_add_ssl_algorithms()</CODE> and
<CODE>SSLeay_add_ssl_algorithms()</CODE> are synonyms for
<CODE>SSL_library_init().</CODE>

</P>
<P>
<HR>
<H1><A NAME="NOTES">NOTES</A></H1>
<P>
<CODE>SSL_library_init()</CODE> must be called before any other action
takes place. <CODE>SSL_library_init()</CODE> is not reentrant. 

</P>
<P>
<HR>
<H1><A NAME="WARNING">WARNING</A></H1>
<P>
<CODE>SSL_library_init()</CODE> adds ciphers and digests used directly and
indirectly by SSL/TLS.

</P>
<P>
<HR>
<H1><A NAME="EXAMPLES">EXAMPLES</A></H1>
<P>
A typical TLS/SSL application will start with the library initialization,
and provide readable error messages.

</P>
<PRE> SSL_load_error_strings();                /* readable error messages */
 SSL_library_init();                      /* initialize library */
</PRE>
<P>
<HR>
<H1><A NAME="RETURN_VALUES">RETURN VALUES</A></H1>
<P>
<CODE>SSL_library_init()</CODE> always returns ``1'', so it is safe to
discard the return value.

</P>
<P>
<HR>
<H1><A NAME="NOTES">NOTES</A></H1>
<P>
OpenSSL 0.9.8o and 1.0.0a and later added SHA2 algorithms to
<CODE>SSL_library_init().</CODE> Applications which need to use SHA2 in
earlier versions of OpenSSL should call
<CODE>OpenSSL_add_all_algorithms()</CODE> as well.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../ssl/ssl.html#">ssl(3)</A>, <A HREF="../crypto/ERR_load_crypto_strings.html#">SSL_load_error_strings(3)</A>,
<A HREF="../crypto/RAND_add.html#">RAND_add(3)</A>



</P>
:}


