<refentry id="xmlsec-dl">
<refmeta>
<refentrytitle role="top_of_page" id="xmlsec-dl.top_of_page">dl</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>XMLSEC Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>dl</refname>
<refpurpose>Dynamic crypto-engine library loading support.</refpurpose>
</refnamediv>

<refsynopsisdiv id="xmlsec-dl.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms">xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms</link>
                                                        (<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link> functions);
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLInit">xmlSecCryptoDLInit</link>                  (void);
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLShutdown">xmlSecCryptoDLShutdown</link>              (void);
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLLoadLibrary">xmlSecCryptoDLLoadLibrary</link>           (const <link linkend="xmlChar">xmlChar</link> *crypto);
<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link>  <link linkend="xmlSecCryptoDLGetLibraryFunctions">xmlSecCryptoDLGetLibraryFunctions</link>
                                                        (const <link linkend="xmlChar">xmlChar</link> *crypto);
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLUnloadLibrary">xmlSecCryptoDLUnloadLibrary</link>         (const <link linkend="xmlChar">xmlChar</link> *crypto);
<link linkend="int">int</link>                 <link linkend="xmlSecCryptoDLSetFunctions">xmlSecCryptoDLSetFunctions</link>          (<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link> functions);
<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link>  <link linkend="xmlSecCryptoDLGetFunctions">xmlSecCryptoDLGetFunctions</link>  (void);
</synopsis>
</refsynopsisdiv>









<refsect1 id="xmlsec-dl.description" role="desc">
<title role="desc.title">Description</title>
<para>
Dynamic crypto-engine library loading support.
</para>
</refsect1>

<refsect1 id="xmlsec-dl.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms" role="function">
<title>xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()</title>
<indexterm zone="xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms"><primary sortas="xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms">xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
                                                        (<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link> functions);</programlisting>
<para>
Registers the key data and transforms klasses from <parameter>functions</parameter> table in xmlsec.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>functions</parameter>&#160;:</term>
<listitem><simpara>          the functions table.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLInit" role="function">
<title>xmlSecCryptoDLInit ()</title>
<indexterm zone="xmlSecCryptoDLInit"><primary sortas="xmlSecCryptoDLInit">xmlSecCryptoDLInit</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLInit                  (void);</programlisting>
<para>
Initializes dynamic loading engine. This is an internal function
and should not be called by application directly.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLShutdown" role="function">
<title>xmlSecCryptoDLShutdown ()</title>
<indexterm zone="xmlSecCryptoDLShutdown"><primary sortas="xmlSecCryptoDLShutdown">xmlSecCryptoDLShutdown</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLShutdown              (void);</programlisting>
<para>
Shutdowns dynamic loading engine. This is an internal function
and should not be called by application directly.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLLoadLibrary" role="function">
<title>xmlSecCryptoDLLoadLibrary ()</title>
<indexterm zone="xmlSecCryptoDLLoadLibrary"><primary sortas="xmlSecCryptoDLLoadLibrary">xmlSecCryptoDLLoadLibrary</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLLoadLibrary           (const <link linkend="xmlChar">xmlChar</link> *crypto);</programlisting>
<para>
Loads the xmlsec-&lt;crypto&gt; library. This function is NOT thread safe,
application MUST NOT call <link linkend="xmlSecCryptoDLLoadLibrary"><type>xmlSecCryptoDLLoadLibrary</type></link>, <link linkend="xmlSecCryptoDLGetLibraryFunctions"><type>xmlSecCryptoDLGetLibraryFunctions</type></link>,
and <link linkend="xmlSecCryptoDLUnloadLibrary"><type>xmlSecCryptoDLUnloadLibrary</type></link> functions from multiple threads.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>crypto</parameter>&#160;:</term>
<listitem><simpara>             the desired crypto library name ("openssl", "nss", ...).
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLGetLibraryFunctions" role="function">
<title>xmlSecCryptoDLGetLibraryFunctions ()</title>
<indexterm zone="xmlSecCryptoDLGetLibraryFunctions"><primary sortas="xmlSecCryptoDLGetLibraryFunctions">xmlSecCryptoDLGetLibraryFunctions</primary></indexterm><programlisting><link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link>  xmlSecCryptoDLGetLibraryFunctions
                                                        (const <link linkend="xmlChar">xmlChar</link> *crypto);</programlisting>
<para>
Loads the xmlsec-&lt;crypto&gt; library and gets global crypto functions/transforms/keys data/keys store
table. This function is NOT thread safe, application MUST NOT call <link linkend="xmlSecCryptoDLLoadLibrary"><type>xmlSecCryptoDLLoadLibrary</type></link>,
<link linkend="xmlSecCryptoDLGetLibraryFunctions"><type>xmlSecCryptoDLGetLibraryFunctions</type></link>, and <link linkend="xmlSecCryptoDLUnloadLibrary"><type>xmlSecCryptoDLUnloadLibrary</type></link> functions from multiple threads.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>crypto</parameter>&#160;:</term>
<listitem><simpara>             the desired crypto library name ("openssl", "nss", ...).
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the table or NULL if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLUnloadLibrary" role="function">
<title>xmlSecCryptoDLUnloadLibrary ()</title>
<indexterm zone="xmlSecCryptoDLUnloadLibrary"><primary sortas="xmlSecCryptoDLUnloadLibrary">xmlSecCryptoDLUnloadLibrary</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLUnloadLibrary         (const <link linkend="xmlChar">xmlChar</link> *crypto);</programlisting>
<para>
Unloads the xmlsec-&lt;crypto&gt; library. All pointers to this library
functions tables became invalid. This function is NOT thread safe,
application MUST NOT call <link linkend="xmlSecCryptoDLLoadLibrary"><type>xmlSecCryptoDLLoadLibrary</type></link>, <link linkend="xmlSecCryptoDLGetLibraryFunctions"><type>xmlSecCryptoDLGetLibraryFunctions</type></link>,
and <link linkend="xmlSecCryptoDLUnloadLibrary"><type>xmlSecCryptoDLUnloadLibrary</type></link> functions from multiple threads.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>crypto</parameter>&#160;:</term>
<listitem><simpara>             the desired crypto library name ("openssl", "nss", ...).
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLSetFunctions" role="function">
<title>xmlSecCryptoDLSetFunctions ()</title>
<indexterm zone="xmlSecCryptoDLSetFunctions"><primary sortas="xmlSecCryptoDLSetFunctions">xmlSecCryptoDLSetFunctions</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecCryptoDLSetFunctions          (<link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link> functions);</programlisting>
<para>
Sets global crypto functions/transforms/keys data/keys store table.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>functions</parameter>&#160;:</term>
<listitem><simpara>          the new table
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecCryptoDLGetFunctions" role="function">
<title>xmlSecCryptoDLGetFunctions ()</title>
<indexterm zone="xmlSecCryptoDLGetFunctions"><primary sortas="xmlSecCryptoDLGetFunctions">xmlSecCryptoDLGetFunctions</primary></indexterm><programlisting><link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctionsPtr</link>  xmlSecCryptoDLGetFunctions  (void);</programlisting>
<para>
Gets global crypto functions/transforms/keys data/keys store table.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the table.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
