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