Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > by-pkgid > 6d54acda680c50cc4dfba24075d2a90c > files > 93

lib64xmlsec1-devel-1.2.13-1mdv2010.0.x86_64.rpm

<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>
<!--Links - start--><!--Links - end-->
</table>
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="xmlsec-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="AEN6436"></a><h2>Name</h2>keysdata--Crypto key data object definition.</div>
<div class="REFSYNOPSISDIV">
<a name="AEN6439"></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="AEN6709"></a><h2>Description</h2>
<p>Crypto key data object definition.</p>
</div>
<div class="REFSECT1">
<a name="AEN6712"></a><h2>Details</h2>
<div class="REFSECT2">
<a name="AEN6714"></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="AEN6722"></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="AEN6730"></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">&lt;dsig:KeyInfo/&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6739"></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">&lt;dsig:KeyInfo /&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6748"></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">&lt;dsig:KeyValue /&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6757"></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">&lt;dsig:KeyValue /&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6766"></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">&lt;dsig:RetrievalMethod /&gt;</a> node
in XML format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6775"></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">&lt;dsig:RetrievalMethod /&gt;</a> node
in binary format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6784"></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="AEN6792"></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">&lt;dsig:KeyInfo /&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6801"></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">&lt;dsig:KeyValue /&gt;</a> child.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6810"></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">&lt;dsig:RetrievalMethod /&gt;</a> node
in any format.</p>
<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="AEN6819"></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="AEN6827"></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="AEN6837"></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="AEN6847"></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="AEN6855"></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="AEN6863"></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="AEN6871"></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="AEN6879"></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="AEN6887"></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="AEN6895"></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="AEN6903"></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="AEN6912"><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="AEN6917"><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="AEN6922"><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="AEN6927"><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="AEN6932"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPkcs8Pem</var></span></a></td>
<td align="LEFT" valign="TOP"><p>	the PKCS8 PEM private key.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6937"><span style="white-space: nowrap"><var class="LITERAL">xmlSecKeyDataFormatPkcs8Der</var></span></a></td>
<td align="LEFT" valign="TOP"><p>	the PKCS8 DER private key. </p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN6942"><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="AEN6947"><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="AEN6952"><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="AEN6957"></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="AEN6967"><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="AEN6972"></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="AEN6984"><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="AEN6989"></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="AEN7000"></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">&lt;dsig:KeyName/&gt;</a> element processing klass, 
<a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top">&lt;dsig:KeyValue/&gt;</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="AEN7012"><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="AEN7017"></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="AEN7029"><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="AEN7034"><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="AEN7039"></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="AEN7048"><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="AEN7056"><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="AEN7062"><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="AEN7068"></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="AEN7082"><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="AEN7087"><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="AEN7092"></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="AEN7106"><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="AEN7111"><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="AEN7116"></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="AEN7127"><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="AEN7132"></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="AEN7145"><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="AEN7150"><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="AEN7155"><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="AEN7160"><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="AEN7165"></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="AEN7176"><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="AEN7181"><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="AEN7186"></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="AEN7197"><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="AEN7202"><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="AEN7207"></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="AEN7218"><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="AEN7223"><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="AEN7228"></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="AEN7240"><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="AEN7245"><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="AEN7250"></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="AEN7262"><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="AEN7267"><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="AEN7272"></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="AEN7289"><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="AEN7294"><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="AEN7299"><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="AEN7304"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7310"><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="AEN7315"></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="AEN7332"><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="AEN7337"><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="AEN7342"><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="AEN7347"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7353"><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="AEN7358"></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="AEN7376"><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="AEN7381"><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="AEN7386"><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="AEN7391"><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="AEN7396"><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">&lt;dsig:KeyInfo/&gt;</a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7402"><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="AEN7407"></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="AEN7425"><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="AEN7430"><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="AEN7435"><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="AEN7440"><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="AEN7445"><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">&lt;dsig:KeyInfo/&gt;</a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7451"><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="AEN7456"></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="AEN7465"><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="AEN7470"></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>-&gt;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="AEN7481"><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="AEN7486"></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="AEN7498"><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="AEN7503"><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="AEN7508"></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="AEN7519"><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="AEN7524"><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="AEN7529"></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="AEN7541"><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="AEN7546"><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="AEN7551"></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="AEN7559"></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="AEN7570"><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="AEN7575"><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="AEN7580"></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="AEN7592"><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="AEN7597"><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="AEN7602"><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="AEN7607"></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="AEN7618"><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="AEN7623"></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="AEN7637"><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="AEN7642"><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="AEN7647"><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="AEN7652"><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">&lt;dsig:KeyInfo/&gt;</a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7658"><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="AEN7663"></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="AEN7677"><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="AEN7682"><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="AEN7687"><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="AEN7692"><span style="white-space: nowrap"><var class="PARAMETER">keyInfoCtx</var>:</span></a></td>
<td align="LEFT" valign="TOP"><p> 	the &lt;dsig:KeyInfo&gt; node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7697"><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="AEN7702"></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="AEN7717"><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="AEN7722"><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="AEN7727"><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="AEN7732"><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="AEN7737"><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">&lt;dsig:KeyInfo/&gt;</a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7743"><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="AEN7748"></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="AEN7763"><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="AEN7768"><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="AEN7773"><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="AEN7778"><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="AEN7783"><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">&lt;dsig:KeyInfo/&gt;</a> node processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN7789"><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="AEN7794"></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="AEN7807"><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="AEN7812"><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="AEN7817"><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="AEN7822"><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="AEN7827"></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="AEN7838"><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="AEN7843"><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="AEN7848"></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="AEN7859"><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="AEN7864"><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="AEN7869"></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="AEN7880"><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="AEN7885"><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="AEN7890"></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="AEN7902"><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="AEN7907"><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="AEN7912"></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="AEN7921"><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="AEN7927"><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="AEN7933"><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="AEN7939"><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="AEN7945"><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="AEN7951"><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="AEN7957"><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="AEN7963"><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="AEN7969"><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="AEN7975"><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="AEN7981"><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="AEN7987"><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="AEN7993"><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="AEN7999"><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="AEN8005"><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="AEN8011"><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="AEN8017"><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="AEN8023"><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="AEN8029"><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="AEN8035"><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="AEN8041"><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="AEN8047"><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="AEN8053"></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="AEN8062"><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="AEN8067"></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="AEN8075"></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="AEN8085"><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="AEN8090"></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="AEN8098"></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="AEN8108"><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="AEN8113"></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="AEN8127"><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="AEN8132"><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="AEN8137"><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="AEN8144"></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="AEN8162"><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="AEN8167"><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="AEN8172"><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="AEN8177"><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="AEN8182"><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="AEN8187"></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="AEN8203"><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="AEN8208"><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="AEN8213"><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="AEN8218"><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="AEN8223"></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="AEN8239"><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="AEN8244"><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="AEN8249"><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="AEN8254"><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="AEN8259"></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="AEN8272"><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="AEN8277"><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="AEN8282"></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="AEN8295"><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="AEN8300"><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="AEN8305"></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="AEN8313"></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="AEN8324"><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="AEN8329"><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="AEN8334"></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="AEN8348"><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="AEN8353"><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="AEN8358"><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="AEN8363"></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="AEN8374"><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="AEN8379"></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="AEN8395"><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="AEN8400"><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="AEN8405"><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="AEN8410"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8416"><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="AEN8421"></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="AEN8438"><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="AEN8443"><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="AEN8448"><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="AEN8453"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8459"><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="AEN8464"></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="AEN8482"><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="AEN8487"><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="AEN8492"><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="AEN8497"><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="AEN8502"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8508"><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="AEN8513"></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="AEN8531"><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="AEN8536"><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="AEN8541"><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="AEN8546"><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="AEN8551"><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">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><a name="AEN8557"><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="AEN8562"></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="AEN8575"><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="AEN8580"><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="AEN8585"></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="AEN8598"><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="AEN8603"><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="AEN8608"></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="AEN8619"><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="AEN8624"><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="AEN8629"></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="AEN8640"><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="AEN8645"><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="AEN8650"></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="AEN8665"><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="AEN8670"><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="AEN8675"><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="AEN8680"><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="AEN8685"></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="AEN8694"><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="AEN8702"><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="AEN8708"><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="AEN8714"></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="AEN8728"><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="AEN8733"><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="AEN8738"></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="AEN8751"><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="AEN8756"></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="AEN8765"><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="AEN8770"></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>-&gt;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="AEN8781"><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="AEN8786"></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="AEN8798"><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="AEN8803"><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="AEN8808"></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="AEN8820"><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="AEN8825"><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="AEN8830"></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="AEN8838"></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="AEN8849"><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="AEN8854"><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="AEN8859"></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="AEN8870"><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="AEN8875"></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="AEN8884"><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="AEN8890"><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="AEN8896"><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="AEN8902"><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="AEN8908"><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="AEN8914"><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="AEN8920"><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="AEN8926"></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="AEN8935"><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="AEN8940"></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="AEN8948"></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="AEN8958"><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>&lt;&lt;&lt;keyinfo</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-keys.html"><b>keys&gt;&gt;&gt;</b></a></td>
</tr></table>
</td></tr></table></td>
</tr></table></body>
</html>