Git init
[external/xmlsec1.git] / docs / api / xmlsec-keyinfo.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4 <title>keyinfo</title>
5 <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
6 <link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
7 <link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
8 <link rel="PREVIOUS" title="io" href="xmlsec-io.html">
9 <link rel="NEXT" title="keysdata" href="xmlsec-keysdata.html">
10 <style type="text/css">.synopsis, .classsynopsis {
11     background: #eeeeee;
12     border: solid 1px #aaaaaa;
13     padding: 0.5em;
14 }
15 .programlisting {
16     background: #eeeeff;
17     border: solid 1px #aaaaff;
18     padding: 0.5em;
19 }
20 .variablelist {
21     padding: 4px;
22     margin-left: 3em;
23 }
24 .navigation {
25     background: #ffeeee;
26     border: solid 1px #ffaaaa;
27     margin-top: 0.5em;
28     margin-bottom: 0.5em;
29 }
30 .navigation a {
31     color: #770000;
32 }
33 .navigation a:visited {
34     color: #550000;
35 }
36 .navigation .title {
37     font-size: 200%;
38 }</style>
39 </head>
40 <body><table witdh="100%" valign="top"><tr valign="top">
41 <td valign="top" align="left" width="210">
42 <img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
43 <ul>
44 <li><a href="../index.html">Home</a></li>
45 <li><a href="../download.html">Download</a></li>
46 <li><a href="../news.html">News</a></li>
47 <li><a href="../documentation.html">Documentation</a></li>
48 <ul>
49 <li><a href="../faq.html">FAQ</a></li>
50 <li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
51 <li><a href="../api/xmlsec-reference.html">API reference</a></li>
52 <li><a href="../api/xmlsec-examples.html">Examples</a></li>
53 </ul>
54 <li><a href="../xmldsig.html">XML Digital Signature</a></li>
55 <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
56 <li><a href="../xmlenc.html">XML Encryption</a></li>
57 <li><a href="../c14n.html">XML Canonicalization</a></li>
58 <li><a href="../bugs.html">Reporting Bugs</a></li>
59 <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
60 <li><a href="../related.html">Related</a></li>
61 <li><a href="../authors.html">Authors</a></li>
62 </ul>
63 <table width="100%">
64 <tr>
65 <td width="15"></td>
66 <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
67 </tr>
68 <tr>
69 <td width="15"></td>
70 <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
71 </tr>
72 <tr>
73 <td width="15"></td>
74 <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
75 </tr>
76 <!--Links - start--><!--Links - end-->
77 </table>
78 </td>
79 <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
80 <table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
81 <td><a accesskey="p" href="xmlsec-io.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
82 <td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
83 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
84 <th width="100%" align="center">XML Security Library Reference Manual</th>
85 <td><a accesskey="n" href="xmlsec-keysdata.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
86 </tr></table>
87 <h1>
88 <a name="XMLSEC-KEYINFO"></a>keyinfo</h1>
89 <div class="REFNAMEDIV">
90 <a name="AEN5439"></a><h2>Name</h2>keyinfo -- <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> node parser.</div>
91 <div class="REFSYNOPSISDIV">
92 <a name="XMLSEC-KEYINFO.SYNOPSIS"></a><h2>Synopsis</h2>
93 <pre class="SYNOPSIS"><font>int</font>                 <a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEREAD">xmlSecKeyInfoNodeRead</a>               (<font>xmlNodePtr</font> keyInfoNode,
94                                                          <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
95                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
96 <font>int</font>                 <a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEWRITE">xmlSecKeyInfoNodeWrite</a>              (<font>xmlNodePtr</font> keyInfoNode,
97                                                          <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
98                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
99 enum                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE">xmlSecKeyInfoMode</a>;
100 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</a>
101 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</a>
102 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</a>
103 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</a>
104 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</a>
105 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</a>
106 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</a>
107 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</a>
108 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</a>
109 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</a>
110 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</a>
111 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</a>
112 #define             <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</a>
113 struct              <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a>;
114 <font>xmlSecKeyInfoCtxPtr</font>  <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE">xmlSecKeyInfoCtxCreate</a>             (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
115 <font>void</font>                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY">xmlSecKeyInfoCtxDestroy</a>             (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
116 <font>int</font>                 <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE">xmlSecKeyInfoCtxInitialize</a>          (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
117                                                          <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
118 <font>void</font>                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE">xmlSecKeyInfoCtxFinalize</a>            (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
119 <font>void</font>                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXRESET">xmlSecKeyInfoCtxReset</a>               (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
120 <font>int</font>                 <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCOPYUSERPREF">xmlSecKeyInfoCtxCopyUserPref</a>        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> dst,
121                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> src);
122 <font>int</font>                 <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATEENCCTX">xmlSecKeyInfoCtxCreateEncCtx</a>        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
123 <font>void</font>                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGDUMP">xmlSecKeyInfoCtxDebugDump</a>           (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
124                                                          <font>FILE</font> *output);
125 <font>void</font>                <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGXMLDUMP">xmlSecKeyInfoCtxDebugXmlDump</a>        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
126                                                          <font>FILE</font> *output);
127 #define             <a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEID">xmlSecKeyDataNameId</a>
128 <font>xmlSecKeyDataId</font>     <a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEGETKLASS">xmlSecKeyDataNameGetKlass</a>           (void);
129 #define             <a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEID">xmlSecKeyDataValueId</a>
130 <font>xmlSecKeyDataId</font>     <a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEGETKLASS">xmlSecKeyDataValueGetKlass</a>          (void);
131 #define             <a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODID">xmlSecKeyDataRetrievalMethodId</a>
132 <font>xmlSecKeyDataId</font>     <a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODGETKLASS">xmlSecKeyDataRetrievalMethodGetKlass</a>
133                                                         (void);
134 #define             <a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYID">xmlSecKeyDataEncryptedKeyId</a>
135 <font>xmlSecKeyDataId</font>     <a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYGETKLASS">xmlSecKeyDataEncryptedKeyGetKlass</a>   (void);</pre>
136 </div>
137 <div class="REFSECT1">
138 <a name="XMLSEC-KEYINFO.DESCRIPTION"></a><h2>Description</h2>
139 <p><a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> node parser.</p>
140 </div>
141 <div class="REFSECT1">
142 <a name="XMLSEC-KEYINFO.DETAILS"></a><h2>Details</h2>
143 <div class="REFSECT2">
144 <a name="XMLSECKEYINFONODEREAD"></a><h3>xmlSecKeyInfoNodeRead ()</h3>
145 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecKeyInfoNodeRead               (<font>xmlNodePtr</font> keyInfoNode,
146                                                          <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
147                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
148 <p>Parses the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element <code class="PARAMETER">keyInfoNode</code>, extracts the key data
149 and stores into <code class="PARAMETER">key</code>.</p>
150 <p></p>
151 <p></p>
152 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
153 <tr>
154 <td align="LEFT" valign="TOP"><a name="AEN5535"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
155 <td align="LEFT" valign="TOP"><p>       the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> node.</p></td>
156 </tr>
157 <tr>
158 <td align="LEFT" valign="TOP"><a name="AEN5541"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
159 <td align="LEFT" valign="TOP"><p>               the pointer to result key object.</p></td>
160 </tr>
161 <tr>
162 <td align="LEFT" valign="TOP"><a name="AEN5546"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
163 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
164 </tr>
165 <tr>
166 <td align="LEFT" valign="TOP"><a name="AEN5552"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
167 <td align="LEFT" valign="TOP"><p> 0 on success or -1 if an error occurs.</p></td>
168 </tr>
169 </tbody></table>
170 </div>
171 <hr>
172 <div class="REFSECT2">
173 <a name="XMLSECKEYINFONODEWRITE"></a><h3>xmlSecKeyInfoNodeWrite ()</h3>
174 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecKeyInfoNodeWrite              (<font>xmlNodePtr</font> keyInfoNode,
175                                                          <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
176                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
177 <p>Writes the <code class="PARAMETER">key</code> into the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element template <code class="PARAMETER">keyInfoNode</code>.</p>
178 <p></p>
179 <p></p>
180 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
181 <tr>
182 <td align="LEFT" valign="TOP"><a name="AEN5572"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
183 <td align="LEFT" valign="TOP"><p>       the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> node.</p></td>
184 </tr>
185 <tr>
186 <td align="LEFT" valign="TOP"><a name="AEN5578"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
187 <td align="LEFT" valign="TOP"><p>               the pointer to key object.</p></td>
188 </tr>
189 <tr>
190 <td align="LEFT" valign="TOP"><a name="AEN5583"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
191 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
192 </tr>
193 <tr>
194 <td align="LEFT" valign="TOP"><a name="AEN5589"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
195 <td align="LEFT" valign="TOP"><p> 0 on success or -1 if an error occurs.</p></td>
196 </tr>
197 </tbody></table>
198 </div>
199 <hr>
200 <div class="REFSECT2">
201 <a name="XMLSECKEYINFOMODE"></a><h3>enum xmlSecKeyInfoMode</h3>
202 <pre class="PROGRAMLISTING">typedef enum {
203     xmlSecKeyInfoModeRead = 0,
204     xmlSecKeyInfoModeWrite
205 } xmlSecKeyInfoMode;</pre>
206 <p>The <code class="PARAMETER">xmlSecKeyInfoCtx</code> operation mode (read or write).</p>
207 <p></p>
208 <p></p>
209 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
210 <tr>
211 <td align="LEFT" valign="TOP"><a name="XMLSECKEYINFOMODEREAD"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyInfoModeRead</tt></span></a></td>
212 <td align="LEFT" valign="TOP"><p> read <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> element.</p></td>
213 </tr>
214 <tr>
215 <td align="LEFT" valign="TOP"><a name="XMLSECKEYINFOMODEWRITE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyInfoModeWrite</tt></span></a></td>
216 <td align="LEFT" valign="TOP"><p> write <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> element.</p></td>
217 </tr>
218 </tbody></table>
219 </div>
220 <hr>
221 <div class="REFSECT2">
222 <a name="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</h3>
223 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND         0x00000001</pre>
224 <p>If flag is set then we will continue reading <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> 
225 element even when key is already found.</p>
226 <p></p>
227 </div>
228 <hr>
229 <div class="REFSECT2">
230 <a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</h3>
231 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD          0x00000002</pre>
232 <p>If flag is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> 
233 child is found.</p>
234 <p></p>
235 </div>
236 <hr>
237 <div class="REFSECT2">
238 <a name="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</h3>
239 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN                0x00000004</pre>
240 <p>If flags is set then we abort if an unknown key name 
241 (content of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName%20" target="_top">&lt;dsig:KeyName /&gt;</a> element) is found.</p>
242 <p></p>
243 </div>
244 <hr>
245 <div class="REFSECT2">
246 <a name="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</h3>
247 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD 0x00000008</pre>
248 <p>If flags is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top">&lt;dsig:KeyValue /&gt;</a> 
249 child is found.</p>
250 <p></p>
251 </div>
252 <hr>
253 <div class="REFSECT2">
254 <a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</h3>
255 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF        0x00000010</pre>
256 <p>If flag is set then we abort if an unknown href attribute
257 of <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top">&lt;dsig:RetrievalMethod /&gt;</a> element is found.</p>
258 <p></p>
259 </div>
260 <hr>
261 <div class="REFSECT2">
262 <a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</h3>
263 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF       0x00000020</pre>
264 <p>If flag is set then we abort if an href attribute <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top">&lt;dsig:RetrievalMethod /&gt;</a> 
265 element does not match the real key data type.</p>
266 <p></p>
267 </div>
268 <hr>
269 <div class="REFSECT2">
270 <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</h3>
271 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD 0x00000100</pre>
272 <p>If flags is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top">&lt;dsig:X509Data /&gt;</a> 
273 child is found.</p>
274 <p></p>
275 </div>
276 <hr>
277 <div class="REFSECT2">
278 <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</h3>
279 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS             0x00000200</pre>
280 <p>If flag is set then we'll load certificates from <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top">&lt;dsig:X509Data /&gt;</a>
281 element without verification.</p>
282 <p></p>
283 </div>
284 <hr>
285 <div class="REFSECT2">
286 <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</h3>
287 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT  0x00000400</pre>
288 <p>If flag is set then we'll stop when we could not resolve reference
289 to certificate from <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial%20" target="_top">&lt;dsig:X509IssuerSerial /&gt;</a>, <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SKI%20" target="_top">&lt;dsig:X509SKI /&gt;</a> or 
290 <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName%20" target="_top">&lt;dsig:X509SubjectName /&gt;</a> elements.</p>
291 <p></p>
292 </div>
293 <hr>
294 <div class="REFSECT2">
295 <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</h3>
296 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT  0x00000800</pre>
297 <p>If the flag is set then we'll stop when <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top">&lt;dsig:X509Data /&gt;</a> element
298 processing does not return a verified certificate.</p>
299 <p></p>
300 </div>
301 <hr>
302 <div class="REFSECT2">
303 <a name="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</h3>
304 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION 0x00001000</pre>
305 <p>If the flag is set then we'll stop when <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top">&lt;enc:EncryptedKey /&gt;</a> element
306 processing fails.</p>
307 <p></p>
308 </div>
309 <hr>
310 <div class="REFSECT2">
311 <a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</h3>
312 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE                     0x00002000</pre>
313 <p>If the flag is set then we'll stop when we found an empty node.
314 Otherwise we just ignore it.</p>
315 <p></p>
316 </div>
317 <hr>
318 <div class="REFSECT2">
319 <a name="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</h3>
320 <pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS    0x00004000</pre>
321 <p>If the flag is set then we'll skip strict checking of certs and CRLs</p>
322 <p></p>
323 </div>
324 <hr>
325 <div class="REFSECT2">
326 <a name="XMLSECKEYINFOCTX"></a><h3>struct xmlSecKeyInfoCtx</h3>
327 <pre class="PROGRAMLISTING">struct xmlSecKeyInfoCtx {
328     void*                               userData;
329     unsigned int                        flags;
330     unsigned int                        flags2;
331     xmlSecKeysMngrPtr                   keysMngr;
332     xmlSecKeyInfoMode                   mode;
333     xmlSecPtrList                       enabledKeyData;
334     int                                 base64LineSize;
335         
336     /* RetrievalMethod */
337     xmlSecTransformCtx                  retrievalMethodCtx;
338     int                                 maxRetrievalMethodLevel;
339
340
341     /* EncryptedKey */
342     xmlSecEncCtxPtr                     encCtx;
343     int                                 maxEncryptedKeyLevel; 
344
345             
346
347     /* x509 certificates */
348     time_t                              certsVerificationTime;
349     int                                 certsVerificationDepth;
350
351
352     /* PGP */
353     void*                               pgpReserved;    /* TODO */
354         
355     /* internal data */
356     int                                 curRetrievalMethodLevel;
357     int                                 curEncryptedKeyLevel;                
358     xmlSecKeyReq                        keyReq;
359
360     /* for the future */
361     void*                               reserved0;
362     void*                               reserved1;
363 };</pre>
364 <p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> reading or writing context.</p>
365 <p></p>
366 <p></p>
367 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
368 <tr>
369 <td align="LEFT" valign="TOP"><a name="AEN5728"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
370 <td align="LEFT" valign="TOP"><p>               the pointer to user data (xmlsec and xmlsec-crypto 
371                 never touch this).</p></td>
372 </tr>
373 <tr>
374 <td align="LEFT" valign="TOP"><a name="AEN5734"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags</code>;</span></a></td>
375 <td align="LEFT" valign="TOP"><p>               the bit mask for flags that control processin.</p></td>
376 </tr>
377 <tr>
378 <td align="LEFT" valign="TOP"><a name="AEN5740"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags2</code>;</span></a></td>
379 <td align="LEFT" valign="TOP"><p>               reserved for future.</p></td>
380 </tr>
381 <tr>
382 <td align="LEFT" valign="TOP"><a name="AEN5746"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> <code class="STRUCTFIELD">keysMngr</code>;</span></a></td>
383 <td align="LEFT" valign="TOP"><p>               the pointer to current keys manager.</p></td>
384 </tr>
385 <tr>
386 <td align="LEFT" valign="TOP"><a name="AEN5752"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE">xmlSecKeyInfoMode</a> <code class="STRUCTFIELD">mode</code>;</span></a></td>
387 <td align="LEFT" valign="TOP"><p>               do we read or write <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top">&lt;dsig:KeyInfo /&gt;</a> element.</p></td>
388 </tr>
389 <tr>
390 <td align="LEFT" valign="TOP"><a name="AEN5759"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">enabledKeyData</code>;</span></a></td>
391 <td align="LEFT" valign="TOP"><p>       the list of enabled <code class="PARAMETER">xmlSecKeyDataId</code> (if list is 
392                 empty then all data ids are enabled).</p></td>
393 </tr>
394 <tr>
395 <td align="LEFT" valign="TOP"><a name="AEN5766"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">base64LineSize</code>;</span></a></td>
396 <td align="LEFT" valign="TOP"><p>       the max columns size for base64 encoding.</p></td>
397 </tr>
398 <tr>
399 <td align="LEFT" valign="TOP"><a name="AEN5772"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a> <code class="STRUCTFIELD">retrievalMethodCtx</code>;</span></a></td>
400 <td align="LEFT" valign="TOP"><p> the transforms context for <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top">&lt;dsig:RetrievalMethod /&gt;</a>
401                         element processing.</p></td>
402 </tr>
403 <tr>
404 <td align="LEFT" valign="TOP"><a name="AEN5779"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">maxRetrievalMethodLevel</code>;</span></a></td>
405 <td align="LEFT" valign="TOP"><p> the max recursion level when processing
406                 <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top">&lt;dsig:RetrievalMethod /&gt;</a> element; default level is 1 
407                 (see also <code class="PARAMETER">curRetrievalMethodLevel</code>).</p></td>
408 </tr>
409 <tr>
410 <td align="LEFT" valign="TOP"><a name="AEN5787"><span style="white-space: nowrap"><a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> <code class="STRUCTFIELD">encCtx</code>;</span></a></td>
411 <td align="LEFT" valign="TOP"><p>               the encryption context for <a href="http://www.w3.org/TR/xmldsig-core/#sec-EncryptedKey%20" target="_top">&lt;dsig:EncryptedKey /&gt;</a> element
412                 processing.</p></td>
413 </tr>
414 <tr>
415 <td align="LEFT" valign="TOP"><a name="AEN5794"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">maxEncryptedKeyLevel</code>;</span></a></td>
416 <td align="LEFT" valign="TOP"><p> the max recursion level when processing 
417                 <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top">&lt;enc:EncryptedKey /&gt;</a> element; default level is 1 
418                 (see <code class="PARAMETER">curEncryptedKeyLevel</code>).</p></td>
419 </tr>
420 <tr>
421 <td align="LEFT" valign="TOP"><a name="AEN5802"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">certsVerificationTime</code>;</span></a></td>
422 <td align="LEFT" valign="TOP"><p> the time to use for X509 certificates verification
423                 ("not valid before" and "not valid after" checks);
424                 if <code class="PARAMETER">certsVerificationTime</code> is equal to 0 (default) 
425                 then we verify certificates against the system's 
426                 clock "now".</p></td>
427 </tr>
428 <tr>
429 <td align="LEFT" valign="TOP"><a name="AEN5809"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">certsVerificationDepth</code>;</span></a></td>
430 <td align="LEFT" valign="TOP"><p> the max certifications chain length (default is 9).</p></td>
431 </tr>
432 <tr>
433 <td align="LEFT" valign="TOP"><a name="AEN5815"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">pgpReserved</code>;</span></a></td>
434 <td align="LEFT" valign="TOP"><p>       reserved for PGP.</p></td>
435 </tr>
436 <tr>
437 <td align="LEFT" valign="TOP"><a name="AEN5821"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">curRetrievalMethodLevel</code>;</span></a></td>
438 <td align="LEFT" valign="TOP"><p> the current <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top">&lt;dsig:RetrievalMethod /&gt;</a> element 
439                 processing level (see <code class="PARAMETER">maxRetrievalMethodLevel</code>).</p></td>
440 </tr>
441 <tr>
442 <td align="LEFT" valign="TOP"><a name="AEN5829"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">curEncryptedKeyLevel</code>;</span></a></td>
443 <td align="LEFT" valign="TOP"><p> the current <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top">&lt;enc:EncryptedKey /&gt;</a> element
444                 processing level (see <code class="PARAMETER">maxEncryptedKeyLevel</code>).</p></td>
445 </tr>
446 <tr>
447 <td align="LEFT" valign="TOP"><a name="AEN5837"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReq</a> <code class="STRUCTFIELD">keyReq</code>;</span></a></td>
448 <td align="LEFT" valign="TOP"><p>               the current key requirements.</p></td>
449 </tr>
450 <tr>
451 <td align="LEFT" valign="TOP"><a name="AEN5843"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
452 <td align="LEFT" valign="TOP"><p>               reserved for the future.</p></td>
453 </tr>
454 <tr>
455 <td align="LEFT" valign="TOP"><a name="AEN5849"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
456 <td align="LEFT" valign="TOP"><p>               reserved for the future.</p></td>
457 </tr>
458 </tbody></table>
459 </div>
460 <hr>
461 <div class="REFSECT2">
462 <a name="XMLSECKEYINFOCTXCREATE"></a><h3>xmlSecKeyInfoCtxCreate ()</h3>
463 <pre class="PROGRAMLISTING"><font>xmlSecKeyInfoCtxPtr</font>  xmlSecKeyInfoCtxCreate             (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
464 <p>Allocates and initializes <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.
465 Caller is responsible for freeing it by calling <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY"><span class="TYPE">xmlSecKeyInfoCtxDestroy</span></a> 
466 function.</p>
467 <p></p>
468 <p></p>
469 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
470 <tr>
471 <td align="LEFT" valign="TOP"><a name="AEN5868"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
472 <td align="LEFT" valign="TOP"><p>               the pointer to keys manager (may be NULL).</p></td>
473 </tr>
474 <tr>
475 <td align="LEFT" valign="TOP"><a name="AEN5873"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
476 <td align="LEFT" valign="TOP"><p> pointer to newly allocated object or NULL if an error occurs.</p></td>
477 </tr>
478 </tbody></table>
479 </div>
480 <hr>
481 <div class="REFSECT2">
482 <a name="XMLSECKEYINFOCTXDESTROY"></a><h3>xmlSecKeyInfoCtxDestroy ()</h3>
483 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecKeyInfoCtxDestroy             (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
484 <p>Destroys <code class="PARAMETER">keyInfoCtx</code> object created with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE"><span class="TYPE">xmlSecKeyInfoCtxCreate</span></a> function.</p>
485 <p></p>
486 <p></p>
487 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
488 <td align="LEFT" valign="TOP"><a name="AEN5891"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
489 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
490 </tr></tbody></table>
491 </div>
492 <hr>
493 <div class="REFSECT2">
494 <a name="XMLSECKEYINFOCTXINITIALIZE"></a><h3>xmlSecKeyInfoCtxInitialize ()</h3>
495 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecKeyInfoCtxInitialize          (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
496                                                          <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
497 <p>Initializes <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context. Caller is 
498 responsible for cleaning it up by <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE"><span class="TYPE">xmlSecKeyInfoCtxFinalize</span></a> function.</p>
499 <p></p>
500 <p></p>
501 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
502 <tr>
503 <td align="LEFT" valign="TOP"><a name="AEN5911"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
504 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
505 </tr>
506 <tr>
507 <td align="LEFT" valign="TOP"><a name="AEN5917"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
508 <td align="LEFT" valign="TOP"><p>               the pointer to keys manager (may be NULL).</p></td>
509 </tr>
510 <tr>
511 <td align="LEFT" valign="TOP"><a name="AEN5922"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
512 <td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
513 </tr>
514 </tbody></table>
515 </div>
516 <hr>
517 <div class="REFSECT2">
518 <a name="XMLSECKEYINFOCTXFINALIZE"></a><h3>xmlSecKeyInfoCtxFinalize ()</h3>
519 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecKeyInfoCtxFinalize            (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
520 <p>Cleans up the <code class="PARAMETER">keyInfoCtx</code> initialized with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE"><span class="TYPE">xmlSecKeyInfoCtxInitialize</span></a>
521 function.</p>
522 <p></p>
523 <p></p>
524 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
525 <td align="LEFT" valign="TOP"><a name="AEN5940"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
526 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
527 </tr></tbody></table>
528 </div>
529 <hr>
530 <div class="REFSECT2">
531 <a name="XMLSECKEYINFOCTXRESET"></a><h3>xmlSecKeyInfoCtxReset ()</h3>
532 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecKeyInfoCtxReset               (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
533 <p>Resets the <code class="PARAMETER">keyInfoCtx</code> state. User settings are not changed.</p>
534 <p></p>
535 <p></p>
536 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
537 <td align="LEFT" valign="TOP"><a name="AEN5957"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
538 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
539 </tr></tbody></table>
540 </div>
541 <hr>
542 <div class="REFSECT2">
543 <a name="XMLSECKEYINFOCTXCOPYUSERPREF"></a><h3>xmlSecKeyInfoCtxCopyUserPref ()</h3>
544 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecKeyInfoCtxCopyUserPref        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> dst,
545                                                          <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> src);</pre>
546 <p>Copies user preferences from <code class="PARAMETER">src</code> context to <code class="PARAMETER">dst</code> context.</p>
547 <p></p>
548 <p></p>
549 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
550 <tr>
551 <td align="LEFT" valign="TOP"><a name="AEN5976"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
552 <td align="LEFT" valign="TOP"><p>               the pointer to destination context object.</p></td>
553 </tr>
554 <tr>
555 <td align="LEFT" valign="TOP"><a name="AEN5981"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
556 <td align="LEFT" valign="TOP"><p>               the pointer to source context object.</p></td>
557 </tr>
558 <tr>
559 <td align="LEFT" valign="TOP"><a name="AEN5986"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
560 <td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
561 </tr>
562 </tbody></table>
563 </div>
564 <hr>
565 <div class="REFSECT2">
566 <a name="XMLSECKEYINFOCTXCREATEENCCTX"></a><h3>xmlSecKeyInfoCtxCreateEncCtx ()</h3>
567 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecKeyInfoCtxCreateEncCtx        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
568 <p>Creates encryption context form processing <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top">&lt;enc:EncryptedKey/&gt;</a> child
569 of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element.</p>
570 <p></p>
571 <p></p>
572 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
573 <tr>
574 <td align="LEFT" valign="TOP"><a name="AEN6003"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
575 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
576 </tr>
577 <tr>
578 <td align="LEFT" valign="TOP"><a name="AEN6009"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
579 <td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
580 </tr>
581 </tbody></table>
582 </div>
583 <hr>
584 <div class="REFSECT2">
585 <a name="XMLSECKEYINFOCTXDEBUGDUMP"></a><h3>xmlSecKeyInfoCtxDebugDump ()</h3>
586 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecKeyInfoCtxDebugDump           (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
587                                                          <font>FILE</font> *output);</pre>
588 <p>Prints user settings and current context state to <code class="PARAMETER">output</code>.</p>
589 <p></p>
590 <p></p>
591 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
592 <tr>
593 <td align="LEFT" valign="TOP"><a name="AEN6026"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
594 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
595 </tr>
596 <tr>
597 <td align="LEFT" valign="TOP"><a name="AEN6032"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
598 <td align="LEFT" valign="TOP"><p>               the output file pointer.</p></td>
599 </tr>
600 </tbody></table>
601 </div>
602 <hr>
603 <div class="REFSECT2">
604 <a name="XMLSECKEYINFOCTXDEBUGXMLDUMP"></a><h3>xmlSecKeyInfoCtxDebugXmlDump ()</h3>
605 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecKeyInfoCtxDebugXmlDump        (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
606                                                          <font>FILE</font> *output);</pre>
607 <p>Prints user settings and current context state in XML format to <code class="PARAMETER">output</code>.</p>
608 <p></p>
609 <p></p>
610 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
611 <tr>
612 <td align="LEFT" valign="TOP"><a name="AEN6049"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
613 <td align="LEFT" valign="TOP"><p>               the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top">&lt;dsig:KeyInfo/&gt;</a> element processing context.</p></td>
614 </tr>
615 <tr>
616 <td align="LEFT" valign="TOP"><a name="AEN6055"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
617 <td align="LEFT" valign="TOP"><p>               the output file pointer.</p></td>
618 </tr>
619 </tbody></table>
620 </div>
621 <hr>
622 <div class="REFSECT2">
623 <a name="XMLSECKEYDATANAMEID"></a><h3>xmlSecKeyDataNameId</h3>
624 <pre class="PROGRAMLISTING">#define xmlSecKeyDataNameId                 xmlSecKeyDataNameGetKlass()</pre>
625 <p>The &lt;dsig:KeyName&gt; processing class.</p>
626 <p></p>
627 </div>
628 <hr>
629 <div class="REFSECT2">
630 <a name="XMLSECKEYDATANAMEGETKLASS"></a><h3>xmlSecKeyDataNameGetKlass ()</h3>
631 <pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font>     xmlSecKeyDataNameGetKlass           (void);</pre>
632 <p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top">&lt;dsig:KeyName/&gt;</a> element key data klass 
633 (http://www.w3.org/TR/xmldsig-core/<gtkdoclink href="SEC-KEYNAME"><span class="TYPE">sec-KeyName</span></gtkdoclink>):</p>
634 <p>The KeyName element contains a string value (in which white space is 
635 significant) which may be used by the signer to communicate a key 
636 identifier to the recipient. Typically, KeyName contains an identifier 
637 related to the key pair used to sign the message, but it may contain 
638 other protocol-related information that indirectly identifies a key pair. 
639 (Common uses of KeyName include simple string names for keys, a key index, 
640 a distinguished name (DN), an email address, etc.)</p>
641 <p></p>
642 <p></p>
643 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
644 <td align="LEFT" valign="TOP"><a name="AEN6080"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
645 <td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top">&lt;dsig:KeyName/&gt;</a> element processing key data klass.</p></td>
646 </tr></tbody></table>
647 </div>
648 <hr>
649 <div class="REFSECT2">
650 <a name="XMLSECKEYDATAVALUEID"></a><h3>xmlSecKeyDataValueId</h3>
651 <pre class="PROGRAMLISTING">#define xmlSecKeyDataValueId                xmlSecKeyDataValueGetKlass()</pre>
652 <p>The &lt;dsig:KeyValue&gt; processing class.</p>
653 <p></p>
654 </div>
655 <hr>
656 <div class="REFSECT2">
657 <a name="XMLSECKEYDATAVALUEGETKLASS"></a><h3>xmlSecKeyDataValueGetKlass ()</h3>
658 <pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font>     xmlSecKeyDataValueGetKlass          (void);</pre>
659 <p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top">&lt;dsig:KeyValue/&gt;</a> element key data klass 
660 (http://www.w3.org/TR/xmldsig-core/<gtkdoclink href="SEC-KEYVALUE"><span class="TYPE">sec-KeyValue</span></gtkdoclink>):</p>
661 <p>The KeyValue element contains a single public key that may be useful in 
662 validating the signature.</p>
663 <p></p>
664 <p></p>
665 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
666 <td align="LEFT" valign="TOP"><a name="AEN6106"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
667 <td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top">&lt;dsig:KeyValue/&gt;</a> element processing key data klass.</p></td>
668 </tr></tbody></table>
669 </div>
670 <hr>
671 <div class="REFSECT2">
672 <a name="XMLSECKEYDATARETRIEVALMETHODID"></a><h3>xmlSecKeyDataRetrievalMethodId</h3>
673 <pre class="PROGRAMLISTING">#define xmlSecKeyDataRetrievalMethodId      xmlSecKeyDataRetrievalMethodGetKlass()</pre>
674 <p>The &lt;dsig:RetrievalMethod&gt; processing class.</p>
675 <p></p>
676 </div>
677 <hr>
678 <div class="REFSECT2">
679 <a name="XMLSECKEYDATARETRIEVALMETHODGETKLASS"></a><h3>xmlSecKeyDataRetrievalMethodGetKlass ()</h3>
680 <pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font>     xmlSecKeyDataRetrievalMethodGetKlass
681                                                         (void);</pre>
682 <p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top">&lt;dsig:RetrievalMethod/&gt;</a> element key data klass 
683 (http://www.w3.org/TR/xmldsig-core/<gtkdoclink href="SEC-RETRIEVALMETHOD"><span class="TYPE">sec-RetrievalMethod</span></gtkdoclink>):
684 A RetrievalMethod element within KeyInfo is used to convey a reference to 
685 KeyInfo information that is stored at another location. For example, 
686 several signatures in a document might use a key verified by an X.509v3 
687 certificate chain appearing once in the document or remotely outside the 
688 document; each signature's KeyInfo can reference this chain using a single 
689 RetrievalMethod element instead of including the entire chain with a 
690 sequence of X509Certificate elements.</p>
691 <p>RetrievalMethod uses the same syntax and dereferencing behavior as 
692 Reference's URI and The Reference Processing Model.</p>
693 <p></p>
694 <p></p>
695 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
696 <td align="LEFT" valign="TOP"><a name="AEN6132"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
697 <td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top">&lt;dsig:RetrievalMethod/&gt;</a> element processing key data klass.</p></td>
698 </tr></tbody></table>
699 </div>
700 <hr>
701 <div class="REFSECT2">
702 <a name="XMLSECKEYDATAENCRYPTEDKEYID"></a><h3>xmlSecKeyDataEncryptedKeyId</h3>
703 <pre class="PROGRAMLISTING">#define xmlSecKeyDataEncryptedKeyId xmlSecKeyDataEncryptedKeyGetKlass()</pre>
704 <p>The &lt;enc:EncryptedKey&gt; processing class.</p>
705 <p></p>
706 </div>
707 <hr>
708 <div class="REFSECT2">
709 <a name="XMLSECKEYDATAENCRYPTEDKEYGETKLASS"></a><h3>xmlSecKeyDataEncryptedKeyGetKlass ()</h3>
710 <pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font>     xmlSecKeyDataEncryptedKeyGetKlass   (void);</pre>
711 <p>The <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top">&lt;enc:EncryptedKey/&gt;</a> element key data klass 
712 (http://www.w3.org/TR/xmlenc-core/<gtkdoclink href="SEC-ENCRYPTEDKEY"><span class="TYPE">sec-EncryptedKey</span></gtkdoclink>):</p>
713 <p>The EncryptedKey element is used to transport encryption keys from 
714 the originator to a known recipient(s). It may be used as a stand-alone 
715 XML document, be placed within an application document, or appear inside 
716 an EncryptedData element as a child of a ds:KeyInfo element. The key value 
717 is always encrypted to the recipient(s). When EncryptedKey is decrypted the 
718 resulting octets are made available to the EncryptionMethod algorithm 
719 without any additional processing.</p>
720 <p></p>
721 <p></p>
722 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
723 <td align="LEFT" valign="TOP"><a name="AEN6158"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
724 <td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top">&lt;enc:EncryptedKey/&gt;</a> element processing key data klass.</p></td>
725 </tr></tbody></table>
726 </div>
727 </div>
728 <table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
729 <td align="left"><a accesskey="p" href="xmlsec-io.html"><b>&lt;&lt;&lt; io</b></a></td>
730 <td align="right"><a accesskey="n" href="xmlsec-keysdata.html"><b>keysdata &gt;&gt;&gt;</b></a></td>
731 </tr></table>
732 </td></tr></table></td>
733 </tr></table></body>
734 </html>