1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3<title>hx509 verification functions</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5<link href="tabs.css" rel="stylesheet" type="text/css"> 6</head><body> 7<p> 8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9</p> 10<!-- end of header marker --> 11<!-- Generated by Doxygen 1.9.1 --> 12<script type="text/javascript" src="menudata.js"></script> 13<script type="text/javascript" src="menu.js"></script> 14<script type="text/javascript"> 15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 16$(function() { 17 initMenu('',false,false,'search.php','Search'); 18}); 19/* @license-end */</script> 20<div id="main-nav"></div> 21</div><!-- top --> 22<div class="header"> 23 <div class="summary"> 24<a href="#func-members">Functions</a> </div> 25 <div class="headertitle"> 26<div class="title">hx509 verification functions</div> </div> 27</div><!--header--> 28<div class="contents"> 29<table class="memberdecls"> 30<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 31Functions</h2></td></tr> 32<tr class="memitem:gacf53ef0c8202b75d946b47266e4777da"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gacf53ef0c8202b75d946b47266e4777da">hx509_context_set_missing_revoke</a> (hx509_context context, int flag)</td></tr> 33<tr class="separator:gacf53ef0c8202b75d946b47266e4777da"><td class="memSeparator" colspan="2"> </td></tr> 34<tr class="memitem:ga53a78d7c374e238354600b754f8ef4c7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga53a78d7c374e238354600b754f8ef4c7">hx509_verify_init_ctx</a> (hx509_context context, hx509_verify_ctx *ctx)</td></tr> 35<tr class="separator:ga53a78d7c374e238354600b754f8ef4c7"><td class="memSeparator" colspan="2"> </td></tr> 36<tr class="memitem:gaa90ca3387075fbdf3ae014beda0b4108"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gaa90ca3387075fbdf3ae014beda0b4108">hx509_verify_destroy_ctx</a> (hx509_verify_ctx ctx)</td></tr> 37<tr class="separator:gaa90ca3387075fbdf3ae014beda0b4108"><td class="memSeparator" colspan="2"> </td></tr> 38<tr class="memitem:gaacc284cfe15ebfd4372aa0725d24e8a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gaacc284cfe15ebfd4372aa0725d24e8a0">hx509_verify_attach_anchors</a> (hx509_verify_ctx ctx, hx509_certs set)</td></tr> 39<tr class="separator:gaacc284cfe15ebfd4372aa0725d24e8a0"><td class="memSeparator" colspan="2"> </td></tr> 40<tr class="memitem:gaaf1e783c744e3ce3918d7c00f101f1fc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gaaf1e783c744e3ce3918d7c00f101f1fc">hx509_verify_attach_revoke</a> (hx509_verify_ctx ctx, hx509_revoke_ctx revoke_ctx)</td></tr> 41<tr class="separator:gaaf1e783c744e3ce3918d7c00f101f1fc"><td class="memSeparator" colspan="2"> </td></tr> 42<tr class="memitem:ga1490c2944163f25cf02377bae5d0ab37"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga1490c2944163f25cf02377bae5d0ab37">hx509_verify_set_time</a> (hx509_verify_ctx ctx, time_t t)</td></tr> 43<tr class="separator:ga1490c2944163f25cf02377bae5d0ab37"><td class="memSeparator" colspan="2"> </td></tr> 44<tr class="memitem:ga11a6fe7afbd5cee1af2dedeffcaad33c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga11a6fe7afbd5cee1af2dedeffcaad33c">hx509_verify_set_max_depth</a> (hx509_verify_ctx ctx, unsigned int max_depth)</td></tr> 45<tr class="separator:ga11a6fe7afbd5cee1af2dedeffcaad33c"><td class="memSeparator" colspan="2"> </td></tr> 46<tr class="memitem:ga50cae1e3d318471ff444770cfec4b0a8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga50cae1e3d318471ff444770cfec4b0a8">hx509_verify_set_proxy_certificate</a> (hx509_verify_ctx ctx, int boolean)</td></tr> 47<tr class="separator:ga50cae1e3d318471ff444770cfec4b0a8"><td class="memSeparator" colspan="2"> </td></tr> 48<tr class="memitem:ga7c301cedab40be9a495dea2778202140"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga7c301cedab40be9a495dea2778202140">hx509_verify_set_strict_rfc3280_verification</a> (hx509_verify_ctx ctx, int boolean)</td></tr> 49<tr class="separator:ga7c301cedab40be9a495dea2778202140"><td class="memSeparator" colspan="2"> </td></tr> 50<tr class="memitem:ga1e84c0d08972e2dd87ba89f105183914"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga1e84c0d08972e2dd87ba89f105183914">hx509_verify_path</a> (hx509_context context, hx509_verify_ctx ctx, hx509_cert cert, hx509_certs pool)</td></tr> 51<tr class="separator:ga1e84c0d08972e2dd87ba89f105183914"><td class="memSeparator" colspan="2"> </td></tr> 52<tr class="memitem:gae7e5973c6c9a66d599c44d9473ade82a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gae7e5973c6c9a66d599c44d9473ade82a">hx509_ocsp_verify</a> (hx509_context context, time_t now, hx509_cert cert, int flags, const void *data, size_t length, time_t *expiration)</td></tr> 53<tr class="separator:gae7e5973c6c9a66d599c44d9473ade82a"><td class="memSeparator" colspan="2"> </td></tr> 54<tr class="memitem:ga8b46fa446893a189808deabc2bc630d1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga8b46fa446893a189808deabc2bc630d1">hx509_crl_alloc</a> (hx509_context context, hx509_crl *crl)</td></tr> 55<tr class="separator:ga8b46fa446893a189808deabc2bc630d1"><td class="memSeparator" colspan="2"> </td></tr> 56<tr class="memitem:ga51a77209dd8f88e8ca52ad618dc62fe6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga51a77209dd8f88e8ca52ad618dc62fe6">hx509_crl_add_revoked_certs</a> (hx509_context context, hx509_crl crl, hx509_certs certs)</td></tr> 57<tr class="separator:ga51a77209dd8f88e8ca52ad618dc62fe6"><td class="memSeparator" colspan="2"> </td></tr> 58<tr class="memitem:gaaff0e82873a480d002cc7f1b69f430e8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gaaff0e82873a480d002cc7f1b69f430e8">hx509_crl_lifetime</a> (hx509_context context, hx509_crl crl, int delta)</td></tr> 59<tr class="separator:gaaff0e82873a480d002cc7f1b69f430e8"><td class="memSeparator" colspan="2"> </td></tr> 60<tr class="memitem:gab59b054be16d4607aed4001ee071ecb6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#gab59b054be16d4607aed4001ee071ecb6">hx509_crl_free</a> (hx509_context context, hx509_crl *crl)</td></tr> 61<tr class="separator:gab59b054be16d4607aed4001ee071ecb6"><td class="memSeparator" colspan="2"> </td></tr> 62<tr class="memitem:ga7361cfd5f3b413ea4715977fae210760"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__verify.html#ga7361cfd5f3b413ea4715977fae210760">hx509_crl_sign</a> (hx509_context context, hx509_cert signer, hx509_crl crl, heim_octet_string *os)</td></tr> 63<tr class="separator:ga7361cfd5f3b413ea4715977fae210760"><td class="memSeparator" colspan="2"> </td></tr> 64</table> 65<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 66<h2 class="groupheader">Function Documentation</h2> 67<a id="gacf53ef0c8202b75d946b47266e4777da"></a> 68<h2 class="memtitle"><span class="permalink"><a href="#gacf53ef0c8202b75d946b47266e4777da">◆ </a></span>hx509_context_set_missing_revoke()</h2> 69 70<div class="memitem"> 71<div class="memproto"> 72 <table class="memname"> 73 <tr> 74 <td class="memname">void hx509_context_set_missing_revoke </td> 75 <td>(</td> 76 <td class="paramtype">hx509_context </td> 77 <td class="paramname"><em>context</em>, </td> 78 </tr> 79 <tr> 80 <td class="paramkey"></td> 81 <td></td> 82 <td class="paramtype">int </td> 83 <td class="paramname"><em>flag</em> </td> 84 </tr> 85 <tr> 86 <td></td> 87 <td>)</td> 88 <td></td><td></td> 89 </tr> 90 </table> 91</div><div class="memdoc"> 92<p>Selects if the <a class="el" href="group__hx509__revoke.html#ga3faf6194dc7429f8850e02b3ae2bbeeb">hx509_revoke_verify()</a> function is going to require the existans of a revokation method (OCSP, CRL) or not. Note that <a class="el" href="group__hx509__verify.html#ga1e84c0d08972e2dd87ba89f105183914">hx509_verify_path()</a>, <a class="el" href="group__hx509__cms.html#gaedaf18507474021a8d092ca6ac90a1ad">hx509_cms_verify_signed()</a>, and other function call <a class="el" href="group__hx509__revoke.html#ga3faf6194dc7429f8850e02b3ae2bbeeb">hx509_revoke_verify()</a>.</p> 93<dl class="params"><dt>Parameters</dt><dd> 94 <table class="params"> 95 <tr><td class="paramname">context</td><td>hx509 context to change the flag for. </td></tr> 96 <tr><td class="paramname">flag</td><td>zero, revokation method required, non zero missing revokation method ok </td></tr> 97 </table> 98 </dd> 99</dl> 100 101</div> 102</div> 103<a id="ga51a77209dd8f88e8ca52ad618dc62fe6"></a> 104<h2 class="memtitle"><span class="permalink"><a href="#ga51a77209dd8f88e8ca52ad618dc62fe6">◆ </a></span>hx509_crl_add_revoked_certs()</h2> 105 106<div class="memitem"> 107<div class="memproto"> 108 <table class="memname"> 109 <tr> 110 <td class="memname">int hx509_crl_add_revoked_certs </td> 111 <td>(</td> 112 <td class="paramtype">hx509_context </td> 113 <td class="paramname"><em>context</em>, </td> 114 </tr> 115 <tr> 116 <td class="paramkey"></td> 117 <td></td> 118 <td class="paramtype">hx509_crl </td> 119 <td class="paramname"><em>crl</em>, </td> 120 </tr> 121 <tr> 122 <td class="paramkey"></td> 123 <td></td> 124 <td class="paramtype">hx509_certs </td> 125 <td class="paramname"><em>certs</em> </td> 126 </tr> 127 <tr> 128 <td></td> 129 <td>)</td> 130 <td></td><td></td> 131 </tr> 132 </table> 133</div><div class="memdoc"> 134<p>Add revoked certificate to an CRL context.</p> 135<dl class="params"><dt>Parameters</dt><dd> 136 <table class="params"> 137 <tr><td class="paramname">context</td><td>a hx509 context. </td></tr> 138 <tr><td class="paramname">crl</td><td>the CRL to add the revoked certificate to. </td></tr> 139 <tr><td class="paramname">certs</td><td>keyset of certificate to revoke.</td></tr> 140 </table> 141 </dd> 142</dl> 143<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 144 145</div> 146</div> 147<a id="ga8b46fa446893a189808deabc2bc630d1"></a> 148<h2 class="memtitle"><span class="permalink"><a href="#ga8b46fa446893a189808deabc2bc630d1">◆ </a></span>hx509_crl_alloc()</h2> 149 150<div class="memitem"> 151<div class="memproto"> 152 <table class="memname"> 153 <tr> 154 <td class="memname">int hx509_crl_alloc </td> 155 <td>(</td> 156 <td class="paramtype">hx509_context </td> 157 <td class="paramname"><em>context</em>, </td> 158 </tr> 159 <tr> 160 <td class="paramkey"></td> 161 <td></td> 162 <td class="paramtype">hx509_crl * </td> 163 <td class="paramname"><em>crl</em> </td> 164 </tr> 165 <tr> 166 <td></td> 167 <td>)</td> 168 <td></td><td></td> 169 </tr> 170 </table> 171</div><div class="memdoc"> 172<p>Create a CRL context. Use <a class="el" href="group__hx509__verify.html#gab59b054be16d4607aed4001ee071ecb6">hx509_crl_free()</a> to free the CRL context.</p> 173<dl class="params"><dt>Parameters</dt><dd> 174 <table class="params"> 175 <tr><td class="paramname">context</td><td>a hx509 context. </td></tr> 176 <tr><td class="paramname">crl</td><td>return pointer to a newly allocated CRL context.</td></tr> 177 </table> 178 </dd> 179</dl> 180<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 181 182</div> 183</div> 184<a id="gab59b054be16d4607aed4001ee071ecb6"></a> 185<h2 class="memtitle"><span class="permalink"><a href="#gab59b054be16d4607aed4001ee071ecb6">◆ </a></span>hx509_crl_free()</h2> 186 187<div class="memitem"> 188<div class="memproto"> 189 <table class="memname"> 190 <tr> 191 <td class="memname">void hx509_crl_free </td> 192 <td>(</td> 193 <td class="paramtype">hx509_context </td> 194 <td class="paramname"><em>context</em>, </td> 195 </tr> 196 <tr> 197 <td class="paramkey"></td> 198 <td></td> 199 <td class="paramtype">hx509_crl * </td> 200 <td class="paramname"><em>crl</em> </td> 201 </tr> 202 <tr> 203 <td></td> 204 <td>)</td> 205 <td></td><td></td> 206 </tr> 207 </table> 208</div><div class="memdoc"> 209<p>Free a CRL context.</p> 210<dl class="params"><dt>Parameters</dt><dd> 211 <table class="params"> 212 <tr><td class="paramname">context</td><td>a hx509 context. </td></tr> 213 <tr><td class="paramname">crl</td><td>a CRL context to free. </td></tr> 214 </table> 215 </dd> 216</dl> 217 218</div> 219</div> 220<a id="gaaff0e82873a480d002cc7f1b69f430e8"></a> 221<h2 class="memtitle"><span class="permalink"><a href="#gaaff0e82873a480d002cc7f1b69f430e8">◆ </a></span>hx509_crl_lifetime()</h2> 222 223<div class="memitem"> 224<div class="memproto"> 225 <table class="memname"> 226 <tr> 227 <td class="memname">int hx509_crl_lifetime </td> 228 <td>(</td> 229 <td class="paramtype">hx509_context </td> 230 <td class="paramname"><em>context</em>, </td> 231 </tr> 232 <tr> 233 <td class="paramkey"></td> 234 <td></td> 235 <td class="paramtype">hx509_crl </td> 236 <td class="paramname"><em>crl</em>, </td> 237 </tr> 238 <tr> 239 <td class="paramkey"></td> 240 <td></td> 241 <td class="paramtype">int </td> 242 <td class="paramname"><em>delta</em> </td> 243 </tr> 244 <tr> 245 <td></td> 246 <td>)</td> 247 <td></td><td></td> 248 </tr> 249 </table> 250</div><div class="memdoc"> 251<p>Set the lifetime of a CRL context.</p> 252<dl class="params"><dt>Parameters</dt><dd> 253 <table class="params"> 254 <tr><td class="paramname">context</td><td>a hx509 context. </td></tr> 255 <tr><td class="paramname">crl</td><td>a CRL context </td></tr> 256 <tr><td class="paramname">delta</td><td>delta time the certificate is valid, library adds the current time to this.</td></tr> 257 </table> 258 </dd> 259</dl> 260<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 261 262</div> 263</div> 264<a id="ga7361cfd5f3b413ea4715977fae210760"></a> 265<h2 class="memtitle"><span class="permalink"><a href="#ga7361cfd5f3b413ea4715977fae210760">◆ </a></span>hx509_crl_sign()</h2> 266 267<div class="memitem"> 268<div class="memproto"> 269 <table class="memname"> 270 <tr> 271 <td class="memname">int hx509_crl_sign </td> 272 <td>(</td> 273 <td class="paramtype">hx509_context </td> 274 <td class="paramname"><em>context</em>, </td> 275 </tr> 276 <tr> 277 <td class="paramkey"></td> 278 <td></td> 279 <td class="paramtype">hx509_cert </td> 280 <td class="paramname"><em>signer</em>, </td> 281 </tr> 282 <tr> 283 <td class="paramkey"></td> 284 <td></td> 285 <td class="paramtype">hx509_crl </td> 286 <td class="paramname"><em>crl</em>, </td> 287 </tr> 288 <tr> 289 <td class="paramkey"></td> 290 <td></td> 291 <td class="paramtype">heim_octet_string * </td> 292 <td class="paramname"><em>os</em> </td> 293 </tr> 294 <tr> 295 <td></td> 296 <td>)</td> 297 <td></td><td></td> 298 </tr> 299 </table> 300</div><div class="memdoc"> 301<p>Sign a CRL and return an encode certificate.</p> 302<dl class="params"><dt>Parameters</dt><dd> 303 <table class="params"> 304 <tr><td class="paramname">context</td><td>a hx509 context. </td></tr> 305 <tr><td class="paramname">signer</td><td>certificate to sign the CRL with </td></tr> 306 <tr><td class="paramname">crl</td><td>the CRL to sign </td></tr> 307 <tr><td class="paramname">os</td><td>return the signed and encoded CRL, free with free_heim_octet_string()</td></tr> 308 </table> 309 </dd> 310</dl> 311<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 312 313</div> 314</div> 315<a id="gae7e5973c6c9a66d599c44d9473ade82a"></a> 316<h2 class="memtitle"><span class="permalink"><a href="#gae7e5973c6c9a66d599c44d9473ade82a">◆ </a></span>hx509_ocsp_verify()</h2> 317 318<div class="memitem"> 319<div class="memproto"> 320 <table class="memname"> 321 <tr> 322 <td class="memname">int hx509_ocsp_verify </td> 323 <td>(</td> 324 <td class="paramtype">hx509_context </td> 325 <td class="paramname"><em>context</em>, </td> 326 </tr> 327 <tr> 328 <td class="paramkey"></td> 329 <td></td> 330 <td class="paramtype">time_t </td> 331 <td class="paramname"><em>now</em>, </td> 332 </tr> 333 <tr> 334 <td class="paramkey"></td> 335 <td></td> 336 <td class="paramtype">hx509_cert </td> 337 <td class="paramname"><em>cert</em>, </td> 338 </tr> 339 <tr> 340 <td class="paramkey"></td> 341 <td></td> 342 <td class="paramtype">int </td> 343 <td class="paramname"><em>flags</em>, </td> 344 </tr> 345 <tr> 346 <td class="paramkey"></td> 347 <td></td> 348 <td class="paramtype">const void * </td> 349 <td class="paramname"><em>data</em>, </td> 350 </tr> 351 <tr> 352 <td class="paramkey"></td> 353 <td></td> 354 <td class="paramtype">size_t </td> 355 <td class="paramname"><em>length</em>, </td> 356 </tr> 357 <tr> 358 <td class="paramkey"></td> 359 <td></td> 360 <td class="paramtype">time_t * </td> 361 <td class="paramname"><em>expiration</em> </td> 362 </tr> 363 <tr> 364 <td></td> 365 <td>)</td> 366 <td></td><td></td> 367 </tr> 368 </table> 369</div><div class="memdoc"> 370<p>Verify that the certificate is part of the OCSP reply and it's not expired. Doesn't verify signature the OCSP reply or it's done by a authorized sender, that is assumed to be already done.</p> 371<dl class="params"><dt>Parameters</dt><dd> 372 <table class="params"> 373 <tr><td class="paramname">context</td><td>a hx509 context </td></tr> 374 <tr><td class="paramname">now</td><td>the time right now, if 0, use the current time. </td></tr> 375 <tr><td class="paramname">cert</td><td>the certificate to verify </td></tr> 376 <tr><td class="paramname">flags</td><td>flags control the behavior </td></tr> 377 <tr><td class="paramname">data</td><td>pointer to the encode ocsp reply </td></tr> 378 <tr><td class="paramname">length</td><td>the length of the encode ocsp reply </td></tr> 379 <tr><td class="paramname">expiration</td><td>return the time the OCSP will expire and need to be rechecked.</td></tr> 380 </table> 381 </dd> 382</dl> 383<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 384 385</div> 386</div> 387<a id="gaacc284cfe15ebfd4372aa0725d24e8a0"></a> 388<h2 class="memtitle"><span class="permalink"><a href="#gaacc284cfe15ebfd4372aa0725d24e8a0">◆ </a></span>hx509_verify_attach_anchors()</h2> 389 390<div class="memitem"> 391<div class="memproto"> 392 <table class="memname"> 393 <tr> 394 <td class="memname">void hx509_verify_attach_anchors </td> 395 <td>(</td> 396 <td class="paramtype">hx509_verify_ctx </td> 397 <td class="paramname"><em>ctx</em>, </td> 398 </tr> 399 <tr> 400 <td class="paramkey"></td> 401 <td></td> 402 <td class="paramtype">hx509_certs </td> 403 <td class="paramname"><em>set</em> </td> 404 </tr> 405 <tr> 406 <td></td> 407 <td>)</td> 408 <td></td><td></td> 409 </tr> 410 </table> 411</div><div class="memdoc"> 412<p>Set the trust anchors in the verification context, makes an reference to the keyset, so the consumer can free the keyset independent of the destruction of the verification context (ctx). If there already is a keyset attached, it's released.</p> 413<dl class="params"><dt>Parameters</dt><dd> 414 <table class="params"> 415 <tr><td class="paramname">ctx</td><td>a verification context </td></tr> 416 <tr><td class="paramname">set</td><td>a keyset containing the trust anchors. </td></tr> 417 </table> 418 </dd> 419</dl> 420 421</div> 422</div> 423<a id="gaaf1e783c744e3ce3918d7c00f101f1fc"></a> 424<h2 class="memtitle"><span class="permalink"><a href="#gaaf1e783c744e3ce3918d7c00f101f1fc">◆ </a></span>hx509_verify_attach_revoke()</h2> 425 426<div class="memitem"> 427<div class="memproto"> 428 <table class="memname"> 429 <tr> 430 <td class="memname">void hx509_verify_attach_revoke </td> 431 <td>(</td> 432 <td class="paramtype">hx509_verify_ctx </td> 433 <td class="paramname"><em>ctx</em>, </td> 434 </tr> 435 <tr> 436 <td class="paramkey"></td> 437 <td></td> 438 <td class="paramtype">hx509_revoke_ctx </td> 439 <td class="paramname"><em>revoke_ctx</em> </td> 440 </tr> 441 <tr> 442 <td></td> 443 <td>)</td> 444 <td></td><td></td> 445 </tr> 446 </table> 447</div><div class="memdoc"> 448<p>Attach an revocation context to the verfication context, , makes an reference to the revoke context, so the consumer can free the revoke context independent of the destruction of the verification context. If there is no revoke context, the verification process is NOT going to check any verification status.</p> 449<dl class="params"><dt>Parameters</dt><dd> 450 <table class="params"> 451 <tr><td class="paramname">ctx</td><td>a verification context. </td></tr> 452 <tr><td class="paramname">revoke_ctx</td><td>a revoke context. </td></tr> 453 </table> 454 </dd> 455</dl> 456 457</div> 458</div> 459<a id="gaa90ca3387075fbdf3ae014beda0b4108"></a> 460<h2 class="memtitle"><span class="permalink"><a href="#gaa90ca3387075fbdf3ae014beda0b4108">◆ </a></span>hx509_verify_destroy_ctx()</h2> 461 462<div class="memitem"> 463<div class="memproto"> 464 <table class="memname"> 465 <tr> 466 <td class="memname">void hx509_verify_destroy_ctx </td> 467 <td>(</td> 468 <td class="paramtype">hx509_verify_ctx </td> 469 <td class="paramname"><em>ctx</em></td><td>)</td> 470 <td></td> 471 </tr> 472 </table> 473</div><div class="memdoc"> 474<p>Free an hx509 verification context.</p> 475<dl class="params"><dt>Parameters</dt><dd> 476 <table class="params"> 477 <tr><td class="paramname">ctx</td><td>the context to be freed. </td></tr> 478 </table> 479 </dd> 480</dl> 481 482</div> 483</div> 484<a id="ga53a78d7c374e238354600b754f8ef4c7"></a> 485<h2 class="memtitle"><span class="permalink"><a href="#ga53a78d7c374e238354600b754f8ef4c7">◆ </a></span>hx509_verify_init_ctx()</h2> 486 487<div class="memitem"> 488<div class="memproto"> 489 <table class="memname"> 490 <tr> 491 <td class="memname">int hx509_verify_init_ctx </td> 492 <td>(</td> 493 <td class="paramtype">hx509_context </td> 494 <td class="paramname"><em>context</em>, </td> 495 </tr> 496 <tr> 497 <td class="paramkey"></td> 498 <td></td> 499 <td class="paramtype">hx509_verify_ctx * </td> 500 <td class="paramname"><em>ctx</em> </td> 501 </tr> 502 <tr> 503 <td></td> 504 <td>)</td> 505 <td></td><td></td> 506 </tr> 507 </table> 508</div><div class="memdoc"> 509<p>Allocate an verification context that is used fo control the verification process.</p> 510<dl class="params"><dt>Parameters</dt><dd> 511 <table class="params"> 512 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 513 <tr><td class="paramname">ctx</td><td>returns a pointer to a hx509_verify_ctx object.</td></tr> 514 </table> 515 </dd> 516</dl> 517<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 518 519</div> 520</div> 521<a id="ga1e84c0d08972e2dd87ba89f105183914"></a> 522<h2 class="memtitle"><span class="permalink"><a href="#ga1e84c0d08972e2dd87ba89f105183914">◆ </a></span>hx509_verify_path()</h2> 523 524<div class="memitem"> 525<div class="memproto"> 526 <table class="memname"> 527 <tr> 528 <td class="memname">int hx509_verify_path </td> 529 <td>(</td> 530 <td class="paramtype">hx509_context </td> 531 <td class="paramname"><em>context</em>, </td> 532 </tr> 533 <tr> 534 <td class="paramkey"></td> 535 <td></td> 536 <td class="paramtype">hx509_verify_ctx </td> 537 <td class="paramname"><em>ctx</em>, </td> 538 </tr> 539 <tr> 540 <td class="paramkey"></td> 541 <td></td> 542 <td class="paramtype">hx509_cert </td> 543 <td class="paramname"><em>cert</em>, </td> 544 </tr> 545 <tr> 546 <td class="paramkey"></td> 547 <td></td> 548 <td class="paramtype">hx509_certs </td> 549 <td class="paramname"><em>pool</em> </td> 550 </tr> 551 <tr> 552 <td></td> 553 <td>)</td> 554 <td></td><td></td> 555 </tr> 556 </table> 557</div><div class="memdoc"> 558<p>Build and verify the path for the certificate to the trust anchor specified in the verify context. The path is constructed from the certificate, the pool and the trust anchors.</p> 559<dl class="params"><dt>Parameters</dt><dd> 560 <table class="params"> 561 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 562 <tr><td class="paramname">ctx</td><td>A hx509 verification context. </td></tr> 563 <tr><td class="paramname">cert</td><td>the certificate to build the path from. </td></tr> 564 <tr><td class="paramname">pool</td><td>A keyset of certificates to build the chain from.</td></tr> 565 </table> 566 </dd> 567</dl> 568<dl class="section return"><dt>Returns</dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#ga15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl> 569 570</div> 571</div> 572<a id="ga11a6fe7afbd5cee1af2dedeffcaad33c"></a> 573<h2 class="memtitle"><span class="permalink"><a href="#ga11a6fe7afbd5cee1af2dedeffcaad33c">◆ </a></span>hx509_verify_set_max_depth()</h2> 574 575<div class="memitem"> 576<div class="memproto"> 577 <table class="memname"> 578 <tr> 579 <td class="memname">void hx509_verify_set_max_depth </td> 580 <td>(</td> 581 <td class="paramtype">hx509_verify_ctx </td> 582 <td class="paramname"><em>ctx</em>, </td> 583 </tr> 584 <tr> 585 <td class="paramkey"></td> 586 <td></td> 587 <td class="paramtype">unsigned int </td> 588 <td class="paramname"><em>max_depth</em> </td> 589 </tr> 590 <tr> 591 <td></td> 592 <td>)</td> 593 <td></td><td></td> 594 </tr> 595 </table> 596</div><div class="memdoc"> 597<p>Set the maximum depth of the certificate chain that the path builder is going to try.</p> 598<dl class="params"><dt>Parameters</dt><dd> 599 <table class="params"> 600 <tr><td class="paramname">ctx</td><td>a verification context </td></tr> 601 <tr><td class="paramname">max_depth</td><td>maxium depth of the certificate chain, include trust anchor. </td></tr> 602 </table> 603 </dd> 604</dl> 605 606</div> 607</div> 608<a id="ga50cae1e3d318471ff444770cfec4b0a8"></a> 609<h2 class="memtitle"><span class="permalink"><a href="#ga50cae1e3d318471ff444770cfec4b0a8">◆ </a></span>hx509_verify_set_proxy_certificate()</h2> 610 611<div class="memitem"> 612<div class="memproto"> 613 <table class="memname"> 614 <tr> 615 <td class="memname">void hx509_verify_set_proxy_certificate </td> 616 <td>(</td> 617 <td class="paramtype">hx509_verify_ctx </td> 618 <td class="paramname"><em>ctx</em>, </td> 619 </tr> 620 <tr> 621 <td class="paramkey"></td> 622 <td></td> 623 <td class="paramtype">int </td> 624 <td class="paramname"><em>boolean</em> </td> 625 </tr> 626 <tr> 627 <td></td> 628 <td>)</td> 629 <td></td><td></td> 630 </tr> 631 </table> 632</div><div class="memdoc"> 633<p>Allow or deny the use of proxy certificates</p> 634<dl class="params"><dt>Parameters</dt><dd> 635 <table class="params"> 636 <tr><td class="paramname">ctx</td><td>a verification context </td></tr> 637 <tr><td class="paramname">boolean</td><td>if non zero, allow proxy certificates. </td></tr> 638 </table> 639 </dd> 640</dl> 641 642</div> 643</div> 644<a id="ga7c301cedab40be9a495dea2778202140"></a> 645<h2 class="memtitle"><span class="permalink"><a href="#ga7c301cedab40be9a495dea2778202140">◆ </a></span>hx509_verify_set_strict_rfc3280_verification()</h2> 646 647<div class="memitem"> 648<div class="memproto"> 649 <table class="memname"> 650 <tr> 651 <td class="memname">void hx509_verify_set_strict_rfc3280_verification </td> 652 <td>(</td> 653 <td class="paramtype">hx509_verify_ctx </td> 654 <td class="paramname"><em>ctx</em>, </td> 655 </tr> 656 <tr> 657 <td class="paramkey"></td> 658 <td></td> 659 <td class="paramtype">int </td> 660 <td class="paramname"><em>boolean</em> </td> 661 </tr> 662 <tr> 663 <td></td> 664 <td>)</td> 665 <td></td><td></td> 666 </tr> 667 </table> 668</div><div class="memdoc"> 669<p>Select strict RFC3280 verification of certificiates. This means checking key usage on CA certificates, this will make version 1 certificiates unuseable.</p> 670<dl class="params"><dt>Parameters</dt><dd> 671 <table class="params"> 672 <tr><td class="paramname">ctx</td><td>a verification context </td></tr> 673 <tr><td class="paramname">boolean</td><td>if non zero, use strict verification. </td></tr> 674 </table> 675 </dd> 676</dl> 677 678</div> 679</div> 680<a id="ga1490c2944163f25cf02377bae5d0ab37"></a> 681<h2 class="memtitle"><span class="permalink"><a href="#ga1490c2944163f25cf02377bae5d0ab37">◆ </a></span>hx509_verify_set_time()</h2> 682 683<div class="memitem"> 684<div class="memproto"> 685 <table class="memname"> 686 <tr> 687 <td class="memname">void hx509_verify_set_time </td> 688 <td>(</td> 689 <td class="paramtype">hx509_verify_ctx </td> 690 <td class="paramname"><em>ctx</em>, </td> 691 </tr> 692 <tr> 693 <td class="paramkey"></td> 694 <td></td> 695 <td class="paramtype">time_t </td> 696 <td class="paramname"><em>t</em> </td> 697 </tr> 698 <tr> 699 <td></td> 700 <td>)</td> 701 <td></td><td></td> 702 </tr> 703 </table> 704</div><div class="memdoc"> 705<p>Set the clock time the the verification process is going to use. Used to check certificate in the past and future time. If not set the current time will be used.</p> 706<dl class="params"><dt>Parameters</dt><dd> 707 <table class="params"> 708 <tr><td class="paramname">ctx</td><td>a verification context. </td></tr> 709 <tr><td class="paramname">t</td><td>the time the verifiation is using. </td></tr> 710 </table> 711 </dd> 712</dl> 713 714</div> 715</div> 716</div><!-- contents --> 717<hr size="1"><address style="text-align: right;"><small> 718Generated on Tue Nov 15 2022 14:04:25 for Heimdal x509 library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address> 719</body> 720</html> 721