/
githubmirror
/
xmlsec
Обзор
Документация
Войти
/
githubmirror
/
xmlsec
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
1.3.8
docs/api/xmlsec-keyinfo.html
1 216 строк
61 KB
lsh123
Docs update (#869)
29 янв 2025, 20:55
Не верифицирован
29 янв 2025, 20:55
c61a4a9
Код
Авторство
О чём код?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>keyinfo: XML Security Library Reference Manual</title> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <link rel="home" href="index.html" title="XML Security Library Reference Manual"> <link rel="up" href="xmlsec-ref.html" title="XML Security Core Library API Reference."> <link rel="prev" href="xmlsec-io.html" title="io"> <link rel="next" href="xmlsec-keysdata.html" title="keysdata"> <meta name="generator" content="GTK-Doc V1.34.0 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#xmlsec-keyinfo.description" class="shortcut">Description</a></span> </td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="xmlsec-io.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="xmlsec-keysdata.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="xmlsec-keyinfo"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="xmlsec-keyinfo.top_of_page"></a>keyinfo</span></h2> <p>keyinfo — <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node parser functions.</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="xmlsec-keyinfo.stability-level"></a><h2>Stability Level</h2> <a href="http://foldoc.org/Stable"><span class="acronym">Stable</span></a>, unless otherwise indicated </div> <div class="refsect1"> <a name="xmlsec-keyinfo.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> </colgroup> <tbody> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoNodeRead" title="xmlSecKeyInfoNodeRead ()">xmlSecKeyInfoNodeRead</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoNodeWrite" title="xmlSecKeyInfoNodeWrite ()">xmlSecKeyInfoNodeWrite</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="returnvalue">xmlSecKeyInfoCtxPtr</span></a> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxCreate" title="xmlSecKeyInfoCtxCreate ()">xmlSecKeyInfoCtxCreate</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxDestroy" title="xmlSecKeyInfoCtxDestroy ()">xmlSecKeyInfoCtxDestroy</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxInitialize" title="xmlSecKeyInfoCtxInitialize ()">xmlSecKeyInfoCtxInitialize</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxFinalize" title="xmlSecKeyInfoCtxFinalize ()">xmlSecKeyInfoCtxFinalize</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxReset" title="xmlSecKeyInfoCtxReset ()">xmlSecKeyInfoCtxReset</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxCopyUserPref" title="xmlSecKeyInfoCtxCopyUserPref ()">xmlSecKeyInfoCtxCopyUserPref</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">int</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxCreateEncCtx" title="xmlSecKeyInfoCtxCreateEncCtx ()">xmlSecKeyInfoCtxCreateEncCtx</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxDebugDump" title="xmlSecKeyInfoCtxDebugDump ()">xmlSecKeyInfoCtxDebugDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">void</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxDebugXmlDump" title="xmlSecKeyInfoCtxDebugXmlDump ()">xmlSecKeyInfoCtxDebugXmlDump</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataNameGetKlass" title="xmlSecKeyDataNameGetKlass ()">xmlSecKeyDataNameGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataValueGetKlass" title="xmlSecKeyDataValueGetKlass ()">xmlSecKeyDataValueGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataRetrievalMethodGetKlass" title="xmlSecKeyDataRetrievalMethodGetKlass ()">xmlSecKeyDataRetrievalMethodGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataKeyInfoReferenceGetKlass" title="xmlSecKeyDataKeyInfoReferenceGetKlass ()">xmlSecKeyDataKeyInfoReferenceGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataEncryptedKeyGetKlass" title="xmlSecKeyDataEncryptedKeyGetKlass ()">xmlSecKeyDataEncryptedKeyGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataAgreementMethodGetKlass" title="xmlSecKeyDataAgreementMethodGetKlass ()">xmlSecKeyDataAgreementMethodGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <font><span class="returnvalue">xmlSecKeyDataId</span></font> </td> <td class="function_name"> <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataDerivedKeyGetKlass" title="xmlSecKeyDataDerivedKeyGetKlass ()">xmlSecKeyDataDerivedKeyGetKlass</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="xmlsec-keyinfo.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> </colgroup> <tbody> <tr> <td class="datatype_keyword">enum</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoMode" title="enum xmlSecKeyInfoMode">xmlSecKeyInfoMode</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND:CAPS" title="XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD:CAPS" title="XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN:CAPS" title="XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD:CAPS" title="XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF:CAPS" title="XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF:CAPS" title="XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION:CAPS" title="XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE:CAPS" title="XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-LAX-KEY-SEARCH:CAPS" title="XMLSEC_KEYINFO_FLAGS_LAX_KEY_SEARCH">XMLSEC_KEYINFO_FLAGS_LAX_KEY_SEARCH</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-TIME-CHECKS:CAPS" title="XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_TIME_CHECKS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_TIME_CHECKS</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx">xmlSecKeyInfoCtx</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataNameId" title="xmlSecKeyDataNameId">xmlSecKeyDataNameId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataValueId" title="xmlSecKeyDataValueId">xmlSecKeyDataValueId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataRetrievalMethodId" title="xmlSecKeyDataRetrievalMethodId">xmlSecKeyDataRetrievalMethodId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataKeyInfoReferenceId" title="xmlSecKeyDataKeyInfoReferenceId">xmlSecKeyDataKeyInfoReferenceId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataEncryptedKeyId" title="xmlSecKeyDataEncryptedKeyId">xmlSecKeyDataEncryptedKeyId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataAgreementMethodId" title="xmlSecKeyDataAgreementMethodId">xmlSecKeyDataAgreementMethodId</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyDataDerivedKeyId" title="xmlSecKeyDataDerivedKeyId">xmlSecKeyDataDerivedKeyId</a></td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="xmlsec-keyinfo.description"></a><h2>Description</h2> <p><a class="ulink" href="https://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">KeyInfo</a> is an optional element that enables the recipient(s) to obtain the key needed to validate the signature. KeyInfo may contain keys, names, certificates and other public key management information, such as in-band key distribution or key agreement data.</p> <p>Schema Definition:</p> <div class="informalexample"><pre class="programlisting"> <element name="KeyInfo" type="ds:KeyInfoType"/> <complexType name="KeyInfoType" mixed="true"> <choice maxOccurs="unbounded"> <element ref="ds:KeyName"/> <element ref="ds:KeyValue"/> <element ref="ds:RetrievalMethod"/> <element ref="ds:X509Data"/> <element ref="ds:PGPData"/> <element ref="ds:SPKIData"/> <element ref="ds:MgmtData"/> <any processContents="lax" namespace="##other"/> <!-- (1,1) elements from (0,unbounded) namespaces --> </choice> <attribute name="Id" type="ID" use="optional"/> </complexType> </pre></div> <p></p> <p>DTD:</p> <div class="informalexample"><pre class="programlisting"> <!ELEMENT KeyInfo (#PCDATA|KeyName|KeyValue|RetrievalMethod| X509Data|PGPData|SPKIData|MgmtData %KeyInfo.ANY;)* > <!ATTLIST KeyInfo Id ID #IMPLIED > </pre></div> <p></p> </div> <div class="refsect1"> <a name="xmlsec-keyinfo.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="xmlSecKeyInfoNodeRead"></a><h3>xmlSecKeyInfoNodeRead ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyInfoNodeRead (<em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> keyInfoNode</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Parses the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element <em class="parameter"><code>keyInfoNode</code></em> , extracts the key data and stores into <em class="parameter"><code>key</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyInfoNodeRead.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>keyInfoNode</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the pointer to result key object.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoNodeRead.returns"></a><h4>Returns</h4> <p> 0 on success or -1 if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoNodeWrite"></a><h3>xmlSecKeyInfoNodeWrite ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyInfoNodeWrite (<em class="parameter"><code><font><span class="type">xmlNodePtr</span></font> keyInfoNode</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Writes the <em class="parameter"><code>key</code></em> into the <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element template <em class="parameter"><code>keyInfoNode</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyInfoNodeWrite.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>keyInfoNode</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> node.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>key</p></td> <td class="parameter_description"><p>the pointer to key object.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoNodeWrite.returns"></a><h4>Returns</h4> <p> 0 on success or -1 if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxCreate"></a><h3>xmlSecKeyInfoCtxCreate ()</h3> <pre class="programlisting"><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="returnvalue">xmlSecKeyInfoCtxPtr</span></a> xmlSecKeyInfoCtxCreate (<em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeysMngr" title="struct xmlSecKeysMngr"><span class="type">xmlSecKeysMngrPtr</span></a> keysMngr</code></em>);</pre> <p>Allocates and initializes <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context. Caller is responsible for freeing it by calling <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxDestroy" title="xmlSecKeyInfoCtxDestroy ()"><span class="type">xmlSecKeyInfoCtxDestroy</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCreate.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>keysMngr</p></td> <td class="parameter_description"><p>the pointer to keys manager (may be NULL).</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCreate.returns"></a><h4>Returns</h4> <p> pointer to newly allocated object or NULL if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxDestroy"></a><h3>xmlSecKeyInfoCtxDestroy ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyInfoCtxDestroy (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Destroys <em class="parameter"><code>keyInfoCtx</code></em> object created with <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxCreate" title="xmlSecKeyInfoCtxCreate ()"><span class="type">xmlSecKeyInfoCtxCreate</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxDestroy.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxInitialize"></a><h3>xmlSecKeyInfoCtxInitialize ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyInfoCtxInitialize (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keysmngr.html#xmlSecKeysMngr" title="struct xmlSecKeysMngr"><span class="type">xmlSecKeysMngrPtr</span></a> keysMngr</code></em>);</pre> <p>Initializes <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context. Caller is responsible for cleaning it up by <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxFinalize" title="xmlSecKeyInfoCtxFinalize ()"><span class="type">xmlSecKeyInfoCtxFinalize</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxInitialize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>keysMngr</p></td> <td class="parameter_description"><p>the pointer to keys manager (may be NULL).</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoCtxInitialize.returns"></a><h4>Returns</h4> <p> 0 on success and a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxFinalize"></a><h3>xmlSecKeyInfoCtxFinalize ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyInfoCtxFinalize (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Cleans up the <em class="parameter"><code>keyInfoCtx</code></em> initialized with <a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtxInitialize" title="xmlSecKeyInfoCtxInitialize ()"><span class="type">xmlSecKeyInfoCtxInitialize</span></a> function.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxFinalize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxReset"></a><h3>xmlSecKeyInfoCtxReset ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyInfoCtxReset (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Resets the <em class="parameter"><code>keyInfoCtx</code></em> state. User settings are not changed.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxReset.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxCopyUserPref"></a><h3>xmlSecKeyInfoCtxCopyUserPref ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyInfoCtxCopyUserPref (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> dst</code></em>, <em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> src</code></em>);</pre> <p>Copies user preferences from <em class="parameter"><code>src</code></em> context to <em class="parameter"><code>dst</code></em> context.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCopyUserPref.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>dst</p></td> <td class="parameter_description"><p>the pointer to destination context object.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>src</p></td> <td class="parameter_description"><p>the pointer to source context object.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCopyUserPref.returns"></a><h4>Returns</h4> <p> 0 on success and a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxCreateEncCtx"></a><h3>xmlSecKeyInfoCtxCreateEncCtx ()</h3> <pre class="programlisting"><font><span class="returnvalue">int</span></font> xmlSecKeyInfoCtxCreateEncCtx (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>);</pre> <p>Creates encryption context form processing <a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> child of <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCreateEncCtx.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody><tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="xmlSecKeyInfoCtxCreateEncCtx.returns"></a><h4>Returns</h4> <p> 0 on success and a negative value if an error occurs.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxDebugDump"></a><h3>xmlSecKeyInfoCtxDebugDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyInfoCtxDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints user settings and current context state to <em class="parameter"><code>output</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxDebugDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the output file pointer.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtxDebugXmlDump"></a><h3>xmlSecKeyInfoCtxDebugXmlDump ()</h3> <pre class="programlisting"><font><span class="returnvalue">void</span></font> xmlSecKeyInfoCtxDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoCtx" title="struct xmlSecKeyInfoCtx"><span class="type">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code></em>, <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre> <p>Prints user settings and current context state in XML format to <em class="parameter"><code>output</code></em> .</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtxDebugXmlDump.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="parameter_name"><p>keyInfoCtx</p></td> <td class="parameter_description"><p>the pointer to <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>output</p></td> <td class="parameter_description"><p>the output file pointer.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataNameGetKlass"></a><h3>xmlSecKeyDataNameGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataNameGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The <a class="ulink" href="" target="_top"><dsig:KeyName/></a> element key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="type">sec-KeyName</span></font>):</p> <p>The KeyName element contains a string value (in which white space is significant) which may be used by the signer to communicate a key identifier to the recipient. Typically, KeyName contains an identifier related to the key pair used to sign the message, but it may contain other protocol-related information that indirectly identifies a key pair. (Common uses of KeyName include simple string names for keys, a key index, a distinguished name (DN), an email address, etc.)</p> <div class="refsect3"> <a name="xmlSecKeyDataNameGetKlass.returns"></a><h4>Returns</h4> <p> the <a class="ulink" href="" target="_top"><dsig:KeyName/></a> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataValueGetKlass"></a><h3>xmlSecKeyDataValueGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataValueGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The <a class="ulink" href="" target="_top"><dsig:KeyValue/></a> element key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="type">sec-KeyValue</span></font>):</p> <p>The KeyValue element contains a single public key that may be useful in validating the signature.</p> <div class="refsect3"> <a name="xmlSecKeyDataValueGetKlass.returns"></a><h4>Returns</h4> <p> the <a class="ulink" href="" target="_top"><dsig:KeyValue/></a> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataRetrievalMethodGetKlass"></a><h3>xmlSecKeyDataRetrievalMethodGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataRetrievalMethodGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The <a class="ulink" href="" target="_top"><dsig:RetrievalMethod/></a> element key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="type">sec-RetrievalMethod</span></font>): A RetrievalMethod element within KeyInfo is used to convey a reference to KeyInfo information that is stored at another location. For example, several signatures in a document might use a key verified by an X.509v3 certificate chain appearing once in the document or remotely outside the document; each signature's KeyInfo can reference this chain using a single RetrievalMethod element instead of including the entire chain with a sequence of X509Certificate elements.</p> <p>RetrievalMethod uses the same syntax and dereferencing behavior as Reference's URI and The Reference Processing Model.</p> <div class="refsect3"> <a name="xmlSecKeyDataRetrievalMethodGetKlass.returns"></a><h4>Returns</h4> <p> the <a class="ulink" href="" target="_top"><dsig:RetrievalMethod/></a> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataKeyInfoReferenceGetKlass"></a><h3>xmlSecKeyDataKeyInfoReferenceGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataKeyInfoReferenceGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>A KeyInfoReference element within KeyInfo is used to convey a reference to a KeyInfo element at another location in the same or different document.</p> <p>KeyInfoReference uses the same syntax and dereferencing behavior as Reference's URI and the Reference Processing Model except that there are no child elements and the presence of the URI attribute is mandatory.</p> <p>The result of dereferencing a KeyInfoReference MUST be a KeyInfo element, or an XML document with a KeyInfo element as the root.</p> <p> </p> <span style="color: red"><element></element></span><span style="color: red"><complexType> <span style="color: red"><attribute></attribute></span> <span style="color: red"><attribute></attribute></span> </complexType></span> https://www.w3.org/TR/xmldsig-core1/<font><span class="type">sec-KeyInfoReference</span></font><div class="refsect3"> <a name="xmlSecKeyDataKeyInfoReferenceGetKlass.returns"></a><h4>Returns</h4> <p> the<dsig11:KeyInfoReference/> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataEncryptedKeyGetKlass"></a><h3>xmlSecKeyDataEncryptedKeyGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataEncryptedKeyGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The <a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> element key data klass (http://www.w3.org/TR/xmlenc-core/<font><span class="type">sec-EncryptedKey</span></font>):</p> <p>The EncryptedKey element is used to transport encryption keys from the originator to a known recipient(s). It may be used as a stand-alone XML document, be placed within an application document, or appear inside an EncryptedData element as a child of a ds:KeyInfo element. The key value is always encrypted to the recipient(s). When EncryptedKey is decrypted the resulting octets are made available to the EncryptionMethod algorithm without any additional processing.</p> <div class="refsect3"> <a name="xmlSecKeyDataEncryptedKeyGetKlass.returns"></a><h4>Returns</h4> <p> the <a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataAgreementMethodGetKlass"></a><h3>xmlSecKeyDataAgreementMethodGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataAgreementMethodGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The <a class="ulink" href="" target="_top"><enc:AgreementMethod/></a> element key data klass (hhttps://www.w3.org/TR/xmlenc-core1/<font><span class="type">sec-Alg-KeyAgreement</span></font>)</p> <p>A Key Agreement algorithm provides for the derivation of a shared secret key based on a shared secret computed from certain types of compatible public keys from both the sender and the recipient. Information from the originator to determine the secret is indicated by an optional OriginatorKeyInfo parameter child of an AgreementMethod element while that associated with the recipient is indicated by an optional RecipientKeyInfo. A shared key is derived from this shared secret by a method determined by the Key Agreement algorithm.</p> <div class="refsect3"> <a name="xmlSecKeyDataAgreementMethodGetKlass.returns"></a><h4>Returns</h4> <p> the <a class="ulink" href="" target="_top"><enc:AgreementMethod/></a> element processing key data klass.</p> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDerivedKeyGetKlass"></a><h3>xmlSecKeyDataDerivedKeyGetKlass ()</h3> <pre class="programlisting"><font><span class="returnvalue">xmlSecKeyDataId</span></font> xmlSecKeyDataDerivedKeyGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>The<enc11:DerivedKey/> element key data klass (https://www.w3.org/TR/xmlenc-core1/<font><span class="type">sec-DerivedKey</span></font>)</p> <p>The DerivedKey element is used to transport information about a derived key from the originator to recipient(s). It may be used as a stand-alone XML document, be placed within an application document, or appear inside an EncryptedData or Signature element as a child of a ds:KeyInfo element. The key value itself is never sent by the originator. Rather, the originator provides information to the recipient(s) by which the recipient(s) can derive the same key value. When the key has been derived the resulting octets are made available to the EncryptionMethod or SignatureMethod algorithm without any additional processing.</p> <div class="refsect3"> <a name="xmlSecKeyDataDerivedKeyGetKlass.returns"></a><h4>Returns</h4> <p> the<enc11:DerivedKey/> element processing key data klass.</p> </div> </div> </div> <div class="refsect1"> <a name="xmlsec-keyinfo.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="xmlSecKeyInfoMode"></a><h3>enum xmlSecKeyInfoMode</h3> <p>The <em class="parameter"><code>xmlSecKeyInfoCtx</code></em> operation mode (read or write).</p> <div class="refsect3"> <a name="xmlSecKeyInfoMode.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyInfoModeRead"></a>xmlSecKeyInfoModeRead</p></td> <td class="enum_member_description"><p>read <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> element.</p></td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="xmlSecKeyInfoModeWrite"></a>xmlSecKeyInfoModeWrite</p></td> <td class="enum_member_description"><p>write <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> element.</p></td> <td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND 0x00000001 </pre> <p>If flag is set then we will continue reading <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> element even when key is already found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD 0x00000002 </pre> <p>If flag is set then we abort if an unknown <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> child is found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN 0x00000004 </pre> <p>If flags is set then we abort if an unknown key name (content of <a class="ulink" href="" target="_top"><dsig:KeyName /></a> element) is found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD 0x00000008 </pre> <p>If flags is set then we abort if an unknown <a class="ulink" href="" target="_top"><dsig:KeyValue /></a> child is found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF 0x00000010 </pre> <p>If flag is set then we abort if an unknown href attribute of <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> element is found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF 0x00000020 </pre> <p>If flag is set then we abort if an href attribute <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> element does not match the real key data type.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD 0x00000100 </pre> <p>If flags is set then we abort if an unknown <a class="ulink" href="" target="_top"><dsig:X509Data /></a> child is found.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS 0x00000200 </pre> <p>If flag is set then we'll load certificates from <a class="ulink" href="" target="_top"><dsig:X509Data /></a> element without verification.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT 0x00000400 </pre> <p>If flag is set then we'll stop when we could not resolve reference to certificate from <a class="ulink" href="" target="_top"><dsig:X509IssuerSerial /></a>, <a class="ulink" href="" target="_top"><dsig:X509SKI /></a> or</p> <a class="ulink" href="" target="_top"><dsig:X509SubjectName /></a> elements. </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT 0x00000800 </pre> <p>If the flag is set then we'll stop when <a class="ulink" href="" target="_top"><dsig:X509Data /></a> element processing does not return a verified certificate.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION 0x00001000 </pre> <p>If the flag is set then we'll stop when <a class="ulink" href="" target="_top"><enc:EncryptedKey /></a> element processing fails.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE 0x00002000 </pre> <p>If the flag is set then we'll stop when we found an empty node. Otherwise we just ignore it.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS 0x00004000 </pre> <p>If the flag is set then we'll skip strict checking of certs and CRLs</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-LAX-KEY-SEARCH:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_LAX_KEY_SEARCH</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_LAX_KEY_SEARCH 0x00008000 </pre> <p>If the flag is set then we'll try to find any key that matches requirements (e.g. *any* RSA public key). In the default strict key search mode, only keys referenced in <a class="ulink" href="" target="_top"><dsig:KeyInfo/></a> (e.g. by KeyName value) are used.</p> </div> <hr> <div class="refsect2"> <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-TIME-CHECKS:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_TIME_CHECKS</h3> <pre class="programlisting">#define XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_TIME_CHECKS 0x00010000 </pre> <p>If the flag is set then we'll skip time checks of certs and CRLs</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyInfoCtx"></a><h3>struct xmlSecKeyInfoCtx</h3> <pre class="programlisting">struct xmlSecKeyInfoCtx { void* userData; unsigned int flags; unsigned int flags2; xmlSecKeysMngrPtr keysMngr; xmlSecKeyInfoMode mode; xmlSecPtrList enabledKeyData; int base64LineSize; /* RetrievalMethod */ xmlSecTransformCtx retrievalMethodCtx; int maxRetrievalMethodLevel; /* KeyInfoReference */ xmlSecTransformCtx keyInfoReferenceCtx; int maxKeyInfoReferenceLevel; /* EncryptedKey or DerivedKey */ xmlSecEncCtxPtr encCtx; int maxEncryptedKeyLevel; /* x509 certificates */ time_t certsVerificationTime; int certsVerificationDepth; /* PGP */ void* pgpReserved; /* TODO */ /* internal data */ int curRetrievalMethodLevel; int curKeyInfoReferenceLevel; int curEncryptedKeyLevel; xmlSecTransformOperation operation; xmlSecKeyReq keyReq; /* for the future */ void* reserved0; void* reserved1; }; </pre> <p>The <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> reading or writing context.</p> <div class="refsect3"> <a name="xmlSecKeyInfoCtx.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col> <col> <col> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyInfoCtx.userData"></a>userData</code></em>;</p></td> <td class="struct_member_description"><p>the pointer to user data (xmlsec and xmlsec-crypto never touch this).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>unsigned <font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.flags"></a>flags</code></em>;</p></td> <td class="struct_member_description"><p>the bit mask for flags that control processin.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p>unsigned <font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.flags2"></a>flags2</code></em>;</p></td> <td class="struct_member_description"><p>reserved for future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keysmngr.html#xmlSecKeysMngr" title="struct xmlSecKeysMngr"><span class="type">xmlSecKeysMngrPtr</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.keysMngr"></a>keysMngr</code></em>;</p></td> <td class="struct_member_description"><p>the pointer to current keys manager.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keyinfo.html#xmlSecKeyInfoMode" title="enum xmlSecKeyInfoMode"><span class="type">xmlSecKeyInfoMode</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.mode"></a>mode</code></em>;</p></td> <td class="struct_member_description"><p>do we read or write <a class="ulink" href="" target="_top"><dsig:KeyInfo /></a> element.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrList</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.enabledKeyData"></a>enabledKeyData</code></em>;</p></td> <td class="struct_member_description"><p>the list of enabled <em class="parameter"><code>xmlSecKeyDataId</code></em> (if list is empty then all data ids are enabled).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.base64LineSize"></a>base64LineSize</code></em>;</p></td> <td class="struct_member_description"><p>the max columns size for base64 encoding.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-transforms.html#xmlSecTransformCtx" title="struct xmlSecTransformCtx"><span class="type">xmlSecTransformCtx</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.retrievalMethodCtx"></a>retrievalMethodCtx</code></em>;</p></td> <td class="struct_member_description"><p>the transforms context for <a class="ulink" href="" target="_top"><dsig:RetrievalMethod /></a> element processing.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.maxRetrievalMethodLevel"></a>maxRetrievalMethodLevel</code></em>;</p></td> <td class="struct_member_description"><p>the max recursion level when processing <a class="ulink" href="" target="_top"><dsig:RetrievalMethod/></a> element; default level is 1 (see also <em class="parameter"><code>curRetrievalMethodLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-transforms.html#xmlSecTransformCtx" title="struct xmlSecTransformCtx"><span class="type">xmlSecTransformCtx</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.keyInfoReferenceCtx"></a>keyInfoReferenceCtx</code></em>;</p></td> <td class="struct_member_description"><p>the transforms context for<dsig11:KeyInfoReference/> element processing.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.maxKeyInfoReferenceLevel"></a>maxKeyInfoReferenceLevel</code></em>;</p></td> <td class="struct_member_description"><p>the max recursion level when processing <dsig11:KeyInfoReference/> element; default level is 1 (see also <em class="parameter"><code>curKeyInfoReferenceLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-xmlenc.html#xmlSecEncCtx" title="struct xmlSecEncCtx"><span class="type">xmlSecEncCtxPtr</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.encCtx"></a>encCtx</code></em>;</p></td> <td class="struct_member_description"><p>the encryption context for <a class="ulink" href="" target="_top"><dsig:EncryptedKey /></a> element processing.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.maxEncryptedKeyLevel"></a>maxEncryptedKeyLevel</code></em>;</p></td> <td class="struct_member_description"><p>the max recursion level when processing <a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> element; default level is 1 (see <em class="parameter"><code>curEncryptedKeyLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">time_t</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.certsVerificationTime"></a>certsVerificationTime</code></em>;</p></td> <td class="struct_member_description"><p>the time to use for X509 certificates verification ("not valid before" and "not valid after" checks); if <em class="parameter"><code>certsVerificationTime</code></em> is equal to 0 (default) then we verify certificates against the system's clock "now".</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.certsVerificationDepth"></a>certsVerificationDepth</code></em>;</p></td> <td class="struct_member_description"><p>the max certifications chain length (default is 9).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyInfoCtx.pgpReserved"></a>pgpReserved</code></em>;</p></td> <td class="struct_member_description"><p>reserved for PGP.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.curRetrievalMethodLevel"></a>curRetrievalMethodLevel</code></em>;</p></td> <td class="struct_member_description"><p>the current<a class="ulink" href="" target="_top"><dsig:RetrievalMethod/></a> element processing level (see <em class="parameter"><code>maxRetrievalMethodLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.curKeyInfoReferenceLevel"></a>curKeyInfoReferenceLevel</code></em>;</p></td> <td class="struct_member_description"><p>the current<dsig11:KeyInfoReference/> element processing level (see <em class="parameter"><code>maxKeyInfoReferenceLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">int</span></font> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.curEncryptedKeyLevel"></a>curEncryptedKeyLevel</code></em>;</p></td> <td class="struct_member_description"><p>the current<a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> or<enc11:DerivedKey/> element processing level (see <em class="parameter"><code>maxEncryptedKeyLevel</code></em> ).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-transforms.html#xmlSecTransformOperation" title="enum xmlSecTransformOperation"><span class="type">xmlSecTransformOperation</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.operation"></a>operation</code></em>;</p></td> <td class="struct_member_description"><p>the transform operation for this key info.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReq</span></a> <em class="structfield"><code><a name="xmlSecKeyInfoCtx.keyReq"></a>keyReq</code></em>;</p></td> <td class="struct_member_description"><p>the current key requirements.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyInfoCtx.reserved0"></a>reserved0</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyInfoCtx.reserved1"></a>reserved1</code></em>;</p></td> <td class="struct_member_description"><p>reserved for the future.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataNameId"></a><h3>xmlSecKeyDataNameId</h3> <pre class="programlisting">#define xmlSecKeyDataNameId xmlSecKeyDataNameGetKlass() </pre> <p>The<a class="ulink" href="" target="_top"><dsig:KeyName/></a> processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataValueId"></a><h3>xmlSecKeyDataValueId</h3> <pre class="programlisting">#define xmlSecKeyDataValueId xmlSecKeyDataValueGetKlass() </pre> <p>The<a class="ulink" href="" target="_top"><dsig:KeyValue/></a> processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataRetrievalMethodId"></a><h3>xmlSecKeyDataRetrievalMethodId</h3> <pre class="programlisting">#define xmlSecKeyDataRetrievalMethodId xmlSecKeyDataRetrievalMethodGetKlass() </pre> <p>The<a class="ulink" href="" target="_top"><dsig:RetrievalMethod/></a> processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataKeyInfoReferenceId"></a><h3>xmlSecKeyDataKeyInfoReferenceId</h3> <pre class="programlisting">#define xmlSecKeyDataKeyInfoReferenceId xmlSecKeyDataKeyInfoReferenceGetKlass() </pre> <p>The<dsig11:KeyInfoReference/> processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataEncryptedKeyId"></a><h3>xmlSecKeyDataEncryptedKeyId</h3> <pre class="programlisting">#define xmlSecKeyDataEncryptedKeyId xmlSecKeyDataEncryptedKeyGetKlass() </pre> <p>The<a class="ulink" href="" target="_top"><enc:EncryptedKey/></a> element processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataAgreementMethodId"></a><h3>xmlSecKeyDataAgreementMethodId</h3> <pre class="programlisting">#define xmlSecKeyDataAgreementMethodId xmlSecKeyDataAgreementMethodGetKlass() </pre> <p>The<a class="ulink" href="" target="_top"><enc:AgreementMethod/></a> processing class.</p> </div> <hr> <div class="refsect2"> <a name="xmlSecKeyDataDerivedKeyId"></a><h3>xmlSecKeyDataDerivedKeyId</h3> <pre class="programlisting">#define xmlSecKeyDataDerivedKeyId xmlSecKeyDataDerivedKeyGetKlass() </pre> <p>The<enc11:DerivedKey/> processing class.</p> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.34.0</div> </body> </html>