|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21573/root/usr/share/doc/xmlsec1/api/ |
Upload File : |
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>keysdata</title>
<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7">
<link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="keyinfo" href="xmlsec-keyinfo.html">
<link rel="NEXT" title="keys" href="xmlsec-keys.html">
<meta name="GENERATOR" content="GTK-Doc V1.2 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting {
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist {
padding: 4px;
margin-left: 3em;
}
.navigation {
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a {
color: #770000;
}
.navigation a:visited {
color: #550000;
}
.navigation .title {
font-size: 200%;
}</style>
</head>
<body><table witdh="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="../download.html">Download</a></li>
<li><a href="../news.html">News</a></li>
<li><a href="../documentation.html">Documentation</a></li>
<ul>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
<li><a href="../api/xmlsec-reference.html">API reference</a></li>
<li><a href="../api/xmlsec-examples.html">Examples</a></li>
</ul>
<li><a href="../xmldsig.html">XML Digital Signature</a></li>
<ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
<li><a href="../xmlenc.html">XML Encryption</a></li>
<li><a href="../c14n.html">XML Canonicalization</a></li>
<li><a href="../bugs.html">Reporting Bugs</a></li>
<li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
<li><a href="../related.html">Related</a></li>
<li><a href="../authors.html">Authors</a></li>
</ul>
<table width="100%">
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
</tr>
<!--Sponsored links - start--><!--Sponsored links - end-->
</table>
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="xmlsec-keyinfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
<td><a accesskey="n" href="xmlsec-keys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-KEYSDATA"></a>keysdata</h1>
<div class="REFNAMEDIV">
<a name="AEN5720"></a><h2>Name</h2>keysdata -- </div>
<div class="REFSYNOPSISDIV">
<a name="AEN5723"></a><h2>Synopsis</h2>
<pre class="SYNOPSIS">
typedef <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a>;
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEUNKNOWN">xmlSecKeyDataUsageUnknown</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEREAD">xmlSecKeyDataUsageKeyInfoNodeRead</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEWRITE">xmlSecKeyDataUsageKeyInfoNodeWrite</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEREAD">xmlSecKeyDataUsageKeyValueNodeRead</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEWRITE">xmlSecKeyDataUsageKeyValueNodeWrite</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML">xmlSecKeyDataUsageRetrievalMethodNodeXml</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN">xmlSecKeyDataUsageRetrievalMethodNodeBin</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEANY">xmlSecKeyDataUsageAny</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODE">xmlSecKeyDataUsageKeyInfoNode</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODE">xmlSecKeyDataUsageKeyValueNode</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODE">xmlSecKeyDataUsageRetrievalMethodNode</a>
typedef <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a>;
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN">xmlSecKeyDataTypeUnknown</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE">xmlSecKeyDataTypeNone</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPUBLIC">xmlSecKeyDataTypePublic</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPRIVATE">xmlSecKeyDataTypePrivate</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESYMMETRIC">xmlSecKeyDataTypeSymmetric</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESESSION">xmlSecKeyDataTypeSession</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPERMANENT">xmlSecKeyDataTypePermanent</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPETRUSTED">xmlSecKeyDataTypeTrusted</a>
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEANY">xmlSecKeyDataTypeAny</a>
enum <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a>;
<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSGET">xmlSecKeyDataIdsGet</a> (void);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSINIT">xmlSecKeyDataIdsInit</a> (void);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSSHUTDOWN">xmlSecKeyDataIdsShutdown</a> (void);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTERDEFAULT">xmlSecKeyDataIdsRegisterDefault</a> (void);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTER">xmlSecKeyDataIdsRegister</a> (<font>xmlSecKeyDataId</font> id);
struct <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyData</a>;
<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATACREATE">xmlSecKeyDataCreate</a> (<font>xmlSecKeyDataId</font> id);
<font>xmlSecKeyDataPtr</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATE">xmlSecKeyDataDuplicate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY">xmlSecKeyDataDestroy</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATE">xmlSecKeyDataGenerate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPE">xmlSecKeyDataGetType</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZE">xmlSecKeyDataGetSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
const <font>xmlChar</font>* <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIER">xmlSecKeyDataGetIdentifier</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMP">xmlSecKeyDataDebugDump</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGXMLDUMP">xmlSecKeyDataDebugXmlDump</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREAD">xmlSecKeyDataXmlRead</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITE">xmlSecKeyDataXmlWrite</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINREAD">xmlSecKeyDataBinRead</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITE">xmlSecKeyDataBinWrite</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETNAME">xmlSecKeyDataGetName</a> (data)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAISVALID">xmlSecKeyDataIsValid</a> (data)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKID">xmlSecKeyDataCheckId</a> (data, dataId)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKUSAGE">xmlSecKeyDataCheckUsage</a> (data, usg)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKSIZE">xmlSecKeyDataCheckSize</a> (data, size)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDUNKNOWN">xmlSecKeyDataIdUnknown</a>
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD">*xmlSecKeyDataInitMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD">*xmlSecKeyDataDuplicateMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);
<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD">*xmlSecKeyDataFinalizeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD">*xmlSecKeyDataXmlReadMethod</a>) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD">*xmlSecKeyDataXmlWriteMethod</a>) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD">*xmlSecKeyDataBinReadMethod</a>) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD">*xmlSecKeyDataBinWriteMethod</a>) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD">*xmlSecKeyDataGenerateMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD">*xmlSecKeyDataGetTypeMethod</a>)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD">*xmlSecKeyDataGetSizeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
const <font>xmlChar</font>* (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD">*xmlSecKeyDataGetIdentifierMethod</a>)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">*xmlSecKeyDataDebugDumpMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);
struct <a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASS">xmlSecKeyDataKlass</a>;
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASSGETNAME">xmlSecKeyDataKlassGetName</a> (klass)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATALISTID">xmlSecKeyDataListId</a>
<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATALISTGETKLASS">xmlSecKeyDataListGetKlass</a> (void);
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTID">xmlSecKeyDataIdListId</a>
<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTGETKLASS">xmlSecKeyDataIdListGetKlass</a> (void);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFIND">xmlSecKeyDataIdListFind</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>xmlSecKeyDataId</font> dataId);
<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNODE">xmlSecKeyDataIdListFindByNode</a>
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *nodeName,
const <font>xmlChar</font> *nodeNs,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYHREF">xmlSecKeyDataIdListFindByHref</a>
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *href,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNAME">xmlSecKeyDataIdListFindByName</a>
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *name,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGDUMP">xmlSecKeyDataIdListDebugDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>FILE</font> *output);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGXMLDUMP">xmlSecKeyDataIdListDebugXmlDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>FILE</font> *output);
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYSIZE">xmlSecKeyDataBinarySize</a>
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEINITIALIZE">xmlSecKeyDataBinaryValueInitialize</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDUPLICATE">xmlSecKeyDataBinaryValueDuplicate</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEFINALIZE">xmlSecKeyDataBinaryValueFinalize</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLREAD">xmlSecKeyDataBinaryValueXmlRead</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLWRITE">xmlSecKeyDataBinaryValueXmlWrite</a>
(<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINREAD">xmlSecKeyDataBinaryValueBinRead</a> (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINWRITE">xmlSecKeyDataBinaryValueBinWrite</a>
(<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGDUMP">xmlSecKeyDataBinaryValueDebugDump</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP">xmlSecKeyDataBinaryValueDebugXmlDump</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETSIZE">xmlSecKeyDataBinaryValueGetSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETBUFFER">xmlSecKeyDataBinaryValueGetBuffer</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUESETBUFFER">xmlSecKeyDataBinaryValueSetBuffer</a>
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
struct <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStore</a>;
<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE">xmlSecKeyDataStoreCreate</a>
(<font>xmlSecKeyDataStoreId</font> id);
<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY">xmlSecKeyDataStoreDestroy</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREGETNAME">xmlSecKeyDataStoreGetName</a> (store)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREISVALID">xmlSecKeyDataStoreIsValid</a> (store)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKID">xmlSecKeyDataStoreCheckId</a> (store, storeId)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKSIZE">xmlSecKeyDataStoreCheckSize</a> (store, size)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREIDUNKNOWN">xmlSecKeyDataStoreIdUnknown</a>
<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD">*xmlSecKeyDataStoreInitializeMethod</a>)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD">*xmlSecKeyDataStoreFinalizeMethod</a>)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
struct <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASS">xmlSecKeyDataStoreKlass</a>;
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASSGETNAME">xmlSecKeyDataStoreKlassGetName</a> (klass)
#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTID">xmlSecKeyDataStorePtrListId</a>
<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTGETKLASS">xmlSecKeyDataStorePtrListGetKlass</a>
(void);</pre>
</div>
<div class="REFSECT1">
<a name="AEN5993"></a><h2>Description</h2>
<p></p>
</div>
<div class="REFSECT1">
<a name="AEN5996"></a><h2>Details</h2>
<div class="REFSECT2">
<a name="AEN5998"></a><h3>
<a name="XMLSECKEYDATAUSAGE"></a>xmlSecKeyDataUsage</h3>
<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataUsage;</pre>
<p>The bits mask that determines possible keys data usage.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6006"></a><h3>
<a name="XMLSECKEYDATAUSAGEUNKNOWN"></a>xmlSecKeyDataUsageUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageUnknown 0x00000</pre>
<p>The key data usage is unknown.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6014"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYINFONODEREAD"></a>xmlSecKeyDataUsageKeyInfoNodeRead</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeRead 0x00001</pre>
<p>The key data could be read from a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6023"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYINFONODEWRITE"></a>xmlSecKeyDataUsageKeyInfoNodeWrite</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeWrite 0x00002</pre>
<p>The key data could be written to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6032"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYVALUENODEREAD"></a>xmlSecKeyDataUsageKeyValueNodeRead</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeRead 0x00004</pre>
<p>The key data could be read from a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6041"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYVALUENODEWRITE"></a>xmlSecKeyDataUsageKeyValueNodeWrite</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeWrite 0x00008</pre>
<p>The key data could be written to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6050"></a><h3>
<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML"></a>xmlSecKeyDataUsageRetrievalMethodNodeXml</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeXml 0x00010</pre>
<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
in XML format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6059"></a><h3>
<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN"></a>xmlSecKeyDataUsageRetrievalMethodNodeBin</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeBin 0x00020</pre>
<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
in binary format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6068"></a><h3>
<a name="XMLSECKEYDATAUSAGEANY"></a>xmlSecKeyDataUsageAny</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageAny 0xFFFFF</pre>
<p>Any key data usage.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6076"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYINFONODE"></a>xmlSecKeyDataUsageKeyInfoNode</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNode</pre>
<p>The key data could be read and written from/to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6085"></a><h3>
<a name="XMLSECKEYDATAUSAGEKEYVALUENODE"></a>xmlSecKeyDataUsageKeyValueNode</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNode</pre>
<p>The key data could be read and written from/to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6094"></a><h3>
<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODE"></a>xmlSecKeyDataUsageRetrievalMethodNode</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNode</pre>
<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
in any format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6103"></a><h3>
<a name="XMLSECKEYDATATYPE"></a>xmlSecKeyDataType</h3>
<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataType;</pre>
<p>The key data type (public/private, session/permanet, etc.).</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6111"></a><h3>
<a name="XMLSECKEYDATATYPEUNKNOWN"></a>xmlSecKeyDataTypeUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeUnknown 0x0000</pre>
<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE"><span class="TYPE">xmlSecKeyDataTypeNone</span></a>).</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6121"></a><h3>
<a name="XMLSECKEYDATATYPENONE"></a>xmlSecKeyDataTypeNone</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeNone xmlSecKeyDataTypeUnknown</pre>
<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN"><span class="TYPE">xmlSecKeyDataTypeUnknown</span></a>).</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6131"></a><h3>
<a name="XMLSECKEYDATATYPEPUBLIC"></a>xmlSecKeyDataTypePublic</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePublic 0x0001</pre>
<p>The key data contain a public key.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6139"></a><h3>
<a name="XMLSECKEYDATATYPEPRIVATE"></a>xmlSecKeyDataTypePrivate</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePrivate 0x0002</pre>
<p>The key data contain a private key.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6147"></a><h3>
<a name="XMLSECKEYDATATYPESYMMETRIC"></a>xmlSecKeyDataTypeSymmetric</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeSymmetric 0x0004</pre>
<p>The key data contain a symmetric key.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6155"></a><h3>
<a name="XMLSECKEYDATATYPESESSION"></a>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>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6163"></a><h3>
<a name="XMLSECKEYDATATYPEPERMANENT"></a>xmlSecKeyDataTypePermanent</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePermanent 0x0010</pre>
<p>The key data contain permanent key (stored in keys manager).</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6171"></a><h3>
<a name="XMLSECKEYDATATYPETRUSTED"></a>xmlSecKeyDataTypeTrusted</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeTrusted 0x0100</pre>
<p>The key data is trusted.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6179"></a><h3>
<a name="XMLSECKEYDATATYPEANY"></a>xmlSecKeyDataTypeAny</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeAny 0xFFFF</pre>
<p>Any key data.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6187"></a><h3>
<a name="XMLSECKEYDATAFORMAT"></a>enum xmlSecKeyDataFormat</h3>
<pre class="PROGRAMLISTING">typedef enum {
xmlSecKeyDataFormatUnknown = 0,
xmlSecKeyDataFormatBinary,
xmlSecKeyDataFormatPem,
xmlSecKeyDataFormatDer,
xmlSecKeyDataFormatPkcs8Pem,
xmlSecKeyDataFormatPkcs8Der,
xmlSecKeyDataFormatPkcs12,
xmlSecKeyDataFormatCertPem,
xmlSecKeyDataFormatCertDer
} xmlSecKeyDataFormat;</pre>
<p>The key data format (binary, der, pem, etc.).</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6196"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatUnknown</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the key data format is unknown.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6201"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatBinary</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6206"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPem</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the PEM key data (cert or public/private key).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6211"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatDer</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the DER key data (cert or public/private key).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6216"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPkcs8Pem</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the PKCS<font><span class="TYPE">8</span></font> PEM private key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6223"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPkcs8Der</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the PKCS<font><span class="TYPE">8</span></font> DER private key. </p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6230"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPkcs12</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the PKCS12 format (bag of keys and certs)</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6235"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatCertPem</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the PEM cert.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6240"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatCertDer</var></span></a></td>
<td align="LEFT" valign="TOP"><p> the DER cert.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6245"></a><h3>
<a name="XMLSECKEYDATAIDSGET"></a>xmlSecKeyDataIdsGet ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> xmlSecKeyDataIdsGet (void);</pre>
<p>Gets global registered key data klasses list.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6255"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the pointer to list of all registered key data klasses.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6260"></a><h3>
<a name="XMLSECKEYDATAIDSINIT"></a>xmlSecKeyDataIdsInit ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsInit (void);</pre>
<p>Initializes the key data klasses. This function is called from the
<a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function and the application should not call it directly.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6272"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6277"></a><h3>
<a name="XMLSECKEYDATAIDSSHUTDOWN"></a>xmlSecKeyDataIdsShutdown ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdsShutdown (void);</pre>
<p>Shuts down the keys data klasses. This function is called from the
<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function and the application should not call it directly.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6288"></a><h3>
<a name="XMLSECKEYDATAIDSREGISTERDEFAULT"></a>xmlSecKeyDataIdsRegisterDefault ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsRegisterDefault (void);</pre>
<p>Registers default (implemented by XML Security Library)
key data klasses: <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element processing klass,
<a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> element processing klass, ...</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6300"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6305"></a><h3>
<a name="XMLSECKEYDATAIDSREGISTER"></a>xmlSecKeyDataIdsRegister ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsRegister (<font>xmlSecKeyDataId</font> id);</pre>
<p>Registers <var class="PARAMETER">id</var> in the global list of key data klasses.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6317"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6322"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6327"></a><h3>
<a name="XMLSECKEYDATA"></a>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>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6336"><span style="white-space: nowrap"><font>xmlSecKeyDataId</font> <code class="STRUCTFIELD">id</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the data id (<font><span class="TYPE">xmlSecKeyDataId</span></font>).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6344"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6350"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6356"></a><h3>
<a name="XMLSECKEYDATACREATE"></a>xmlSecKeyDataCreate ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecKeyDataCreate (<font>xmlSecKeyDataId</font> id);</pre>
<p>Allocates and initializes new key data of the specified type <var class="PARAMETER">id</var>.
Caller is responsible for destroing returend object with
<a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6370"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6375"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the pointer to newly allocated key data structure
or NULL if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6380"></a><h3>
<a name="XMLSECKEYDATADUPLICATE"></a>xmlSecKeyDataDuplicate ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyDataDuplicate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Creates a duplicate of the given <var class="PARAMETER">data</var>. Caller is responsible for
destroing returend object with <a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6394"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to the key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6399"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the pointer to newly allocated key data structure
or NULL if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6404"></a><h3>
<a name="XMLSECKEYDATADESTROY"></a>xmlSecKeyDataDestroy ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDestroy (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Destroys the data and frees all allocated memory.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6415"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to the key data.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6420"></a><h3>
<a name="XMLSECKEYDATAGENERATE"></a>xmlSecKeyDataGenerate ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataGenerate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
<p>Generates new key data of given size and type.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6433"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6438"><span style="white-space: nowrap"><var class="PARAMETER">sizeBits</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data size (in bits).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6443"><span style="white-space: nowrap"><var class="PARAMETER">type</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data type.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6448"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6453"></a><h3>
<a name="XMLSECKEYDATAGETTYPE"></a>xmlSecKeyDataGetType ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> xmlSecKeyDataGetType (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Gets key data type.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6464"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6469"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data type.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6474"></a><h3>
<a name="XMLSECKEYDATAGETSIZE"></a>xmlSecKeyDataGetSize ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecKeyDataGetSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Gets key data size.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6485"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6490"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data size (in bits).</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6495"></a><h3>
<a name="XMLSECKEYDATAGETIDENTIFIER"></a>xmlSecKeyDataGetIdentifier ()</h3>
<pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecKeyDataGetIdentifier (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Gets key data identifier string.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6506"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6511"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data id string.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6516"></a><h3>
<a name="XMLSECKEYDATADEBUGDUMP"></a>xmlSecKeyDataDebugDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDebugDump (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);</pre>
<p>Prints key data debug info.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6528"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6533"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6538"></a><h3>
<a name="XMLSECKEYDATADEBUGXMLDUMP"></a>xmlSecKeyDataDebugXmlDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDebugXmlDump (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);</pre>
<p>Prints key data debug info in XML format.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6550"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6555"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6560"></a><h3>
<a name="XMLSECKEYDATAXMLREAD"></a>xmlSecKeyDataXmlRead ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataXmlRead (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Reads the key data of klass <var class="PARAMETER">id</var> from XML <var class="PARAMETER">node</var> and adds them to <var class="PARAMETER">key</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6577"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6582"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the destination key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6587"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6592"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6598"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6603"></a><h3>
<a name="XMLSECKEYDATAXMLWRITE"></a>xmlSecKeyDataXmlWrite ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataXmlWrite (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Writes the key data of klass <var class="PARAMETER">id</var> from <var class="PARAMETER">key</var> to an XML <var class="PARAMETER">node</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6620"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6625"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the source key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6630"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6635"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6641"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6646"></a><h3>
<a name="XMLSECKEYDATABINREAD"></a>xmlSecKeyDataBinRead ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinRead (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Reads the key data of klass <var class="PARAMETER">id</var> from binary buffer <var class="PARAMETER">buf</var> to <var class="PARAMETER">key</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6664"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6669"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the destination key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6674"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the input binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6679"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the input buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6684"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6690"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6695"></a><h3>
<a name="XMLSECKEYDATABINWRITE"></a>xmlSecKeyDataBinWrite ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinWrite (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Writes the key data of klass <var class="PARAMETER">id</var> from the <var class="PARAMETER">key</var> to a binary buffer <var class="PARAMETER">buf</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6713"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6718"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the source key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6723"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the output binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6728"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the output buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6733"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6739"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6744"></a><h3>
<a name="XMLSECKEYDATAGETNAME"></a>xmlSecKeyDataGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataGetName(data)</pre>
<p>Macro. Returns the key data name.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6753"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6758"></a><h3>
<a name="XMLSECKEYDATAISVALID"></a>xmlSecKeyDataIsValid()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataIsValid(data)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">data</var> is not NULL and <var class="PARAMETER">data</var>->id is not NULL
or 0 otherwise.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6769"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6774"></a><h3>
<a name="XMLSECKEYDATACHECKID"></a>xmlSecKeyDataCheckId()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckId(data, dataId)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">data</var> is valid and <var class="PARAMETER">data</var>'s id is equal to <var class="PARAMETER">dataId</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6786"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6791"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data Id.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6796"></a><h3>
<a name="XMLSECKEYDATACHECKUSAGE"></a>xmlSecKeyDataCheckUsage()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckUsage(data, usg)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">data</var> is valid and could be used for <var class="PARAMETER">usg</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6807"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6812"><span style="white-space: nowrap"><var class="PARAMETER">usg</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data usage.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6817"></a><h3>
<a name="XMLSECKEYDATACHECKSIZE"></a>xmlSecKeyDataCheckSize()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckSize(data, size)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">data</var> is valid and <var class="PARAMETER">data</var>'s object has at least <var class="PARAMETER">size</var> bytes.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6829"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6834"><span style="white-space: nowrap"><var class="PARAMETER">size</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the expected size.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6839"></a><h3>
<a name="XMLSECKEYDATAIDUNKNOWN"></a>xmlSecKeyDataIdUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdUnknown ((xmlSecKeyDataId)NULL)</pre>
<p>The "unknown" id.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6847"></a><h3>
<a name="XMLSECKEYDATAINITMETHOD"></a>xmlSecKeyDataInitMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataInitMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Key data specific initialization method.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6858"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6863"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6868"></a><h3>
<a name="XMLSECKEYDATADUPLICATEMETHOD"></a>xmlSecKeyDataDuplicateMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataDuplicateMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
<p>Key data specific duplication (copy) method.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6880"><span style="white-space: nowrap"><var class="PARAMETER">dst</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to destination key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6885"><span style="white-space: nowrap"><var class="PARAMETER">src</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the poiniter to source key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6890"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6895"></a><h3>
<a name="XMLSECKEYDATAFINALIZEMETHOD"></a>xmlSecKeyDataFinalizeMethod ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataFinalizeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</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>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN6906"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6911"></a><h3>
<a name="XMLSECKEYDATAXMLREADMETHOD"></a>xmlSecKeyDataXmlReadMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataXmlReadMethod) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Key data specific method for reading XML node.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6925"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6930"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6935"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data's value XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6940"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6946"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6951"></a><h3>
<a name="XMLSECKEYDATAXMLWRITEMETHOD"></a>xmlSecKeyDataXmlWriteMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataXmlWriteMethod) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Key data specific method for writing XML node.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6965"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6970"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6975"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to data's value XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6980"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <dsig:KeyInfo> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6985"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6990"></a><h3>
<a name="XMLSECKEYDATABINREADMETHOD"></a>xmlSecKeyDataBinReadMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataBinReadMethod) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Key data specific method for reading binary buffer.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7005"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7010"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7015"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the input buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7020"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7025"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7031"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7036"></a><h3>
<a name="XMLSECKEYDATABINWRITEMETHOD"></a>xmlSecKeyDataBinWriteMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataBinWriteMethod) (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Key data specific method for reading binary buffer.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7051"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7056"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7061"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the output buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7066"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7071"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7077"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7082"></a><h3>
<a name="XMLSECKEYDATAGENERATEMETHOD"></a>xmlSecKeyDataGenerateMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataGenerateMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
<p>Key data specific method for generating new key data.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7095"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7100"><span style="white-space: nowrap"><var class="PARAMETER">sizeBits</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key data specific size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7105"><span style="white-space: nowrap"><var class="PARAMETER">type</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the required key type (session/permanent, etc.)</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7110"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7115"></a><h3>
<a name="XMLSECKEYDATAGETTYPEMETHOD"></a>xmlSecKeyDataGetTypeMethod ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> (*xmlSecKeyDataGetTypeMethod)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Key data specific method to get the key type.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7126"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7131"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the key type.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7136"></a><h3>
<a name="XMLSECKEYDATAGETSIZEMETHOD"></a>xmlSecKeyDataGetSizeMethod ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> (*xmlSecKeyDataGetSizeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Key data specific method to get the key size.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7147"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7152"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the key size in bits.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7157"></a><h3>
<a name="XMLSECKEYDATAGETIDENTIFIERMETHOD"></a>xmlSecKeyDataGetIdentifierMethod ()</h3>
<pre class="PROGRAMLISTING">const <font>xmlChar</font>* (*xmlSecKeyDataGetIdentifierMethod)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Key data specific method to get the key data identifier string (for example,
X509 data identifier is the subject of the verified cert).</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7168"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7173"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the identifier string or NULL if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7178"></a><h3>
<a name="XMLSECKEYDATADEBUGDUMPMETHOD"></a>xmlSecKeyDataDebugDumpMethod ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataDebugDumpMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);</pre>
<p>Key data specific method for printing debug info.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7190"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7195"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the FILE to print debug info (should be open for writing).</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7200"></a><h3>
<a name="XMLSECKEYDATAKLASS"></a>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;
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>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7209"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the klass size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7215"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the object size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7221"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the object name.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7227"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> <code class="STRUCTFIELD">usage</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the allowed data usage.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7233"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">href</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the identification string (href).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7239"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">dataNodeName</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the data's XML node name.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7245"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">dataNodeNs</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the data's XML node namespace.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7251"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD">xmlSecKeyDataInitMethod</a> <code class="STRUCTFIELD">initialize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the initialization method. </p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7257"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD">xmlSecKeyDataDuplicateMethod</a> <code class="STRUCTFIELD">duplicate</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the duplicate (copy) method.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7263"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD">xmlSecKeyDataFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the finalization (destroy) method.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7269"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD">xmlSecKeyDataGenerateMethod</a> <code class="STRUCTFIELD">generate</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the new data generation method.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7275"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD">xmlSecKeyDataGetTypeMethod</a> <code class="STRUCTFIELD">getType</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method to access data's type information.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7281"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD">xmlSecKeyDataGetSizeMethod</a> <code class="STRUCTFIELD">getSize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method to access data's size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7287"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD">xmlSecKeyDataGetIdentifierMethod</a> <code class="STRUCTFIELD">getIdentifier</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method to access data's string identifier.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7293"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD">xmlSecKeyDataXmlReadMethod</a> <code class="STRUCTFIELD">xmlRead</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for reading data from XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7299"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD">xmlSecKeyDataXmlWriteMethod</a> <code class="STRUCTFIELD">xmlWrite</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for writing data to XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7305"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD">xmlSecKeyDataBinReadMethod</a> <code class="STRUCTFIELD">binRead</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for reading data from a binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7311"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD">xmlSecKeyDataBinWriteMethod</a> <code class="STRUCTFIELD">binWrite</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for writing data to binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7317"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">xmlSecKeyDataDebugDumpMethod</a> <code class="STRUCTFIELD">debugDump</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for printing debug data information.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7323"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">xmlSecKeyDataDebugDumpMethod</a> <code class="STRUCTFIELD">debugXmlDump</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the method for printing debug data information in XML format.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7329"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7335"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7341"></a><h3>
<a name="XMLSECKEYDATAKLASSGETNAME"></a>xmlSecKeyDataKlassGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataKlassGetName(klass)</pre>
<p>Macro. Returns data klass name.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN7350"><span style="white-space: nowrap"><var class="PARAMETER">klass</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7355"></a><h3>
<a name="XMLSECKEYDATALISTID"></a>xmlSecKeyDataListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataListId xmlSecKeyDataListGetKlass()</pre>
<p>The key data klasses list klass id.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7363"></a><h3>
<a name="XMLSECKEYDATALISTGETKLASS"></a>xmlSecKeyDataListGetKlass ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataListGetKlass (void);</pre>
<p>The key data list klass.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN7373"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>pointer to the key data list klass.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7378"></a><h3>
<a name="XMLSECKEYDATAIDLISTID"></a>xmlSecKeyDataIdListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdListId xmlSecKeyDataIdListGetKlass()</pre>
<p>The key data list klass id.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7386"></a><h3>
<a name="XMLSECKEYDATAIDLISTGETKLASS"></a>xmlSecKeyDataIdListGetKlass ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataIdListGetKlass (void);</pre>
<p>The key data id list klass.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN7396"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>pointer to the key data id list klass.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7401"></a><h3>
<a name="XMLSECKEYDATAIDLISTFIND"></a>xmlSecKeyDataIdListFind ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdListFind (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>xmlSecKeyDataId</font> dataId);</pre>
<p>Lookups <var class="PARAMETER">dataId</var> in <var class="PARAMETER">list</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7415"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7420"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the key data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7425"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>1 if <var class="PARAMETER">dataId</var> is found in the <var class="PARAMETER">list</var>, 0 if not and a negative
value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7432"></a><h3>
<a name="XMLSECKEYDATAIDLISTFINDBYNODE"></a>xmlSecKeyDataIdListFindByNode ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByNode
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *nodeName,
const <font>xmlChar</font> *nodeNs,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
<p>Lookups data klass in the list with given <var class="PARAMETER">nodeName</var>, <var class="PARAMETER">nodeNs</var> and
<var class="PARAMETER">usage</var> in the <var class="PARAMETER">list</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7450"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7455"><span style="white-space: nowrap"><var class="PARAMETER">nodeName</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data klass XML node name.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7460"><span style="white-space: nowrap"><var class="PARAMETER">nodeNs</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data klass XML node namespace.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7465"><span style="white-space: nowrap"><var class="PARAMETER">usage</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7470"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data klass is found and NULL otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7475"></a><h3>
<a name="XMLSECKEYDATAIDLISTFINDBYHREF"></a>xmlSecKeyDataIdListFindByHref ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByHref
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *href,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
<p>Lookups data klass in the list with given <var class="PARAMETER">href</var> and <var class="PARAMETER">usage</var> in <var class="PARAMETER">list</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7491"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7496"><span style="white-space: nowrap"><var class="PARAMETER">href</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data klass href.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7501"><span style="white-space: nowrap"><var class="PARAMETER">usage</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7506"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data klass is found and NULL otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7511"></a><h3>
<a name="XMLSECKEYDATAIDLISTFINDBYNAME"></a>xmlSecKeyDataIdListFindByName ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByName
(<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
const <font>xmlChar</font> *name,
<a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
<p>Lookups data klass in the list with given <var class="PARAMETER">name</var> and <var class="PARAMETER">usage</var> in <var class="PARAMETER">list</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7527"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7532"><span style="white-space: nowrap"><var class="PARAMETER">name</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data klass name.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7537"><span style="white-space: nowrap"><var class="PARAMETER">usage</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7542"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data klass is found and NULL otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7547"></a><h3>
<a name="XMLSECKEYDATAIDLISTDEBUGDUMP"></a>xmlSecKeyDataIdListDebugDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdListDebugDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>FILE</font> *output);</pre>
<p>Prints binary key data debug information to <var class="PARAMETER">output</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7560"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7565"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7570"></a><h3>
<a name="XMLSECKEYDATAIDLISTDEBUGXMLDUMP"></a>xmlSecKeyDataIdListDebugXmlDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdListDebugXmlDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
<font>FILE</font> *output);</pre>
<p>Prints binary key data debug information to <var class="PARAMETER">output</var> in XML format.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7583"><span style="white-space: nowrap"><var class="PARAMETER">list</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7588"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7593"></a><h3>
<a name="XMLSECKEYDATABINARYSIZE"></a>xmlSecKeyDataBinarySize</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataBinarySize</pre>
<p>The binary key data object size.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7601"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEINITIALIZE"></a>xmlSecKeyDataBinaryValueInitialize ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueInitialize
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Initializes key data.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7612"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7617"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7622"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEDUPLICATE"></a>xmlSecKeyDataBinaryValueDuplicate ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueDuplicate
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
<p>Copies binary key data from <var class="PARAMETER">src</var> to <var class="PARAMETER">dst</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7636"><span style="white-space: nowrap"><var class="PARAMETER">dst</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to destination binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7641"><span style="white-space: nowrap"><var class="PARAMETER">src</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to source binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7646"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7651"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEFINALIZE"></a>xmlSecKeyDataBinaryValueFinalize ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueFinalize
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Cleans up binary key data.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN7662"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7667"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEXMLREAD"></a>xmlSecKeyDataBinaryValueXmlRead ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueXmlRead (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Reads binary key data from <var class="PARAMETER">node</var> to the key by base64 decoding the <var class="PARAMETER">node</var> content.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7683"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7688"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to destination key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7693"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7698"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7704"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7709"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEXMLWRITE"></a>xmlSecKeyDataBinaryValueXmlWrite ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueXmlWrite
(<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<font>xmlNodePtr</font> node,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Base64 encodes binary key data of klass <var class="PARAMETER">id</var> from the <var class="PARAMETER">key</var> and
sets to the <var class="PARAMETER">node</var> content.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7726"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7731"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to source key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7736"><span style="white-space: nowrap"><var class="PARAMETER">node</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7741"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7747"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7752"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEBINREAD"></a>xmlSecKeyDataBinaryValueBinRead ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueBinRead (<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Reads binary key data of the klass <var class="PARAMETER">id</var> from <var class="PARAMETER">buf</var> to the <var class="PARAMETER">key</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7770"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7775"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to destination key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7780"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the source binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7785"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the source binary buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7790"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7796"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7801"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEBINWRITE"></a>xmlSecKeyDataBinaryValueBinWrite ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueBinWrite
(<font>xmlSecKeyDataId</font> id,
<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
<p>Writes binary key data of klass <var class="PARAMETER">id</var> from the <var class="PARAMETER">key</var> to <var class="PARAMETER">buf</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7819"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7824"><span style="white-space: nowrap"><var class="PARAMETER">key</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to source key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7829"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the destination binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7834"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the destination binary buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7839"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7845"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7850"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEDEBUGDUMP"></a>xmlSecKeyDataBinaryValueDebugDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueDebugDump
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);</pre>
<p>Prints binary key data debug information to <var class="PARAMETER">output</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7863"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7868"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7873"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP"></a>xmlSecKeyDataBinaryValueDebugXmlDump ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueDebugXmlDump
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
<font>FILE</font> *output);</pre>
<p>Prints binary key data debug information to <var class="PARAMETER">output</var> in XML format.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7886"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7891"><span style="white-space: nowrap"><var class="PARAMETER">output</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7896"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEGETSIZE"></a>xmlSecKeyDataBinaryValueGetSize ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecKeyDataBinaryValueGetSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Gets the binary key data size.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7907"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7912"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>binary key data size in bits.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7917"></a><h3>
<a name="XMLSECKEYDATABINARYVALUEGETBUFFER"></a>xmlSecKeyDataBinaryValueGetBuffer ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> xmlSecKeyDataBinaryValueGetBuffer
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
<p>Gets the binary key data buffer.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7928"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7933"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>pointer to binary key data buffer.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7938"></a><h3>
<a name="XMLSECKEYDATABINARYVALUESETBUFFER"></a>xmlSecKeyDataBinaryValueSetBuffer ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueSetBuffer
(<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
<p>Sets the value of <var class="PARAMETER">data</var> to <var class="PARAMETER">buf</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7953"><span style="white-space: nowrap"><var class="PARAMETER">data</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7958"><span style="white-space: nowrap"><var class="PARAMETER">buf</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to binary buffer.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7963"><span style="white-space: nowrap"><var class="PARAMETER">bufSize</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the binary buffer size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7968"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value otherwise.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN7973"></a><h3>
<a name="XMLSECKEYDATASTORE"></a>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>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7982"><span style="white-space: nowrap"><font>xmlSecKeyDataStoreId</font> <code class="STRUCTFIELD">id</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the store id (<font><span class="TYPE">xmlSecKeyDataStoreId</span></font>).</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7990"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7996"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8002"></a><h3>
<a name="XMLSECKEYDATASTORECREATE"></a>xmlSecKeyDataStoreCreate ()</h3>
<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> xmlSecKeyDataStoreCreate
(<font>xmlSecKeyDataStoreId</font> id);</pre>
<p>Creates new key data store of the specified klass <var class="PARAMETER">id</var>. Caller is responsible
for freeng returned object with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY"><span class="TYPE">xmlSecKeyDataStoreDestroy</span></a> function.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8016"><span style="white-space: nowrap"><var class="PARAMETER">id</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the store id.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8021"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>the pointer to newly allocated key data store structure
or NULL if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8026"></a><h3>
<a name="XMLSECKEYDATASTOREDESTROY"></a>xmlSecKeyDataStoreDestroy ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataStoreDestroy (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
<p>Destroys the key data store created with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE"><span class="TYPE">xmlSecKeyDataStoreCreate</span></a>
function.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8039"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to the key data store..</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8044"></a><h3>
<a name="XMLSECKEYDATASTOREGETNAME"></a>xmlSecKeyDataStoreGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreGetName(store)</pre>
<p>Macro. Returns key data store name.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8053"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8058"></a><h3>
<a name="XMLSECKEYDATASTOREISVALID"></a>xmlSecKeyDataStoreIsValid()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreIsValid(store)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">store</var> is not NULL and <var class="PARAMETER">store</var>->id is not NULL
or 0 otherwise.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8069"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8074"></a><h3>
<a name="XMLSECKEYDATASTORECHECKID"></a>xmlSecKeyDataStoreCheckId()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckId(store, storeId)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">store</var> is valid and <var class="PARAMETER">store</var>'s id is equal to <var class="PARAMETER">storeId</var>.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8086"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8091"><span style="white-space: nowrap"><var class="PARAMETER">storeId</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the store Id.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8096"></a><h3>
<a name="XMLSECKEYDATASTORECHECKSIZE"></a>xmlSecKeyDataStoreCheckSize()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckSize(store, size)</pre>
<p>Macro. Returns 1 if <var class="PARAMETER">data</var> is valid and <var class="PARAMETER">stores</var>'s object has at least <var class="PARAMETER">size</var> bytes.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8108"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8113"><span style="white-space: nowrap"><var class="PARAMETER">size</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the expected size.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8118"></a><h3>
<a name="XMLSECKEYDATASTOREIDUNKNOWN"></a>xmlSecKeyDataStoreIdUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreIdUnknown NULL</pre>
<p>The "unknown" id.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8126"></a><h3>
<a name="XMLSECKEYDATASTOREINITIALIZEMETHOD"></a>xmlSecKeyDataStoreInitializeMethod ()</h3>
<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataStoreInitializeMethod)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
<p>Key data store specific initialization method.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8137"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data store.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8142"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8147"></a><h3>
<a name="XMLSECKEYDATASTOREFINALIZEMETHOD"></a>xmlSecKeyDataStoreFinalizeMethod ()</h3>
<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataStoreFinalizeMethod)
(<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
<p>Key data store specific finalization (destroy) method.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8158"><span style="white-space: nowrap"><var class="PARAMETER">store</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the data store.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8163"></a><h3>
<a name="XMLSECKEYDATASTOREKLASS"></a>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>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8172"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the data store klass size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8178"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the data store obj size.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8184"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the store's name.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8190"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD">xmlSecKeyDataStoreInitializeMethod</a> <code class="STRUCTFIELD">initialize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the store's initialization method.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8196"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD">xmlSecKeyDataStoreFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code></span></a></td>
<td align="LEFT" valign="TOP"><p> the store's finalization (destroy) method.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8202"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8208"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td>
<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
</tr>
</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8214"></a><h3>
<a name="XMLSECKEYDATASTOREKLASSGETNAME"></a>xmlSecKeyDataStoreKlassGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreKlassGetName(klass)</pre>
<p>Macro. Returns store klass name.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8223"><span style="white-space: nowrap"><var class="PARAMETER">klass</var> :</span></a></td>
<td align="LEFT" valign="TOP"><p> the pointer to store klass.</p></td>
</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8228"></a><h3>
<a name="XMLSECKEYDATASTOREPTRLISTID"></a>xmlSecKeyDataStorePtrListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStorePtrListId xmlSecKeyDataStorePtrListGetKlass()</pre>
<p>The data store list id (klass).</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN8236"></a><h3>
<a name="XMLSECKEYDATASTOREPTRLISTGETKLASS"></a>xmlSecKeyDataStorePtrListGetKlass ()</h3>
<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataStorePtrListGetKlass
(void);</pre>
<p>Key data stores list.</p>
<p></p>
<p></p>
<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
<td align="LEFT" valign="TOP"><a name="AEN8246"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
<td align="LEFT" valign="TOP"><p>key data stores list klass.</p></td>
</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-keyinfo.html"><b><<< keyinfo</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-keys.html"><b>keys >>></b></a></td>
</tr></table>
</td></tr></table></td>
</tr></table></body>
</html>