<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"><dsig:KeyInfo/></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"><dsig:KeyInfo /></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"><dsig:KeyValue /></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"><dsig:KeyValue /></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"><dsig:RetrievalMethod /></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"><dsig:RetrievalMethod /></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"><dsig:KeyInfo /></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"><dsig:KeyValue /></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"><dsig:RetrievalMethod /></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"><dsig:KeyName/></a> element processing klass, <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> element processing klass, ...</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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>->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"><dsig:KeyInfo/></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 <dsig:KeyInfo> 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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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"><dsig:KeyInfo/></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>->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><<<keyinfo</b></a></td> <td align="right"><a accesskey="n" href="xmlsec-keys.html"><b>keys>>></b></a></td> </tr></table> </td></tr></table></td> </tr></table></body> </html>