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 Page</span></a></li> 16ae771770SStanislav Sedov <li><a href="pages.html"><span>Related 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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td> 78ae771770SStanislav Sedov <td class="paramname"> <em>cert</em></td><td> </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> </td><td>a hx509 context. </td></tr> 95ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to add the certificate to. </td></tr> 96ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </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 </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 </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 </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 * </td> 129ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </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> </td><td>a hx509 context. </td></tr> 145ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>the store to merge into. </td></tr> 146ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>lock</em> </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> </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 </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 </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 </td> 174ae771770SStanislav Sedov <td class="paramname"> <em>cursor</em></td><td> </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> </td><td>a hx509 context. </td></tr> 190ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to iterate over. </td></tr> 191ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cursor</em> </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 </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 </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 * </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 * </td> 224ae771770SStanislav Sedov <td class="paramname"> <em>result</em></td><td> </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> </td><td>a hx509 context. </td></tr> 240ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to search. </td></tr> 241ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </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> </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 </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 </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 * </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 * </td> 277ae771770SStanislav Sedov <td class="paramname"> <em>r</em></td><td> </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> </td><td>a hx509 context. </td></tr> 293ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to search. </td></tr> 294ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </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> </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 * </td> 312ae771770SStanislav Sedov <td class="paramname"> <em>certs</em> </td> 313ae771770SStanislav Sedov <td> ) </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> </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 </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 </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 *) </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 * </td> 356ae771770SStanislav Sedov <td class="paramname"> <em>ctx</em></td><td> </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> </td><td>a hx509 context. </td></tr> 372ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to print information about. </td></tr> 373ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>func</em> </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> </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 </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 * </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 </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 </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 * </td> 413ae771770SStanislav Sedov <td class="paramname"> <em>certs</em></td><td> </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> </td><td>A hx509 context </td></tr> 429ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </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> </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> </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> </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 </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 </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) </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 * </td> 466ae771770SStanislav Sedov <td class="paramname"> <em>ctx</em></td><td> </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> </td><td>a hx509 context. </td></tr> 482ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to iterate over. </td></tr> 483ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>func</em> </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> </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 </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 </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 </td> 511ae771770SStanislav Sedov <td class="paramname"> <em>from</em></td><td> </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> </td><td>a hx509 context. </td></tr> 527ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>the store to merge into. </td></tr> 528ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>from</em> </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 </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 </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 </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 * </td> 561ae771770SStanislav Sedov <td class="paramname"> <em>cert</em></td><td> </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> </td><td>a hx509 context. </td></tr> 577ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to iterate over. </td></tr> 578ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>cursor that keeps track of progress. </td></tr> 579ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </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 </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 </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 * </td> 606ae771770SStanislav Sedov <td class="paramname"> <em>cursor</em></td><td> </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> </td><td>a hx509 context. </td></tr> 622ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to iterate over </td></tr> 623ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cursor</em> </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 </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 </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 </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 </td> 656ae771770SStanislav Sedov <td class="paramname"> <em>lock</em></td><td> </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> </td><td>A hx509 context. </td></tr> 672ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>a certificate store to store. </td></tr> 673ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>currently unused, use 0. </td></tr> 674ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>lock</em> </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 </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 * </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 </td> 701ae771770SStanislav Sedov <td class="paramname"> <em>c</em></td><td> </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> </td><td>a hx509 context. </td></tr> 717ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </td><td>certificate store to iterate over. </td></tr> 718ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>func</em> </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> </td><td>a hx509 context. </td></tr> 725ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>ctx</em> </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> </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 </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 </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 * </td> 753ae771770SStanislav Sedov <td class="paramname"> <em>c</em></td><td> </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> </td><td>a hx509 context. </td></tr> 769ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>certs</em> </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> </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 <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