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 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 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__cert.html#g1aa420f664ce5933f8af4cf6c37fd6f6">hx509_cert_init</a> (hx509_context context, const Certificate *c, hx509_cert *cert)</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__cert.html#g479d8c1bf22aa8fdfa448bed1ec54d7b">hx509_cert_init_data</a> (hx509_context context, const void *ptr, size_t len, hx509_cert *cert)</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__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free</a> (hx509_cert cert)</td></tr> 30ae771770SStanislav Sedov 31ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">hx509_cert </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g1870b485d4e8e53f75690f35f4526fcc">hx509_cert_ref</a> (hx509_cert cert)</td></tr> 32ae771770SStanislav Sedov 33ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gfb8063ac0396ad60392b8b9554c6b896">hx509_verify_ctx_f_allow_default_trustanchors</a> (hx509_verify_ctx ctx, int boolean)</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__cert.html#g49e7c45c70442dcb81d394093d9cbe29">hx509_cert_find_subjectAltName_otherName</a> (hx509_context context, hx509_cert cert, const heim_oid *oid, hx509_octet_string_list *list)</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__cert.html#gb84ed704b59c7965a598ef9c7c353216">hx509_cert_cmp</a> (hx509_cert p, hx509_cert q)</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__cert.html#g3c61a21c5a802b2f366c9610ff89fa90">hx509_cert_get_issuer</a> (hx509_cert p, hx509_name *name)</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__cert.html#g9f64bb8083bb535ccba007b723c73619">hx509_cert_get_subject</a> (hx509_cert p, hx509_name *name)</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__cert.html#g5e8e38603eb13753912b0075aab276cf">hx509_cert_get_base_subject</a> (hx509_context context, hx509_cert c, hx509_name *name)</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__cert.html#g2960bea38768b49c8b949fe2ea5320e3">hx509_cert_get_serialnumber</a> (hx509_cert p, heim_integer *i)</td></tr> 46ae771770SStanislav Sedov 47ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g2e36444c1bce8995ee193013364ce852">hx509_cert_get_notBefore</a> (hx509_cert p)</td></tr> 48ae771770SStanislav Sedov 49ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gd3e8410e9bb4d0bf61bc3e926a4049eb">hx509_cert_get_notAfter</a> (hx509_cert p)</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__cert.html#gc9e328025dd91339cf73eecdeec4ffd6">hx509_cert_get_SPKI</a> (hx509_context context, hx509_cert p, SubjectPublicKeyInfo *spki)</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__cert.html#gc2fd6cd8b1fbe0d470a88143a359c395">hx509_cert_get_SPKI_AlgorithmIdentifier</a> (hx509_context context, hx509_cert p, AlgorithmIdentifier *alg)</td></tr> 54ae771770SStanislav Sedov 55ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gc88fb8bf53b3e105f728251f6d4d4b1f">hx509_cert_get_issuer_unique_id</a> (hx509_context context, hx509_cert p, heim_bit_string *issuer)</td></tr> 56ae771770SStanislav Sedov 57ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gc7184f4f0249842866d51b17e4b101fb">hx509_cert_get_subject_unique_id</a> (hx509_context context, hx509_cert p, heim_bit_string *subject)</td></tr> 58ae771770SStanislav Sedov 59ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g5dc160f02aeffffb0eea58b6203c856a">hx509_verify_hostname</a> (hx509_context context, const hx509_cert cert, int flags, hx509_hostname_type type, const char *hostname, const struct sockaddr *sa, int sa_size)</td></tr> 60ae771770SStanislav Sedov 61ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">hx509_cert_attribute </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g2038342b93f828789a241a7fee26f4c8">hx509_cert_get_attribute</a> (hx509_cert cert, const heim_oid *oid)</td></tr> 62ae771770SStanislav Sedov 63ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g972768dbcc822fed1b74e7686b407f78">hx509_cert_set_friendly_name</a> (hx509_cert cert, const char *name)</td></tr> 64ae771770SStanislav Sedov 65ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#ge2a1de96837304d68216c309e698c3fd">hx509_cert_get_friendly_name</a> (hx509_cert cert)</td></tr> 66ae771770SStanislav Sedov 67ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g5833168d3181e12883b51284fd069543">hx509_query_alloc</a> (hx509_context context, hx509_query **q)</td></tr> 68ae771770SStanislav Sedov 69ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gc708daef26edff5fd36f4587e61a9914">hx509_query_match_option</a> (hx509_query *q, hx509_query_option option)</td></tr> 70ae771770SStanislav Sedov 71ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gd5d7a68cc8ca4c948ae99b7eb6f5bc2e">hx509_query_match_issuer_serial</a> (hx509_query *q, const Name *issuer, const heim_integer *serialNumber)</td></tr> 72ae771770SStanislav Sedov 73ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g5be7b5ece155f2577335b5575f141362">hx509_query_match_friendly_name</a> (hx509_query *q, const char *name)</td></tr> 74ae771770SStanislav Sedov 75ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g5a7e01c75b7b8243356048a88133c2df">hx509_query_match_eku</a> (hx509_query *q, const heim_oid *eku)</td></tr> 76ae771770SStanislav Sedov 77ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#ge1660c0cf5a41f17db72a8c18e79c684">hx509_query_match_cmp_func</a> (hx509_query *q, int(*func)(hx509_context, hx509_cert, void *), void *ctx)</td></tr> 78ae771770SStanislav Sedov 79ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g6aafd01e9215fef980a572b2c7289d8c">hx509_query_free</a> (hx509_context context, hx509_query *q)</td></tr> 80ae771770SStanislav Sedov 81ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g94b4aa7d907d34914e161831e74440a8">hx509_query_statistic_file</a> (hx509_context context, const char *fn)</td></tr> 82ae771770SStanislav Sedov 83ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g522fb2a85515ce8debea860cdfeb94c0">hx509_query_unparse_stats</a> (hx509_context context, int printtype, FILE *out)</td></tr> 84ae771770SStanislav Sedov 85ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g1b329c40d7c17cc1b099ec0bd24d4dc9">hx509_cert_check_eku</a> (hx509_context context, hx509_cert cert, const heim_oid *eku, int allow_any_eku)</td></tr> 86ae771770SStanislav Sedov 87ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#gfa02f22b6db5ca3c19a488066fea5d7a">hx509_cert_binary</a> (hx509_context context, hx509_cert c, heim_octet_string *os)</td></tr> 88ae771770SStanislav Sedov 89ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__cert.html#g32a804b17d97d71af17602fdf6b1c891">hx509_print_cert</a> (hx509_context context, hx509_cert cert, FILE *out)</td></tr> 90ae771770SStanislav Sedov 91ae771770SStanislav Sedov</table> 92ae771770SStanislav Sedov<hr><a name="_details"></a><h2>Detailed Description</h2> 93ae771770SStanislav SedovSee the <a class="el" href="page_cert.html">The basic certificate</a> for description and examples. <hr><h2>Function Documentation</h2> 94ae771770SStanislav Sedov<a class="anchor" name="gfa02f22b6db5ca3c19a488066fea5d7a"></a><!-- doxytag: member="cert.c::hx509_cert_binary" ref="gfa02f22b6db5ca3c19a488066fea5d7a" args="(hx509_context context, hx509_cert c, heim_octet_string *os)" --> 95ae771770SStanislav Sedov<div class="memitem"> 96ae771770SStanislav Sedov<div class="memproto"> 97ae771770SStanislav Sedov <table class="memname"> 98ae771770SStanislav Sedov <tr> 99ae771770SStanislav Sedov <td class="memname">int hx509_cert_binary </td> 100ae771770SStanislav Sedov <td>(</td> 101ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 102ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 103ae771770SStanislav Sedov </tr> 104ae771770SStanislav Sedov <tr> 105ae771770SStanislav Sedov <td class="paramkey"></td> 106ae771770SStanislav Sedov <td></td> 107ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 108ae771770SStanislav Sedov <td class="paramname"> <em>c</em>, </td> 109ae771770SStanislav Sedov </tr> 110ae771770SStanislav Sedov <tr> 111ae771770SStanislav Sedov <td class="paramkey"></td> 112ae771770SStanislav Sedov <td></td> 113ae771770SStanislav Sedov <td class="paramtype">heim_octet_string * </td> 114ae771770SStanislav Sedov <td class="paramname"> <em>os</em></td><td> </td> 115ae771770SStanislav Sedov </tr> 116ae771770SStanislav Sedov <tr> 117ae771770SStanislav Sedov <td></td> 118ae771770SStanislav Sedov <td>)</td> 119ae771770SStanislav Sedov <td></td><td></td><td></td> 120ae771770SStanislav Sedov </tr> 121ae771770SStanislav Sedov </table> 122ae771770SStanislav Sedov</div> 123ae771770SStanislav Sedov<div class="memdoc"> 124ae771770SStanislav Sedov 125ae771770SStanislav Sedov<p> 126ae771770SStanislav SedovEncodes the hx509 certificate as a DER encode binary.<p> 127ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 128ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 129ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 130ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>the certificate to encode. </td></tr> 131ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>os</em> </td><td>the encode certificate, set to NULL, 0 on case of error. Free the os->data with <a class="el" href="group__hx509__misc.html#gba6d3eb6abde539a3191269f785e3e61">hx509_xfree()</a>.</td></tr> 132ae771770SStanislav Sedov </table> 133ae771770SStanislav Sedov</dl> 134ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 135ae771770SStanislav Sedov 136ae771770SStanislav Sedov</div> 137ae771770SStanislav Sedov</div><p> 138ae771770SStanislav Sedov<a class="anchor" name="g1b329c40d7c17cc1b099ec0bd24d4dc9"></a><!-- doxytag: member="cert.c::hx509_cert_check_eku" ref="g1b329c40d7c17cc1b099ec0bd24d4dc9" args="(hx509_context context, hx509_cert cert, const heim_oid *eku, int allow_any_eku)" --> 139ae771770SStanislav Sedov<div class="memitem"> 140ae771770SStanislav Sedov<div class="memproto"> 141ae771770SStanislav Sedov <table class="memname"> 142ae771770SStanislav Sedov <tr> 143ae771770SStanislav Sedov <td class="memname">int hx509_cert_check_eku </td> 144ae771770SStanislav Sedov <td>(</td> 145ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 146ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 147ae771770SStanislav Sedov </tr> 148ae771770SStanislav Sedov <tr> 149ae771770SStanislav Sedov <td class="paramkey"></td> 150ae771770SStanislav Sedov <td></td> 151ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 152ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 153ae771770SStanislav Sedov </tr> 154ae771770SStanislav Sedov <tr> 155ae771770SStanislav Sedov <td class="paramkey"></td> 156ae771770SStanislav Sedov <td></td> 157ae771770SStanislav Sedov <td class="paramtype">const heim_oid * </td> 158ae771770SStanislav Sedov <td class="paramname"> <em>eku</em>, </td> 159ae771770SStanislav Sedov </tr> 160ae771770SStanislav Sedov <tr> 161ae771770SStanislav Sedov <td class="paramkey"></td> 162ae771770SStanislav Sedov <td></td> 163ae771770SStanislav Sedov <td class="paramtype">int </td> 164ae771770SStanislav Sedov <td class="paramname"> <em>allow_any_eku</em></td><td> </td> 165ae771770SStanislav Sedov </tr> 166ae771770SStanislav Sedov <tr> 167ae771770SStanislav Sedov <td></td> 168ae771770SStanislav Sedov <td>)</td> 169ae771770SStanislav Sedov <td></td><td></td><td></td> 170ae771770SStanislav Sedov </tr> 171ae771770SStanislav Sedov </table> 172ae771770SStanislav Sedov</div> 173ae771770SStanislav Sedov<div class="memdoc"> 174ae771770SStanislav Sedov 175ae771770SStanislav Sedov<p> 176ae771770SStanislav SedovCheck the extended key usage on the hx509 certificate.<p> 177ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 178ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 179ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 180ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>A hx509 context. </td></tr> 181ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>eku</em> </td><td>the EKU to check for </td></tr> 182ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>allow_any_eku</em> </td><td>if the any EKU is set, allow that to be a substitute.</td></tr> 183ae771770SStanislav Sedov </table> 184ae771770SStanislav Sedov</dl> 185ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 186ae771770SStanislav Sedov 187ae771770SStanislav Sedov</div> 188ae771770SStanislav Sedov</div><p> 189ae771770SStanislav Sedov<a class="anchor" name="gb84ed704b59c7965a598ef9c7c353216"></a><!-- doxytag: member="cert.c::hx509_cert_cmp" ref="gb84ed704b59c7965a598ef9c7c353216" args="(hx509_cert p, hx509_cert q)" --> 190ae771770SStanislav Sedov<div class="memitem"> 191ae771770SStanislav Sedov<div class="memproto"> 192ae771770SStanislav Sedov <table class="memname"> 193ae771770SStanislav Sedov <tr> 194ae771770SStanislav Sedov <td class="memname">int hx509_cert_cmp </td> 195ae771770SStanislav Sedov <td>(</td> 196ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 197ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 198ae771770SStanislav Sedov </tr> 199ae771770SStanislav Sedov <tr> 200ae771770SStanislav Sedov <td class="paramkey"></td> 201ae771770SStanislav Sedov <td></td> 202ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 203ae771770SStanislav Sedov <td class="paramname"> <em>q</em></td><td> </td> 204ae771770SStanislav Sedov </tr> 205ae771770SStanislav Sedov <tr> 206ae771770SStanislav Sedov <td></td> 207ae771770SStanislav Sedov <td>)</td> 208ae771770SStanislav Sedov <td></td><td></td><td></td> 209ae771770SStanislav Sedov </tr> 210ae771770SStanislav Sedov </table> 211ae771770SStanislav Sedov</div> 212ae771770SStanislav Sedov<div class="memdoc"> 213ae771770SStanislav Sedov 214ae771770SStanislav Sedov<p> 215ae771770SStanislav SedovCompare to hx509 certificate object, useful for sorting.<p> 216ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 217ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 218ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object. </td></tr> 219ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a hx509 certificate object.</td></tr> 220ae771770SStanislav Sedov </table> 221ae771770SStanislav Sedov</dl> 222ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 the objects are the same, returns > 0 is p is "larger" then q, < 0 if p is "smaller" then q. </dd></dl> 223ae771770SStanislav Sedov 224ae771770SStanislav Sedov</div> 225ae771770SStanislav Sedov</div><p> 226ae771770SStanislav Sedov<a class="anchor" name="g49e7c45c70442dcb81d394093d9cbe29"></a><!-- doxytag: member="cert.c::hx509_cert_find_subjectAltName_otherName" ref="g49e7c45c70442dcb81d394093d9cbe29" args="(hx509_context context, hx509_cert cert, const heim_oid *oid, hx509_octet_string_list *list)" --> 227ae771770SStanislav Sedov<div class="memitem"> 228ae771770SStanislav Sedov<div class="memproto"> 229ae771770SStanislav Sedov <table class="memname"> 230ae771770SStanislav Sedov <tr> 231ae771770SStanislav Sedov <td class="memname">int hx509_cert_find_subjectAltName_otherName </td> 232ae771770SStanislav Sedov <td>(</td> 233ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 234ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 235ae771770SStanislav Sedov </tr> 236ae771770SStanislav Sedov <tr> 237ae771770SStanislav Sedov <td class="paramkey"></td> 238ae771770SStanislav Sedov <td></td> 239ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 240ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 241ae771770SStanislav Sedov </tr> 242ae771770SStanislav Sedov <tr> 243ae771770SStanislav Sedov <td class="paramkey"></td> 244ae771770SStanislav Sedov <td></td> 245ae771770SStanislav Sedov <td class="paramtype">const heim_oid * </td> 246ae771770SStanislav Sedov <td class="paramname"> <em>oid</em>, </td> 247ae771770SStanislav Sedov </tr> 248ae771770SStanislav Sedov <tr> 249ae771770SStanislav Sedov <td class="paramkey"></td> 250ae771770SStanislav Sedov <td></td> 251ae771770SStanislav Sedov <td class="paramtype">hx509_octet_string_list * </td> 252ae771770SStanislav Sedov <td class="paramname"> <em>list</em></td><td> </td> 253ae771770SStanislav Sedov </tr> 254ae771770SStanislav Sedov <tr> 255ae771770SStanislav Sedov <td></td> 256ae771770SStanislav Sedov <td>)</td> 257ae771770SStanislav Sedov <td></td><td></td><td></td> 258ae771770SStanislav Sedov </tr> 259ae771770SStanislav Sedov </table> 260ae771770SStanislav Sedov</div> 261ae771770SStanislav Sedov<div class="memdoc"> 262ae771770SStanislav Sedov 263ae771770SStanislav Sedov<p> 264ae771770SStanislav SedovReturn a list of subjectAltNames specified by oid in the certificate. On error the<p> 265ae771770SStanislav SedovThe returned list of octet string should be freed with <a class="el" href="group__hx509__misc.html#ga39b9443f688a6d9152ff6dc05f3be8e">hx509_free_octet_string_list()</a>.<p> 266ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 267ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 268ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 269ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>a hx509 certificate object. </td></tr> 270ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>an oid to for SubjectAltName. </td></tr> 271ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>list of matching SubjectAltName.</td></tr> 272ae771770SStanislav Sedov </table> 273ae771770SStanislav Sedov</dl> 274ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 275ae771770SStanislav Sedov 276ae771770SStanislav Sedov</div> 277ae771770SStanislav Sedov</div><p> 278ae771770SStanislav Sedov<a class="anchor" name="gd2f9bb0ddc4babb26a8ccd983db8c948"></a><!-- doxytag: member="cert.c::hx509_cert_free" ref="gd2f9bb0ddc4babb26a8ccd983db8c948" args="(hx509_cert cert)" --> 279ae771770SStanislav Sedov<div class="memitem"> 280ae771770SStanislav Sedov<div class="memproto"> 281ae771770SStanislav Sedov <table class="memname"> 282ae771770SStanislav Sedov <tr> 283ae771770SStanislav Sedov <td class="memname">void hx509_cert_free </td> 284ae771770SStanislav Sedov <td>(</td> 285ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 286ae771770SStanislav Sedov <td class="paramname"> <em>cert</em> </td> 287ae771770SStanislav Sedov <td> ) </td> 288ae771770SStanislav Sedov <td></td> 289ae771770SStanislav Sedov </tr> 290ae771770SStanislav Sedov </table> 291ae771770SStanislav Sedov</div> 292ae771770SStanislav Sedov<div class="memdoc"> 293ae771770SStanislav Sedov 294ae771770SStanislav Sedov<p> 295ae771770SStanislav SedovFree reference to the hx509 certificate object, if the refcounter reaches 0, the object if freed. Its allowed to pass in NULL.<p> 296ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 297ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 298ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>the cert to free. </td></tr> 299ae771770SStanislav Sedov </table> 300ae771770SStanislav Sedov</dl> 301ae771770SStanislav Sedov 302ae771770SStanislav Sedov</div> 303ae771770SStanislav Sedov</div><p> 304ae771770SStanislav Sedov<a class="anchor" name="g2038342b93f828789a241a7fee26f4c8"></a><!-- doxytag: member="cert.c::hx509_cert_get_attribute" ref="g2038342b93f828789a241a7fee26f4c8" args="(hx509_cert cert, const heim_oid *oid)" --> 305ae771770SStanislav Sedov<div class="memitem"> 306ae771770SStanislav Sedov<div class="memproto"> 307ae771770SStanislav Sedov <table class="memname"> 308ae771770SStanislav Sedov <tr> 309ae771770SStanislav Sedov <td class="memname">hx509_cert_attribute hx509_cert_get_attribute </td> 310ae771770SStanislav Sedov <td>(</td> 311ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 312ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 313ae771770SStanislav Sedov </tr> 314ae771770SStanislav Sedov <tr> 315ae771770SStanislav Sedov <td class="paramkey"></td> 316ae771770SStanislav Sedov <td></td> 317ae771770SStanislav Sedov <td class="paramtype">const heim_oid * </td> 318ae771770SStanislav Sedov <td class="paramname"> <em>oid</em></td><td> </td> 319ae771770SStanislav Sedov </tr> 320ae771770SStanislav Sedov <tr> 321ae771770SStanislav Sedov <td></td> 322ae771770SStanislav Sedov <td>)</td> 323ae771770SStanislav Sedov <td></td><td></td><td></td> 324ae771770SStanislav Sedov </tr> 325ae771770SStanislav Sedov </table> 326ae771770SStanislav Sedov</div> 327ae771770SStanislav Sedov<div class="memdoc"> 328ae771770SStanislav Sedov 329ae771770SStanislav Sedov<p> 330ae771770SStanislav SedovGet an external attribute for the certificate, examples are friendly name and id.<p> 331ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 332ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 333ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>hx509 certificate object to search </td></tr> 334ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>an oid to search for.</td></tr> 335ae771770SStanislav Sedov </table> 336ae771770SStanislav Sedov</dl> 337ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>an hx509_cert_attribute, only valid as long as the certificate is referenced. </dd></dl> 338ae771770SStanislav Sedov 339ae771770SStanislav Sedov</div> 340ae771770SStanislav Sedov</div><p> 341ae771770SStanislav Sedov<a class="anchor" name="g5e8e38603eb13753912b0075aab276cf"></a><!-- doxytag: member="cert.c::hx509_cert_get_base_subject" ref="g5e8e38603eb13753912b0075aab276cf" args="(hx509_context context, hx509_cert c, hx509_name *name)" --> 342ae771770SStanislav Sedov<div class="memitem"> 343ae771770SStanislav Sedov<div class="memproto"> 344ae771770SStanislav Sedov <table class="memname"> 345ae771770SStanislav Sedov <tr> 346ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_base_subject </td> 347ae771770SStanislav Sedov <td>(</td> 348ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 349ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 350ae771770SStanislav Sedov </tr> 351ae771770SStanislav Sedov <tr> 352ae771770SStanislav Sedov <td class="paramkey"></td> 353ae771770SStanislav Sedov <td></td> 354ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 355ae771770SStanislav Sedov <td class="paramname"> <em>c</em>, </td> 356ae771770SStanislav Sedov </tr> 357ae771770SStanislav Sedov <tr> 358ae771770SStanislav Sedov <td class="paramkey"></td> 359ae771770SStanislav Sedov <td></td> 360ae771770SStanislav Sedov <td class="paramtype">hx509_name * </td> 361ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </td> 362ae771770SStanislav Sedov </tr> 363ae771770SStanislav Sedov <tr> 364ae771770SStanislav Sedov <td></td> 365ae771770SStanislav Sedov <td>)</td> 366ae771770SStanislav Sedov <td></td><td></td><td></td> 367ae771770SStanislav Sedov </tr> 368ae771770SStanislav Sedov </table> 369ae771770SStanislav Sedov</div> 370ae771770SStanislav Sedov<div class="memdoc"> 371ae771770SStanislav Sedov 372ae771770SStanislav Sedov<p> 373ae771770SStanislav SedovReturn the name of the base subject of the hx509 certificate. If the certiicate is a verified proxy certificate, the this function return the base certificate (root of the proxy chain). If the proxy certificate is not verified with the base certificate HX509_PROXY_CERTIFICATE_NOT_CANONICALIZED is returned.<p> 374ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 375ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 376ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a hx509 context. </td></tr> 377ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>a hx509 certificate object. </td></tr> 378ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>a pointer to a hx509 name, should be freed by <a class="el" href="group__hx509__name.html#gaf351931efb02fc7aea736af9977155e">hx509_name_free()</a>. See also <a class="el" href="group__hx509__cert.html#g9f64bb8083bb535ccba007b723c73619">hx509_cert_get_subject()</a>.</td></tr> 379ae771770SStanislav Sedov </table> 380ae771770SStanislav Sedov</dl> 381ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 382ae771770SStanislav Sedov 383ae771770SStanislav Sedov</div> 384ae771770SStanislav Sedov</div><p> 385ae771770SStanislav Sedov<a class="anchor" name="ge2a1de96837304d68216c309e698c3fd"></a><!-- doxytag: member="cert.c::hx509_cert_get_friendly_name" ref="ge2a1de96837304d68216c309e698c3fd" args="(hx509_cert cert)" --> 386ae771770SStanislav Sedov<div class="memitem"> 387ae771770SStanislav Sedov<div class="memproto"> 388ae771770SStanislav Sedov <table class="memname"> 389ae771770SStanislav Sedov <tr> 390ae771770SStanislav Sedov <td class="memname">const char* hx509_cert_get_friendly_name </td> 391ae771770SStanislav Sedov <td>(</td> 392ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 393ae771770SStanislav Sedov <td class="paramname"> <em>cert</em> </td> 394ae771770SStanislav Sedov <td> ) </td> 395ae771770SStanislav Sedov <td></td> 396ae771770SStanislav Sedov </tr> 397ae771770SStanislav Sedov </table> 398ae771770SStanislav Sedov</div> 399ae771770SStanislav Sedov<div class="memdoc"> 400ae771770SStanislav Sedov 401ae771770SStanislav Sedov<p> 402ae771770SStanislav SedovGet friendly name of the certificate.<p> 403ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 404ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 405ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>cert to get the friendly name from.</td></tr> 406ae771770SStanislav Sedov </table> 407ae771770SStanislav Sedov</dl> 408ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>an friendly name or NULL if there is. The friendly name is only valid as long as the certificate is referenced. </dd></dl> 409ae771770SStanislav Sedov 410ae771770SStanislav Sedov</div> 411ae771770SStanislav Sedov</div><p> 412ae771770SStanislav Sedov<a class="anchor" name="g3c61a21c5a802b2f366c9610ff89fa90"></a><!-- doxytag: member="cert.c::hx509_cert_get_issuer" ref="g3c61a21c5a802b2f366c9610ff89fa90" args="(hx509_cert p, hx509_name *name)" --> 413ae771770SStanislav Sedov<div class="memitem"> 414ae771770SStanislav Sedov<div class="memproto"> 415ae771770SStanislav Sedov <table class="memname"> 416ae771770SStanislav Sedov <tr> 417ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_issuer </td> 418ae771770SStanislav Sedov <td>(</td> 419ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 420ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 421ae771770SStanislav Sedov </tr> 422ae771770SStanislav Sedov <tr> 423ae771770SStanislav Sedov <td class="paramkey"></td> 424ae771770SStanislav Sedov <td></td> 425ae771770SStanislav Sedov <td class="paramtype">hx509_name * </td> 426ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </td> 427ae771770SStanislav Sedov </tr> 428ae771770SStanislav Sedov <tr> 429ae771770SStanislav Sedov <td></td> 430ae771770SStanislav Sedov <td>)</td> 431ae771770SStanislav Sedov <td></td><td></td><td></td> 432ae771770SStanislav Sedov </tr> 433ae771770SStanislav Sedov </table> 434ae771770SStanislav Sedov</div> 435ae771770SStanislav Sedov<div class="memdoc"> 436ae771770SStanislav Sedov 437ae771770SStanislav Sedov<p> 438ae771770SStanislav SedovReturn the name of the issuer of the hx509 certificate.<p> 439ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 440ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 441ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object. </td></tr> 442ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>a pointer to a hx509 name, should be freed by <a class="el" href="group__hx509__name.html#gaf351931efb02fc7aea736af9977155e">hx509_name_free()</a>.</td></tr> 443ae771770SStanislav Sedov </table> 444ae771770SStanislav Sedov</dl> 445ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 446ae771770SStanislav Sedov 447ae771770SStanislav Sedov</div> 448ae771770SStanislav Sedov</div><p> 449ae771770SStanislav Sedov<a class="anchor" name="gc88fb8bf53b3e105f728251f6d4d4b1f"></a><!-- doxytag: member="cert.c::hx509_cert_get_issuer_unique_id" ref="gc88fb8bf53b3e105f728251f6d4d4b1f" args="(hx509_context context, hx509_cert p, heim_bit_string *issuer)" --> 450ae771770SStanislav Sedov<div class="memitem"> 451ae771770SStanislav Sedov<div class="memproto"> 452ae771770SStanislav Sedov <table class="memname"> 453ae771770SStanislav Sedov <tr> 454ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_issuer_unique_id </td> 455ae771770SStanislav Sedov <td>(</td> 456ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 457ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 458ae771770SStanislav Sedov </tr> 459ae771770SStanislav Sedov <tr> 460ae771770SStanislav Sedov <td class="paramkey"></td> 461ae771770SStanislav Sedov <td></td> 462ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 463ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 464ae771770SStanislav Sedov </tr> 465ae771770SStanislav Sedov <tr> 466ae771770SStanislav Sedov <td class="paramkey"></td> 467ae771770SStanislav Sedov <td></td> 468ae771770SStanislav Sedov <td class="paramtype">heim_bit_string * </td> 469ae771770SStanislav Sedov <td class="paramname"> <em>issuer</em></td><td> </td> 470ae771770SStanislav Sedov </tr> 471ae771770SStanislav Sedov <tr> 472ae771770SStanislav Sedov <td></td> 473ae771770SStanislav Sedov <td>)</td> 474ae771770SStanislav Sedov <td></td><td></td><td></td> 475ae771770SStanislav Sedov </tr> 476ae771770SStanislav Sedov </table> 477ae771770SStanislav Sedov</div> 478ae771770SStanislav Sedov<div class="memdoc"> 479ae771770SStanislav Sedov 480ae771770SStanislav Sedov<p> 481ae771770SStanislav SedovGet a copy of the Issuer Unique ID<p> 482ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 483ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 484ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a hx509_context </td></tr> 485ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate </td></tr> 486ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>issuer</em> </td><td>the issuer id returned, free with der_free_bit_string()</td></tr> 487ae771770SStanislav Sedov </table> 488ae771770SStanislav Sedov</dl> 489ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. The error code HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a issuerUniqueID </dd></dl> 490ae771770SStanislav Sedov 491ae771770SStanislav Sedov</div> 492ae771770SStanislav Sedov</div><p> 493ae771770SStanislav Sedov<a class="anchor" name="gd3e8410e9bb4d0bf61bc3e926a4049eb"></a><!-- doxytag: member="cert.c::hx509_cert_get_notAfter" ref="gd3e8410e9bb4d0bf61bc3e926a4049eb" args="(hx509_cert p)" --> 494ae771770SStanislav Sedov<div class="memitem"> 495ae771770SStanislav Sedov<div class="memproto"> 496ae771770SStanislav Sedov <table class="memname"> 497ae771770SStanislav Sedov <tr> 498ae771770SStanislav Sedov <td class="memname">time_t hx509_cert_get_notAfter </td> 499ae771770SStanislav Sedov <td>(</td> 500ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 501ae771770SStanislav Sedov <td class="paramname"> <em>p</em> </td> 502ae771770SStanislav Sedov <td> ) </td> 503ae771770SStanislav Sedov <td></td> 504ae771770SStanislav Sedov </tr> 505ae771770SStanislav Sedov </table> 506ae771770SStanislav Sedov</div> 507ae771770SStanislav Sedov<div class="memdoc"> 508ae771770SStanislav Sedov 509ae771770SStanislav Sedov<p> 510ae771770SStanislav SedovGet notAfter time of the certificate.<p> 511ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 512ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 513ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object.</td></tr> 514ae771770SStanislav Sedov </table> 515ae771770SStanislav Sedov</dl> 516ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>return not after time. </dd></dl> 517ae771770SStanislav Sedov 518ae771770SStanislav Sedov</div> 519ae771770SStanislav Sedov</div><p> 520ae771770SStanislav Sedov<a class="anchor" name="g2e36444c1bce8995ee193013364ce852"></a><!-- doxytag: member="cert.c::hx509_cert_get_notBefore" ref="g2e36444c1bce8995ee193013364ce852" args="(hx509_cert p)" --> 521ae771770SStanislav Sedov<div class="memitem"> 522ae771770SStanislav Sedov<div class="memproto"> 523ae771770SStanislav Sedov <table class="memname"> 524ae771770SStanislav Sedov <tr> 525ae771770SStanislav Sedov <td class="memname">time_t hx509_cert_get_notBefore </td> 526ae771770SStanislav Sedov <td>(</td> 527ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 528ae771770SStanislav Sedov <td class="paramname"> <em>p</em> </td> 529ae771770SStanislav Sedov <td> ) </td> 530ae771770SStanislav Sedov <td></td> 531ae771770SStanislav Sedov </tr> 532ae771770SStanislav Sedov </table> 533ae771770SStanislav Sedov</div> 534ae771770SStanislav Sedov<div class="memdoc"> 535ae771770SStanislav Sedov 536ae771770SStanislav Sedov<p> 537ae771770SStanislav SedovGet notBefore time of the certificate.<p> 538ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 539ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 540ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object.</td></tr> 541ae771770SStanislav Sedov </table> 542ae771770SStanislav Sedov</dl> 543ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>return not before time </dd></dl> 544ae771770SStanislav Sedov 545ae771770SStanislav Sedov</div> 546ae771770SStanislav Sedov</div><p> 547ae771770SStanislav Sedov<a class="anchor" name="g2960bea38768b49c8b949fe2ea5320e3"></a><!-- doxytag: member="cert.c::hx509_cert_get_serialnumber" ref="g2960bea38768b49c8b949fe2ea5320e3" args="(hx509_cert p, heim_integer *i)" --> 548ae771770SStanislav Sedov<div class="memitem"> 549ae771770SStanislav Sedov<div class="memproto"> 550ae771770SStanislav Sedov <table class="memname"> 551ae771770SStanislav Sedov <tr> 552ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_serialnumber </td> 553ae771770SStanislav Sedov <td>(</td> 554ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 555ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 556ae771770SStanislav Sedov </tr> 557ae771770SStanislav Sedov <tr> 558ae771770SStanislav Sedov <td class="paramkey"></td> 559ae771770SStanislav Sedov <td></td> 560ae771770SStanislav Sedov <td class="paramtype">heim_integer * </td> 561ae771770SStanislav Sedov <td class="paramname"> <em>i</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 serial number of the certificate.<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>p</em> </td><td>a hx509 certificate object. </td></tr> 577ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>serial number, should be freed ith der_free_heim_integer().</td></tr> 578ae771770SStanislav Sedov </table> 579ae771770SStanislav Sedov</dl> 580ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 581ae771770SStanislav Sedov 582ae771770SStanislav Sedov</div> 583ae771770SStanislav Sedov</div><p> 584ae771770SStanislav Sedov<a class="anchor" name="gc9e328025dd91339cf73eecdeec4ffd6"></a><!-- doxytag: member="cert.c::hx509_cert_get_SPKI" ref="gc9e328025dd91339cf73eecdeec4ffd6" args="(hx509_context context, hx509_cert p, SubjectPublicKeyInfo *spki)" --> 585ae771770SStanislav Sedov<div class="memitem"> 586ae771770SStanislav Sedov<div class="memproto"> 587ae771770SStanislav Sedov <table class="memname"> 588ae771770SStanislav Sedov <tr> 589ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_SPKI </td> 590ae771770SStanislav Sedov <td>(</td> 591ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 592ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 593ae771770SStanislav Sedov </tr> 594ae771770SStanislav Sedov <tr> 595ae771770SStanislav Sedov <td class="paramkey"></td> 596ae771770SStanislav Sedov <td></td> 597ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 598ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 599ae771770SStanislav Sedov </tr> 600ae771770SStanislav Sedov <tr> 601ae771770SStanislav Sedov <td class="paramkey"></td> 602ae771770SStanislav Sedov <td></td> 603ae771770SStanislav Sedov <td class="paramtype">SubjectPublicKeyInfo * </td> 604ae771770SStanislav Sedov <td class="paramname"> <em>spki</em></td><td> </td> 605ae771770SStanislav Sedov </tr> 606ae771770SStanislav Sedov <tr> 607ae771770SStanislav Sedov <td></td> 608ae771770SStanislav Sedov <td>)</td> 609ae771770SStanislav Sedov <td></td><td></td><td></td> 610ae771770SStanislav Sedov </tr> 611ae771770SStanislav Sedov </table> 612ae771770SStanislav Sedov</div> 613ae771770SStanislav Sedov<div class="memdoc"> 614ae771770SStanislav Sedov 615ae771770SStanislav Sedov<p> 616ae771770SStanislav SedovGet the SubjectPublicKeyInfo structure from the hx509 certificate.<p> 617ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 618ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 619ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a hx509 context. </td></tr> 620ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object. </td></tr> 621ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>spki</em> </td><td>SubjectPublicKeyInfo, should be freed with free_SubjectPublicKeyInfo().</td></tr> 622ae771770SStanislav Sedov </table> 623ae771770SStanislav Sedov</dl> 624ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 625ae771770SStanislav Sedov 626ae771770SStanislav Sedov</div> 627ae771770SStanislav Sedov</div><p> 628ae771770SStanislav Sedov<a class="anchor" name="gc2fd6cd8b1fbe0d470a88143a359c395"></a><!-- doxytag: member="cert.c::hx509_cert_get_SPKI_AlgorithmIdentifier" ref="gc2fd6cd8b1fbe0d470a88143a359c395" args="(hx509_context context, hx509_cert p, AlgorithmIdentifier *alg)" --> 629ae771770SStanislav Sedov<div class="memitem"> 630ae771770SStanislav Sedov<div class="memproto"> 631ae771770SStanislav Sedov <table class="memname"> 632ae771770SStanislav Sedov <tr> 633ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_SPKI_AlgorithmIdentifier </td> 634ae771770SStanislav Sedov <td>(</td> 635ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 636ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 637ae771770SStanislav Sedov </tr> 638ae771770SStanislav Sedov <tr> 639ae771770SStanislav Sedov <td class="paramkey"></td> 640ae771770SStanislav Sedov <td></td> 641ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 642ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 643ae771770SStanislav Sedov </tr> 644ae771770SStanislav Sedov <tr> 645ae771770SStanislav Sedov <td class="paramkey"></td> 646ae771770SStanislav Sedov <td></td> 647ae771770SStanislav Sedov <td class="paramtype">AlgorithmIdentifier * </td> 648ae771770SStanislav Sedov <td class="paramname"> <em>alg</em></td><td> </td> 649ae771770SStanislav Sedov </tr> 650ae771770SStanislav Sedov <tr> 651ae771770SStanislav Sedov <td></td> 652ae771770SStanislav Sedov <td>)</td> 653ae771770SStanislav Sedov <td></td><td></td><td></td> 654ae771770SStanislav Sedov </tr> 655ae771770SStanislav Sedov </table> 656ae771770SStanislav Sedov</div> 657ae771770SStanislav Sedov<div class="memdoc"> 658ae771770SStanislav Sedov 659ae771770SStanislav Sedov<p> 660ae771770SStanislav SedovGet the AlgorithmIdentifier from the hx509 certificate.<p> 661ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 662ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 663ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a hx509 context. </td></tr> 664ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object. </td></tr> 665ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>alg</em> </td><td>AlgorithmIdentifier, should be freed with free_AlgorithmIdentifier(). The algorithmidentifier is typicly rsaEncryption, or id-ecPublicKey, or some other public key mechanism.</td></tr> 666ae771770SStanislav Sedov </table> 667ae771770SStanislav Sedov</dl> 668ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 669ae771770SStanislav Sedov 670ae771770SStanislav Sedov</div> 671ae771770SStanislav Sedov</div><p> 672ae771770SStanislav Sedov<a class="anchor" name="g9f64bb8083bb535ccba007b723c73619"></a><!-- doxytag: member="cert.c::hx509_cert_get_subject" ref="g9f64bb8083bb535ccba007b723c73619" args="(hx509_cert p, hx509_name *name)" --> 673ae771770SStanislav Sedov<div class="memitem"> 674ae771770SStanislav Sedov<div class="memproto"> 675ae771770SStanislav Sedov <table class="memname"> 676ae771770SStanislav Sedov <tr> 677ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_subject </td> 678ae771770SStanislav Sedov <td>(</td> 679ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 680ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 681ae771770SStanislav Sedov </tr> 682ae771770SStanislav Sedov <tr> 683ae771770SStanislav Sedov <td class="paramkey"></td> 684ae771770SStanislav Sedov <td></td> 685ae771770SStanislav Sedov <td class="paramtype">hx509_name * </td> 686ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </td> 687ae771770SStanislav Sedov </tr> 688ae771770SStanislav Sedov <tr> 689ae771770SStanislav Sedov <td></td> 690ae771770SStanislav Sedov <td>)</td> 691ae771770SStanislav Sedov <td></td><td></td><td></td> 692ae771770SStanislav Sedov </tr> 693ae771770SStanislav Sedov </table> 694ae771770SStanislav Sedov</div> 695ae771770SStanislav Sedov<div class="memdoc"> 696ae771770SStanislav Sedov 697ae771770SStanislav Sedov<p> 698ae771770SStanislav SedovReturn the name of the subject of the hx509 certificate.<p> 699ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 700ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 701ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate object. </td></tr> 702ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>a pointer to a hx509 name, should be freed by <a class="el" href="group__hx509__name.html#gaf351931efb02fc7aea736af9977155e">hx509_name_free()</a>. See also <a class="el" href="group__hx509__cert.html#g5e8e38603eb13753912b0075aab276cf">hx509_cert_get_base_subject()</a>.</td></tr> 703ae771770SStanislav Sedov </table> 704ae771770SStanislav Sedov</dl> 705ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 706ae771770SStanislav Sedov 707ae771770SStanislav Sedov</div> 708ae771770SStanislav Sedov</div><p> 709ae771770SStanislav Sedov<a class="anchor" name="gc7184f4f0249842866d51b17e4b101fb"></a><!-- doxytag: member="cert.c::hx509_cert_get_subject_unique_id" ref="gc7184f4f0249842866d51b17e4b101fb" args="(hx509_context context, hx509_cert p, heim_bit_string *subject)" --> 710ae771770SStanislav Sedov<div class="memitem"> 711ae771770SStanislav Sedov<div class="memproto"> 712ae771770SStanislav Sedov <table class="memname"> 713ae771770SStanislav Sedov <tr> 714ae771770SStanislav Sedov <td class="memname">int hx509_cert_get_subject_unique_id </td> 715ae771770SStanislav Sedov <td>(</td> 716ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 717ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 718ae771770SStanislav Sedov </tr> 719ae771770SStanislav Sedov <tr> 720ae771770SStanislav Sedov <td class="paramkey"></td> 721ae771770SStanislav Sedov <td></td> 722ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 723ae771770SStanislav Sedov <td class="paramname"> <em>p</em>, </td> 724ae771770SStanislav Sedov </tr> 725ae771770SStanislav Sedov <tr> 726ae771770SStanislav Sedov <td class="paramkey"></td> 727ae771770SStanislav Sedov <td></td> 728ae771770SStanislav Sedov <td class="paramtype">heim_bit_string * </td> 729ae771770SStanislav Sedov <td class="paramname"> <em>subject</em></td><td> </td> 730ae771770SStanislav Sedov </tr> 731ae771770SStanislav Sedov <tr> 732ae771770SStanislav Sedov <td></td> 733ae771770SStanislav Sedov <td>)</td> 734ae771770SStanislav Sedov <td></td><td></td><td></td> 735ae771770SStanislav Sedov </tr> 736ae771770SStanislav Sedov </table> 737ae771770SStanislav Sedov</div> 738ae771770SStanislav Sedov<div class="memdoc"> 739ae771770SStanislav Sedov 740ae771770SStanislav Sedov<p> 741ae771770SStanislav SedovGet a copy of the Subect Unique ID<p> 742ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 743ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 744ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a hx509_context </td></tr> 745ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>a hx509 certificate </td></tr> 746ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>subject</em> </td><td>the subject id returned, free with der_free_bit_string()</td></tr> 747ae771770SStanislav Sedov </table> 748ae771770SStanislav Sedov</dl> 749ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. The error code HX509_EXTENSION_NOT_FOUND is returned if the certificate doesn't have a subjectUniqueID </dd></dl> 750ae771770SStanislav Sedov 751ae771770SStanislav Sedov</div> 752ae771770SStanislav Sedov</div><p> 753ae771770SStanislav Sedov<a class="anchor" name="g1aa420f664ce5933f8af4cf6c37fd6f6"></a><!-- doxytag: member="cert.c::hx509_cert_init" ref="g1aa420f664ce5933f8af4cf6c37fd6f6" args="(hx509_context context, const Certificate *c, hx509_cert *cert)" --> 754ae771770SStanislav Sedov<div class="memitem"> 755ae771770SStanislav Sedov<div class="memproto"> 756ae771770SStanislav Sedov <table class="memname"> 757ae771770SStanislav Sedov <tr> 758ae771770SStanislav Sedov <td class="memname">int hx509_cert_init </td> 759ae771770SStanislav Sedov <td>(</td> 760ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 761ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 762ae771770SStanislav Sedov </tr> 763ae771770SStanislav Sedov <tr> 764ae771770SStanislav Sedov <td class="paramkey"></td> 765ae771770SStanislav Sedov <td></td> 766ae771770SStanislav Sedov <td class="paramtype">const Certificate * </td> 767ae771770SStanislav Sedov <td class="paramname"> <em>c</em>, </td> 768ae771770SStanislav Sedov </tr> 769ae771770SStanislav Sedov <tr> 770ae771770SStanislav Sedov <td class="paramkey"></td> 771ae771770SStanislav Sedov <td></td> 772ae771770SStanislav Sedov <td class="paramtype">hx509_cert * </td> 773ae771770SStanislav Sedov <td class="paramname"> <em>cert</em></td><td> </td> 774ae771770SStanislav Sedov </tr> 775ae771770SStanislav Sedov <tr> 776ae771770SStanislav Sedov <td></td> 777ae771770SStanislav Sedov <td>)</td> 778ae771770SStanislav Sedov <td></td><td></td><td></td> 779ae771770SStanislav Sedov </tr> 780ae771770SStanislav Sedov </table> 781ae771770SStanislav Sedov</div> 782ae771770SStanislav Sedov<div class="memdoc"> 783ae771770SStanislav Sedov 784ae771770SStanislav Sedov<p> 785ae771770SStanislav SedovAllocate and init an hx509 certificate object from the decoded certificate `c´.<p> 786ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 787ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 788ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 789ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td></td></tr> 790ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td></td></tr> 791ae771770SStanislav Sedov </table> 792ae771770SStanislav Sedov</dl> 793ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns an hx509 error code. </dd></dl> 794ae771770SStanislav Sedov 795ae771770SStanislav Sedov</div> 796ae771770SStanislav Sedov</div><p> 797ae771770SStanislav Sedov<a class="anchor" name="g479d8c1bf22aa8fdfa448bed1ec54d7b"></a><!-- doxytag: member="cert.c::hx509_cert_init_data" ref="g479d8c1bf22aa8fdfa448bed1ec54d7b" args="(hx509_context context, const void *ptr, size_t len, hx509_cert *cert)" --> 798ae771770SStanislav Sedov<div class="memitem"> 799ae771770SStanislav Sedov<div class="memproto"> 800ae771770SStanislav Sedov <table class="memname"> 801ae771770SStanislav Sedov <tr> 802ae771770SStanislav Sedov <td class="memname">int hx509_cert_init_data </td> 803ae771770SStanislav Sedov <td>(</td> 804ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 805ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 806ae771770SStanislav Sedov </tr> 807ae771770SStanislav Sedov <tr> 808ae771770SStanislav Sedov <td class="paramkey"></td> 809ae771770SStanislav Sedov <td></td> 810ae771770SStanislav Sedov <td class="paramtype">const void * </td> 811ae771770SStanislav Sedov <td class="paramname"> <em>ptr</em>, </td> 812ae771770SStanislav Sedov </tr> 813ae771770SStanislav Sedov <tr> 814ae771770SStanislav Sedov <td class="paramkey"></td> 815ae771770SStanislav Sedov <td></td> 816ae771770SStanislav Sedov <td class="paramtype">size_t </td> 817ae771770SStanislav Sedov <td class="paramname"> <em>len</em>, </td> 818ae771770SStanislav Sedov </tr> 819ae771770SStanislav Sedov <tr> 820ae771770SStanislav Sedov <td class="paramkey"></td> 821ae771770SStanislav Sedov <td></td> 822ae771770SStanislav Sedov <td class="paramtype">hx509_cert * </td> 823ae771770SStanislav Sedov <td class="paramname"> <em>cert</em></td><td> </td> 824ae771770SStanislav Sedov </tr> 825ae771770SStanislav Sedov <tr> 826ae771770SStanislav Sedov <td></td> 827ae771770SStanislav Sedov <td>)</td> 828ae771770SStanislav Sedov <td></td><td></td><td></td> 829ae771770SStanislav Sedov </tr> 830ae771770SStanislav Sedov </table> 831ae771770SStanislav Sedov</div> 832ae771770SStanislav Sedov<div class="memdoc"> 833ae771770SStanislav Sedov 834ae771770SStanislav Sedov<p> 835ae771770SStanislav SedovJust like <a class="el" href="group__hx509__cert.html#g1aa420f664ce5933f8af4cf6c37fd6f6">hx509_cert_init()</a>, but instead of a decode certificate takes an pointer and length to a memory region that contains a DER/BER encoded certificate.<p> 836ae771770SStanislav SedovIf the memory region doesn't contain just the certificate and nothing more the function will fail with HX509_EXTRA_DATA_AFTER_STRUCTURE.<p> 837ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 838ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 839ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 840ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>ptr</em> </td><td>pointer to memory region containing encoded certificate. </td></tr> 841ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of memory region. </td></tr> 842ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>a return pointer to a hx509 certificate object, will contain NULL on error.</td></tr> 843ae771770SStanislav Sedov </table> 844ae771770SStanislav Sedov</dl> 845ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 846ae771770SStanislav Sedov 847ae771770SStanislav Sedov</div> 848ae771770SStanislav Sedov</div><p> 849ae771770SStanislav Sedov<a class="anchor" name="g1870b485d4e8e53f75690f35f4526fcc"></a><!-- doxytag: member="cert.c::hx509_cert_ref" ref="g1870b485d4e8e53f75690f35f4526fcc" args="(hx509_cert cert)" --> 850ae771770SStanislav Sedov<div class="memitem"> 851ae771770SStanislav Sedov<div class="memproto"> 852ae771770SStanislav Sedov <table class="memname"> 853ae771770SStanislav Sedov <tr> 854ae771770SStanislav Sedov <td class="memname">hx509_cert hx509_cert_ref </td> 855ae771770SStanislav Sedov <td>(</td> 856ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 857ae771770SStanislav Sedov <td class="paramname"> <em>cert</em> </td> 858ae771770SStanislav Sedov <td> ) </td> 859ae771770SStanislav Sedov <td></td> 860ae771770SStanislav Sedov </tr> 861ae771770SStanislav Sedov </table> 862ae771770SStanislav Sedov</div> 863ae771770SStanislav Sedov<div class="memdoc"> 864ae771770SStanislav Sedov 865ae771770SStanislav Sedov<p> 866ae771770SStanislav SedovAdd a reference to a hx509 certificate object.<p> 867ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 868ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 869ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>a pointer to an hx509 certificate object.</td></tr> 870ae771770SStanislav Sedov </table> 871ae771770SStanislav Sedov</dl> 872ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>the same object as is passed in. </dd></dl> 873ae771770SStanislav Sedov 874ae771770SStanislav Sedov</div> 875ae771770SStanislav Sedov</div><p> 876ae771770SStanislav Sedov<a class="anchor" name="g972768dbcc822fed1b74e7686b407f78"></a><!-- doxytag: member="cert.c::hx509_cert_set_friendly_name" ref="g972768dbcc822fed1b74e7686b407f78" args="(hx509_cert cert, const char *name)" --> 877ae771770SStanislav Sedov<div class="memitem"> 878ae771770SStanislav Sedov<div class="memproto"> 879ae771770SStanislav Sedov <table class="memname"> 880ae771770SStanislav Sedov <tr> 881ae771770SStanislav Sedov <td class="memname">int hx509_cert_set_friendly_name </td> 882ae771770SStanislav Sedov <td>(</td> 883ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 884ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 885ae771770SStanislav Sedov </tr> 886ae771770SStanislav Sedov <tr> 887ae771770SStanislav Sedov <td class="paramkey"></td> 888ae771770SStanislav Sedov <td></td> 889ae771770SStanislav Sedov <td class="paramtype">const char * </td> 890ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </td> 891ae771770SStanislav Sedov </tr> 892ae771770SStanislav Sedov <tr> 893ae771770SStanislav Sedov <td></td> 894ae771770SStanislav Sedov <td>)</td> 895ae771770SStanislav Sedov <td></td><td></td><td></td> 896ae771770SStanislav Sedov </tr> 897ae771770SStanislav Sedov </table> 898ae771770SStanislav Sedov</div> 899ae771770SStanislav Sedov<div class="memdoc"> 900ae771770SStanislav Sedov 901ae771770SStanislav Sedov<p> 902ae771770SStanislav SedovSet the friendly name on the certificate.<p> 903ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 904ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 905ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>The certificate to set the friendly name on </td></tr> 906ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Friendly name.</td></tr> 907ae771770SStanislav Sedov </table> 908ae771770SStanislav Sedov</dl> 909ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 910ae771770SStanislav Sedov 911ae771770SStanislav Sedov</div> 912ae771770SStanislav Sedov</div><p> 913ae771770SStanislav Sedov<a class="anchor" name="g32a804b17d97d71af17602fdf6b1c891"></a><!-- doxytag: member="cert.c::hx509_print_cert" ref="g32a804b17d97d71af17602fdf6b1c891" args="(hx509_context context, hx509_cert cert, FILE *out)" --> 914ae771770SStanislav Sedov<div class="memitem"> 915ae771770SStanislav Sedov<div class="memproto"> 916ae771770SStanislav Sedov <table class="memname"> 917ae771770SStanislav Sedov <tr> 918ae771770SStanislav Sedov <td class="memname">int hx509_print_cert </td> 919ae771770SStanislav Sedov <td>(</td> 920ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 921ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 922ae771770SStanislav Sedov </tr> 923ae771770SStanislav Sedov <tr> 924ae771770SStanislav Sedov <td class="paramkey"></td> 925ae771770SStanislav Sedov <td></td> 926ae771770SStanislav Sedov <td class="paramtype">hx509_cert </td> 927ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 928ae771770SStanislav Sedov </tr> 929ae771770SStanislav Sedov <tr> 930ae771770SStanislav Sedov <td class="paramkey"></td> 931ae771770SStanislav Sedov <td></td> 932ae771770SStanislav Sedov <td class="paramtype">FILE * </td> 933ae771770SStanislav Sedov <td class="paramname"> <em>out</em></td><td> </td> 934ae771770SStanislav Sedov </tr> 935ae771770SStanislav Sedov <tr> 936ae771770SStanislav Sedov <td></td> 937ae771770SStanislav Sedov <td>)</td> 938ae771770SStanislav Sedov <td></td><td></td><td></td> 939ae771770SStanislav Sedov </tr> 940ae771770SStanislav Sedov </table> 941ae771770SStanislav Sedov</div> 942ae771770SStanislav Sedov<div class="memdoc"> 943ae771770SStanislav Sedov 944ae771770SStanislav Sedov<p> 945ae771770SStanislav SedovPrint a simple representation of a certificate<p> 946ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 947ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 948ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context, can be NULL </td></tr> 949ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>certificate to print </td></tr> 950ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the stdio output stream, if NULL, stdout is used</td></tr> 951ae771770SStanislav Sedov </table> 952ae771770SStanislav Sedov</dl> 953ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code </dd></dl> 954ae771770SStanislav Sedov 955ae771770SStanislav Sedov</div> 956ae771770SStanislav Sedov</div><p> 957ae771770SStanislav Sedov<a class="anchor" name="g5833168d3181e12883b51284fd069543"></a><!-- doxytag: member="cert.c::hx509_query_alloc" ref="g5833168d3181e12883b51284fd069543" args="(hx509_context context, hx509_query **q)" --> 958ae771770SStanislav Sedov<div class="memitem"> 959ae771770SStanislav Sedov<div class="memproto"> 960ae771770SStanislav Sedov <table class="memname"> 961ae771770SStanislav Sedov <tr> 962ae771770SStanislav Sedov <td class="memname">int hx509_query_alloc </td> 963ae771770SStanislav Sedov <td>(</td> 964ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 965ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 966ae771770SStanislav Sedov </tr> 967ae771770SStanislav Sedov <tr> 968ae771770SStanislav Sedov <td class="paramkey"></td> 969ae771770SStanislav Sedov <td></td> 970ae771770SStanislav Sedov <td class="paramtype">hx509_query ** </td> 971ae771770SStanislav Sedov <td class="paramname"> <em>q</em></td><td> </td> 972ae771770SStanislav Sedov </tr> 973ae771770SStanislav Sedov <tr> 974ae771770SStanislav Sedov <td></td> 975ae771770SStanislav Sedov <td>)</td> 976ae771770SStanislav Sedov <td></td><td></td><td></td> 977ae771770SStanislav Sedov </tr> 978ae771770SStanislav Sedov </table> 979ae771770SStanislav Sedov</div> 980ae771770SStanislav Sedov<div class="memdoc"> 981ae771770SStanislav Sedov 982ae771770SStanislav Sedov<p> 983ae771770SStanislav SedovAllocate an query controller. Free using <a class="el" href="group__hx509__cert.html#g6aafd01e9215fef980a572b2c7289d8c">hx509_query_free()</a>.<p> 984ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 985ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 986ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 987ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>return pointer to a hx509_query.</td></tr> 988ae771770SStanislav Sedov </table> 989ae771770SStanislav Sedov</dl> 990ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 991ae771770SStanislav Sedov 992ae771770SStanislav Sedov</div> 993ae771770SStanislav Sedov</div><p> 994ae771770SStanislav Sedov<a class="anchor" name="g6aafd01e9215fef980a572b2c7289d8c"></a><!-- doxytag: member="cert.c::hx509_query_free" ref="g6aafd01e9215fef980a572b2c7289d8c" args="(hx509_context context, hx509_query *q)" --> 995ae771770SStanislav Sedov<div class="memitem"> 996ae771770SStanislav Sedov<div class="memproto"> 997ae771770SStanislav Sedov <table class="memname"> 998ae771770SStanislav Sedov <tr> 999ae771770SStanislav Sedov <td class="memname">void hx509_query_free </td> 1000ae771770SStanislav Sedov <td>(</td> 1001ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 1002ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 1003ae771770SStanislav Sedov </tr> 1004ae771770SStanislav Sedov <tr> 1005ae771770SStanislav Sedov <td class="paramkey"></td> 1006ae771770SStanislav Sedov <td></td> 1007ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1008ae771770SStanislav Sedov <td class="paramname"> <em>q</em></td><td> </td> 1009ae771770SStanislav Sedov </tr> 1010ae771770SStanislav Sedov <tr> 1011ae771770SStanislav Sedov <td></td> 1012ae771770SStanislav Sedov <td>)</td> 1013ae771770SStanislav Sedov <td></td><td></td><td></td> 1014ae771770SStanislav Sedov </tr> 1015ae771770SStanislav Sedov </table> 1016ae771770SStanislav Sedov</div> 1017ae771770SStanislav Sedov<div class="memdoc"> 1018ae771770SStanislav Sedov 1019ae771770SStanislav Sedov<p> 1020ae771770SStanislav SedovFree the query controller.<p> 1021ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1022ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1023ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1024ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a pointer to the query controller. </td></tr> 1025ae771770SStanislav Sedov </table> 1026ae771770SStanislav Sedov</dl> 1027ae771770SStanislav Sedov 1028ae771770SStanislav Sedov</div> 1029ae771770SStanislav Sedov</div><p> 1030ae771770SStanislav Sedov<a class="anchor" name="ge1660c0cf5a41f17db72a8c18e79c684"></a><!-- doxytag: member="cert.c::hx509_query_match_cmp_func" ref="ge1660c0cf5a41f17db72a8c18e79c684" args="(hx509_query *q, int(*func)(hx509_context, hx509_cert, void *), void *ctx)" --> 1031ae771770SStanislav Sedov<div class="memitem"> 1032ae771770SStanislav Sedov<div class="memproto"> 1033ae771770SStanislav Sedov <table class="memname"> 1034ae771770SStanislav Sedov <tr> 1035ae771770SStanislav Sedov <td class="memname">int hx509_query_match_cmp_func </td> 1036ae771770SStanislav Sedov <td>(</td> 1037ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1038ae771770SStanislav Sedov <td class="paramname"> <em>q</em>, </td> 1039ae771770SStanislav Sedov </tr> 1040ae771770SStanislav Sedov <tr> 1041ae771770SStanislav Sedov <td class="paramkey"></td> 1042ae771770SStanislav Sedov <td></td> 1043ae771770SStanislav Sedov <td class="paramtype">int(*)(hx509_context, hx509_cert, void *) </td> 1044ae771770SStanislav Sedov <td class="paramname"> <em>func</em>, </td> 1045ae771770SStanislav Sedov </tr> 1046ae771770SStanislav Sedov <tr> 1047ae771770SStanislav Sedov <td class="paramkey"></td> 1048ae771770SStanislav Sedov <td></td> 1049ae771770SStanislav Sedov <td class="paramtype">void * </td> 1050ae771770SStanislav Sedov <td class="paramname"> <em>ctx</em></td><td> </td> 1051ae771770SStanislav Sedov </tr> 1052ae771770SStanislav Sedov <tr> 1053ae771770SStanislav Sedov <td></td> 1054ae771770SStanislav Sedov <td>)</td> 1055ae771770SStanislav Sedov <td></td><td></td><td></td> 1056ae771770SStanislav Sedov </tr> 1057ae771770SStanislav Sedov </table> 1058ae771770SStanislav Sedov</div> 1059ae771770SStanislav Sedov<div class="memdoc"> 1060ae771770SStanislav Sedov 1061ae771770SStanislav Sedov<p> 1062ae771770SStanislav SedovSet the query controller to match using a specific match function.<p> 1063ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1064ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1065ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a hx509 query controller. </td></tr> 1066ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>function to use for matching, if the argument is NULL, the match function is removed. </td></tr> 1067ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>context passed to the function.</td></tr> 1068ae771770SStanislav Sedov </table> 1069ae771770SStanislav Sedov</dl> 1070ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1071ae771770SStanislav Sedov 1072ae771770SStanislav Sedov</div> 1073ae771770SStanislav Sedov</div><p> 1074ae771770SStanislav Sedov<a class="anchor" name="g5a7e01c75b7b8243356048a88133c2df"></a><!-- doxytag: member="cert.c::hx509_query_match_eku" ref="g5a7e01c75b7b8243356048a88133c2df" args="(hx509_query *q, const heim_oid *eku)" --> 1075ae771770SStanislav Sedov<div class="memitem"> 1076ae771770SStanislav Sedov<div class="memproto"> 1077ae771770SStanislav Sedov <table class="memname"> 1078ae771770SStanislav Sedov <tr> 1079ae771770SStanislav Sedov <td class="memname">int hx509_query_match_eku </td> 1080ae771770SStanislav Sedov <td>(</td> 1081ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1082ae771770SStanislav Sedov <td class="paramname"> <em>q</em>, </td> 1083ae771770SStanislav Sedov </tr> 1084ae771770SStanislav Sedov <tr> 1085ae771770SStanislav Sedov <td class="paramkey"></td> 1086ae771770SStanislav Sedov <td></td> 1087ae771770SStanislav Sedov <td class="paramtype">const heim_oid * </td> 1088ae771770SStanislav Sedov <td class="paramname"> <em>eku</em></td><td> </td> 1089ae771770SStanislav Sedov </tr> 1090ae771770SStanislav Sedov <tr> 1091ae771770SStanislav Sedov <td></td> 1092ae771770SStanislav Sedov <td>)</td> 1093ae771770SStanislav Sedov <td></td><td></td><td></td> 1094ae771770SStanislav Sedov </tr> 1095ae771770SStanislav Sedov </table> 1096ae771770SStanislav Sedov</div> 1097ae771770SStanislav Sedov<div class="memdoc"> 1098ae771770SStanislav Sedov 1099ae771770SStanislav Sedov<p> 1100ae771770SStanislav SedovSet the query controller to require an one specific EKU (extended key usage). Any previous EKU matching is overwitten. If NULL is passed in as the eku, the EKU requirement is reset.<p> 1101ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1102ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1103ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a hx509 query controller. </td></tr> 1104ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>eku</em> </td><td>an EKU to match on.</td></tr> 1105ae771770SStanislav Sedov </table> 1106ae771770SStanislav Sedov</dl> 1107ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1108ae771770SStanislav Sedov 1109ae771770SStanislav Sedov</div> 1110ae771770SStanislav Sedov</div><p> 1111ae771770SStanislav Sedov<a class="anchor" name="g5be7b5ece155f2577335b5575f141362"></a><!-- doxytag: member="cert.c::hx509_query_match_friendly_name" ref="g5be7b5ece155f2577335b5575f141362" args="(hx509_query *q, const char *name)" --> 1112ae771770SStanislav Sedov<div class="memitem"> 1113ae771770SStanislav Sedov<div class="memproto"> 1114ae771770SStanislav Sedov <table class="memname"> 1115ae771770SStanislav Sedov <tr> 1116ae771770SStanislav Sedov <td class="memname">int hx509_query_match_friendly_name </td> 1117ae771770SStanislav Sedov <td>(</td> 1118ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1119ae771770SStanislav Sedov <td class="paramname"> <em>q</em>, </td> 1120ae771770SStanislav Sedov </tr> 1121ae771770SStanislav Sedov <tr> 1122ae771770SStanislav Sedov <td class="paramkey"></td> 1123ae771770SStanislav Sedov <td></td> 1124ae771770SStanislav Sedov <td class="paramtype">const char * </td> 1125ae771770SStanislav Sedov <td class="paramname"> <em>name</em></td><td> </td> 1126ae771770SStanislav Sedov </tr> 1127ae771770SStanislav Sedov <tr> 1128ae771770SStanislav Sedov <td></td> 1129ae771770SStanislav Sedov <td>)</td> 1130ae771770SStanislav Sedov <td></td><td></td><td></td> 1131ae771770SStanislav Sedov </tr> 1132ae771770SStanislav Sedov </table> 1133ae771770SStanislav Sedov</div> 1134ae771770SStanislav Sedov<div class="memdoc"> 1135ae771770SStanislav Sedov 1136ae771770SStanislav Sedov<p> 1137ae771770SStanislav SedovSet the query controller to match on a friendly name<p> 1138ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1139ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1140ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a hx509 query controller. </td></tr> 1141ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>a friendly name to match on</td></tr> 1142ae771770SStanislav Sedov </table> 1143ae771770SStanislav Sedov</dl> 1144ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1145ae771770SStanislav Sedov 1146ae771770SStanislav Sedov</div> 1147ae771770SStanislav Sedov</div><p> 1148ae771770SStanislav Sedov<a class="anchor" name="gd5d7a68cc8ca4c948ae99b7eb6f5bc2e"></a><!-- doxytag: member="cert.c::hx509_query_match_issuer_serial" ref="gd5d7a68cc8ca4c948ae99b7eb6f5bc2e" args="(hx509_query *q, const Name *issuer, const heim_integer *serialNumber)" --> 1149ae771770SStanislav Sedov<div class="memitem"> 1150ae771770SStanislav Sedov<div class="memproto"> 1151ae771770SStanislav Sedov <table class="memname"> 1152ae771770SStanislav Sedov <tr> 1153ae771770SStanislav Sedov <td class="memname">int hx509_query_match_issuer_serial </td> 1154ae771770SStanislav Sedov <td>(</td> 1155ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1156ae771770SStanislav Sedov <td class="paramname"> <em>q</em>, </td> 1157ae771770SStanislav Sedov </tr> 1158ae771770SStanislav Sedov <tr> 1159ae771770SStanislav Sedov <td class="paramkey"></td> 1160ae771770SStanislav Sedov <td></td> 1161ae771770SStanislav Sedov <td class="paramtype">const Name * </td> 1162ae771770SStanislav Sedov <td class="paramname"> <em>issuer</em>, </td> 1163ae771770SStanislav Sedov </tr> 1164ae771770SStanislav Sedov <tr> 1165ae771770SStanislav Sedov <td class="paramkey"></td> 1166ae771770SStanislav Sedov <td></td> 1167ae771770SStanislav Sedov <td class="paramtype">const heim_integer * </td> 1168ae771770SStanislav Sedov <td class="paramname"> <em>serialNumber</em></td><td> </td> 1169ae771770SStanislav Sedov </tr> 1170ae771770SStanislav Sedov <tr> 1171ae771770SStanislav Sedov <td></td> 1172ae771770SStanislav Sedov <td>)</td> 1173ae771770SStanislav Sedov <td></td><td></td><td></td> 1174ae771770SStanislav Sedov </tr> 1175ae771770SStanislav Sedov </table> 1176ae771770SStanislav Sedov</div> 1177ae771770SStanislav Sedov<div class="memdoc"> 1178ae771770SStanislav Sedov 1179ae771770SStanislav Sedov<p> 1180ae771770SStanislav SedovSet the issuer and serial number of match in the query controller. The function make copies of the isser and serial number.<p> 1181ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1182ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1183ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>a hx509 query controller </td></tr> 1184ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>issuer</em> </td><td>issuer to search for </td></tr> 1185ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>serialNumber</em> </td><td>the serialNumber of the issuer.</td></tr> 1186ae771770SStanislav Sedov </table> 1187ae771770SStanislav Sedov</dl> 1188ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1189ae771770SStanislav Sedov 1190ae771770SStanislav Sedov</div> 1191ae771770SStanislav Sedov</div><p> 1192ae771770SStanislav Sedov<a class="anchor" name="gc708daef26edff5fd36f4587e61a9914"></a><!-- doxytag: member="cert.c::hx509_query_match_option" ref="gc708daef26edff5fd36f4587e61a9914" args="(hx509_query *q, hx509_query_option option)" --> 1193ae771770SStanislav Sedov<div class="memitem"> 1194ae771770SStanislav Sedov<div class="memproto"> 1195ae771770SStanislav Sedov <table class="memname"> 1196ae771770SStanislav Sedov <tr> 1197ae771770SStanislav Sedov <td class="memname">void hx509_query_match_option </td> 1198ae771770SStanislav Sedov <td>(</td> 1199ae771770SStanislav Sedov <td class="paramtype">hx509_query * </td> 1200ae771770SStanislav Sedov <td class="paramname"> <em>q</em>, </td> 1201ae771770SStanislav Sedov </tr> 1202ae771770SStanislav Sedov <tr> 1203ae771770SStanislav Sedov <td class="paramkey"></td> 1204ae771770SStanislav Sedov <td></td> 1205ae771770SStanislav Sedov <td class="paramtype">hx509_query_option </td> 1206ae771770SStanislav Sedov <td class="paramname"> <em>option</em></td><td> </td> 1207ae771770SStanislav Sedov </tr> 1208ae771770SStanislav Sedov <tr> 1209ae771770SStanislav Sedov <td></td> 1210ae771770SStanislav Sedov <td>)</td> 1211ae771770SStanislav Sedov <td></td><td></td><td></td> 1212ae771770SStanislav Sedov </tr> 1213ae771770SStanislav Sedov </table> 1214ae771770SStanislav Sedov</div> 1215ae771770SStanislav Sedov<div class="memdoc"> 1216ae771770SStanislav Sedov 1217ae771770SStanislav Sedov<p> 1218ae771770SStanislav SedovSet match options for the hx509 query controller.<p> 1219ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1220ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1221ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>q</em> </td><td>query controller. </td></tr> 1222ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>option</em> </td><td>options to control the query controller.</td></tr> 1223ae771770SStanislav Sedov </table> 1224ae771770SStanislav Sedov</dl> 1225ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1226ae771770SStanislav Sedov 1227ae771770SStanislav Sedov</div> 1228ae771770SStanislav Sedov</div><p> 1229ae771770SStanislav Sedov<a class="anchor" name="g94b4aa7d907d34914e161831e74440a8"></a><!-- doxytag: member="cert.c::hx509_query_statistic_file" ref="g94b4aa7d907d34914e161831e74440a8" args="(hx509_context context, const char *fn)" --> 1230ae771770SStanislav Sedov<div class="memitem"> 1231ae771770SStanislav Sedov<div class="memproto"> 1232ae771770SStanislav Sedov <table class="memname"> 1233ae771770SStanislav Sedov <tr> 1234ae771770SStanislav Sedov <td class="memname">void hx509_query_statistic_file </td> 1235ae771770SStanislav Sedov <td>(</td> 1236ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 1237ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 1238ae771770SStanislav Sedov </tr> 1239ae771770SStanislav Sedov <tr> 1240ae771770SStanislav Sedov <td class="paramkey"></td> 1241ae771770SStanislav Sedov <td></td> 1242ae771770SStanislav Sedov <td class="paramtype">const char * </td> 1243ae771770SStanislav Sedov <td class="paramname"> <em>fn</em></td><td> </td> 1244ae771770SStanislav Sedov </tr> 1245ae771770SStanislav Sedov <tr> 1246ae771770SStanislav Sedov <td></td> 1247ae771770SStanislav Sedov <td>)</td> 1248ae771770SStanislav Sedov <td></td><td></td><td></td> 1249ae771770SStanislav Sedov </tr> 1250ae771770SStanislav Sedov </table> 1251ae771770SStanislav Sedov</div> 1252ae771770SStanislav Sedov<div class="memdoc"> 1253ae771770SStanislav Sedov 1254ae771770SStanislav Sedov<p> 1255ae771770SStanislav SedovSet a statistic file for the query statistics.<p> 1256ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1257ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1258ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1259ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>fn</em> </td><td>statistics file name </td></tr> 1260ae771770SStanislav Sedov </table> 1261ae771770SStanislav Sedov</dl> 1262ae771770SStanislav Sedov 1263ae771770SStanislav Sedov</div> 1264ae771770SStanislav Sedov</div><p> 1265ae771770SStanislav Sedov<a class="anchor" name="g522fb2a85515ce8debea860cdfeb94c0"></a><!-- doxytag: member="cert.c::hx509_query_unparse_stats" ref="g522fb2a85515ce8debea860cdfeb94c0" args="(hx509_context context, int printtype, FILE *out)" --> 1266ae771770SStanislav Sedov<div class="memitem"> 1267ae771770SStanislav Sedov<div class="memproto"> 1268ae771770SStanislav Sedov <table class="memname"> 1269ae771770SStanislav Sedov <tr> 1270ae771770SStanislav Sedov <td class="memname">void hx509_query_unparse_stats </td> 1271ae771770SStanislav Sedov <td>(</td> 1272ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 1273ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 1274ae771770SStanislav Sedov </tr> 1275ae771770SStanislav Sedov <tr> 1276ae771770SStanislav Sedov <td class="paramkey"></td> 1277ae771770SStanislav Sedov <td></td> 1278ae771770SStanislav Sedov <td class="paramtype">int </td> 1279ae771770SStanislav Sedov <td class="paramname"> <em>printtype</em>, </td> 1280ae771770SStanislav Sedov </tr> 1281ae771770SStanislav Sedov <tr> 1282ae771770SStanislav Sedov <td class="paramkey"></td> 1283ae771770SStanislav Sedov <td></td> 1284ae771770SStanislav Sedov <td class="paramtype">FILE * </td> 1285ae771770SStanislav Sedov <td class="paramname"> <em>out</em></td><td> </td> 1286ae771770SStanislav Sedov </tr> 1287ae771770SStanislav Sedov <tr> 1288ae771770SStanislav Sedov <td></td> 1289ae771770SStanislav Sedov <td>)</td> 1290ae771770SStanislav Sedov <td></td><td></td><td></td> 1291ae771770SStanislav Sedov </tr> 1292ae771770SStanislav Sedov </table> 1293ae771770SStanislav Sedov</div> 1294ae771770SStanislav Sedov<div class="memdoc"> 1295ae771770SStanislav Sedov 1296ae771770SStanislav Sedov<p> 1297ae771770SStanislav SedovUnparse the statistics file and print the result on a FILE descriptor.<p> 1298ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1299ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1300ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1301ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>printtype</em> </td><td>tyep to print </td></tr> 1302ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the FILE to write the data on. </td></tr> 1303ae771770SStanislav Sedov </table> 1304ae771770SStanislav Sedov</dl> 1305ae771770SStanislav Sedov 1306ae771770SStanislav Sedov</div> 1307ae771770SStanislav Sedov</div><p> 1308ae771770SStanislav Sedov<a class="anchor" name="gfb8063ac0396ad60392b8b9554c6b896"></a><!-- doxytag: member="cert.c::hx509_verify_ctx_f_allow_default_trustanchors" ref="gfb8063ac0396ad60392b8b9554c6b896" args="(hx509_verify_ctx ctx, int boolean)" --> 1309ae771770SStanislav Sedov<div class="memitem"> 1310ae771770SStanislav Sedov<div class="memproto"> 1311ae771770SStanislav Sedov <table class="memname"> 1312ae771770SStanislav Sedov <tr> 1313ae771770SStanislav Sedov <td class="memname">void hx509_verify_ctx_f_allow_default_trustanchors </td> 1314ae771770SStanislav Sedov <td>(</td> 1315ae771770SStanislav Sedov <td class="paramtype">hx509_verify_ctx </td> 1316ae771770SStanislav Sedov <td class="paramname"> <em>ctx</em>, </td> 1317ae771770SStanislav Sedov </tr> 1318ae771770SStanislav Sedov <tr> 1319ae771770SStanislav Sedov <td class="paramkey"></td> 1320ae771770SStanislav Sedov <td></td> 1321ae771770SStanislav Sedov <td class="paramtype">int </td> 1322ae771770SStanislav Sedov <td class="paramname"> <em>boolean</em></td><td> </td> 1323ae771770SStanislav Sedov </tr> 1324ae771770SStanislav Sedov <tr> 1325ae771770SStanislav Sedov <td></td> 1326ae771770SStanislav Sedov <td>)</td> 1327ae771770SStanislav Sedov <td></td><td></td><td></td> 1328ae771770SStanislav Sedov </tr> 1329ae771770SStanislav Sedov </table> 1330ae771770SStanislav Sedov</div> 1331ae771770SStanislav Sedov<div class="memdoc"> 1332ae771770SStanislav Sedov 1333ae771770SStanislav Sedov<p> 1334ae771770SStanislav SedovAllow using the operating system builtin trust anchors if no other trust anchors are configured.<p> 1335ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1336ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1337ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>a verification context </td></tr> 1338ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>boolean</em> </td><td>if non zero, useing the operating systems builtin trust anchors.</td></tr> 1339ae771770SStanislav Sedov </table> 1340ae771770SStanislav Sedov</dl> 1341ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1342ae771770SStanislav Sedov 1343ae771770SStanislav Sedov</div> 1344ae771770SStanislav Sedov</div><p> 1345ae771770SStanislav Sedov<a class="anchor" name="g5dc160f02aeffffb0eea58b6203c856a"></a><!-- doxytag: member="cert.c::hx509_verify_hostname" ref="g5dc160f02aeffffb0eea58b6203c856a" args="(hx509_context context, const hx509_cert cert, int flags, hx509_hostname_type type, const char *hostname, const struct sockaddr *sa, int sa_size)" --> 1346ae771770SStanislav Sedov<div class="memitem"> 1347ae771770SStanislav Sedov<div class="memproto"> 1348ae771770SStanislav Sedov <table class="memname"> 1349ae771770SStanislav Sedov <tr> 1350ae771770SStanislav Sedov <td class="memname">int hx509_verify_hostname </td> 1351ae771770SStanislav Sedov <td>(</td> 1352ae771770SStanislav Sedov <td class="paramtype">hx509_context </td> 1353ae771770SStanislav Sedov <td class="paramname"> <em>context</em>, </td> 1354ae771770SStanislav Sedov </tr> 1355ae771770SStanislav Sedov <tr> 1356ae771770SStanislav Sedov <td class="paramkey"></td> 1357ae771770SStanislav Sedov <td></td> 1358ae771770SStanislav Sedov <td class="paramtype">const hx509_cert </td> 1359ae771770SStanislav Sedov <td class="paramname"> <em>cert</em>, </td> 1360ae771770SStanislav Sedov </tr> 1361ae771770SStanislav Sedov <tr> 1362ae771770SStanislav Sedov <td class="paramkey"></td> 1363ae771770SStanislav Sedov <td></td> 1364ae771770SStanislav Sedov <td class="paramtype">int </td> 1365ae771770SStanislav Sedov <td class="paramname"> <em>flags</em>, </td> 1366ae771770SStanislav Sedov </tr> 1367ae771770SStanislav Sedov <tr> 1368ae771770SStanislav Sedov <td class="paramkey"></td> 1369ae771770SStanislav Sedov <td></td> 1370ae771770SStanislav Sedov <td class="paramtype">hx509_hostname_type </td> 1371ae771770SStanislav Sedov <td class="paramname"> <em>type</em>, </td> 1372ae771770SStanislav Sedov </tr> 1373ae771770SStanislav Sedov <tr> 1374ae771770SStanislav Sedov <td class="paramkey"></td> 1375ae771770SStanislav Sedov <td></td> 1376ae771770SStanislav Sedov <td class="paramtype">const char * </td> 1377ae771770SStanislav Sedov <td class="paramname"> <em>hostname</em>, </td> 1378ae771770SStanislav Sedov </tr> 1379ae771770SStanislav Sedov <tr> 1380ae771770SStanislav Sedov <td class="paramkey"></td> 1381ae771770SStanislav Sedov <td></td> 1382ae771770SStanislav Sedov <td class="paramtype">const struct sockaddr * </td> 1383ae771770SStanislav Sedov <td class="paramname"> <em>sa</em>, </td> 1384ae771770SStanislav Sedov </tr> 1385ae771770SStanislav Sedov <tr> 1386ae771770SStanislav Sedov <td class="paramkey"></td> 1387ae771770SStanislav Sedov <td></td> 1388ae771770SStanislav Sedov <td class="paramtype">int </td> 1389ae771770SStanislav Sedov <td class="paramname"> <em>sa_size</em></td><td> </td> 1390ae771770SStanislav Sedov </tr> 1391ae771770SStanislav Sedov <tr> 1392ae771770SStanislav Sedov <td></td> 1393ae771770SStanislav Sedov <td>)</td> 1394ae771770SStanislav Sedov <td></td><td></td><td></td> 1395ae771770SStanislav Sedov </tr> 1396ae771770SStanislav Sedov </table> 1397ae771770SStanislav Sedov</div> 1398ae771770SStanislav Sedov<div class="memdoc"> 1399ae771770SStanislav Sedov 1400ae771770SStanislav Sedov<p> 1401ae771770SStanislav SedovVerify that the certificate is allowed to be used for the hostname and address.<p> 1402ae771770SStanislav Sedov<dl compact><dt><b>Parameters:</b></dt><dd> 1403ae771770SStanislav Sedov <table border="0" cellspacing="2" cellpadding="0"> 1404ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1405ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>the certificate to match with </td></tr> 1406ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>Flags to modify the behavior:<ul> 1407ae771770SStanislav Sedov<li>HX509_VHN_F_ALLOW_NO_MATCH no match is ok </li></ul> 1408ae771770SStanislav Sedov</td></tr> 1409ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type of hostname:<ul> 1410ae771770SStanislav Sedov<li>HX509_HN_HOSTNAME for plain hostname.</li><li>HX509_HN_DNSSRV for DNS SRV names. </li></ul> 1411ae771770SStanislav Sedov</td></tr> 1412ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>hostname</em> </td><td>the hostname to check </td></tr> 1413ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>sa</em> </td><td>address of the host </td></tr> 1414ae771770SStanislav Sedov <tr><td valign="top"></td><td valign="top"><em>sa_size</em> </td><td>length of address</td></tr> 1415ae771770SStanislav Sedov </table> 1416ae771770SStanislav Sedov</dl> 1417ae771770SStanislav Sedov<dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 1418ae771770SStanislav Sedov 1419ae771770SStanislav Sedov</div> 1420ae771770SStanislav Sedov</div><p> 1421ae771770SStanislav Sedov</div> 1422ae771770SStanislav Sedov<hr size="1"><address style="text-align: right;"><small> 1423*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> 1424ae771770SStanislav Sedov</body> 1425ae771770SStanislav Sedov</html> 1426