Home | History | Annotate | Line # | Download | only in html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
      3 <title>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>
     31 Functions</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>
    779 Generated 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