/
githubmirror
/
xmlsec
Обзор
Документация
Войти
/
githubmirror
/
xmlsec
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
1.3.8
docs/api/xmlsec-notes-init-shutdown.html
135 строк
5 KB
lsh123
Docs update (#869)
29 янв 2025, 20:55
Не верифицирован
29 янв 2025, 20:55
c61a4a9
Код
Авторство
О чём код?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Initialization and shutdown.: XML Security Library Reference Manual</title> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <link rel="home" href="index.html" title="XML Security Library Reference Manual"> <link rel="up" href="xmlsec-notes.html" title="Part I. XML Security Library Tutorial"> <link rel="prev" href="xmlsec-notes-compiling-others.html" title="Compiling and linking on other systems."> <link rel="next" href="xmlsec-notes-sign-encrypt.html" title="Signing and encrypting documents."> <meta name="generator" content="GTK-Doc V1.34.0 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="xmlsec-notes-compiling-others.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="xmlsec-notes-sign-encrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h2 class="title"> <a name="xmlsec-notes-init-shutdown"></a>Initialization and shutdown.</h2></div></div></div> <p>XML Security Library initialization/shutdown process includes initialization and shutdown of the dependent libraries: </p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p>libxml library;</p></li> <li class="listitem"><p>libxslt library;</p></li> <li class="listitem"><p>crypto library (OpenSSL, GnuTLS, GCrypt, NSS, ...);</p></li> <li class="listitem"><p>xmlsec library (<a class="link" href="xmlsec-xmlsec.html#xmlSecInit" title="xmlSecInit ()">xmlSecInit</a> and <a class="link" href="xmlsec-xmlsec.html#xmlSecShutdown" title="xmlSecShutdown ()">xmlSecShutdown</a> functions); </p></li> <li class="listitem"><p>xmlsec-crypto library (<a class="link" href="xmlsec-dl.html#xmlSecCryptoDLLoadLibrary" title="xmlSecCryptoDLLoadLibrary ()">xmlSecCryptoDLLoadLibrary</a> to load xmlsec-crypto library dynamicaly if needed, <a class="link" href="xmlsec-app.html#xmlSecCryptoInit" title="xmlSecCryptoInit ()">xmlSecCryptoInit</a> and <a class="link" href="xmlsec-app.html#xmlSecCryptoShutdown" title="xmlSecCryptoShutdown ()">xmlSecCryptoShutdown</a> functions); </p></li> </ul></div> <p> 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> </p> <div class="example"> <a name="id-1.2.5.3.1"></a><p class="title"><b>Example 8. Initializing application.</b></p> <div class="example-contents"><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(NULL) < 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> </div> <p><br class="example-break"> </p> <p> </p> <div class="example"> <a name="id-1.2.5.4.1"></a><p class="title"><b>Example 9. Shutting down application.</b></p> <div class="example-contents"><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> <p><br class="example-break"> </p> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.34.0</div> </body> </html>