]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - crypto/heimdal/doc/doxyout/hx509/html/group__hx509__keyset.html
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / crypto / heimdal / doc / doxyout / hx509 / html / group__hx509__keyset.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Heimdalx509library: hx509 certificate store functions</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <p>
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9 </p>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
13   <div class="tabs">
14     <ul>
15       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16       <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
17       <li><a href="modules.html"><span>Modules</span></a></li>
18     </ul>
19   </div>
20 </div>
21 <div class="contents">
22 <h1>hx509 certificate store functions</h1><table border="0" cellpadding="0" cellspacing="0">
23 <tr><td></td></tr>
24 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g38cec16ab23ae65a6113f6e323a38032">hx509_certs_init</a> (hx509_context context, const char *name, int flags, hx509_lock lock, hx509_certs *certs)</td></tr>
26
27 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g1dbde45fbffbaf909cd99b339f8641bd">hx509_certs_store</a> (hx509_context context, hx509_certs certs, int flags, hx509_lock lock)</td></tr>
28
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#ga3df96cfe4137beaea7e7b87b95dbe3f">hx509_certs_free</a> (hx509_certs *certs)</td></tr>
30
31 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g8734f5269e166329c0b66d546187a4a9">hx509_certs_start_seq</a> (hx509_context context, hx509_certs certs, hx509_cursor *cursor)</td></tr>
32
33 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g63c38b4729df8a074f191db831ac9db7">hx509_certs_next_cert</a> (hx509_context context, hx509_certs certs, hx509_cursor cursor, hx509_cert *cert)</td></tr>
34
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g9f05c59f97dcfade924a72fe82cf9a16">hx509_certs_end_seq</a> (hx509_context context, hx509_certs certs, hx509_cursor cursor)</td></tr>
36
37 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g4ba1d8deb9545c59b8f6bde86585014b">hx509_certs_iter_f</a> (hx509_context context, hx509_certs certs, int(*func)(hx509_context, void *, hx509_cert), void *ctx)</td></tr>
38
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#gee9789b91e1b425c17ddd6a5c1f2a834">hx509_ci_print_names</a> (hx509_context context, void *ctx, hx509_cert c)</td></tr>
40
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g4ebe1ee219223b590bdf3e58dc2182da">hx509_certs_add</a> (hx509_context context, hx509_certs certs, hx509_cert cert)</td></tr>
42
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g5f0c737b4dddb2a8c7bbab05b04ceb7a">hx509_certs_find</a> (hx509_context context, hx509_certs certs, const hx509_query *q, hx509_cert *r)</td></tr>
44
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g1a7b21b477dc3a43286fd1ff96163609">hx509_certs_filter</a> (hx509_context context, hx509_certs certs, const hx509_query *q, hx509_certs *result)</td></tr>
46
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g201bbf3425e451337abb26589202d9fe">hx509_certs_merge</a> (hx509_context context, hx509_certs to, hx509_certs from)</td></tr>
48
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g5aa16e2f2d1bd1349e0586fdb53b85e6">hx509_certs_append</a> (hx509_context context, hx509_certs to, hx509_lock lock, const char *name)</td></tr>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g0457faff2ddddfbae50fa62ec1369072">hx509_get_one_cert</a> (hx509_context context, hx509_certs certs, hx509_cert *c)</td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__keyset.html#g82fc84cff0a174d58e763ffe2c2a0aad">hx509_certs_info</a> (hx509_context context, hx509_certs certs, int(*func)(void *, const char *), void *ctx)</td></tr>
54
55 </table>
56 <hr><a name="_details"></a><h2>Detailed Description</h2>
57 See the <a class="el" href="page_keyset.html">Certificate store operations</a> for description and examples. <hr><h2>Function Documentation</h2>
58 <a class="anchor" name="g4ebe1ee219223b590bdf3e58dc2182da"></a><!-- doxytag: member="keyset.c::hx509_certs_add" ref="g4ebe1ee219223b590bdf3e58dc2182da" args="(hx509_context context, hx509_certs certs, hx509_cert cert)" -->
59 <div class="memitem">
60 <div class="memproto">
61       <table class="memname">
62         <tr>
63           <td class="memname">int hx509_certs_add           </td>
64           <td>(</td>
65           <td class="paramtype">hx509_context&nbsp;</td>
66           <td class="paramname"> <em>context</em>, </td>
67         </tr>
68         <tr>
69           <td class="paramkey"></td>
70           <td></td>
71           <td class="paramtype">hx509_certs&nbsp;</td>
72           <td class="paramname"> <em>certs</em>, </td>
73         </tr>
74         <tr>
75           <td class="paramkey"></td>
76           <td></td>
77           <td class="paramtype">hx509_cert&nbsp;</td>
78           <td class="paramname"> <em>cert</em></td><td>&nbsp;</td>
79         </tr>
80         <tr>
81           <td></td>
82           <td>)</td>
83           <td></td><td></td><td></td>
84         </tr>
85       </table>
86 </div>
87 <div class="memdoc">
88
89 <p>
90 Add a certificate to the certificiate store.<p>
91 The receiving keyset certs will either increase reference counter of the cert or make a deep copy, either way, the caller needs to free the cert itself.<p>
92 <dl compact><dt><b>Parameters:</b></dt><dd>
93   <table border="0" cellspacing="2" cellpadding="0">
94     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
95     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to add the certificate to. </td></tr>
96     <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate to add.</td></tr>
97   </table>
98 </dl>
99 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
100
101 </div>
102 </div><p>
103 <a class="anchor" name="g5aa16e2f2d1bd1349e0586fdb53b85e6"></a><!-- doxytag: member="keyset.c::hx509_certs_append" ref="g5aa16e2f2d1bd1349e0586fdb53b85e6" args="(hx509_context context, hx509_certs to, hx509_lock lock, const char *name)" -->
104 <div class="memitem">
105 <div class="memproto">
106       <table class="memname">
107         <tr>
108           <td class="memname">int hx509_certs_append           </td>
109           <td>(</td>
110           <td class="paramtype">hx509_context&nbsp;</td>
111           <td class="paramname"> <em>context</em>, </td>
112         </tr>
113         <tr>
114           <td class="paramkey"></td>
115           <td></td>
116           <td class="paramtype">hx509_certs&nbsp;</td>
117           <td class="paramname"> <em>to</em>, </td>
118         </tr>
119         <tr>
120           <td class="paramkey"></td>
121           <td></td>
122           <td class="paramtype">hx509_lock&nbsp;</td>
123           <td class="paramname"> <em>lock</em>, </td>
124         </tr>
125         <tr>
126           <td class="paramkey"></td>
127           <td></td>
128           <td class="paramtype">const char *&nbsp;</td>
129           <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
130         </tr>
131         <tr>
132           <td></td>
133           <td>)</td>
134           <td></td><td></td><td></td>
135         </tr>
136       </table>
137 </div>
138 <div class="memdoc">
139
140 <p>
141 Same a <a class="el" href="group__hx509__keyset.html#g201bbf3425e451337abb26589202d9fe">hx509_certs_merge()</a> but use a lock and name to describe the from source.<p>
142 <dl compact><dt><b>Parameters:</b></dt><dd>
143   <table border="0" cellspacing="2" cellpadding="0">
144     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
145     <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>the store to merge into. </td></tr>
146     <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>a lock that unlocks the certificates store, use NULL to select no password/certifictes/prompt lock (see <a class="el" href="page_lock.html">Locking and unlocking certificates and encrypted data.</a>). </td></tr>
147     <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the source store</td></tr>
148   </table>
149 </dl>
150 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
151
152 </div>
153 </div><p>
154 <a class="anchor" name="g9f05c59f97dcfade924a72fe82cf9a16"></a><!-- doxytag: member="keyset.c::hx509_certs_end_seq" ref="g9f05c59f97dcfade924a72fe82cf9a16" args="(hx509_context context, hx509_certs certs, hx509_cursor cursor)" -->
155 <div class="memitem">
156 <div class="memproto">
157       <table class="memname">
158         <tr>
159           <td class="memname">int hx509_certs_end_seq           </td>
160           <td>(</td>
161           <td class="paramtype">hx509_context&nbsp;</td>
162           <td class="paramname"> <em>context</em>, </td>
163         </tr>
164         <tr>
165           <td class="paramkey"></td>
166           <td></td>
167           <td class="paramtype">hx509_certs&nbsp;</td>
168           <td class="paramname"> <em>certs</em>, </td>
169         </tr>
170         <tr>
171           <td class="paramkey"></td>
172           <td></td>
173           <td class="paramtype">hx509_cursor&nbsp;</td>
174           <td class="paramname"> <em>cursor</em></td><td>&nbsp;</td>
175         </tr>
176         <tr>
177           <td></td>
178           <td>)</td>
179           <td></td><td></td><td></td>
180         </tr>
181       </table>
182 </div>
183 <div class="memdoc">
184
185 <p>
186 End the iteration over certificates.<p>
187 <dl compact><dt><b>Parameters:</b></dt><dd>
188   <table border="0" cellspacing="2" cellpadding="0">
189     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
190     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to iterate over. </td></tr>
191     <tr><td valign="top"></td><td valign="top"><em>cursor</em>&nbsp;</td><td>cursor that will keep track of progress, freed.</td></tr>
192   </table>
193 </dl>
194 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
195
196 </div>
197 </div><p>
198 <a class="anchor" name="g1a7b21b477dc3a43286fd1ff96163609"></a><!-- doxytag: member="keyset.c::hx509_certs_filter" ref="g1a7b21b477dc3a43286fd1ff96163609" args="(hx509_context context, hx509_certs certs, const hx509_query *q, hx509_certs *result)" -->
199 <div class="memitem">
200 <div class="memproto">
201       <table class="memname">
202         <tr>
203           <td class="memname">int hx509_certs_filter           </td>
204           <td>(</td>
205           <td class="paramtype">hx509_context&nbsp;</td>
206           <td class="paramname"> <em>context</em>, </td>
207         </tr>
208         <tr>
209           <td class="paramkey"></td>
210           <td></td>
211           <td class="paramtype">hx509_certs&nbsp;</td>
212           <td class="paramname"> <em>certs</em>, </td>
213         </tr>
214         <tr>
215           <td class="paramkey"></td>
216           <td></td>
217           <td class="paramtype">const hx509_query *&nbsp;</td>
218           <td class="paramname"> <em>q</em>, </td>
219         </tr>
220         <tr>
221           <td class="paramkey"></td>
222           <td></td>
223           <td class="paramtype">hx509_certs *&nbsp;</td>
224           <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
225         </tr>
226         <tr>
227           <td></td>
228           <td>)</td>
229           <td></td><td></td><td></td>
230         </tr>
231       </table>
232 </div>
233 <div class="memdoc">
234
235 <p>
236 Filter certificate matching the query.<p>
237 <dl compact><dt><b>Parameters:</b></dt><dd>
238   <table border="0" cellspacing="2" cellpadding="0">
239     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
240     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to search. </td></tr>
241     <tr><td valign="top"></td><td valign="top"><em>q</em>&nbsp;</td><td>query allocated with <a class="el" href="group__hx509__query.html">hx509 query functions</a> functions. </td></tr>
242     <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>the filtered certificate store, caller must free with <a class="el" href="group__hx509__keyset.html#ga3df96cfe4137beaea7e7b87b95dbe3f">hx509_certs_free()</a>.</td></tr>
243   </table>
244 </dl>
245 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
246
247 <p>
248 Return HX509_CERT_NOT_FOUND if no certificate in certs matched the query. 
249 </div>
250 </div><p>
251 <a class="anchor" name="g5f0c737b4dddb2a8c7bbab05b04ceb7a"></a><!-- doxytag: member="keyset.c::hx509_certs_find" ref="g5f0c737b4dddb2a8c7bbab05b04ceb7a" args="(hx509_context context, hx509_certs certs, const hx509_query *q, hx509_cert *r)" -->
252 <div class="memitem">
253 <div class="memproto">
254       <table class="memname">
255         <tr>
256           <td class="memname">int hx509_certs_find           </td>
257           <td>(</td>
258           <td class="paramtype">hx509_context&nbsp;</td>
259           <td class="paramname"> <em>context</em>, </td>
260         </tr>
261         <tr>
262           <td class="paramkey"></td>
263           <td></td>
264           <td class="paramtype">hx509_certs&nbsp;</td>
265           <td class="paramname"> <em>certs</em>, </td>
266         </tr>
267         <tr>
268           <td class="paramkey"></td>
269           <td></td>
270           <td class="paramtype">const hx509_query *&nbsp;</td>
271           <td class="paramname"> <em>q</em>, </td>
272         </tr>
273         <tr>
274           <td class="paramkey"></td>
275           <td></td>
276           <td class="paramtype">hx509_cert *&nbsp;</td>
277           <td class="paramname"> <em>r</em></td><td>&nbsp;</td>
278         </tr>
279         <tr>
280           <td></td>
281           <td>)</td>
282           <td></td><td></td><td></td>
283         </tr>
284       </table>
285 </div>
286 <div class="memdoc">
287
288 <p>
289 Find a certificate matching the query.<p>
290 <dl compact><dt><b>Parameters:</b></dt><dd>
291   <table border="0" cellspacing="2" cellpadding="0">
292     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
293     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to search. </td></tr>
294     <tr><td valign="top"></td><td valign="top"><em>q</em>&nbsp;</td><td>query allocated with <a class="el" href="group__hx509__query.html">hx509 query functions</a> functions. </td></tr>
295     <tr><td valign="top"></td><td valign="top"><em>r</em>&nbsp;</td><td>return certificate (or NULL on error), should be freed with <a class="el" href="group__hx509__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr>
296   </table>
297 </dl>
298 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
299
300 <p>
301 Return HX509_CERT_NOT_FOUND if no certificate in certs matched the query. 
302 </div>
303 </div><p>
304 <a class="anchor" name="ga3df96cfe4137beaea7e7b87b95dbe3f"></a><!-- doxytag: member="keyset.c::hx509_certs_free" ref="ga3df96cfe4137beaea7e7b87b95dbe3f" args="(hx509_certs *certs)" -->
305 <div class="memitem">
306 <div class="memproto">
307       <table class="memname">
308         <tr>
309           <td class="memname">void hx509_certs_free           </td>
310           <td>(</td>
311           <td class="paramtype">hx509_certs *&nbsp;</td>
312           <td class="paramname"> <em>certs</em>          </td>
313           <td>&nbsp;)&nbsp;</td>
314           <td></td>
315         </tr>
316       </table>
317 </div>
318 <div class="memdoc">
319
320 <p>
321 Free a certificate store.<p>
322 <dl compact><dt><b>Parameters:</b></dt><dd>
323   <table border="0" cellspacing="2" cellpadding="0">
324     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to free. </td></tr>
325   </table>
326 </dl>
327
328 </div>
329 </div><p>
330 <a class="anchor" name="g82fc84cff0a174d58e763ffe2c2a0aad"></a><!-- doxytag: member="keyset.c::hx509_certs_info" ref="g82fc84cff0a174d58e763ffe2c2a0aad" args="(hx509_context context, hx509_certs certs, int(*func)(void *, const char *), void *ctx)" -->
331 <div class="memitem">
332 <div class="memproto">
333       <table class="memname">
334         <tr>
335           <td class="memname">int hx509_certs_info           </td>
336           <td>(</td>
337           <td class="paramtype">hx509_context&nbsp;</td>
338           <td class="paramname"> <em>context</em>, </td>
339         </tr>
340         <tr>
341           <td class="paramkey"></td>
342           <td></td>
343           <td class="paramtype">hx509_certs&nbsp;</td>
344           <td class="paramname"> <em>certs</em>, </td>
345         </tr>
346         <tr>
347           <td class="paramkey"></td>
348           <td></td>
349           <td class="paramtype">int(*)(void *, const char *)&nbsp;</td>
350           <td class="paramname"> <em>func</em>, </td>
351         </tr>
352         <tr>
353           <td class="paramkey"></td>
354           <td></td>
355           <td class="paramtype">void *&nbsp;</td>
356           <td class="paramname"> <em>ctx</em></td><td>&nbsp;</td>
357         </tr>
358         <tr>
359           <td></td>
360           <td>)</td>
361           <td></td><td></td><td></td>
362         </tr>
363       </table>
364 </div>
365 <div class="memdoc">
366
367 <p>
368 Print some info about the certificate store.<p>
369 <dl compact><dt><b>Parameters:</b></dt><dd>
370   <table border="0" cellspacing="2" cellpadding="0">
371     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
372     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to print information about. </td></tr>
373     <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function that will get each line of the information, if NULL is used the data is printed on a FILE descriptor that should be passed in ctx, if ctx also is NULL, stdout is used. </td></tr>
374     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>parameter to func.</td></tr>
375   </table>
376 </dl>
377 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
378
379 </div>
380 </div><p>
381 <a class="anchor" name="g38cec16ab23ae65a6113f6e323a38032"></a><!-- doxytag: member="keyset.c::hx509_certs_init" ref="g38cec16ab23ae65a6113f6e323a38032" args="(hx509_context context, const char *name, int flags, hx509_lock lock, hx509_certs *certs)" -->
382 <div class="memitem">
383 <div class="memproto">
384       <table class="memname">
385         <tr>
386           <td class="memname">int hx509_certs_init           </td>
387           <td>(</td>
388           <td class="paramtype">hx509_context&nbsp;</td>
389           <td class="paramname"> <em>context</em>, </td>
390         </tr>
391         <tr>
392           <td class="paramkey"></td>
393           <td></td>
394           <td class="paramtype">const char *&nbsp;</td>
395           <td class="paramname"> <em>name</em>, </td>
396         </tr>
397         <tr>
398           <td class="paramkey"></td>
399           <td></td>
400           <td class="paramtype">int&nbsp;</td>
401           <td class="paramname"> <em>flags</em>, </td>
402         </tr>
403         <tr>
404           <td class="paramkey"></td>
405           <td></td>
406           <td class="paramtype">hx509_lock&nbsp;</td>
407           <td class="paramname"> <em>lock</em>, </td>
408         </tr>
409         <tr>
410           <td class="paramkey"></td>
411           <td></td>
412           <td class="paramtype">hx509_certs *&nbsp;</td>
413           <td class="paramname"> <em>certs</em></td><td>&nbsp;</td>
414         </tr>
415         <tr>
416           <td></td>
417           <td>)</td>
418           <td></td><td></td><td></td>
419         </tr>
420       </table>
421 </div>
422 <div class="memdoc">
423
424 <p>
425 Open or creates a new hx509 certificate store.<p>
426 <dl compact><dt><b>Parameters:</b></dt><dd>
427   <table border="0" cellspacing="2" cellpadding="0">
428     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A hx509 context </td></tr>
429     <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the store, format is TYPE:type-specific-string, if NULL is used the MEMORY store is used. </td></tr>
430     <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>list of flags:<ul>
431 <li>HX509_CERTS_CREATE create a new keystore of the specific TYPE.</li><li>HX509_CERTS_UNPROTECT_ALL fails if any private key failed to be extracted. </li></ul>
432 </td></tr>
433     <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>a lock that unlocks the certificates store, use NULL to select no password/certifictes/prompt lock (see <a class="el" href="page_lock.html">Locking and unlocking certificates and encrypted data.</a>). </td></tr>
434     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>return pointer, free with <a class="el" href="group__hx509__keyset.html#ga3df96cfe4137beaea7e7b87b95dbe3f">hx509_certs_free()</a>. </td></tr>
435   </table>
436 </dl>
437
438 </div>
439 </div><p>
440 <a class="anchor" name="g4ba1d8deb9545c59b8f6bde86585014b"></a><!-- doxytag: member="keyset.c::hx509_certs_iter_f" ref="g4ba1d8deb9545c59b8f6bde86585014b" args="(hx509_context context, hx509_certs certs, int(*func)(hx509_context, void *, hx509_cert), void *ctx)" -->
441 <div class="memitem">
442 <div class="memproto">
443       <table class="memname">
444         <tr>
445           <td class="memname">int hx509_certs_iter_f           </td>
446           <td>(</td>
447           <td class="paramtype">hx509_context&nbsp;</td>
448           <td class="paramname"> <em>context</em>, </td>
449         </tr>
450         <tr>
451           <td class="paramkey"></td>
452           <td></td>
453           <td class="paramtype">hx509_certs&nbsp;</td>
454           <td class="paramname"> <em>certs</em>, </td>
455         </tr>
456         <tr>
457           <td class="paramkey"></td>
458           <td></td>
459           <td class="paramtype">int(*)(hx509_context, void *, hx509_cert)&nbsp;</td>
460           <td class="paramname"> <em>func</em>, </td>
461         </tr>
462         <tr>
463           <td class="paramkey"></td>
464           <td></td>
465           <td class="paramtype">void *&nbsp;</td>
466           <td class="paramname"> <em>ctx</em></td><td>&nbsp;</td>
467         </tr>
468         <tr>
469           <td></td>
470           <td>)</td>
471           <td></td><td></td><td></td>
472         </tr>
473       </table>
474 </div>
475 <div class="memdoc">
476
477 <p>
478 Iterate over all certificates in a keystore and call an function for each fo them.<p>
479 <dl compact><dt><b>Parameters:</b></dt><dd>
480   <table border="0" cellspacing="2" cellpadding="0">
481     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
482     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to iterate over. </td></tr>
483     <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function to call for each certificate. The function should return non-zero to abort the iteration, that value is passed back to the caller of <a class="el" href="group__hx509__keyset.html#g4ba1d8deb9545c59b8f6bde86585014b">hx509_certs_iter_f()</a>. </td></tr>
484     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>context variable that will passed to the function.</td></tr>
485   </table>
486 </dl>
487 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
488
489 </div>
490 </div><p>
491 <a class="anchor" name="g201bbf3425e451337abb26589202d9fe"></a><!-- doxytag: member="keyset.c::hx509_certs_merge" ref="g201bbf3425e451337abb26589202d9fe" args="(hx509_context context, hx509_certs to, hx509_certs from)" -->
492 <div class="memitem">
493 <div class="memproto">
494       <table class="memname">
495         <tr>
496           <td class="memname">int hx509_certs_merge           </td>
497           <td>(</td>
498           <td class="paramtype">hx509_context&nbsp;</td>
499           <td class="paramname"> <em>context</em>, </td>
500         </tr>
501         <tr>
502           <td class="paramkey"></td>
503           <td></td>
504           <td class="paramtype">hx509_certs&nbsp;</td>
505           <td class="paramname"> <em>to</em>, </td>
506         </tr>
507         <tr>
508           <td class="paramkey"></td>
509           <td></td>
510           <td class="paramtype">hx509_certs&nbsp;</td>
511           <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
512         </tr>
513         <tr>
514           <td></td>
515           <td>)</td>
516           <td></td><td></td><td></td>
517         </tr>
518       </table>
519 </div>
520 <div class="memdoc">
521
522 <p>
523 Merge a certificate store into another. The from store is keep intact.<p>
524 <dl compact><dt><b>Parameters:</b></dt><dd>
525   <table border="0" cellspacing="2" cellpadding="0">
526     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
527     <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>the store to merge into. </td></tr>
528     <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>the store to copy the object from.</td></tr>
529   </table>
530 </dl>
531 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
532
533 </div>
534 </div><p>
535 <a class="anchor" name="g63c38b4729df8a074f191db831ac9db7"></a><!-- doxytag: member="keyset.c::hx509_certs_next_cert" ref="g63c38b4729df8a074f191db831ac9db7" args="(hx509_context context, hx509_certs certs, hx509_cursor cursor, hx509_cert *cert)" -->
536 <div class="memitem">
537 <div class="memproto">
538       <table class="memname">
539         <tr>
540           <td class="memname">int hx509_certs_next_cert           </td>
541           <td>(</td>
542           <td class="paramtype">hx509_context&nbsp;</td>
543           <td class="paramname"> <em>context</em>, </td>
544         </tr>
545         <tr>
546           <td class="paramkey"></td>
547           <td></td>
548           <td class="paramtype">hx509_certs&nbsp;</td>
549           <td class="paramname"> <em>certs</em>, </td>
550         </tr>
551         <tr>
552           <td class="paramkey"></td>
553           <td></td>
554           <td class="paramtype">hx509_cursor&nbsp;</td>
555           <td class="paramname"> <em>cursor</em>, </td>
556         </tr>
557         <tr>
558           <td class="paramkey"></td>
559           <td></td>
560           <td class="paramtype">hx509_cert *&nbsp;</td>
561           <td class="paramname"> <em>cert</em></td><td>&nbsp;</td>
562         </tr>
563         <tr>
564           <td></td>
565           <td>)</td>
566           <td></td><td></td><td></td>
567         </tr>
568       </table>
569 </div>
570 <div class="memdoc">
571
572 <p>
573 Get next ceritificate from the certificate keystore pointed out by cursor.<p>
574 <dl compact><dt><b>Parameters:</b></dt><dd>
575   <table border="0" cellspacing="2" cellpadding="0">
576     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
577     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to iterate over. </td></tr>
578     <tr><td valign="top"></td><td valign="top"><em>cursor</em>&nbsp;</td><td>cursor that keeps track of progress. </td></tr>
579     <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>return certificate next in store, NULL if the store contains no more certificates. Free with <a class="el" href="group__hx509__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr>
580   </table>
581 </dl>
582 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
583
584 </div>
585 </div><p>
586 <a class="anchor" name="g8734f5269e166329c0b66d546187a4a9"></a><!-- doxytag: member="keyset.c::hx509_certs_start_seq" ref="g8734f5269e166329c0b66d546187a4a9" args="(hx509_context context, hx509_certs certs, hx509_cursor *cursor)" -->
587 <div class="memitem">
588 <div class="memproto">
589       <table class="memname">
590         <tr>
591           <td class="memname">int hx509_certs_start_seq           </td>
592           <td>(</td>
593           <td class="paramtype">hx509_context&nbsp;</td>
594           <td class="paramname"> <em>context</em>, </td>
595         </tr>
596         <tr>
597           <td class="paramkey"></td>
598           <td></td>
599           <td class="paramtype">hx509_certs&nbsp;</td>
600           <td class="paramname"> <em>certs</em>, </td>
601         </tr>
602         <tr>
603           <td class="paramkey"></td>
604           <td></td>
605           <td class="paramtype">hx509_cursor *&nbsp;</td>
606           <td class="paramname"> <em>cursor</em></td><td>&nbsp;</td>
607         </tr>
608         <tr>
609           <td></td>
610           <td>)</td>
611           <td></td><td></td><td></td>
612         </tr>
613       </table>
614 </div>
615 <div class="memdoc">
616
617 <p>
618 Start the integration<p>
619 <dl compact><dt><b>Parameters:</b></dt><dd>
620   <table border="0" cellspacing="2" cellpadding="0">
621     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
622     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to iterate over </td></tr>
623     <tr><td valign="top"></td><td valign="top"><em>cursor</em>&nbsp;</td><td>cursor that will keep track of progress, free with <a class="el" href="group__hx509__keyset.html#g9f05c59f97dcfade924a72fe82cf9a16">hx509_certs_end_seq()</a>.</td></tr>
624   </table>
625 </dl>
626 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. HX509_UNSUPPORTED_OPERATION is returned if the certificate store doesn't support the iteration operation. </dd></dl>
627
628 </div>
629 </div><p>
630 <a class="anchor" name="g1dbde45fbffbaf909cd99b339f8641bd"></a><!-- doxytag: member="keyset.c::hx509_certs_store" ref="g1dbde45fbffbaf909cd99b339f8641bd" args="(hx509_context context, hx509_certs certs, int flags, hx509_lock lock)" -->
631 <div class="memitem">
632 <div class="memproto">
633       <table class="memname">
634         <tr>
635           <td class="memname">int hx509_certs_store           </td>
636           <td>(</td>
637           <td class="paramtype">hx509_context&nbsp;</td>
638           <td class="paramname"> <em>context</em>, </td>
639         </tr>
640         <tr>
641           <td class="paramkey"></td>
642           <td></td>
643           <td class="paramtype">hx509_certs&nbsp;</td>
644           <td class="paramname"> <em>certs</em>, </td>
645         </tr>
646         <tr>
647           <td class="paramkey"></td>
648           <td></td>
649           <td class="paramtype">int&nbsp;</td>
650           <td class="paramname"> <em>flags</em>, </td>
651         </tr>
652         <tr>
653           <td class="paramkey"></td>
654           <td></td>
655           <td class="paramtype">hx509_lock&nbsp;</td>
656           <td class="paramname"> <em>lock</em></td><td>&nbsp;</td>
657         </tr>
658         <tr>
659           <td></td>
660           <td>)</td>
661           <td></td><td></td><td></td>
662         </tr>
663       </table>
664 </div>
665 <div class="memdoc">
666
667 <p>
668 Write the certificate store to stable storage.<p>
669 <dl compact><dt><b>Parameters:</b></dt><dd>
670   <table border="0" cellspacing="2" cellpadding="0">
671     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A hx509 context. </td></tr>
672     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>a certificate store to store. </td></tr>
673     <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>currently unused, use 0. </td></tr>
674     <tr><td valign="top"></td><td valign="top"><em>lock</em>&nbsp;</td><td>a lock that unlocks the certificates store, use NULL to select no password/certifictes/prompt lock (see <a class="el" href="page_lock.html">Locking and unlocking certificates and encrypted data.</a>).</td></tr>
675   </table>
676 </dl>
677 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. HX509_UNSUPPORTED_OPERATION if the certificate store doesn't support the store operation. </dd></dl>
678
679 </div>
680 </div><p>
681 <a class="anchor" name="gee9789b91e1b425c17ddd6a5c1f2a834"></a><!-- doxytag: member="keyset.c::hx509_ci_print_names" ref="gee9789b91e1b425c17ddd6a5c1f2a834" args="(hx509_context context, void *ctx, hx509_cert c)" -->
682 <div class="memitem">
683 <div class="memproto">
684       <table class="memname">
685         <tr>
686           <td class="memname">int hx509_ci_print_names           </td>
687           <td>(</td>
688           <td class="paramtype">hx509_context&nbsp;</td>
689           <td class="paramname"> <em>context</em>, </td>
690         </tr>
691         <tr>
692           <td class="paramkey"></td>
693           <td></td>
694           <td class="paramtype">void *&nbsp;</td>
695           <td class="paramname"> <em>ctx</em>, </td>
696         </tr>
697         <tr>
698           <td class="paramkey"></td>
699           <td></td>
700           <td class="paramtype">hx509_cert&nbsp;</td>
701           <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
702         </tr>
703         <tr>
704           <td></td>
705           <td>)</td>
706           <td></td><td></td><td></td>
707         </tr>
708       </table>
709 </div>
710 <div class="memdoc">
711
712 <p>
713 Iterate over all certificates in a keystore and call an function for each fo them.<p>
714 <dl compact><dt><b>Parameters:</b></dt><dd>
715   <table border="0" cellspacing="2" cellpadding="0">
716     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
717     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>certificate store to iterate over. </td></tr>
718     <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>function to call for each certificate. The function should return non-zero to abort the iteration, that value is passed back to the caller of hx509_certs_iter().</td></tr>
719   </table>
720 </dl>
721 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. Function to use to <a class="el" href="group__hx509__keyset.html#g4ba1d8deb9545c59b8f6bde86585014b">hx509_certs_iter_f()</a> as a function argument, the ctx variable to <a class="el" href="group__hx509__keyset.html#g4ba1d8deb9545c59b8f6bde86585014b">hx509_certs_iter_f()</a> should be a FILE file descriptor.</dd></dl>
722 <dl compact><dt><b>Parameters:</b></dt><dd>
723   <table border="0" cellspacing="2" cellpadding="0">
724     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
725     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>used by <a class="el" href="group__hx509__keyset.html#g4ba1d8deb9545c59b8f6bde86585014b">hx509_certs_iter_f()</a>. </td></tr>
726     <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>a certificate</td></tr>
727   </table>
728 </dl>
729 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
730
731 </div>
732 </div><p>
733 <a class="anchor" name="g0457faff2ddddfbae50fa62ec1369072"></a><!-- doxytag: member="keyset.c::hx509_get_one_cert" ref="g0457faff2ddddfbae50fa62ec1369072" args="(hx509_context context, hx509_certs certs, hx509_cert *c)" -->
734 <div class="memitem">
735 <div class="memproto">
736       <table class="memname">
737         <tr>
738           <td class="memname">int hx509_get_one_cert           </td>
739           <td>(</td>
740           <td class="paramtype">hx509_context&nbsp;</td>
741           <td class="paramname"> <em>context</em>, </td>
742         </tr>
743         <tr>
744           <td class="paramkey"></td>
745           <td></td>
746           <td class="paramtype">hx509_certs&nbsp;</td>
747           <td class="paramname"> <em>certs</em>, </td>
748         </tr>
749         <tr>
750           <td class="paramkey"></td>
751           <td></td>
752           <td class="paramtype">hx509_cert *&nbsp;</td>
753           <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
754         </tr>
755         <tr>
756           <td></td>
757           <td>)</td>
758           <td></td><td></td><td></td>
759         </tr>
760       </table>
761 </div>
762 <div class="memdoc">
763
764 <p>
765 Get one random certificate from the certificate store.<p>
766 <dl compact><dt><b>Parameters:</b></dt><dd>
767   <table border="0" cellspacing="2" cellpadding="0">
768     <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a hx509 context. </td></tr>
769     <tr><td valign="top"></td><td valign="top"><em>certs</em>&nbsp;</td><td>a certificate store to get the certificate from. </td></tr>
770     <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>return certificate, should be freed with <a class="el" href="group__hx509__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr>
771   </table>
772 </dl>
773 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl>
774
775 </div>
776 </div><p>
777 </div>
778 <hr size="1"><address style="text-align: right;"><small>
779 Generated on Wed Jan 11 14:07:40 2012 for Heimdalx509library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
780 </body>
781 </html>