<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Initialization and shutdown.</title> <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79"> <link rel="HOME" title="XML Security Library Reference Manual" href="index.html"> <link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html"> <link rel="PREVIOUS" title="Compiling and linking on other systems." href="xmlsec-notes-compiling-others.html"> <link rel="NEXT" title="Signing and encrypting documents." href="xmlsec-notes-sign-encrypt.html"> <style type="text/css">.synopsis, .classsynopsis { background: #eeeeee; border: solid 1px #aaaaaa; padding: 0.5em; } .programlisting { background: #eeeeff; border: solid 1px #aaaaff; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .navigation { background: #ffeeee; border: solid 1px #ffaaaa; margin-top: 0.5em; margin-bottom: 0.5em; } .navigation a { color: #770000; } .navigation a:visited { color: #550000; } .navigation .title { font-size: 200%; }</style> </head> <body><table witdh="100%" valign="top"><tr valign="top"> <td valign="top" align="left" width="210"> <img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p> <ul> <li><a href="../index.html">Home</a></li> <li><a href="../download.html">Download</a></li> <li><a href="../news.html">News</a></li> <li><a href="../documentation.html">Documentation</a></li> <ul> <li><a href="../faq.html">FAQ</a></li> <li><a href="../api/xmlsec-notes.html">Tutorial</a></li> <li><a href="../api/xmlsec-reference.html">API reference</a></li> <li><a href="../api/xmlsec-examples.html">Examples</a></li> </ul> <li><a href="../xmldsig.html">XML Digital Signature</a></li> <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul> <li><a href="../xmlenc.html">XML Encryption</a></li> <li><a href="../c14n.html">XML Canonicalization</a></li> <li><a href="../bugs.html">Reporting Bugs</a></li> <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li> <li><a href="../related.html">Related</a></li> <li><a href="../authors.html">Authors</a></li> </ul> <table width="100%"> <tr> <td width="15"></td> <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td> </tr> <tr> <td width="15"></td> <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td> </tr> <tr> <td width="15"></td> <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td> </tr> <!--Links - start--><!--Links - end--> </table> </td> <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent"> <table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> <td><a accesskey="p" href="xmlsec-notes-compiling-others.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">XML Security Library Reference Manual</th> <td><a accesskey="n" href="xmlsec-notes-sign-encrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="CHAPTER"> <h1> <a name="XMLSEC-NOTES-INIT-SHUTDOWN"></a>Initialization and shutdown.</h1> <p>XML Security Library initialization/shutdown process includes initialization and shutdown of the dependent libraries: </p> <p></p> <ul> <li><p>libxml library;</p></li> <li><p>libxslt library;</p></li> <li><p>crypto library (OpenSSL, GnuTLS, GCrypt, NSS, ...);</p></li> <li><p>xmlsec library (<a href="xmlsec-xmlsec.html#XMLSECINIT">xmlSecInit</a> and <a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN">xmlSecShutdown</a> functions); </p></li> <li><p>xmlsec-crypto library (<a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY">xmlSecCryptoDLLoadLibrary</a> to load xmlsec-crypto library dynamicaly if needed, <a href="xmlsec-app.html#XMLSECCRYPTOINIT">xmlSecCryptoInit</a> and <a href="xmlsec-app.html#XMLSECCRYPTOSHUTDOWN">xmlSecCryptoShutdown</a> functions); </p></li> </ul> xmlsec-crypto library also provides a convinient functions <font>xmlSecAppCryptoInit</font> and <font>xmlSecAppCryptoShutdown</font> to initialize the crypto library itself but application can do it by itself. <p> </p> <div class="EXAMPLE"> <a name="AEN137"></a><p><b>Example 1. Initializing application.</b></p> <pre class="PROGRAMLISTING"> /* Init libxml and libxslt libraries */ xmlInitParser(); LIBXML_TEST_VERSION xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; xmlSubstituteEntitiesDefault(1); #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ /* Init xmlsec library */ if(xmlSecInit() < 0) { fprintf(stderr, "Error: xmlsec initialization failed.\n"); return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); return(-1); } /* Load default crypto engine if we are supporting dynamic * loading for xmlsec-crypto libraries. Use the crypto library * name ("openssl", "nss", etc.) to load corresponding * xmlsec-crypto library. */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" "that you have it installed and check shared libraries path\n" "(LD_LIBRARY_PATH) envornment variable.\n"); return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { fprintf(stderr, "Error: crypto initialization failed.\n"); return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); return(-1); } </pre> </div> <p> </p> <div class="EXAMPLE"> <a name="AEN141"></a><p><b>Example 2. Shutting down application.</b></p> <pre class="PROGRAMLISTING"> /* Shutdown xmlsec-crypto library */ xmlSecCryptoShutdown(); /* Shutdown crypto library */ xmlSecCryptoAppShutdown(); /* Shutdown xmlsec library */ xmlSecShutdown(); /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); </pre> </div> </div> <table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle"> <td align="left"><a accesskey="p" href="xmlsec-notes-compiling-others.html"><b><<< Compiling and linking on other systems.</b></a></td> <td align="right"><a accesskey="n" href="xmlsec-notes-sign-encrypt.html"><b>Signing and encrypting documents. >>></b></a></td> </tr></table> </td></tr></table></td> </tr></table></body> </html>