/
githubmirror
/
xmlsec
Обзор
Документация
Войти
/
githubmirror
/
xmlsec
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
1.3.10
docs/api/xmlsec-keysdata.html
3 001 строка
131 KB
lsh123
Update docs (#1082)
18 мар 2026, 04:43
Не верифицирован
18 мар 2026, 04:43
ff1e861
Код
Авторство
О чём код?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>keysdata: 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-ref.html" title="XML Security Core Library API Reference."> <link rel="prev" href="xmlsec-keyinfo.html" title="keyinfo"> <link rel="next" href="xmlsec-keys.html" title="keys"> <meta name="generator" content="GTK-Doc V1.34.0 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body><table width="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> <ul><li><a href="../https://github.com/lsh123/xmlsec">GitHub</a></li></ul> <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> <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="mailing-list.html">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="80%" valign="top" style="margin-left:10px;"><tr><td valign="top" align="left" id="xmlsecContent"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#xmlsec-keysdata.description" class="shortcut">Description</a></span> </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-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="xmlsec-keyinfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="xmlsec-keys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="xmlsec-keysdata"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="xmlsec-keysdata.top_of_page"></a>keysdata</span></h2> <p>keysdata — Crypto key data object functions.</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="xmlsec-keysdata.stability-level"></a><h2>Stability Level</h2> <acronym title="The intention of a Stable interface is to enable arbitrary third parties to develop applications to these interfaces, release them, and have confidence that they will run on all minor releases of the product (after the one in which the interface was introduced, and within the same major release). Even at a major release, incompatible changes are expected to be rare, and to have strong justifications. "><span class="acronym">Stable</span></acronym>, unless otherwise indicated </div> <div class="refsect1"> <a name="xmlsec-keysdata.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> </colgroup> <tbody> <tr> <td class="function_type"> <a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="returnvalue">xmlSecPtrListPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsGet" title="xmlSecKeyDataIdsGet ()">xmlSecKeyDataIdsGet</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="returnvalue">xmlSecPtrListPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsGetEnabled" title="xmlSecKeyDataIdsGetEnabled ()">xmlSecKeyDataIdsGetEnabled</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsInit" title="xmlSecKeyDataIdsInit ()">xmlSecKeyDataIdsInit</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsShutdown" title="xmlSecKeyDataIdsShutdown ()">xmlSecKeyDataIdsShutdown</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsRegisterDefault" title="xmlSecKeyDataIdsRegisterDefault ()">xmlSecKeyDataIdsRegisterDefault</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsRegister" title="xmlSecKeyDataIdsRegister ()">xmlSecKeyDataIdsRegister</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdsRegisterDisabled" title="xmlSecKeyDataIdsRegisterDisabled ()">xmlSecKeyDataIdsRegisterDisabled</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataCreate" title="xmlSecKeyDataCreate ()">xmlSecKeyDataCreate</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDuplicate" title="xmlSecKeyDataDuplicate ()">xmlSecKeyDataDuplicate</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDestroy" title="xmlSecKeyDataDestroy ()">xmlSecKeyDataDestroy</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGenerate" title="xmlSecKeyDataGenerate ()">xmlSecKeyDataGenerate</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetType" title="xmlSecKeyDataGetType ()">xmlSecKeyDataGetType</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetSize" title="xmlSecKeyDataGetSize ()">xmlSecKeyDataGetSize</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDebugDump" title="xmlSecKeyDataDebugDump ()">xmlSecKeyDataDebugDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDebugXmlDump" title="xmlSecKeyDataDebugXmlDump ()">xmlSecKeyDataDebugXmlDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlRead" title="xmlSecKeyDataXmlRead ()">xmlSecKeyDataXmlRead</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlWrite" title="xmlSecKeyDataXmlWrite ()">xmlSecKeyDataXmlWrite</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinRead" title="xmlSecKeyDataBinRead ()">xmlSecKeyDataBinRead</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinWrite" title="xmlSecKeyDataBinWrite ()">xmlSecKeyDataBinWrite</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetName" title="xmlSecKeyDataGetName()">xmlSecKeyDataGetName</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIsValid" title="xmlSecKeyDataIsValid()">xmlSecKeyDataIsValid</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataCheckId" title="xmlSecKeyDataCheckId()">xmlSecKeyDataCheckId</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataCheckUsage" title="xmlSecKeyDataCheckUsage()">xmlSecKeyDataCheckUsage</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataCheckSize" title="xmlSecKeyDataCheckSize()">xmlSecKeyDataCheckSize</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataInitMethod" title="xmlSecKeyDataInitMethod ()">*xmlSecKeyDataInitMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDuplicateMethod" title="xmlSecKeyDataDuplicateMethod ()">*xmlSecKeyDataDuplicateMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataFinalizeMethod" title="xmlSecKeyDataFinalizeMethod ()">*xmlSecKeyDataFinalizeMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlReadMethod" title="xmlSecKeyDataXmlReadMethod ()">*xmlSecKeyDataXmlReadMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlWriteMethod" title="xmlSecKeyDataXmlWriteMethod ()">*xmlSecKeyDataXmlWriteMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinReadMethod" title="xmlSecKeyDataBinReadMethod ()">*xmlSecKeyDataBinReadMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinWriteMethod" title="xmlSecKeyDataBinWriteMethod ()">*xmlSecKeyDataBinWriteMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGenerateMethod" title="xmlSecKeyDataGenerateMethod ()">*xmlSecKeyDataGenerateMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetTypeMethod" title="xmlSecKeyDataGetTypeMethod ()">*xmlSecKeyDataGetTypeMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetSizeMethod" title="xmlSecKeyDataGetSizeMethod ()">*xmlSecKeyDataGetSizeMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDebugDumpMethod" title="xmlSecKeyDataDebugDumpMethod ()">*xmlSecKeyDataDebugDumpMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataKlassGetName" title="xmlSecKeyDataKlassGetName()">xmlSecKeyDataKlassGetName</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinaryValueGetSize" title="xmlSecKeyDataBinaryValueGetSize ()">xmlSecKeyDataBinaryValueGetSize</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-buffer.html#xmlSecBuffer" title="struct xmlSecBuffer"><span class="returnvalue">xmlSecBufferPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinaryValueGetBuffer" title="xmlSecKeyDataBinaryValueGetBuffer ()">xmlSecKeyDataBinaryValueGetBuffer</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinaryValueSetBuffer" title="xmlSecKeyDataBinaryValueSetBuffer ()">xmlSecKeyDataBinaryValueSetBuffer</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecPtrListId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataListGetKlass" title="xmlSecKeyDataListGetKlass ()">xmlSecKeyDataListGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecPtrListId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListGetKlass" title="xmlSecKeyDataIdListGetKlass ()">xmlSecKeyDataIdListGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListFind" title="xmlSecKeyDataIdListFind ()">xmlSecKeyDataIdListFind</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListFindByNode" title="xmlSecKeyDataIdListFindByNode ()">xmlSecKeyDataIdListFindByNode</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListFindByHref" title="xmlSecKeyDataIdListFindByHref ()">xmlSecKeyDataIdListFindByHref</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListFindByName" title="xmlSecKeyDataIdListFindByName ()">xmlSecKeyDataIdListFindByName</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListDebugDump" title="xmlSecKeyDataIdListDebugDump ()">xmlSecKeyDataIdListDebugDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListDebugXmlDump" title="xmlSecKeyDataIdListDebugXmlDump ()">xmlSecKeyDataIdListDebugXmlDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore"><span class="returnvalue">xmlSecKeyDataStorePtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreCreate" title="xmlSecKeyDataStoreCreate ()">xmlSecKeyDataStoreCreate</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreDestroy" title="xmlSecKeyDataStoreDestroy ()">xmlSecKeyDataStoreDestroy</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreGetName" title="xmlSecKeyDataStoreGetName()">xmlSecKeyDataStoreGetName</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreIsValid" title="xmlSecKeyDataStoreIsValid()">xmlSecKeyDataStoreIsValid</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreCheckId" title="xmlSecKeyDataStoreCheckId()">xmlSecKeyDataStoreCheckId</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreCheckSize" title="xmlSecKeyDataStoreCheckSize()">xmlSecKeyDataStoreCheckSize</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreInitializeMethod" title="xmlSecKeyDataStoreInitializeMethod ()">*xmlSecKeyDataStoreInitializeMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <span class="c_punctuation">(</span><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreFinalizeMethod" title="xmlSecKeyDataStoreFinalizeMethod ()">*xmlSecKeyDataStoreFinalizeMethod</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreKlassGetName" title="xmlSecKeyDataStoreKlassGetName()">xmlSecKeyDataStoreKlassGetName</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecPtrListId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStorePtrListGetKlass" title="xmlSecKeyDataStorePtrListGetKlass ()">xmlSecKeyDataStorePtrListGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecImportSetPersistKey" title="xmlSecImportSetPersistKey ()">xmlSecImportSetPersistKey</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keysdata.html#xmlSecImportGetPersistKey" title="xmlSecImportGetPersistKey ()">xmlSecImportGetPersistKey</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="xmlsec-keysdata.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> </colgroup> <tbody> <tr> <td class="typedef_keyword">typedef</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsage" title="xmlSecKeyDataUsage">xmlSecKeyDataUsage</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageUnknown" title="xmlSecKeyDataUsageUnknown">xmlSecKeyDataUsageUnknown</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyInfoNodeRead" title="xmlSecKeyDataUsageKeyInfoNodeRead">xmlSecKeyDataUsageKeyInfoNodeRead</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyInfoNodeWrite" title="xmlSecKeyDataUsageKeyInfoNodeWrite">xmlSecKeyDataUsageKeyInfoNodeWrite</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyValueNodeRead" title="xmlSecKeyDataUsageKeyValueNodeRead">xmlSecKeyDataUsageKeyValueNodeRead</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyValueNodeWrite" title="xmlSecKeyDataUsageKeyValueNodeWrite">xmlSecKeyDataUsageKeyValueNodeWrite</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageRetrievalMethodNodeXml" title="xmlSecKeyDataUsageRetrievalMethodNodeXml">xmlSecKeyDataUsageRetrievalMethodNodeXml</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageRetrievalMethodNodeBin" title="xmlSecKeyDataUsageRetrievalMethodNodeBin">xmlSecKeyDataUsageRetrievalMethodNodeBin</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageReadFromFile" title="xmlSecKeyDataUsageReadFromFile">xmlSecKeyDataUsageReadFromFile</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageAny" title="xmlSecKeyDataUsageAny">xmlSecKeyDataUsageAny</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyInfoNode" title="xmlSecKeyDataUsageKeyInfoNode">xmlSecKeyDataUsageKeyInfoNode</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageKeyValueNode" title="xmlSecKeyDataUsageKeyValueNode">xmlSecKeyDataUsageKeyValueNode</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsageRetrievalMethodNode" title="xmlSecKeyDataUsageRetrievalMethodNode">xmlSecKeyDataUsageRetrievalMethodNode</a></td> </tr> <tr> <td class="typedef_keyword">typedef</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType">xmlSecKeyDataType</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeUnknown" title="xmlSecKeyDataTypeUnknown">xmlSecKeyDataTypeUnknown</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeNone" title="xmlSecKeyDataTypeNone">xmlSecKeyDataTypeNone</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypePublic" title="xmlSecKeyDataTypePublic">xmlSecKeyDataTypePublic</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypePrivate" title="xmlSecKeyDataTypePrivate">xmlSecKeyDataTypePrivate</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeSymmetric" title="xmlSecKeyDataTypeSymmetric">xmlSecKeyDataTypeSymmetric</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeSession" title="xmlSecKeyDataTypeSession">xmlSecKeyDataTypeSession</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypePermanent" title="xmlSecKeyDataTypePermanent">xmlSecKeyDataTypePermanent</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeTrusted" title="xmlSecKeyDataTypeTrusted">xmlSecKeyDataTypeTrusted</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeAny" title="xmlSecKeyDataTypeAny">xmlSecKeyDataTypeAny</a></td> </tr> <tr> <td class="datatype_keyword">enum</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataFormat" title="enum xmlSecKeyDataFormat">xmlSecKeyDataFormat</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData">xmlSecKeyData</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdUnknown" title="xmlSecKeyDataIdUnknown">xmlSecKeyDataIdUnknown</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataKlass" title="struct xmlSecKeyDataKlass">xmlSecKeyDataKlass</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataListId" title="xmlSecKeyDataListId">xmlSecKeyDataListId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataIdListId" title="xmlSecKeyDataIdListId">xmlSecKeyDataIdListId</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore">xmlSecKeyDataStore</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreIdUnknown" title="xmlSecKeyDataStoreIdUnknown">xmlSecKeyDataStoreIdUnknown</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreKlass" title="struct xmlSecKeyDataStoreKlass">xmlSecKeyDataStoreKlass</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStorePtrListId" title="xmlSecKeyDataStorePtrListId">xmlSecKeyDataStorePtrListId</a></td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="xmlsec-keysdata.description"></a><h2>Description</h2> <p></p> </div> <div class="refsect1"> <a name="xmlsec-keysdata.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="xmlSecKeyDataIdsGet"></a><h3>xmlSecKeyDataIdsGet ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="returnvalue">xmlSecPtrListPtr</span></a> xmlSecKeyDataIdsGet (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Gets global registered key data klasses list.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsGet.returns"></a><h4>Returns</h4> <p> the pointer to list of all registered key data klasses.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsGetEnabled"></a><h3>xmlSecKeyDataIdsGetEnabled ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="returnvalue">xmlSecPtrListPtr</span></a> xmlSecKeyDataIdsGetEnabled (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Gets global enabled key data klasses list.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsGetEnabled.returns"></a><h4>Returns</h4> <p> the pointer to list of all enabled key data klasses.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsInit"></a><h3>xmlSecKeyDataIdsInit ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataIdsInit (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Initializes the key data klasses. This function is called from the <a class="link" href="xmlsec-xmlsec.html#xmlSecInit" title="xmlSecInit ()"><span class="type">xmlSecInit</span></a> function and the application should not call it directly.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsInit.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsShutdown"></a><h3>xmlSecKeyDataIdsShutdown ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataIdsShutdown (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Shuts down the keys data klasses. This function is called from the <a class="link" href="xmlsec-xmlsec.html#xmlSecShutdown" title="xmlSecShutdown ()"><span class="type">xmlSecShutdown</span></a> function and the application should not call it directly.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsRegisterDefault"></a><h3>xmlSecKeyDataIdsRegisterDefault ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataIdsRegisterDefault (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Registers default (implemented by XML Security Library) key data klasses: <a class="ulink" href="" target="_top"><dsig:KeyName/></a> element processing klass, <a class="ulink" href="" target="_top"><dsig:KeyValue/></a> element processing klass, ...</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsRegisterDefault.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsRegister"></a><h3>xmlSecKeyDataIdsRegister ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataIdsRegister (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>);</pre> <p>Registers <em class="parameter"><code>id</code></em> in the global list of key data klasses and enable this key data.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsRegister.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the key data klass.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdsRegister.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdsRegisterDisabled"></a><h3>xmlSecKeyDataIdsRegisterDisabled ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataIdsRegisterDisabled (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>);</pre> <p>Registers <em class="parameter"><code>id</code></em> in the global list of key data klasses and but DO NOT enable this key data.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdsRegisterDisabled.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the key data klass.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdsRegisterDisabled.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataCreate"></a><h3>xmlSecKeyDataCreate ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a> xmlSecKeyDataCreate (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>);</pre> <p>Allocates and initializes new key data of the specified type <em class="parameter"><code>id</code></em> . Caller is responsible for destroying returned object with <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDestroy" title="xmlSecKeyDataDestroy ()"><span class="type">xmlSecKeyDataDestroy</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyDataCreate.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data id.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataCreate.returns"></a><h4>Returns</h4> <p> the pointer to newly allocated key data structure or NULL if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDuplicate"></a><h3>xmlSecKeyDataDuplicate ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a> xmlSecKeyDataDuplicate (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Creates a duplicate of the given <em class="parameter"><code>data</code></em> . Caller is responsible for destroying returned object with <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDestroy" title="xmlSecKeyDataDestroy ()"><span class="type">xmlSecKeyDataDestroy</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyDataDuplicate.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to the key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataDuplicate.returns"></a><h4>Returns</h4> <p> the pointer to newly allocated key data structure or NULL if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDestroy"></a><h3>xmlSecKeyDataDestroy ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataDestroy (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Destroys the data and frees all allocated memory.</p> <div class="refsect3"> <a name="xmlSecKeyDataDestroy.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to the key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGenerate"></a><h3>xmlSecKeyDataGenerate ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataGenerate (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> sizeBits</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> type</code></em>);</pre> <p>Generates new key data of given size and type.</p> <div class="refsect3"> <a name="xmlSecKeyDataGenerate.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>sizeBits</p></td> <td class="parameter_description"><p>the desired key data size (in bits).</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>type</p></td> <td class="parameter_description"><p>the desired key data type.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGenerate.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGetType"></a><h3>xmlSecKeyDataGetType ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a> xmlSecKeyDataGetType (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Gets key data type.</p> <div class="refsect3"> <a name="xmlSecKeyDataGetType.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGetType.returns"></a><h4>Returns</h4> <p> key data type.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGetSize"></a><h3>xmlSecKeyDataGetSize ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> xmlSecKeyDataGetSize (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Gets key data size (in bits).</p> <div class="refsect3"> <a name="xmlSecKeyDataGetSize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGetSize.returns"></a><h4>Returns</h4> <p> key data size (in bits).</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDebugDump"></a><h3>xmlSecKeyDataDebugDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints key data debug info.</p> <div class="refsect3"> <a name="xmlSecKeyDataDebugDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the pointer to output FILE.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDebugXmlDump"></a><h3>xmlSecKeyDataDebugXmlDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints key data debug info in XML format.</p> <div class="refsect3"> <a name="xmlSecKeyDataDebugXmlDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the pointer to output FILE.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataXmlRead"></a><h3>xmlSecKeyDataXmlRead ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataXmlRead (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> node</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Reads the key data of klass <em class="parameter"><code>id</code></em> from XML <em class="parameter"><code>node</code></em> and adds them to <em class="parameter"><code>key</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataXmlRead.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data klass.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the destination key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>node</p></td> <td class="parameter_description"><p>the pointer to an XML node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataXmlRead.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataXmlWrite"></a><h3>xmlSecKeyDataXmlWrite ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataXmlWrite (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> node</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Writes the key data of klass <em class="parameter"><code>id</code></em> from <em class="parameter"><code>key</code></em> to an XML <em class="parameter"><code>node</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataXmlWrite.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data klass.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the source key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>node</p></td> <td class="parameter_description"><p>the pointer to an XML node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataXmlWrite.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinRead"></a><h3>xmlSecKeyDataBinRead ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataBinRead (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code>const <a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> *buf</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> bufSize</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Reads the key data of klass <em class="parameter"><code>id</code></em> from binary buffer <em class="parameter"><code>buf</code></em> to <em class="parameter"><code>key</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataBinRead.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data klass.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the destination key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buf</p></td> <td class="parameter_description"><p>the input binary buffer.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>bufSize</p></td> <td class="parameter_description"><p>the input buffer size.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinRead.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinWrite"></a><h3>xmlSecKeyDataBinWrite ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataBinWrite (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> **buf</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> *bufSize</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Writes the key data of klass <em class="parameter"><code>id</code></em> from the <em class="parameter"><code>key</code></em> to a binary buffer <em class="parameter"><code>buf</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataBinWrite.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data klass.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the source key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buf</p></td> <td class="parameter_description"><p>the output binary buffer.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>bufSize</p></td> <td class="parameter_description"><p>the output buffer size.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinWrite.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGetName"></a><h3>xmlSecKeyDataGetName()</h3> <pre class="programlisting">#define xmlSecKeyDataGetName(data)</pre> <p>Macro. Returns the key data name.</p> <div class="refsect3"> <a name="xmlSecKeyDataGetName.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIsValid"></a><h3>xmlSecKeyDataIsValid()</h3> <pre class="programlisting">#define xmlSecKeyDataIsValid(data)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>data</code></em> is not NULL and <em class="parameter"><code>data->id</code></em> is not NULL or 0 otherwise.</p> <div class="refsect3"> <a name="xmlSecKeyDataIsValid.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataCheckId"></a><h3>xmlSecKeyDataCheckId()</h3> <pre class="programlisting">#define xmlSecKeyDataCheckId(data, dataId)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>data</code></em> is valid and <em class="parameter"><code>data</code></em> 's id is equal to <em class="parameter"><code>dataId</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataCheckId.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>dataId</p></td> <td class="parameter_description"><p>the data Id.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataCheckUsage"></a><h3>xmlSecKeyDataCheckUsage()</h3> <pre class="programlisting">#define xmlSecKeyDataCheckUsage(data, usg)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>data</code></em> is valid and could be used for <em class="parameter"><code>usg</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataCheckUsage.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>usg</p></td> <td class="parameter_description"><p>the data usage.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataCheckSize"></a><h3>xmlSecKeyDataCheckSize()</h3> <pre class="programlisting">#define xmlSecKeyDataCheckSize(data, size)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>data</code></em> is valid and <em class="parameter"><code>data</code></em> 's object has at least <em class="parameter"><code>size</code></em> bytes.</p> <div class="refsect3"> <a name="xmlSecKeyDataCheckSize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>size</p></td> <td class="parameter_description"><p>the expected size.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataInitMethod"></a><h3>xmlSecKeyDataInitMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataInitMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Key data specific initialization method.</p> <div class="refsect3"> <a name="xmlSecKeyDataInitMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataInitMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDuplicateMethod"></a><h3>xmlSecKeyDataDuplicateMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataDuplicateMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> dst</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> src</code></em>);</pre> <p>Key data specific duplication (copy) method.</p> <div class="refsect3"> <a name="xmlSecKeyDataDuplicateMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>dst</p></td> <td class="parameter_description"><p>the pointer to destination key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>src</p></td> <td class="parameter_description"><p>the pointer to source key data.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataDuplicateMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataFinalizeMethod"></a><h3>xmlSecKeyDataFinalizeMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataFinalizeMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Key data specific finalization method. All the objects and resources allocated by the key data object must be freed inside this method.</p> <div class="refsect3"> <a name="xmlSecKeyDataFinalizeMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataXmlReadMethod"></a><h3>xmlSecKeyDataXmlReadMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataXmlReadMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> node</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Key data specific method for reading XML node.</p> <div class="refsect3"> <a name="xmlSecKeyDataXmlReadMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data id.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>node</p></td> <td class="parameter_description"><p>the pointer to data's value XML node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataXmlReadMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataXmlWriteMethod"></a><h3>xmlSecKeyDataXmlWriteMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataXmlWriteMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> node</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Key data specific method for writing XML node.</p> <div class="refsect3"> <a name="xmlSecKeyDataXmlWriteMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data id.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>node</p></td> <td class="parameter_description"><p>the pointer to data's value XML node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataXmlWriteMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinReadMethod"></a><h3>xmlSecKeyDataBinReadMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataBinReadMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code>const <a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> *buf</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> bufSize</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Key data specific method for reading binary buffer.</p> <div class="refsect3"> <a name="xmlSecKeyDataBinReadMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data id.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buf</p></td> <td class="parameter_description"><p>the input buffer.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>bufSize</p></td> <td class="parameter_description"><p>the buffer size.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinReadMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinWriteMethod"></a><h3>xmlSecKeyDataBinWriteMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataBinWriteMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> id</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> **buf</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> *bufSize</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Key data specific method for reading binary buffer.</p> <div class="refsect3"> <a name="xmlSecKeyDataBinWriteMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the data id.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the key.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buf</p></td> <td class="parameter_description"><p>the output buffer.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>bufSize</p></td> <td class="parameter_description"><p>the buffer size.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinWriteMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGenerateMethod"></a><h3>xmlSecKeyDataGenerateMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataGenerateMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> sizeBits</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> type</code></em>);</pre> <p>Key data specific method for generating new key data.</p> <div class="refsect3"> <a name="xmlSecKeyDataGenerateMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>sizeBits</p></td> <td class="parameter_description"><p>the key data specific size.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>type</p></td> <td class="parameter_description"><p>the required key type (session/permanent, etc.)</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGenerateMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGetTypeMethod"></a><h3>xmlSecKeyDataGetTypeMethod ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a> <span class="c_punctuation">(</span>*xmlSecKeyDataGetTypeMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Key data specific method to get the key type.</p> <div class="refsect3"> <a name="xmlSecKeyDataGetTypeMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGetTypeMethod.returns"></a><h4>Returns</h4> <p> the key type.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataGetSizeMethod"></a><h3>xmlSecKeyDataGetSizeMethod ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> <span class="c_punctuation">(</span>*xmlSecKeyDataGetSizeMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Key data specific method to get the key size.</p> <div class="refsect3"> <a name="xmlSecKeyDataGetSizeMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataGetSizeMethod.returns"></a><h4>Returns</h4> <p> the key size in bits.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDebugDumpMethod"></a><h3>xmlSecKeyDataDebugDumpMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataDebugDumpMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Key data specific method for printing debug info.</p> <div class="refsect3"> <a name="xmlSecKeyDataDebugDumpMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the FILE to print debug info (should be open for writing).</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataKlassGetName"></a><h3>xmlSecKeyDataKlassGetName()</h3> <pre class="programlisting">#define xmlSecKeyDataKlassGetName(klass)</pre> <p>Macro. Returns data klass name.</p> <div class="refsect3"> <a name="xmlSecKeyDataKlassGetName.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>klass</p></td> <td class="parameter_description"><p>the data klass.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinaryValueGetSize"></a><h3>xmlSecKeyDataBinaryValueGetSize ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="returnvalue">xmlSecSize</span></a> xmlSecKeyDataBinaryValueGetSize (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Gets the binary key data size.</p> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueGetSize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to binary key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueGetSize.returns"></a><h4>Returns</h4> <p> binary key data size in bits.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinaryValueGetBuffer"></a><h3>xmlSecKeyDataBinaryValueGetBuffer ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-buffer.html#xmlSecBuffer" title="struct xmlSecBuffer"><span class="returnvalue">xmlSecBufferPtr</span></a> xmlSecKeyDataBinaryValueGetBuffer (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre> <p>Gets the binary key data buffer.</p> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueGetBuffer.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to binary key data.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueGetBuffer.returns"></a><h4>Returns</h4> <p> pointer to binary key data buffer.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataBinaryValueSetBuffer"></a><h3>xmlSecKeyDataBinaryValueSetBuffer ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataBinaryValueSetBuffer (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>, <em class="parameter"><code>const <a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> *buf</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> bufSize</code></em>);</pre> <p>Sets the value of <em class="parameter"><code>data</code></em> to <em class="parameter"><code>buf</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueSetBuffer.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>data</p></td> <td class="parameter_description"><p>the pointer to binary key data.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>buf</p></td> <td class="parameter_description"><p>the pointer to binary buffer.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>bufSize</p></td> <td class="parameter_description"><p>the binary buffer size.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataBinaryValueSetBuffer.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataListGetKlass"></a><h3>xmlSecKeyDataListGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecPtrListId</span></font> xmlSecKeyDataListGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The key data list klass.</p> <div class="refsect3"> <a name="xmlSecKeyDataListGetKlass.returns"></a><h4>Returns</h4> <p> pointer to the key data list klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListGetKlass"></a><h3>xmlSecKeyDataIdListGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecPtrListId</span></font> xmlSecKeyDataIdListGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The key data id list klass.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListGetKlass.returns"></a><h4>Returns</h4> <p> pointer to the key data id list klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListFind"></a><h3>xmlSecKeyDataIdListFind ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyDataIdListFind (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>);</pre> <p>Lookups <em class="parameter"><code>dataId</code></em> in <em class="parameter"><code>list</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListFind.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>dataId</p></td> <td class="parameter_description"><p>the key data klass.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdListFind.returns"></a><h4>Returns</h4> <p> 1 if <em class="parameter"><code>dataId</code></em> is found in the <em class="parameter"><code>list</code></em> , 0 if not and a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListFindByNode"></a><h3>xmlSecKeyDataIdListFindByNode ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataIdListFindByNode (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *nodeName</code></em>, <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *nodeNs</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsage" title="xmlSecKeyDataUsage"><span class="type">xmlSecKeyDataUsage</span></a> usage</code></em>);</pre> <p>Lookups data klass in the list with given <em class="parameter"><code>nodeName</code></em> , <em class="parameter"><code>nodeNs</code></em> and <em class="parameter"><code>usage</code></em> in the <em class="parameter"><code>list</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByNode.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>nodeName</p></td> <td class="parameter_description"><p>the desired key data klass XML node name.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>nodeNs</p></td> <td class="parameter_description"><p>the desired key data klass XML node namespace.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>usage</p></td> <td class="parameter_description"><p>the desired key data usage.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByNode.returns"></a><h4>Returns</h4> <p> key data klass is found and NULL otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListFindByHref"></a><h3>xmlSecKeyDataIdListFindByHref ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataIdListFindByHref (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *href</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsage" title="xmlSecKeyDataUsage"><span class="type">xmlSecKeyDataUsage</span></a> usage</code></em>);</pre> <p>Lookups data klass in the list with given <em class="parameter"><code>href</code></em> and <em class="parameter"><code>usage</code></em> in <em class="parameter"><code>list</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByHref.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>href</p></td> <td class="parameter_description"><p>the desired key data klass href.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>usage</p></td> <td class="parameter_description"><p>the desired key data usage.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByHref.returns"></a><h4>Returns</h4> <p> key data klass is found and NULL otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListFindByName"></a><h3>xmlSecKeyDataIdListFindByName ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataIdListFindByName (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *name</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsage" title="xmlSecKeyDataUsage"><span class="type">xmlSecKeyDataUsage</span></a> usage</code></em>);</pre> <p>Lookups data klass in the list with given <em class="parameter"><code>name</code></em> and <em class="parameter"><code>usage</code></em> in <em class="parameter"><code>list</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByName.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>name</p></td> <td class="parameter_description"><p>the desired key data klass name.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>usage</p></td> <td class="parameter_description"><p>the desired key data usage.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataIdListFindByName.returns"></a><h4>Returns</h4> <p> key data klass is found and NULL otherwise.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListDebugDump"></a><h3>xmlSecKeyDataIdListDebugDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataIdListDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints binary key data debug information to <em class="parameter"><code>output</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListDebugDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the pointer to output FILE.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListDebugXmlDump"></a><h3>xmlSecKeyDataIdListDebugXmlDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataIdListDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> list</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints binary key data debug information to <em class="parameter"><code>output</code></em> in XML format.</p> <div class="refsect3"> <a name="xmlSecKeyDataIdListDebugXmlDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>list</p></td> <td class="parameter_description"><p>the pointer to key data ids list.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the pointer to output FILE.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreCreate"></a><h3>xmlSecKeyDataStoreCreate ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore"><span class="returnvalue">xmlSecKeyDataStorePtr</span></a> xmlSecKeyDataStoreCreate (<em class="parameter"><code><font><span class="type">xmlSecKeyDataStoreId</span></font> id</code></em>);</pre> <p>Creates new key data store of the specified klass <em class="parameter"><code>id</code></em> . Caller is responsible for freeing returned object with <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreDestroy" title="xmlSecKeyDataStoreDestroy ()"><span class="type">xmlSecKeyDataStoreDestroy</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreCreate.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>id</p></td> <td class="parameter_description"><p>the store id.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataStoreCreate.returns"></a><h4>Returns</h4> <p> the pointer to newly allocated key data store structure or NULL if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreDestroy"></a><h3>xmlSecKeyDataStoreDestroy ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyDataStoreDestroy (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore"><span class="type">xmlSecKeyDataStorePtr</span></a> store</code></em>);</pre> <p>Destroys the key data store created with <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreCreate" title="xmlSecKeyDataStoreCreate ()"><span class="type">xmlSecKeyDataStoreCreate</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreDestroy.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the pointer to the key data store..</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreGetName"></a><h3>xmlSecKeyDataStoreGetName()</h3> <pre class="programlisting">#define xmlSecKeyDataStoreGetName(store)</pre> <p>Macro. Returns key data store name.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreGetName.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the pointer to store.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreIsValid"></a><h3>xmlSecKeyDataStoreIsValid()</h3> <pre class="programlisting">#define xmlSecKeyDataStoreIsValid(store)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>store</code></em> is not NULL and <em class="parameter"><code>store->id</code></em> is not NULL or 0 otherwise.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreIsValid.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the pointer to store.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreCheckId"></a><h3>xmlSecKeyDataStoreCheckId()</h3> <pre class="programlisting">#define xmlSecKeyDataStoreCheckId(store, storeId)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>store</code></em> is valid and <em class="parameter"><code>store</code></em> 's id is equal to <em class="parameter"><code>storeId</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreCheckId.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the pointer to store.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>storeId</p></td> <td class="parameter_description"><p>the store Id.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreCheckSize"></a><h3>xmlSecKeyDataStoreCheckSize()</h3> <pre class="programlisting">#define xmlSecKeyDataStoreCheckSize(store, size)</pre> <p>Macro. Returns 1 if <em class="parameter"><code>data</code></em> is valid and <em class="parameter"><code>stores</code></em> 's object has at least <em class="parameter"><code>size</code></em> bytes.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreCheckSize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the pointer to store.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>size</p></td> <td class="parameter_description"><p>the expected size.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreInitializeMethod"></a><h3>xmlSecKeyDataStoreInitializeMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataStoreInitializeMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore"><span class="type">xmlSecKeyDataStorePtr</span></a> store</code></em>);</pre> <p>Key data store specific initialization method.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreInitializeMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the data store.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyDataStoreInitializeMethod.returns"></a><h4>Returns</h4> <p> 0 on success or a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreFinalizeMethod"></a><h3>xmlSecKeyDataStoreFinalizeMethod ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> <span class="c_punctuation">(</span>*xmlSecKeyDataStoreFinalizeMethod<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStore" title="struct xmlSecKeyDataStore"><span class="type">xmlSecKeyDataStorePtr</span></a> store</code></em>);</pre> <p>Key data store specific finalization (destroy) method.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreFinalizeMethod.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>store</p></td> <td class="parameter_description"><p>the data store.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreKlassGetName"></a><h3>xmlSecKeyDataStoreKlassGetName()</h3> <pre class="programlisting">#define xmlSecKeyDataStoreKlassGetName(klass)</pre> <p>Macro. Returns store klass name.</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreKlassGetName.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>klass</p></td> <td class="parameter_description"><p>the pointer to store klass.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStorePtrListGetKlass"></a><h3>xmlSecKeyDataStorePtrListGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecPtrListId</span></font> xmlSecKeyDataStorePtrListGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Key data stores list.</p> <div class="refsect3"> <a name="xmlSecKeyDataStorePtrListGetKlass.returns"></a><h4>Returns</h4> <p> key data stores list klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecImportSetPersistKey"></a><h3>xmlSecImportSetPersistKey ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecImportSetPersistKey (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Sets global flag to import keys to persistent storage (MSCrypto and MSCNG). Also see PKCS12_NO_PERSIST_KEY.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecImportGetPersistKey"></a><h3>xmlSecImportGetPersistKey ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecImportGetPersistKey (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Gets global flag to import keys to persistent storage (MSCrypto and MSCNG). Also see PKCS12_NO_PERSIST_KEY.</p> <div class="refsect3"> <a name="xmlSecImportGetPersistKey.returns"></a><h4>Returns</h4> <p> 1 if keys should be imported into persistent storage and 0 otherwise.</p> </div> </div> </div> <div class="refsect1"> <a name="xmlsec-keysdata.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="xmlSecKeyDataUsage"></a><h3>xmlSecKeyDataUsage</h3> <pre class="programlisting">typedef unsigned int xmlSecKeyDataUsage; </pre> <p>The bits mask that determines possible keys data usage.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageUnknown"></a><h3>xmlSecKeyDataUsageUnknown</h3> <pre class="programlisting">#define xmlSecKeyDataUsageUnknown 0x00000 </pre> <p>The key data usage is unknown.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyInfoNodeRead"></a><h3>xmlSecKeyDataUsageKeyInfoNodeRead</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyInfoNodeRead 0x00001 </pre> <p>The key data could be read from a <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyInfoNodeWrite"></a><h3>xmlSecKeyDataUsageKeyInfoNodeWrite</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyInfoNodeWrite 0x00002 </pre> <p>The key data could be written to a <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyValueNodeRead"></a><h3>xmlSecKeyDataUsageKeyValueNodeRead</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyValueNodeRead 0x00004 </pre> <p>The key data could be read from a <a class="ulink" href="" target="_top"><dsig:KeyValue /></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyValueNodeWrite"></a><h3>xmlSecKeyDataUsageKeyValueNodeWrite</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyValueNodeWrite 0x00008 </pre> <p>The key data could be written to a <a class="ulink" href="" target="_top"><dsig:KeyValue /></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageRetrievalMethodNodeXml"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeXml</h3> <pre class="programlisting">#define xmlSecKeyDataUsageRetrievalMethodNodeXml 0x00010 </pre> <p>The key data could be retrieved using <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> node in XML format.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageRetrievalMethodNodeBin"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeBin</h3> <pre class="programlisting">#define xmlSecKeyDataUsageRetrievalMethodNodeBin 0x00020 </pre> <p>The key data could be retrieved using <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> node in binary format.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageReadFromFile"></a><h3>xmlSecKeyDataUsageReadFromFile</h3> <pre class="programlisting">#define xmlSecKeyDataUsageReadFromFile 0x00040 </pre> <p>The key data could be read from a file.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageAny"></a><h3>xmlSecKeyDataUsageAny</h3> <pre class="programlisting">#define xmlSecKeyDataUsageAny 0xFFFFF </pre> <p>Any key data usage.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyInfoNode"></a><h3>xmlSecKeyDataUsageKeyInfoNode</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyInfoNode</pre> <p>The key data could be read and written from/to a <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageKeyValueNode"></a><h3>xmlSecKeyDataUsageKeyValueNode</h3> <pre class="programlisting">#define xmlSecKeyDataUsageKeyValueNode</pre> <p>The key data could be read and written from/to a <a class="ulink" href="" target="_top"><dsig:KeyValue /></a> child.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataUsageRetrievalMethodNode"></a><h3>xmlSecKeyDataUsageRetrievalMethodNode</h3> <pre class="programlisting">#define xmlSecKeyDataUsageRetrievalMethodNode</pre> <p>The key data could be retrieved using <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> node in any format.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataType"></a><h3>xmlSecKeyDataType</h3> <pre class="programlisting">typedef unsigned int xmlSecKeyDataType; </pre> <p>The key data type (public/private, session/permanent, etc.).</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeUnknown"></a><h3>xmlSecKeyDataTypeUnknown</h3> <pre class="programlisting">#define xmlSecKeyDataTypeUnknown 0x0000 </pre> <p>The key data type is unknown (same as <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeNone" title="xmlSecKeyDataTypeNone"><span class="type">xmlSecKeyDataTypeNone</span></a>).</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeNone"></a><h3>xmlSecKeyDataTypeNone</h3> <pre class="programlisting">#define xmlSecKeyDataTypeNone xmlSecKeyDataTypeUnknown </pre> <p>The key data type is unknown (same as <a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataTypeUnknown" title="xmlSecKeyDataTypeUnknown"><span class="type">xmlSecKeyDataTypeUnknown</span></a>).</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypePublic"></a><h3>xmlSecKeyDataTypePublic</h3> <pre class="programlisting">#define xmlSecKeyDataTypePublic 0x0001 </pre> <p>The key data contain a public key.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypePrivate"></a><h3>xmlSecKeyDataTypePrivate</h3> <pre class="programlisting">#define xmlSecKeyDataTypePrivate 0x0002 </pre> <p>The key data contain a private key.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeSymmetric"></a><h3>xmlSecKeyDataTypeSymmetric</h3> <pre class="programlisting">#define xmlSecKeyDataTypeSymmetric 0x0004 </pre> <p>The key data contain a symmetric key.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeSession"></a><h3>xmlSecKeyDataTypeSession</h3> <pre class="programlisting">#define xmlSecKeyDataTypeSession 0x0008 </pre> <p>The key data contain session key (one time key, not stored in keys manager).</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypePermanent"></a><h3>xmlSecKeyDataTypePermanent</h3> <pre class="programlisting">#define xmlSecKeyDataTypePermanent 0x0010 </pre> <p>The key data contain permanent key (stored in keys manager).</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeTrusted"></a><h3>xmlSecKeyDataTypeTrusted</h3> <pre class="programlisting">#define xmlSecKeyDataTypeTrusted 0x0100 </pre> <p>The key data is trusted.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataTypeAny"></a><h3>xmlSecKeyDataTypeAny</h3> <pre class="programlisting">#define xmlSecKeyDataTypeAny 0xFFFF </pre> <p>Any key data.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataFormat"></a><h3>enum xmlSecKeyDataFormat</h3> <p>The key data format (binary, der, pem, etc.).</p> <div class="refsect3"> <a name="xmlSecKeyDataFormat.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatUnknown"></a>xmlSecKeyDataFormatUnknown</p></td> <td class="enum_member_description"><p>the key data format is unknown.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatBinary"></a>xmlSecKeyDataFormatBinary</p></td> <td class="enum_member_description"><p>the binary key data.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatPem"></a>xmlSecKeyDataFormatPem</p></td> <td class="enum_member_description"><p>the PEM key data (cert or public/private key).</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatDer"></a>xmlSecKeyDataFormatDer</p></td> <td class="enum_member_description"><p>the DER key data (cert or public/private key).</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatPkcs8Pem"></a>xmlSecKeyDataFormatPkcs8Pem</p></td> <td class="enum_member_description"><p>the PKCS8 PEM private key.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatPkcs8Der"></a>xmlSecKeyDataFormatPkcs8Der</p></td> <td class="enum_member_description"><p>the PKCS8 DER private key.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatPkcs12"></a>xmlSecKeyDataFormatPkcs12</p></td> <td class="enum_member_description"><p>the PKCS12 format (bag of keys and certs)</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatCertPem"></a>xmlSecKeyDataFormatCertPem</p></td> <td class="enum_member_description"><p>the PEM cert.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatCertDer"></a>xmlSecKeyDataFormatCertDer</p></td> <td class="enum_member_description"><p>the DER cert.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatEngine"></a>xmlSecKeyDataFormatEngine</p></td> <td class="enum_member_description"><p>the crypto engine (e.g. OpenSSL ENGINE).</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyDataFormatStore"></a>xmlSecKeyDataFormatStore</p></td> <td class="enum_member_description"><p>the crypto store (e.g. OpenSSL ossl_store).</p></td> <td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyData"></a><h3>struct xmlSecKeyData</h3> <pre class="programlisting">struct xmlSecKeyData { xmlSecKeyDataId id; void* reserved0; void* reserved1; }; </pre> <p>The key data: key value (crypto material), x509 data, pgp data, etc.</p> <div class="refsect3"> <a name="xmlSecKeyData.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><font><span class="type">xmlSecKeyDataId</span></font> <em class="structfield"><code><a name="xmlSecKeyData.id"></a>id</code></em>;</p></td> <td class="struct_member_description"><p>the data id (<font><span class="type">xmlSecKeyDataId</span></font>).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyData.reserved0"></a>reserved0</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyData.reserved1"></a>reserved1</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdUnknown"></a><h3>xmlSecKeyDataIdUnknown</h3> <pre class="programlisting">#define xmlSecKeyDataIdUnknown ((xmlSecKeyDataId)NULL) </pre> <p>The "unknown" id.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataKlass"></a><h3>struct xmlSecKeyDataKlass</h3> <pre class="programlisting">struct xmlSecKeyDataKlass { xmlSecSize klassSize; xmlSecSize objSize; /* data */ const xmlChar* name; xmlSecKeyDataUsage usage; const xmlChar* href; const xmlChar* dataNodeName; const xmlChar* dataNodeNs; /* constructors/destructor */ xmlSecKeyDataInitMethod initialize; xmlSecKeyDataDuplicateMethod duplicate; xmlSecKeyDataFinalizeMethod finalize; xmlSecKeyDataGenerateMethod generate; /* get info */ xmlSecKeyDataGetTypeMethod getType; xmlSecKeyDataGetSizeMethod getSize; void* deprecated0; /* DEPRECATED: xmlSecKeyDataGetIdentifierMethod getIdentifier; */ /* read/write */ xmlSecKeyDataXmlReadMethod xmlRead; xmlSecKeyDataXmlWriteMethod xmlWrite; xmlSecKeyDataBinReadMethod binRead; xmlSecKeyDataBinWriteMethod binWrite; /* debug */ xmlSecKeyDataDebugDumpMethod debugDump; xmlSecKeyDataDebugDumpMethod debugXmlDump; /* for the future */ void* reserved0; void* reserved1; }; </pre> <p>The data id (klass).</p> <div class="refsect3"> <a name="xmlSecKeyDataKlass.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.klassSize"></a>klassSize</code></em>;</p></td> <td class="struct_member_description"><p>the klass size.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.objSize"></a>objSize</code></em>;</p></td> <td class="struct_member_description"><p>the object size.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>const <font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.name"></a>name</code></em>;</p></td> <td class="struct_member_description"><p>the object name.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataUsage" title="xmlSecKeyDataUsage"><span class="type">xmlSecKeyDataUsage</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.usage"></a>usage</code></em>;</p></td> <td class="struct_member_description"><p>the allowed data usage.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>const <font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.href"></a>href</code></em>;</p></td> <td class="struct_member_description"><p>the identification string (href).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>const <font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.dataNodeName"></a>dataNodeName</code></em>;</p></td> <td class="struct_member_description"><p>the data's XML node name.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>const <font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.dataNodeNs"></a>dataNodeNs</code></em>;</p></td> <td class="struct_member_description"><p>the data's XML node namespace.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataInitMethod" title="xmlSecKeyDataInitMethod ()"><span class="type">xmlSecKeyDataInitMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.initialize"></a>initialize</code></em>;</p></td> <td class="struct_member_description"><p>the initialization method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDuplicateMethod" title="xmlSecKeyDataDuplicateMethod ()"><span class="type">xmlSecKeyDataDuplicateMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.duplicate"></a>duplicate</code></em>;</p></td> <td class="struct_member_description"><p>the duplicate (copy) method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataFinalizeMethod" title="xmlSecKeyDataFinalizeMethod ()"><span class="type">xmlSecKeyDataFinalizeMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.finalize"></a>finalize</code></em>;</p></td> <td class="struct_member_description"><p>the finalization (destroy) method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGenerateMethod" title="xmlSecKeyDataGenerateMethod ()"><span class="type">xmlSecKeyDataGenerateMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.generate"></a>generate</code></em>;</p></td> <td class="struct_member_description"><p>the new data generation method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetTypeMethod" title="xmlSecKeyDataGetTypeMethod ()"><span class="type">xmlSecKeyDataGetTypeMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.getType"></a>getType</code></em>;</p></td> <td class="struct_member_description"><p>the method to access data's type information.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataGetSizeMethod" title="xmlSecKeyDataGetSizeMethod ()"><span class="type">xmlSecKeyDataGetSizeMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.getSize"></a>getSize</code></em>;</p></td> <td class="struct_member_description"><p>the method to access data's size.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.deprecated0"></a>deprecated0</code></em>;</p></td> <td class="struct_member_description"><p>DEPRECAED: the method to access data's string identifier.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlReadMethod" title="xmlSecKeyDataXmlReadMethod ()"><span class="type">xmlSecKeyDataXmlReadMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.xmlRead"></a>xmlRead</code></em>;</p></td> <td class="struct_member_description"><p>the method for reading data from XML node.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataXmlWriteMethod" title="xmlSecKeyDataXmlWriteMethod ()"><span class="type">xmlSecKeyDataXmlWriteMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.xmlWrite"></a>xmlWrite</code></em>;</p></td> <td class="struct_member_description"><p>the method for writing data to XML node.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinReadMethod" title="xmlSecKeyDataBinReadMethod ()"><span class="type">xmlSecKeyDataBinReadMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.binRead"></a>binRead</code></em>;</p></td> <td class="struct_member_description"><p>the method for reading data from a binary buffer.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataBinWriteMethod" title="xmlSecKeyDataBinWriteMethod ()"><span class="type">xmlSecKeyDataBinWriteMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.binWrite"></a>binWrite</code></em>;</p></td> <td class="struct_member_description"><p>the method for writing data to binary buffer.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDebugDumpMethod" title="xmlSecKeyDataDebugDumpMethod ()"><span class="type">xmlSecKeyDataDebugDumpMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.debugDump"></a>debugDump</code></em>;</p></td> <td class="struct_member_description"><p>the method for printing debug data information.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataDebugDumpMethod" title="xmlSecKeyDataDebugDumpMethod ()"><span class="type">xmlSecKeyDataDebugDumpMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataKlass.debugXmlDump"></a>debugXmlDump</code></em>;</p></td> <td class="struct_member_description"><p>the method for printing debug data information in XML format.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.reserved0"></a>reserved0</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataKlass.reserved1"></a>reserved1</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataListId"></a><h3>xmlSecKeyDataListId</h3> <pre class="programlisting">#define xmlSecKeyDataListId xmlSecKeyDataListGetKlass() </pre> <p>The key data klasses list klass id.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataIdListId"></a><h3>xmlSecKeyDataIdListId</h3> <pre class="programlisting">#define xmlSecKeyDataIdListId xmlSecKeyDataIdListGetKlass() </pre> <p>The key data list klass id.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStore"></a><h3>struct xmlSecKeyDataStore</h3> <pre class="programlisting">struct xmlSecKeyDataStore { xmlSecKeyDataStoreId id; /* for the future */ void* reserved0; void* reserved1; }; </pre> <p>The key data store. Key data store holds common key data specific information required for key data processing. For example, X509 data store may hold information about trusted (root) certificates.</p> <div class="refsect3"> <a name="xmlSecKeyDataStore.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><font><span class="type">xmlSecKeyDataStoreId</span></font> <em class="structfield"><code><a name="xmlSecKeyDataStore.id"></a>id</code></em>;</p></td> <td class="struct_member_description"><p>the store id (<font><span class="type">xmlSecKeyDataStoreId</span></font>).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataStore.reserved0"></a>reserved0</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataStore.reserved1"></a>reserved1</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreIdUnknown"></a><h3>xmlSecKeyDataStoreIdUnknown</h3> <pre class="programlisting">#define xmlSecKeyDataStoreIdUnknown NULL </pre> <p>The "unknown" id.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStoreKlass"></a><h3>struct xmlSecKeyDataStoreKlass</h3> <pre class="programlisting">struct xmlSecKeyDataStoreKlass { xmlSecSize klassSize; xmlSecSize objSize; /* data */ const xmlChar* name; /* constructors/destructor */ xmlSecKeyDataStoreInitializeMethod initialize; xmlSecKeyDataStoreFinalizeMethod finalize; /* for the future */ void* reserved0; void* reserved1; }; </pre> <p>The data store id (klass).</p> <div class="refsect3"> <a name="xmlSecKeyDataStoreKlass.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> <em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.klassSize"></a>klassSize</code></em>;</p></td> <td class="struct_member_description"><p>the data store klass size.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> <em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.objSize"></a>objSize</code></em>;</p></td> <td class="struct_member_description"><p>the data store obj size.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>const <font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.name"></a>name</code></em>;</p></td> <td class="struct_member_description"><p>the store's name.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreInitializeMethod" title="xmlSecKeyDataStoreInitializeMethod ()"><span class="type">xmlSecKeyDataStoreInitializeMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.initialize"></a>initialize</code></em>;</p></td> <td class="struct_member_description"><p>the store's initialization method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataStoreFinalizeMethod" title="xmlSecKeyDataStoreFinalizeMethod ()"><span class="type">xmlSecKeyDataStoreFinalizeMethod</span></a> <em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.finalize"></a>finalize</code></em>;</p></td> <td class="struct_member_description"><p>the store's finalization (destroy) method.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.reserved0"></a>reserved0</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyDataStoreKlass.reserved1"></a>reserved1</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataStorePtrListId"></a><h3>xmlSecKeyDataStorePtrListId</h3> <pre class="programlisting">#define xmlSecKeyDataStorePtrListId xmlSecKeyDataStorePtrListGetKlass() </pre> <p>The data store list id (klass).</p> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.34.0</div> </td></tr></table></td> </tr></table></body> </html>