<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>keys</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="keysdata" href="xmlsec-keysdata.html"> <link rel="NEXT" title="keysmngr" href="xmlsec-keysmngr.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-keysdata.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-keysmngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <h1> <a name="XMLSEC-KEYS"></a>keys</h1> <div class="REFNAMEDIV"> <a name="AEN8968"></a><h2>Name</h2>keys--Crypto key object definition.</div> <div class="REFSYNOPSISDIV"> <a name="AEN8971"></a><h2>Synopsis</h2> <pre class="SYNOPSIS"> typedef <a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a>; #define <a href="xmlsec-keys.html#XMLSECKEYUSAGESIGN">xmlSecKeyUsageSign</a> #define <a href="xmlsec-keys.html#XMLSECKEYUSAGEVERIFY">xmlSecKeyUsageVerify</a> #define <a href="xmlsec-keys.html#XMLSECKEYUSAGEENCRYPT">xmlSecKeyUsageEncrypt</a> #define <a href="xmlsec-keys.html#XMLSECKEYUSAGEDECRYPT">xmlSecKeyUsageDecrypt</a> #define <a href="xmlsec-keys.html#XMLSECKEYUSAGEKEYEXCHANGE">xmlSecKeyUsageKeyExchange</a> #define <a href="xmlsec-keys.html#XMLSECKEYUSAGEANY">xmlSecKeyUsageAny</a> <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHINITIALIZE">xmlSecKeyUseWithInitialize</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHFINALIZE">xmlSecKeyUseWithFinalize</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHRESET">xmlSecKeyUseWithReset</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHCOPY">xmlSecKeyUseWithCopy</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> dst, <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> src); <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHCREATE">xmlSecKeyUseWithCreate</a> (const <font>xmlChar</font> *application, const <font>xmlChar</font> *identifier); <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDUPLICATE">xmlSecKeyUseWithDuplicate</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDESTROY">xmlSecKeyUseWithDestroy</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHSET">xmlSecKeyUseWithSet</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, const <font>xmlChar</font> *application, const <font>xmlChar</font> *identifier); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGDUMP">xmlSecKeyUseWithDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, <font>FILE</font> *output); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGXMLDUMP">xmlSecKeyUseWithDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, <font>FILE</font> *output); struct <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWith</a>; #define <a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTID">xmlSecKeyUseWithPtrListId</a> <font>xmlSecPtrListId</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTGETKLASS">xmlSecKeyUseWithPtrListGetKlass</a> (void); struct <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReq</a>; <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE">xmlSecKeyReqInitialize</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE">xmlSecKeyReqFinalize</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQRESET">xmlSecKeyReqReset</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQCOPY">xmlSecKeyReqCopy</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> dst, <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> src); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEY">xmlSecKeyReqMatchKey</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEYVALUE">xmlSecKeyReqMatchKeyValue</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQDEBUGDUMP">xmlSecKeyReqDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <font>FILE</font> *output); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQDEBUGXMLDUMP">xmlSecKeyReqDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <font>FILE</font> *output); struct <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKey</a>; <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYCREATE">xmlSecKeyCreate</a> (void); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDESTROY">xmlSecKeyDestroy</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYEMPTY">xmlSecKeyEmpty</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>xmlSecKeyPtr</font> <a href="xmlsec-keys.html#XMLSECKEYDUPLICATE">xmlSecKeyDuplicate</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYCOPY">xmlSecKeyCopy</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keyDst, <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keySrc); const <font>xmlChar</font>* <a href="xmlsec-keys.html#XMLSECKEYGETNAME">xmlSecKeyGetName</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYSETNAME">xmlSecKeySetName</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, const <font>xmlChar</font> *name); <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <a href="xmlsec-keys.html#XMLSECKEYGETTYPE">xmlSecKeyGetType</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYGETVALUE">xmlSecKeyGetValue</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYSETVALUE">xmlSecKeySetValue</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value); <font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYGETDATA">xmlSecKeyGetData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>xmlSecKeyDataId</font> dataId); <font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYENSUREDATA">xmlSecKeyEnsureData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>xmlSecKeyDataId</font> dataId); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYADOPTDATA">xmlSecKeyAdoptData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDEBUGDUMP">xmlSecKeyDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>FILE</font> *output); <font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDEBUGXMLDUMP">xmlSecKeyDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>FILE</font> *output); <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYGENERATE">xmlSecKeyGenerate</a> (<font>xmlSecKeyDataId</font> dataId, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits, <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type); <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYGENERATEBYNAME">xmlSecKeyGenerateByName</a> (const <font>xmlChar</font> *name, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits, <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type); <font>int</font> <a href="xmlsec-keys.html#XMLSECKEYMATCH">xmlSecKeyMatch</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, const <font>xmlChar</font> *name, <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq); <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADBUFFER">xmlSecKeyReadBuffer</a> (<font>xmlSecKeyDataId</font> dataId, <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> *buffer); <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADBINARYFILE">xmlSecKeyReadBinaryFile</a> (<font>xmlSecKeyDataId</font> dataId, const <font>char</font> *filename); <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADMEMORY">xmlSecKeyReadMemory</a> (<font>xmlSecKeyDataId</font> dataId, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize); #define <a href="xmlsec-keys.html#XMLSECKEYISVALID">xmlSecKeyIsValid</a> (key) #define <a href="xmlsec-keys.html#XMLSECKEYCHECKID">xmlSecKeyCheckId</a> (key, keyId) #define <a href="xmlsec-keys.html#XMLSECKEYPTRLISTID">xmlSecKeyPtrListId</a> <font>xmlSecPtrListId</font> <a href="xmlsec-keys.html#XMLSECKEYPTRLISTGETKLASS">xmlSecKeyPtrListGetKlass</a> (void);</pre> </div> <div class="REFSECT1"> <a name="AEN9137"></a><h2>Description</h2> <p>Crypto key object definition.</p> </div> <div class="REFSECT1"> <a name="AEN9140"></a><h2>Details</h2> <div class="REFSECT2"> <a name="AEN9142"></a><h3> <a name="XMLSECKEYUSAGE"></a>xmlSecKeyUsage</h3> <pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyUsage;</pre> <p>The key usage.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9150"></a><h3> <a name="XMLSECKEYUSAGESIGN"></a>xmlSecKeyUsageSign</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageSign 0x00000001</pre> <p>Key can be used in any way.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9158"></a><h3> <a name="XMLSECKEYUSAGEVERIFY"></a>xmlSecKeyUsageVerify</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageVerify 0x00000002</pre> <p>Key for signing.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9166"></a><h3> <a name="XMLSECKEYUSAGEENCRYPT"></a>xmlSecKeyUsageEncrypt</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageEncrypt 0x00000004</pre> <p>Key for signature verification.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9174"></a><h3> <a name="XMLSECKEYUSAGEDECRYPT"></a>xmlSecKeyUsageDecrypt</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageDecrypt 0x00000008</pre> <p>An encryption key.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9182"></a><h3> <a name="XMLSECKEYUSAGEKEYEXCHANGE"></a>xmlSecKeyUsageKeyExchange</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageKeyExchange 0x00000010</pre> <p>The key is used for key exchange.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9190"></a><h3> <a name="XMLSECKEYUSAGEANY"></a>xmlSecKeyUsageAny</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUsageAny 0xFFFFFFFF</pre> <p>A decryption key.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9198"></a><h3> <a name="XMLSECKEYUSEWITHINITIALIZE"></a>xmlSecKeyUseWithInitialize ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithInitialize (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre> <p>Initializes <var class="PARAMETER">keyUseWith</var> object.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9210"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9215"><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="AEN9220"></a><h3> <a name="XMLSECKEYUSEWITHFINALIZE"></a>xmlSecKeyUseWithFinalize ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithFinalize (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre> <p>Finalizes <var class="PARAMETER">keyUseWith</var> object.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN9232"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9237"></a><h3> <a name="XMLSECKEYUSEWITHRESET"></a>xmlSecKeyUseWithReset ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithReset (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre> <p>Resets the <var class="PARAMETER">keyUseWith</var> to its state after initialization.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN9249"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9254"></a><h3> <a name="XMLSECKEYUSEWITHCOPY"></a>xmlSecKeyUseWithCopy ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithCopy (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> dst, <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> src);</pre> <p>Copies information from <var class="PARAMETER">dst</var> to <var class="PARAMETER">src</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9268"><span style="white-space: nowrap"><var class="PARAMETER">dst</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to destination object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9273"><span style="white-space: nowrap"><var class="PARAMETER">src</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to source object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9278"><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="AEN9283"></a><h3> <a name="XMLSECKEYUSEWITHCREATE"></a>xmlSecKeyUseWithCreate ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> xmlSecKeyUseWithCreate (const <font>xmlChar</font> *application, const <font>xmlChar</font> *identifier);</pre> <p>Creates new xmlSecKeyUseWith object. The caller is responsible for destroying returned object with <var class="PARAMETER">xmlSecKeyUseWithDestroy</var> function.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9296"><span style="white-space: nowrap"><var class="PARAMETER">application</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the application value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9301"><span style="white-space: nowrap"><var class="PARAMETER">identifier</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the identifier value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9306"><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 newly created object or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9311"></a><h3> <a name="XMLSECKEYUSEWITHDUPLICATE"></a>xmlSecKeyUseWithDuplicate ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> xmlSecKeyUseWithDuplicate (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre> <p>Duplicates <var class="PARAMETER">keyUseWith</var> object. The caller is responsible for destroying returned object with <var class="PARAMETER">xmlSecKeyUseWithDestroy</var> function.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9324"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9329"><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 newly created object or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9334"></a><h3> <a name="XMLSECKEYUSEWITHDESTROY"></a>xmlSecKeyUseWithDestroy ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDestroy (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre> <p>Destroys <var class="PARAMETER">keyUseWith</var> created with <var class="PARAMETER">xmlSecKeyUseWithCreate</var> or <var class="PARAMETER">xmlSecKeyUseWithDuplicate</var> functions.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN9348"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9353"></a><h3> <a name="XMLSECKEYUSEWITHSET"></a>xmlSecKeyUseWithSet ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithSet (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, const <font>xmlChar</font> *application, const <font>xmlChar</font> *identifier);</pre> <p>Sets <var class="PARAMETER">application</var> and <var class="PARAMETER">identifier</var> in the <var class="PARAMETER">keyUseWith</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9369"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9374"><span style="white-space: nowrap"><var class="PARAMETER">application</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new application value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9379"><span style="white-space: nowrap"><var class="PARAMETER">identifier</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new identifier value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9384"><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="AEN9389"></a><h3> <a name="XMLSECKEYUSEWITHDEBUGDUMP"></a>xmlSecKeyUseWithDebugDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDebugDump (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, <font>FILE</font> *output);</pre> <p>Prints xmlSecKeyUseWith debug information to a file <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="AEN9402"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9407"><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="AEN9412"></a><h3> <a name="XMLSECKEYUSEWITHDEBUGXMLDUMP"></a>xmlSecKeyUseWithDebugXmlDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith, <font>FILE</font> *output);</pre> <p>Prints xmlSecKeyUseWith debug information to a file <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="AEN9425"><span style="white-space: nowrap"><var class="PARAMETER">keyUseWith</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9430"><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="AEN9435"></a><h3> <a name="XMLSECKEYUSEWITH"></a>struct xmlSecKeyUseWith</h3> <pre class="PROGRAMLISTING">struct xmlSecKeyUseWith { xmlChar* application; xmlChar* identifier; void* reserved1; void* reserved2; };</pre> <p>Information about application and user of the key.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9444"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">application</code></span></a></td> <td align="LEFT" valign="TOP"><p> the application.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9450"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">identifier</code></span></a></td> <td align="LEFT" valign="TOP"><p> the identifier.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9456"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td> <td align="LEFT" valign="TOP"><p> reserved for future use.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9462"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved2</code></span></a></td> <td align="LEFT" valign="TOP"><p> reserved for future use.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9468"></a><h3> <a name="XMLSECKEYUSEWITHPTRLISTID"></a>xmlSecKeyUseWithPtrListId</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyUseWithPtrListId xmlSecKeyUseWithPtrListGetKlass()</pre> <p>The keys list klass.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN9476"></a><h3> <a name="XMLSECKEYUSEWITHPTRLISTGETKLASS"></a>xmlSecKeyUseWithPtrListGetKlass ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyUseWithPtrListGetKlass (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="AEN9486"><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="AEN9491"></a><h3> <a name="XMLSECKEYREQ"></a>struct xmlSecKeyReq</h3> <pre class="PROGRAMLISTING">struct xmlSecKeyReq { xmlSecKeyDataId keyId; xmlSecKeyDataType keyType; xmlSecKeyUsage keyUsage; xmlSecSize keyBitsSize; xmlSecPtrList keyUseWithList; void* reserved1; void* reserved2; };</pre> <p>The key requirements information.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9500"><span style="white-space: nowrap"><font>xmlSecKeyDataId</font> <code class="STRUCTFIELD">keyId</code></span></a></td> <td align="LEFT" valign="TOP"><p> the desired key value klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9506"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <code class="STRUCTFIELD">keyType</code></span></a></td> <td align="LEFT" valign="TOP"><p> the desired key type.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9512"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a> <code class="STRUCTFIELD">keyUsage</code></span></a></td> <td align="LEFT" valign="TOP"><p> the desired key usage.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9518"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">keyBitsSize</code></span></a></td> <td align="LEFT" valign="TOP"><p> the desired key size (in bits!).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9524"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">keyUseWithList</code></span></a></td> <td align="LEFT" valign="TOP"><p> the desired key use with application/identifier information.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9530"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code></span></a></td> <td align="LEFT" valign="TOP"><p> reserved for future use.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9536"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved2</code></span></a></td> <td align="LEFT" valign="TOP"><p> reserved for future use.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9542"></a><h3> <a name="XMLSECKEYREQINITIALIZE"></a>xmlSecKeyReqInitialize ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqInitialize (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre> <p>Initialize key requirements object. Caller is responsible for cleaning it with <a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE"><span class="TYPE">xmlSecKeyReqFinalize</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="AEN9555"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9560"><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="AEN9565"></a><h3> <a name="XMLSECKEYREQFINALIZE"></a>xmlSecKeyReqFinalize ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqFinalize (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre> <p>Cleans the key requirements object initialized with <a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE"><span class="TYPE">xmlSecKeyReqInitialize</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="AEN9578"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9583"></a><h3> <a name="XMLSECKEYREQRESET"></a>xmlSecKeyReqReset ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqReset (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre> <p>Resets key requirements object for new key search.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN9594"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9599"></a><h3> <a name="XMLSECKEYREQCOPY"></a>xmlSecKeyReqCopy ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqCopy (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> dst, <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> src);</pre> <p>Copies key requirements from <var class="PARAMETER">src</var> object to <var class="PARAMETER">dst</var> object.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9613"><span style="white-space: nowrap"><var class="PARAMETER">dst</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to destination object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9618"><span style="white-space: nowrap"><var class="PARAMETER">src</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to source object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9623"><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 and a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9628"></a><h3> <a name="XMLSECKEYREQMATCHKEY"></a>xmlSecKeyReqMatchKey ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqMatchKey (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Checks whether <var class="PARAMETER">key</var> matches key requirements <var class="PARAMETER">keyReq</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9642"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9647"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9652"><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 key matches requirements, 0 if not and a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9657"></a><h3> <a name="XMLSECKEYREQMATCHKEYVALUE"></a>xmlSecKeyReqMatchKeyValue ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqMatchKeyValue (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);</pre> <p>Checks whether <var class="PARAMETER">keyValue</var> matches key requirements <var class="PARAMETER">keyReq</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9671"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9676"><span style="white-space: nowrap"><var class="PARAMETER">value</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9681"><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 key value matches requirements, 0 if not and a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9686"></a><h3> <a name="XMLSECKEYREQDEBUGDUMP"></a>xmlSecKeyReqDebugDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqDebugDump (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <font>FILE</font> *output);</pre> <p>Prints debug information about <var class="PARAMETER">keyReq</var> into <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="AEN9700"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9705"><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="AEN9710"></a><h3> <a name="XMLSECKEYREQDEBUGXMLDUMP"></a>xmlSecKeyReqDebugXmlDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq, <font>FILE</font> *output);</pre> <p>Prints debug information about <var class="PARAMETER">keyReq</var> into <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="AEN9724"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9729"><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="AEN9734"></a><h3> <a name="XMLSECKEY"></a>struct xmlSecKey</h3> <pre class="PROGRAMLISTING">struct xmlSecKey { xmlChar* name; xmlSecKeyDataPtr value; xmlSecPtrListPtr dataList; xmlSecKeyUsage usage; time_t notValidBefore; time_t notValidAfter; };</pre> <p>The key.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9743"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">name</code></span></a></td> <td align="LEFT" valign="TOP"><p> the key name.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9749"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <code class="STRUCTFIELD">value</code></span></a></td> <td align="LEFT" valign="TOP"><p> the key value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9755"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <code class="STRUCTFIELD">dataList</code></span></a></td> <td align="LEFT" valign="TOP"><p> the key data list.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9761"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a> <code class="STRUCTFIELD">usage</code></span></a></td> <td align="LEFT" valign="TOP"><p> the key usage.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9767"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">notValidBefore</code></span></a></td> <td align="LEFT" valign="TOP"><p> the start key validity interval.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9773"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">notValidAfter</code></span></a></td> <td align="LEFT" valign="TOP"><p> the end key validity interval.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9779"></a><h3> <a name="XMLSECKEYCREATE"></a>xmlSecKeyCreate ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyCreate (void);</pre> <p>Allocates and initializes new key. Caller is responsible for freeing returned object with <a href="xmlsec-keys.html#XMLSECKEYDESTROY"><span class="TYPE">xmlSecKeyDestroy</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="AEN9791"><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 <var class="PARAMETER">xmlSecKey</var> structure or NULL if an error occurs.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9797"></a><h3> <a name="XMLSECKEYDESTROY"></a>xmlSecKeyDestroy ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDestroy (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Destroys the key created using <a href="xmlsec-keys.html#XMLSECKEYCREATE"><span class="TYPE">xmlSecKeyCreate</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="AEN9810"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9815"></a><h3> <a name="XMLSECKEYEMPTY"></a>xmlSecKeyEmpty ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyEmpty (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Clears the <var class="PARAMETER">key</var> data.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN9827"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9832"></a><h3> <a name="XMLSECKEYDUPLICATE"></a>xmlSecKeyDuplicate ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> xmlSecKeyDuplicate (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Creates a duplicate of the given <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="AEN9844"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to the <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9851"><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 <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9858"></a><h3> <a name="XMLSECKEYCOPY"></a>xmlSecKeyCopy ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyCopy (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keyDst, <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keySrc);</pre> <p>Copies key data from <var class="PARAMETER">keySrc</var> to <var class="PARAMETER">keyDst</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9872"><span style="white-space: nowrap"><var class="PARAMETER">keyDst</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the destination key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9877"><span style="white-space: nowrap"><var class="PARAMETER">keySrc</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the source key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9882"><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="AEN9887"></a><h3> <a name="XMLSECKEYGETNAME"></a>xmlSecKeyGetName ()</h3> <pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecKeyGetName (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Gets key name (see also <a href="xmlsec-keys.html#XMLSECKEYSETNAME"><span class="TYPE">xmlSecKeySetName</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="AEN9900"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9905"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>key name.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9910"></a><h3> <a name="XMLSECKEYSETNAME"></a>xmlSecKeySetName ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeySetName (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, const <font>xmlChar</font> *name);</pre> <p>Sets key name (see also <a href="xmlsec-keys.html#XMLSECKEYGETNAME"><span class="TYPE">xmlSecKeyGetName</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="AEN9924"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9929"><span style="white-space: nowrap"><var class="PARAMETER">name</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new key name.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9934"><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="AEN9939"></a><h3> <a name="XMLSECKEYGETTYPE"></a>xmlSecKeyGetType ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> xmlSecKeyGetType (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Gets <var class="PARAMETER">key</var> type.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN9951"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9956"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>key type.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9961"></a><h3> <a name="XMLSECKEYGETVALUE"></a>xmlSecKeyGetValue ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyGetValue (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre> <p>Gets key value (see also <a href="xmlsec-keys.html#XMLSECKEYSETVALUE"><span class="TYPE">xmlSecKeySetValue</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="AEN9974"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN9979"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>key value (crypto material).</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN9984"></a><h3> <a name="XMLSECKEYSETVALUE"></a>xmlSecKeySetValue ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeySetValue (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);</pre> <p>Sets key value (see also <a href="xmlsec-keys.html#XMLSECKEYGETVALUE"><span class="TYPE">xmlSecKeyGetValue</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="AEN9998"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10003"><span style="white-space: nowrap"><var class="PARAMETER">value</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new value.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10008"><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="AEN10013"></a><h3> <a name="XMLSECKEYGETDATA"></a>xmlSecKeyGetData ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyGetData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>xmlSecKeyDataId</font> dataId);</pre> <p>Gets key's data.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10025"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10030"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the requested data klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10035"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>additional data associated with the <var class="PARAMETER">key</var> (see also <a href="xmlsec-keys.html#XMLSECKEYADOPTDATA"><span class="TYPE">xmlSecKeyAdoptData</span></a> function).</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10043"></a><h3> <a name="XMLSECKEYENSUREDATA"></a>xmlSecKeyEnsureData ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyEnsureData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>xmlSecKeyDataId</font> dataId);</pre> <p>If necessary, creates key data of <var class="PARAMETER">dataId</var> klass and adds 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="AEN10057"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10062"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the requested data klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10067"><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 key data or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10072"></a><h3> <a name="XMLSECKEYADOPTDATA"></a>xmlSecKeyAdoptData ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyAdoptData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre> <p>Adds <var class="PARAMETER">data</var> to the <var class="PARAMETER">key</var>. The <var class="PARAMETER">data</var> object will be destroyed by <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="AEN10088"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10093"><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="AEN10098"><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="AEN10103"></a><h3> <a name="XMLSECKEYDEBUGDUMP"></a>xmlSecKeyDebugDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDebugDump (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>FILE</font> *output);</pre> <p>Prints the information about the <var class="PARAMETER">key</var> to the <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="AEN10117"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10122"><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="AEN10127"></a><h3> <a name="XMLSECKEYDEBUGXMLDUMP"></a>xmlSecKeyDebugXmlDump ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, <font>FILE</font> *output);</pre> <p>Prints the information about the <var class="PARAMETER">key</var> to the <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="AEN10141"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10146"><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="AEN10151"></a><h3> <a name="XMLSECKEYGENERATE"></a>xmlSecKeyGenerate ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyGenerate (<font>xmlSecKeyDataId</font> dataId, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits, <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre> <p>Generates new key of requested klass <var class="PARAMETER">dataId</var> and <var class="PARAMETER">type</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10166"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the requested key klass (rsa, dsa, aes, ...).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10171"><span style="white-space: nowrap"><var class="PARAMETER">sizeBits</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new key size (in bits!).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10176"><span style="white-space: nowrap"><var class="PARAMETER">type</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new key type (session, permanent, ...).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10181"><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 newly created key or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10186"></a><h3> <a name="XMLSECKEYGENERATEBYNAME"></a>xmlSecKeyGenerateByName ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyGenerateByName (const <font>xmlChar</font> *name, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits, <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre> <p>Generates new key of requested <var class="PARAMETER">klass</var> and <var class="PARAMETER">type</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10201"><span style="white-space: nowrap"><var class="PARAMETER">name</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the requested key klass name (rsa, dsa, aes, ...).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10206"><span style="white-space: nowrap"><var class="PARAMETER">sizeBits</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new key size (in bits!).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10211"><span style="white-space: nowrap"><var class="PARAMETER">type</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new key type (session, permanent, ...).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10216"><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 newly created key or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10221"></a><h3> <a name="XMLSECKEYMATCH"></a>xmlSecKeyMatch ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyMatch (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key, const <font>xmlChar</font> *name, <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre> <p>Checks whether the <var class="PARAMETER">key</var> matches the given criteria.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10235"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10240"><span style="white-space: nowrap"><var class="PARAMETER">name</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key name (may be NULL).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10245"><span style="white-space: nowrap"><var class="PARAMETER">keyReq</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key requirements.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10250"><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 the key satisfies the given criteria or 0 otherwise.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10255"></a><h3> <a name="XMLSECKEYREADBUFFER"></a>xmlSecKeyReadBuffer ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadBuffer (<font>xmlSecKeyDataId</font> dataId, <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> *buffer);</pre> <p>Reads the key value of klass <var class="PARAMETER">dataId</var> from a buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10268"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the key value data klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10273"><span style="white-space: nowrap"><var class="PARAMETER">buffer</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the buffer that contains the binary data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10278"><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 newly created key or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10283"></a><h3> <a name="XMLSECKEYREADBINARYFILE"></a>xmlSecKeyReadBinaryFile ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadBinaryFile (<font>xmlSecKeyDataId</font> dataId, const <font>char</font> *filename);</pre> <p>Reads the key value of klass <var class="PARAMETER">dataId</var> from a binary file <var class="PARAMETER">filename</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10297"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the key value data klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10302"><span style="white-space: nowrap"><var class="PARAMETER">filename</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the key binary filename.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10307"><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 newly created key or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10312"></a><h3> <a name="XMLSECKEYREADMEMORY"></a>xmlSecKeyReadMemory ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadMemory (<font>xmlSecKeyDataId</font> dataId, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre> <p>Reads the key value of klass <var class="PARAMETER">dataId</var> from a memory block <var class="PARAMETER">data</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10327"><span style="white-space: nowrap"><var class="PARAMETER">dataId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the key value data klass.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10332"><span style="white-space: nowrap"><var class="PARAMETER">data</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the memory containing the key</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10337"><span style="white-space: nowrap"><var class="PARAMETER">dataSize</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the size of the memory block</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10342"><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 newly created key or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10347"></a><h3> <a name="XMLSECKEYISVALID"></a>xmlSecKeyIsValid()</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyIsValid(key)</pre> <p>Macro. Returns 1 if <var class="PARAMETER">key</var> is not NULL and <var class="PARAMETER">key</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="AEN10358"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10363"></a><h3> <a name="XMLSECKEYCHECKID"></a>xmlSecKeyCheckId()</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyCheckId(key, keyId)</pre> <p>Macro. Returns 1 if <var class="PARAMETER">key</var> is valid and <var class="PARAMETER">key</var>'s id is equal to <var class="PARAMETER">keyId</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN10375"><span style="white-space: nowrap"><var class="PARAMETER">key</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to key.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN10380"><span style="white-space: nowrap"><var class="PARAMETER">keyId</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the key Id.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN10385"></a><h3> <a name="XMLSECKEYPTRLISTID"></a>xmlSecKeyPtrListId</h3> <pre class="PROGRAMLISTING">#define xmlSecKeyPtrListId xmlSecKeyPtrListGetKlass()</pre> <p>The keys list klass.</p> <p></p> </div> <hr> <div class="REFSECT2"> <a name="AEN10393"></a><h3> <a name="XMLSECKEYPTRLISTGETKLASS"></a>xmlSecKeyPtrListGetKlass ()</h3> <pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyPtrListGetKlass (void);</pre> <p>The keys 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="AEN10403"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>keys list id.</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-keysdata.html"><b><<<keysdata</b></a></td> <td align="right"><a accesskey="n" href="xmlsec-keysmngr.html"><b>keysmngr>>></b></a></td> </tr></table> </td></tr></table></td> </tr></table></body> </html>