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