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 CA 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 CA 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:ga627b48e10d0b3576aec5823d6098ea3a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga627b48e10d0b3576aec5823d6098ea3a">hx509_ca_tbs_init</a> (hx509_context context, hx509_ca_tbs *tbs)</td></tr> 33<tr class="separator:ga627b48e10d0b3576aec5823d6098ea3a"><td class="memSeparator" colspan="2"> </td></tr> 34<tr class="memitem:ga89eef97566653fbbe6ab32b59ea99299"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free</a> (hx509_ca_tbs *tbs)</td></tr> 35<tr class="separator:ga89eef97566653fbbe6ab32b59ea99299"><td class="memSeparator" colspan="2"> </td></tr> 36<tr class="memitem:ga6a124401ceb514cf16cf8e3721234d03"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga6a124401ceb514cf16cf8e3721234d03">hx509_ca_tbs_set_notBefore</a> (hx509_context context, hx509_ca_tbs tbs, time_t t)</td></tr> 37<tr class="separator:ga6a124401ceb514cf16cf8e3721234d03"><td class="memSeparator" colspan="2"> </td></tr> 38<tr class="memitem:gac64ad4daabe3c912be50c2a32af4fe05"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gac64ad4daabe3c912be50c2a32af4fe05">hx509_ca_tbs_set_notAfter</a> (hx509_context context, hx509_ca_tbs tbs, time_t t)</td></tr> 39<tr class="separator:gac64ad4daabe3c912be50c2a32af4fe05"><td class="memSeparator" colspan="2"> </td></tr> 40<tr class="memitem:ga587184eedd56450858eb74cae842f084"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga587184eedd56450858eb74cae842f084">hx509_ca_tbs_set_notAfter_lifetime</a> (hx509_context context, hx509_ca_tbs tbs, time_t delta)</td></tr> 41<tr class="separator:ga587184eedd56450858eb74cae842f084"><td class="memSeparator" colspan="2"> </td></tr> 42<tr class="memitem:gaf805458a31b3ba5731dc432c711aa5c1"><td class="memItemLeft" align="right" valign="top">const struct units * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gaf805458a31b3ba5731dc432c711aa5c1">hx509_ca_tbs_template_units</a> (void)</td></tr> 43<tr class="separator:gaf805458a31b3ba5731dc432c711aa5c1"><td class="memSeparator" colspan="2"> </td></tr> 44<tr class="memitem:ga2d7c245443a81540ff993e7cc6f51ebb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga2d7c245443a81540ff993e7cc6f51ebb">hx509_ca_tbs_set_template</a> (hx509_context context, hx509_ca_tbs tbs, int flags, hx509_cert cert)</td></tr> 45<tr class="separator:ga2d7c245443a81540ff993e7cc6f51ebb"><td class="memSeparator" colspan="2"> </td></tr> 46<tr class="memitem:ga3e105ce23d67234c3b5d35a0752449cf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga3e105ce23d67234c3b5d35a0752449cf">hx509_ca_tbs_set_ca</a> (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)</td></tr> 47<tr class="separator:ga3e105ce23d67234c3b5d35a0752449cf"><td class="memSeparator" colspan="2"> </td></tr> 48<tr class="memitem:ga215241c575ae3296e137f155a0a4dd6e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga215241c575ae3296e137f155a0a4dd6e">hx509_ca_tbs_set_proxy</a> (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)</td></tr> 49<tr class="separator:ga215241c575ae3296e137f155a0a4dd6e"><td class="memSeparator" colspan="2"> </td></tr> 50<tr class="memitem:gae41a6e44a39c95e6c29376985f0b39b0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gae41a6e44a39c95e6c29376985f0b39b0">hx509_ca_tbs_set_domaincontroller</a> (hx509_context context, hx509_ca_tbs tbs)</td></tr> 51<tr class="separator:gae41a6e44a39c95e6c29376985f0b39b0"><td class="memSeparator" colspan="2"> </td></tr> 52<tr class="memitem:gae12bfa65cf1112bf3181a5499e8f7ba6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gae12bfa65cf1112bf3181a5499e8f7ba6">hx509_ca_tbs_set_spki</a> (hx509_context context, hx509_ca_tbs tbs, const SubjectPublicKeyInfo *spki)</td></tr> 53<tr class="separator:gae12bfa65cf1112bf3181a5499e8f7ba6"><td class="memSeparator" colspan="2"> </td></tr> 54<tr class="memitem:ga3f611617f0001575b723a4a9c0d9b3ca"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga3f611617f0001575b723a4a9c0d9b3ca">hx509_ca_tbs_set_serialnumber</a> (hx509_context context, hx509_ca_tbs tbs, const heim_integer *serialNumber)</td></tr> 55<tr class="separator:ga3f611617f0001575b723a4a9c0d9b3ca"><td class="memSeparator" colspan="2"> </td></tr> 56<tr class="memitem:ga4d26e70019741e516dc92158914cd414"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga4d26e70019741e516dc92158914cd414">hx509_ca_tbs_add_eku</a> (hx509_context context, hx509_ca_tbs tbs, const heim_oid *oid)</td></tr> 57<tr class="separator:ga4d26e70019741e516dc92158914cd414"><td class="memSeparator" colspan="2"> </td></tr> 58<tr class="memitem:ga8c5b557c63342686630b62239396b96a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga8c5b557c63342686630b62239396b96a">hx509_ca_tbs_add_crl_dp_uri</a> (hx509_context context, hx509_ca_tbs tbs, const char *uri, hx509_name issuername)</td></tr> 59<tr class="separator:ga8c5b557c63342686630b62239396b96a"><td class="memSeparator" colspan="2"> </td></tr> 60<tr class="memitem:ga8e938c9e9b1fea29e5bf77a2824891e2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga8e938c9e9b1fea29e5bf77a2824891e2">hx509_ca_tbs_add_san_otherName</a> (hx509_context context, hx509_ca_tbs tbs, const heim_oid *oid, const heim_octet_string *os)</td></tr> 61<tr class="separator:ga8e938c9e9b1fea29e5bf77a2824891e2"><td class="memSeparator" colspan="2"> </td></tr> 62<tr class="memitem:gaede019208dbf7ad49cd077951887c4c3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gaede019208dbf7ad49cd077951887c4c3">hx509_ca_tbs_add_san_pkinit</a> (hx509_context context, hx509_ca_tbs tbs, const char *principal)</td></tr> 63<tr class="separator:gaede019208dbf7ad49cd077951887c4c3"><td class="memSeparator" colspan="2"> </td></tr> 64<tr class="memitem:gabc4f3398499094a859fbceb769ba5051"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gabc4f3398499094a859fbceb769ba5051">hx509_ca_tbs_add_san_ms_upn</a> (hx509_context context, hx509_ca_tbs tbs, const char *principal)</td></tr> 65<tr class="separator:gabc4f3398499094a859fbceb769ba5051"><td class="memSeparator" colspan="2"> </td></tr> 66<tr class="memitem:ga6286a0d6f375949301d62215184e7275"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga6286a0d6f375949301d62215184e7275">hx509_ca_tbs_add_san_jid</a> (hx509_context context, hx509_ca_tbs tbs, const char *jid)</td></tr> 67<tr class="separator:ga6286a0d6f375949301d62215184e7275"><td class="memSeparator" colspan="2"> </td></tr> 68<tr class="memitem:ga3f4c23c964ef2331b45f80fb5355ede7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga3f4c23c964ef2331b45f80fb5355ede7">hx509_ca_tbs_add_san_hostname</a> (hx509_context context, hx509_ca_tbs tbs, const char *dnsname)</td></tr> 69<tr class="separator:ga3f4c23c964ef2331b45f80fb5355ede7"><td class="memSeparator" colspan="2"> </td></tr> 70<tr class="memitem:gaf621ee0bac71f4ee09881812f4c4d196"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gaf621ee0bac71f4ee09881812f4c4d196">hx509_ca_tbs_add_san_rfc822name</a> (hx509_context context, hx509_ca_tbs tbs, const char *rfc822Name)</td></tr> 71<tr class="separator:gaf621ee0bac71f4ee09881812f4c4d196"><td class="memSeparator" colspan="2"> </td></tr> 72<tr class="memitem:ga9e8cf374812308654e3d7270afb59da1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga9e8cf374812308654e3d7270afb59da1">hx509_ca_tbs_set_subject</a> (hx509_context context, hx509_ca_tbs tbs, hx509_name subject)</td></tr> 73<tr class="separator:ga9e8cf374812308654e3d7270afb59da1"><td class="memSeparator" colspan="2"> </td></tr> 74<tr class="memitem:gae22ea3d0201845dbc73f4b21502face6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gae22ea3d0201845dbc73f4b21502face6">hx509_ca_tbs_set_unique</a> (hx509_context context, hx509_ca_tbs tbs, const heim_bit_string *subjectUniqueID, const heim_bit_string *issuerUniqueID)</td></tr> 75<tr class="separator:gae22ea3d0201845dbc73f4b21502face6"><td class="memSeparator" colspan="2"> </td></tr> 76<tr class="memitem:ga36432d6249ee668196a692c7286d09ce"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga36432d6249ee668196a692c7286d09ce">hx509_ca_tbs_subject_expand</a> (hx509_context context, hx509_ca_tbs tbs, hx509_env env)</td></tr> 77<tr class="separator:ga36432d6249ee668196a692c7286d09ce"><td class="memSeparator" colspan="2"> </td></tr> 78<tr class="memitem:ga4a0a95e3af51c1a1851b1d6b92c20662"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga4a0a95e3af51c1a1851b1d6b92c20662">hx509_ca_tbs_set_signature_algorithm</a> (hx509_context context, hx509_ca_tbs tbs, const AlgorithmIdentifier *sigalg)</td></tr> 79<tr class="separator:ga4a0a95e3af51c1a1851b1d6b92c20662"><td class="memSeparator" colspan="2"> </td></tr> 80<tr class="memitem:ga3f0ff00b9c54018e346eed759b25ae16"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga3f0ff00b9c54018e346eed759b25ae16">hx509_ca_sign</a> (hx509_context context, hx509_ca_tbs tbs, hx509_cert signer, hx509_cert *certificate)</td></tr> 81<tr class="separator:ga3f0ff00b9c54018e346eed759b25ae16"><td class="memSeparator" colspan="2"> </td></tr> 82<tr class="memitem:ga310b010421b8a7c169566ef74ce319fb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ga310b010421b8a7c169566ef74ce319fb">hx509_ca_sign_self</a> (hx509_context context, hx509_ca_tbs tbs, hx509_private_key signer, hx509_cert *certificate)</td></tr> 83<tr class="separator:ga310b010421b8a7c169566ef74ce319fb"><td class="memSeparator" colspan="2"> </td></tr> 84</table> 85<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 86<p>See the <a class="el" href="page_ca.html">Hx509 CA functions</a> for description and examples. </p> 87<h2 class="groupheader">Function Documentation</h2> 88<a id="ga3f0ff00b9c54018e346eed759b25ae16"></a> 89<h2 class="memtitle"><span class="permalink"><a href="#ga3f0ff00b9c54018e346eed759b25ae16">◆ </a></span>hx509_ca_sign()</h2> 90 91<div class="memitem"> 92<div class="memproto"> 93 <table class="memname"> 94 <tr> 95 <td class="memname">int hx509_ca_sign </td> 96 <td>(</td> 97 <td class="paramtype">hx509_context </td> 98 <td class="paramname"><em>context</em>, </td> 99 </tr> 100 <tr> 101 <td class="paramkey"></td> 102 <td></td> 103 <td class="paramtype">hx509_ca_tbs </td> 104 <td class="paramname"><em>tbs</em>, </td> 105 </tr> 106 <tr> 107 <td class="paramkey"></td> 108 <td></td> 109 <td class="paramtype">hx509_cert </td> 110 <td class="paramname"><em>signer</em>, </td> 111 </tr> 112 <tr> 113 <td class="paramkey"></td> 114 <td></td> 115 <td class="paramtype">hx509_cert * </td> 116 <td class="paramname"><em>certificate</em> </td> 117 </tr> 118 <tr> 119 <td></td> 120 <td>)</td> 121 <td></td><td></td> 122 </tr> 123 </table> 124</div><div class="memdoc"> 125<p>Sign a to-be-signed certificate object with a issuer certificate.</p> 126<p>The caller needs to at least have called the following functions on the to-be-signed certificate object:</p><ul> 127<li><a class="el" href="group__hx509__ca.html#ga627b48e10d0b3576aec5823d6098ea3a">hx509_ca_tbs_init()</a></li> 128<li><a class="el" href="group__hx509__ca.html#ga9e8cf374812308654e3d7270afb59da1">hx509_ca_tbs_set_subject()</a></li> 129<li><a class="el" href="group__hx509__ca.html#gae12bfa65cf1112bf3181a5499e8f7ba6">hx509_ca_tbs_set_spki()</a></li> 130</ul> 131<p>When done the to-be-signed certificate object should be freed with <a class="el" href="group__hx509__ca.html#ga89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free()</a>.</p> 132<p>When creating self-signed certificate use <a class="el" href="group__hx509__ca.html#ga310b010421b8a7c169566ef74ce319fb">hx509_ca_sign_self()</a> instead.</p> 133<dl class="params"><dt>Parameters</dt><dd> 134 <table class="params"> 135 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 136 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 137 <tr><td class="paramname">signer</td><td>the CA certificate object to sign with (need private key). </td></tr> 138 <tr><td class="paramname">certificate</td><td>return cerificate, free with <a class="el" href="group__hx509__cert.html#gad2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr> 139 </table> 140 </dd> 141</dl> 142<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> 143 144</div> 145</div> 146<a id="ga310b010421b8a7c169566ef74ce319fb"></a> 147<h2 class="memtitle"><span class="permalink"><a href="#ga310b010421b8a7c169566ef74ce319fb">◆ </a></span>hx509_ca_sign_self()</h2> 148 149<div class="memitem"> 150<div class="memproto"> 151 <table class="memname"> 152 <tr> 153 <td class="memname">int hx509_ca_sign_self </td> 154 <td>(</td> 155 <td class="paramtype">hx509_context </td> 156 <td class="paramname"><em>context</em>, </td> 157 </tr> 158 <tr> 159 <td class="paramkey"></td> 160 <td></td> 161 <td class="paramtype">hx509_ca_tbs </td> 162 <td class="paramname"><em>tbs</em>, </td> 163 </tr> 164 <tr> 165 <td class="paramkey"></td> 166 <td></td> 167 <td class="paramtype">hx509_private_key </td> 168 <td class="paramname"><em>signer</em>, </td> 169 </tr> 170 <tr> 171 <td class="paramkey"></td> 172 <td></td> 173 <td class="paramtype">hx509_cert * </td> 174 <td class="paramname"><em>certificate</em> </td> 175 </tr> 176 <tr> 177 <td></td> 178 <td>)</td> 179 <td></td><td></td> 180 </tr> 181 </table> 182</div><div class="memdoc"> 183<p>Work just like <a class="el" href="group__hx509__ca.html#ga3f0ff00b9c54018e346eed759b25ae16">hx509_ca_sign()</a> but signs it-self.</p> 184<dl class="params"><dt>Parameters</dt><dd> 185 <table class="params"> 186 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 187 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 188 <tr><td class="paramname">signer</td><td>private key to sign with. </td></tr> 189 <tr><td class="paramname">certificate</td><td>return cerificate, free with <a class="el" href="group__hx509__cert.html#gad2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr> 190 </table> 191 </dd> 192</dl> 193<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> 194 195</div> 196</div> 197<a id="ga8c5b557c63342686630b62239396b96a"></a> 198<h2 class="memtitle"><span class="permalink"><a href="#ga8c5b557c63342686630b62239396b96a">◆ </a></span>hx509_ca_tbs_add_crl_dp_uri()</h2> 199 200<div class="memitem"> 201<div class="memproto"> 202 <table class="memname"> 203 <tr> 204 <td class="memname">int hx509_ca_tbs_add_crl_dp_uri </td> 205 <td>(</td> 206 <td class="paramtype">hx509_context </td> 207 <td class="paramname"><em>context</em>, </td> 208 </tr> 209 <tr> 210 <td class="paramkey"></td> 211 <td></td> 212 <td class="paramtype">hx509_ca_tbs </td> 213 <td class="paramname"><em>tbs</em>, </td> 214 </tr> 215 <tr> 216 <td class="paramkey"></td> 217 <td></td> 218 <td class="paramtype">const char * </td> 219 <td class="paramname"><em>uri</em>, </td> 220 </tr> 221 <tr> 222 <td class="paramkey"></td> 223 <td></td> 224 <td class="paramtype">hx509_name </td> 225 <td class="paramname"><em>issuername</em> </td> 226 </tr> 227 <tr> 228 <td></td> 229 <td>)</td> 230 <td></td><td></td> 231 </tr> 232 </table> 233</div><div class="memdoc"> 234<p>Add CRL distribution point URI to the to-be-signed certificate object.</p> 235<dl class="params"><dt>Parameters</dt><dd> 236 <table class="params"> 237 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 238 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 239 <tr><td class="paramname">uri</td><td>uri to the CRL. </td></tr> 240 <tr><td class="paramname">issuername</td><td>name of the issuer.</td></tr> 241 </table> 242 </dd> 243</dl> 244<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> 245<p>issuername not supported</p> 246 247</div> 248</div> 249<a id="ga4d26e70019741e516dc92158914cd414"></a> 250<h2 class="memtitle"><span class="permalink"><a href="#ga4d26e70019741e516dc92158914cd414">◆ </a></span>hx509_ca_tbs_add_eku()</h2> 251 252<div class="memitem"> 253<div class="memproto"> 254 <table class="memname"> 255 <tr> 256 <td class="memname">int hx509_ca_tbs_add_eku </td> 257 <td>(</td> 258 <td class="paramtype">hx509_context </td> 259 <td class="paramname"><em>context</em>, </td> 260 </tr> 261 <tr> 262 <td class="paramkey"></td> 263 <td></td> 264 <td class="paramtype">hx509_ca_tbs </td> 265 <td class="paramname"><em>tbs</em>, </td> 266 </tr> 267 <tr> 268 <td class="paramkey"></td> 269 <td></td> 270 <td class="paramtype">const heim_oid * </td> 271 <td class="paramname"><em>oid</em> </td> 272 </tr> 273 <tr> 274 <td></td> 275 <td>)</td> 276 <td></td><td></td> 277 </tr> 278 </table> 279</div><div class="memdoc"> 280<p>An an extended key usage to the to-be-signed certificate object. Duplicates will detected and not added.</p> 281<dl class="params"><dt>Parameters</dt><dd> 282 <table class="params"> 283 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 284 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 285 <tr><td class="paramname">oid</td><td>extended key usage to add.</td></tr> 286 </table> 287 </dd> 288</dl> 289<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> 290 291</div> 292</div> 293<a id="ga3f4c23c964ef2331b45f80fb5355ede7"></a> 294<h2 class="memtitle"><span class="permalink"><a href="#ga3f4c23c964ef2331b45f80fb5355ede7">◆ </a></span>hx509_ca_tbs_add_san_hostname()</h2> 295 296<div class="memitem"> 297<div class="memproto"> 298 <table class="memname"> 299 <tr> 300 <td class="memname">int hx509_ca_tbs_add_san_hostname </td> 301 <td>(</td> 302 <td class="paramtype">hx509_context </td> 303 <td class="paramname"><em>context</em>, </td> 304 </tr> 305 <tr> 306 <td class="paramkey"></td> 307 <td></td> 308 <td class="paramtype">hx509_ca_tbs </td> 309 <td class="paramname"><em>tbs</em>, </td> 310 </tr> 311 <tr> 312 <td class="paramkey"></td> 313 <td></td> 314 <td class="paramtype">const char * </td> 315 <td class="paramname"><em>dnsname</em> </td> 316 </tr> 317 <tr> 318 <td></td> 319 <td>)</td> 320 <td></td><td></td> 321 </tr> 322 </table> 323</div><div class="memdoc"> 324<p>Add a Subject Alternative Name hostname to to-be-signed certificate object. A domain match starts with ., an exact match does not.</p> 325<p>Example of a an domain match: .domain.se matches the hostname host.domain.se.</p> 326<dl class="params"><dt>Parameters</dt><dd> 327 <table class="params"> 328 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 329 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 330 <tr><td class="paramname">dnsname</td><td>a hostame.</td></tr> 331 </table> 332 </dd> 333</dl> 334<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> 335 336</div> 337</div> 338<a id="ga6286a0d6f375949301d62215184e7275"></a> 339<h2 class="memtitle"><span class="permalink"><a href="#ga6286a0d6f375949301d62215184e7275">◆ </a></span>hx509_ca_tbs_add_san_jid()</h2> 340 341<div class="memitem"> 342<div class="memproto"> 343 <table class="memname"> 344 <tr> 345 <td class="memname">int hx509_ca_tbs_add_san_jid </td> 346 <td>(</td> 347 <td class="paramtype">hx509_context </td> 348 <td class="paramname"><em>context</em>, </td> 349 </tr> 350 <tr> 351 <td class="paramkey"></td> 352 <td></td> 353 <td class="paramtype">hx509_ca_tbs </td> 354 <td class="paramname"><em>tbs</em>, </td> 355 </tr> 356 <tr> 357 <td class="paramkey"></td> 358 <td></td> 359 <td class="paramtype">const char * </td> 360 <td class="paramname"><em>jid</em> </td> 361 </tr> 362 <tr> 363 <td></td> 364 <td>)</td> 365 <td></td><td></td> 366 </tr> 367 </table> 368</div><div class="memdoc"> 369<p>Add a Jabber/XMPP jid Subject Alternative Name to the to-be-signed certificate object. The jid is an UTF8 string.</p> 370<dl class="params"><dt>Parameters</dt><dd> 371 <table class="params"> 372 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 373 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 374 <tr><td class="paramname">jid</td><td>string of an a jabber id in UTF8.</td></tr> 375 </table> 376 </dd> 377</dl> 378<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> 379 380</div> 381</div> 382<a id="gabc4f3398499094a859fbceb769ba5051"></a> 383<h2 class="memtitle"><span class="permalink"><a href="#gabc4f3398499094a859fbceb769ba5051">◆ </a></span>hx509_ca_tbs_add_san_ms_upn()</h2> 384 385<div class="memitem"> 386<div class="memproto"> 387 <table class="memname"> 388 <tr> 389 <td class="memname">int hx509_ca_tbs_add_san_ms_upn </td> 390 <td>(</td> 391 <td class="paramtype">hx509_context </td> 392 <td class="paramname"><em>context</em>, </td> 393 </tr> 394 <tr> 395 <td class="paramkey"></td> 396 <td></td> 397 <td class="paramtype">hx509_ca_tbs </td> 398 <td class="paramname"><em>tbs</em>, </td> 399 </tr> 400 <tr> 401 <td class="paramkey"></td> 402 <td></td> 403 <td class="paramtype">const char * </td> 404 <td class="paramname"><em>principal</em> </td> 405 </tr> 406 <tr> 407 <td></td> 408 <td>)</td> 409 <td></td><td></td> 410 </tr> 411 </table> 412</div><div class="memdoc"> 413<p>Add Microsoft UPN Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.</p> 414<dl class="params"><dt>Parameters</dt><dd> 415 <table class="params"> 416 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 417 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 418 <tr><td class="paramname">principal</td><td>Microsoft UPN string.</td></tr> 419 </table> 420 </dd> 421</dl> 422<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> 423 424</div> 425</div> 426<a id="ga8e938c9e9b1fea29e5bf77a2824891e2"></a> 427<h2 class="memtitle"><span class="permalink"><a href="#ga8e938c9e9b1fea29e5bf77a2824891e2">◆ </a></span>hx509_ca_tbs_add_san_otherName()</h2> 428 429<div class="memitem"> 430<div class="memproto"> 431 <table class="memname"> 432 <tr> 433 <td class="memname">int hx509_ca_tbs_add_san_otherName </td> 434 <td>(</td> 435 <td class="paramtype">hx509_context </td> 436 <td class="paramname"><em>context</em>, </td> 437 </tr> 438 <tr> 439 <td class="paramkey"></td> 440 <td></td> 441 <td class="paramtype">hx509_ca_tbs </td> 442 <td class="paramname"><em>tbs</em>, </td> 443 </tr> 444 <tr> 445 <td class="paramkey"></td> 446 <td></td> 447 <td class="paramtype">const heim_oid * </td> 448 <td class="paramname"><em>oid</em>, </td> 449 </tr> 450 <tr> 451 <td class="paramkey"></td> 452 <td></td> 453 <td class="paramtype">const heim_octet_string * </td> 454 <td class="paramname"><em>os</em> </td> 455 </tr> 456 <tr> 457 <td></td> 458 <td>)</td> 459 <td></td><td></td> 460 </tr> 461 </table> 462</div><div class="memdoc"> 463<p>Add Subject Alternative Name otherName to the to-be-signed certificate object.</p> 464<dl class="params"><dt>Parameters</dt><dd> 465 <table class="params"> 466 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 467 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 468 <tr><td class="paramname">oid</td><td>the oid of the OtherName. </td></tr> 469 <tr><td class="paramname">os</td><td>data in the other name.</td></tr> 470 </table> 471 </dd> 472</dl> 473<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> 474 475</div> 476</div> 477<a id="gaede019208dbf7ad49cd077951887c4c3"></a> 478<h2 class="memtitle"><span class="permalink"><a href="#gaede019208dbf7ad49cd077951887c4c3">◆ </a></span>hx509_ca_tbs_add_san_pkinit()</h2> 479 480<div class="memitem"> 481<div class="memproto"> 482 <table class="memname"> 483 <tr> 484 <td class="memname">int hx509_ca_tbs_add_san_pkinit </td> 485 <td>(</td> 486 <td class="paramtype">hx509_context </td> 487 <td class="paramname"><em>context</em>, </td> 488 </tr> 489 <tr> 490 <td class="paramkey"></td> 491 <td></td> 492 <td class="paramtype">hx509_ca_tbs </td> 493 <td class="paramname"><em>tbs</em>, </td> 494 </tr> 495 <tr> 496 <td class="paramkey"></td> 497 <td></td> 498 <td class="paramtype">const char * </td> 499 <td class="paramname"><em>principal</em> </td> 500 </tr> 501 <tr> 502 <td></td> 503 <td>)</td> 504 <td></td><td></td> 505 </tr> 506 </table> 507</div><div class="memdoc"> 508<p>Add Kerberos Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.</p> 509<dl class="params"><dt>Parameters</dt><dd> 510 <table class="params"> 511 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 512 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 513 <tr><td class="paramname">principal</td><td>Kerberos principal to add to the certificate.</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="gaf621ee0bac71f4ee09881812f4c4d196"></a> 522<h2 class="memtitle"><span class="permalink"><a href="#gaf621ee0bac71f4ee09881812f4c4d196">◆ </a></span>hx509_ca_tbs_add_san_rfc822name()</h2> 523 524<div class="memitem"> 525<div class="memproto"> 526 <table class="memname"> 527 <tr> 528 <td class="memname">int hx509_ca_tbs_add_san_rfc822name </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_ca_tbs </td> 537 <td class="paramname"><em>tbs</em>, </td> 538 </tr> 539 <tr> 540 <td class="paramkey"></td> 541 <td></td> 542 <td class="paramtype">const char * </td> 543 <td class="paramname"><em>rfc822Name</em> </td> 544 </tr> 545 <tr> 546 <td></td> 547 <td>)</td> 548 <td></td><td></td> 549 </tr> 550 </table> 551</div><div class="memdoc"> 552<p>Add a Subject Alternative Name rfc822 (email address) to to-be-signed certificate object.</p> 553<dl class="params"><dt>Parameters</dt><dd> 554 <table class="params"> 555 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 556 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 557 <tr><td class="paramname">rfc822Name</td><td>a string to a email address.</td></tr> 558 </table> 559 </dd> 560</dl> 561<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> 562 563</div> 564</div> 565<a id="ga89eef97566653fbbe6ab32b59ea99299"></a> 566<h2 class="memtitle"><span class="permalink"><a href="#ga89eef97566653fbbe6ab32b59ea99299">◆ </a></span>hx509_ca_tbs_free()</h2> 567 568<div class="memitem"> 569<div class="memproto"> 570 <table class="memname"> 571 <tr> 572 <td class="memname">void hx509_ca_tbs_free </td> 573 <td>(</td> 574 <td class="paramtype">hx509_ca_tbs * </td> 575 <td class="paramname"><em>tbs</em></td><td>)</td> 576 <td></td> 577 </tr> 578 </table> 579</div><div class="memdoc"> 580<p>Free an To Be Signed object.</p> 581<dl class="params"><dt>Parameters</dt><dd> 582 <table class="params"> 583 <tr><td class="paramname">tbs</td><td>object to free. </td></tr> 584 </table> 585 </dd> 586</dl> 587 588</div> 589</div> 590<a id="ga627b48e10d0b3576aec5823d6098ea3a"></a> 591<h2 class="memtitle"><span class="permalink"><a href="#ga627b48e10d0b3576aec5823d6098ea3a">◆ </a></span>hx509_ca_tbs_init()</h2> 592 593<div class="memitem"> 594<div class="memproto"> 595 <table class="memname"> 596 <tr> 597 <td class="memname">int hx509_ca_tbs_init </td> 598 <td>(</td> 599 <td class="paramtype">hx509_context </td> 600 <td class="paramname"><em>context</em>, </td> 601 </tr> 602 <tr> 603 <td class="paramkey"></td> 604 <td></td> 605 <td class="paramtype">hx509_ca_tbs * </td> 606 <td class="paramname"><em>tbs</em> </td> 607 </tr> 608 <tr> 609 <td></td> 610 <td>)</td> 611 <td></td><td></td> 612 </tr> 613 </table> 614</div><div class="memdoc"> 615<p>Allocate an to-be-signed certificate object that will be converted into an certificate.</p> 616<dl class="params"><dt>Parameters</dt><dd> 617 <table class="params"> 618 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 619 <tr><td class="paramname">tbs</td><td>returned to-be-signed certicate object, free with <a class="el" href="group__hx509__ca.html#ga89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free()</a>.</td></tr> 620 </table> 621 </dd> 622</dl> 623<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> 624 625</div> 626</div> 627<a id="ga3e105ce23d67234c3b5d35a0752449cf"></a> 628<h2 class="memtitle"><span class="permalink"><a href="#ga3e105ce23d67234c3b5d35a0752449cf">◆ </a></span>hx509_ca_tbs_set_ca()</h2> 629 630<div class="memitem"> 631<div class="memproto"> 632 <table class="memname"> 633 <tr> 634 <td class="memname">int hx509_ca_tbs_set_ca </td> 635 <td>(</td> 636 <td class="paramtype">hx509_context </td> 637 <td class="paramname"><em>context</em>, </td> 638 </tr> 639 <tr> 640 <td class="paramkey"></td> 641 <td></td> 642 <td class="paramtype">hx509_ca_tbs </td> 643 <td class="paramname"><em>tbs</em>, </td> 644 </tr> 645 <tr> 646 <td class="paramkey"></td> 647 <td></td> 648 <td class="paramtype">int </td> 649 <td class="paramname"><em>pathLenConstraint</em> </td> 650 </tr> 651 <tr> 652 <td></td> 653 <td>)</td> 654 <td></td><td></td> 655 </tr> 656 </table> 657</div><div class="memdoc"> 658<p>Make the to-be-signed certificate object a CA certificate. If the pathLenConstraint is negative path length constraint is used.</p> 659<dl class="params"><dt>Parameters</dt><dd> 660 <table class="params"> 661 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 662 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 663 <tr><td class="paramname">pathLenConstraint</td><td>path length constraint, negative, no constraint.</td></tr> 664 </table> 665 </dd> 666</dl> 667<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> 668 669</div> 670</div> 671<a id="gae41a6e44a39c95e6c29376985f0b39b0"></a> 672<h2 class="memtitle"><span class="permalink"><a href="#gae41a6e44a39c95e6c29376985f0b39b0">◆ </a></span>hx509_ca_tbs_set_domaincontroller()</h2> 673 674<div class="memitem"> 675<div class="memproto"> 676 <table class="memname"> 677 <tr> 678 <td class="memname">int hx509_ca_tbs_set_domaincontroller </td> 679 <td>(</td> 680 <td class="paramtype">hx509_context </td> 681 <td class="paramname"><em>context</em>, </td> 682 </tr> 683 <tr> 684 <td class="paramkey"></td> 685 <td></td> 686 <td class="paramtype">hx509_ca_tbs </td> 687 <td class="paramname"><em>tbs</em> </td> 688 </tr> 689 <tr> 690 <td></td> 691 <td>)</td> 692 <td></td><td></td> 693 </tr> 694 </table> 695</div><div class="memdoc"> 696<p>Make the to-be-signed certificate object a windows domain controller certificate.</p> 697<dl class="params"><dt>Parameters</dt><dd> 698 <table class="params"> 699 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 700 <tr><td class="paramname">tbs</td><td>object to be signed.</td></tr> 701 </table> 702 </dd> 703</dl> 704<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> 705 706</div> 707</div> 708<a id="gac64ad4daabe3c912be50c2a32af4fe05"></a> 709<h2 class="memtitle"><span class="permalink"><a href="#gac64ad4daabe3c912be50c2a32af4fe05">◆ </a></span>hx509_ca_tbs_set_notAfter()</h2> 710 711<div class="memitem"> 712<div class="memproto"> 713 <table class="memname"> 714 <tr> 715 <td class="memname">int hx509_ca_tbs_set_notAfter </td> 716 <td>(</td> 717 <td class="paramtype">hx509_context </td> 718 <td class="paramname"><em>context</em>, </td> 719 </tr> 720 <tr> 721 <td class="paramkey"></td> 722 <td></td> 723 <td class="paramtype">hx509_ca_tbs </td> 724 <td class="paramname"><em>tbs</em>, </td> 725 </tr> 726 <tr> 727 <td class="paramkey"></td> 728 <td></td> 729 <td class="paramtype">time_t </td> 730 <td class="paramname"><em>t</em> </td> 731 </tr> 732 <tr> 733 <td></td> 734 <td>)</td> 735 <td></td><td></td> 736 </tr> 737 </table> 738</div><div class="memdoc"> 739<p>Set the absolute time when the certificate is valid to.</p> 740<dl class="params"><dt>Parameters</dt><dd> 741 <table class="params"> 742 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 743 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 744 <tr><td class="paramname">t</td><td>time when the certificate will expire</td></tr> 745 </table> 746 </dd> 747</dl> 748<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> 749 750</div> 751</div> 752<a id="ga587184eedd56450858eb74cae842f084"></a> 753<h2 class="memtitle"><span class="permalink"><a href="#ga587184eedd56450858eb74cae842f084">◆ </a></span>hx509_ca_tbs_set_notAfter_lifetime()</h2> 754 755<div class="memitem"> 756<div class="memproto"> 757 <table class="memname"> 758 <tr> 759 <td class="memname">int hx509_ca_tbs_set_notAfter_lifetime </td> 760 <td>(</td> 761 <td class="paramtype">hx509_context </td> 762 <td class="paramname"><em>context</em>, </td> 763 </tr> 764 <tr> 765 <td class="paramkey"></td> 766 <td></td> 767 <td class="paramtype">hx509_ca_tbs </td> 768 <td class="paramname"><em>tbs</em>, </td> 769 </tr> 770 <tr> 771 <td class="paramkey"></td> 772 <td></td> 773 <td class="paramtype">time_t </td> 774 <td class="paramname"><em>delta</em> </td> 775 </tr> 776 <tr> 777 <td></td> 778 <td>)</td> 779 <td></td><td></td> 780 </tr> 781 </table> 782</div><div class="memdoc"> 783<p>Set the relative time when the certificiate is going to expire.</p> 784<dl class="params"><dt>Parameters</dt><dd> 785 <table class="params"> 786 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 787 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 788 <tr><td class="paramname">delta</td><td>seconds to the certificate is going to expire.</td></tr> 789 </table> 790 </dd> 791</dl> 792<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> 793 794</div> 795</div> 796<a id="ga6a124401ceb514cf16cf8e3721234d03"></a> 797<h2 class="memtitle"><span class="permalink"><a href="#ga6a124401ceb514cf16cf8e3721234d03">◆ </a></span>hx509_ca_tbs_set_notBefore()</h2> 798 799<div class="memitem"> 800<div class="memproto"> 801 <table class="memname"> 802 <tr> 803 <td class="memname">int hx509_ca_tbs_set_notBefore </td> 804 <td>(</td> 805 <td class="paramtype">hx509_context </td> 806 <td class="paramname"><em>context</em>, </td> 807 </tr> 808 <tr> 809 <td class="paramkey"></td> 810 <td></td> 811 <td class="paramtype">hx509_ca_tbs </td> 812 <td class="paramname"><em>tbs</em>, </td> 813 </tr> 814 <tr> 815 <td class="paramkey"></td> 816 <td></td> 817 <td class="paramtype">time_t </td> 818 <td class="paramname"><em>t</em> </td> 819 </tr> 820 <tr> 821 <td></td> 822 <td>)</td> 823 <td></td><td></td> 824 </tr> 825 </table> 826</div><div class="memdoc"> 827<p>Set the absolute time when the certificate is valid from. If not set the current time will be used.</p> 828<dl class="params"><dt>Parameters</dt><dd> 829 <table class="params"> 830 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 831 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 832 <tr><td class="paramname">t</td><td>time the certificated will start to be valid</td></tr> 833 </table> 834 </dd> 835</dl> 836<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> 837 838</div> 839</div> 840<a id="ga215241c575ae3296e137f155a0a4dd6e"></a> 841<h2 class="memtitle"><span class="permalink"><a href="#ga215241c575ae3296e137f155a0a4dd6e">◆ </a></span>hx509_ca_tbs_set_proxy()</h2> 842 843<div class="memitem"> 844<div class="memproto"> 845 <table class="memname"> 846 <tr> 847 <td class="memname">int hx509_ca_tbs_set_proxy </td> 848 <td>(</td> 849 <td class="paramtype">hx509_context </td> 850 <td class="paramname"><em>context</em>, </td> 851 </tr> 852 <tr> 853 <td class="paramkey"></td> 854 <td></td> 855 <td class="paramtype">hx509_ca_tbs </td> 856 <td class="paramname"><em>tbs</em>, </td> 857 </tr> 858 <tr> 859 <td class="paramkey"></td> 860 <td></td> 861 <td class="paramtype">int </td> 862 <td class="paramname"><em>pathLenConstraint</em> </td> 863 </tr> 864 <tr> 865 <td></td> 866 <td>)</td> 867 <td></td><td></td> 868 </tr> 869 </table> 870</div><div class="memdoc"> 871<p>Make the to-be-signed certificate object a proxy certificate. If the pathLenConstraint is negative path length constraint is used.</p> 872<dl class="params"><dt>Parameters</dt><dd> 873 <table class="params"> 874 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 875 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 876 <tr><td class="paramname">pathLenConstraint</td><td>path length constraint, negative, no constraint.</td></tr> 877 </table> 878 </dd> 879</dl> 880<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> 881 882</div> 883</div> 884<a id="ga3f611617f0001575b723a4a9c0d9b3ca"></a> 885<h2 class="memtitle"><span class="permalink"><a href="#ga3f611617f0001575b723a4a9c0d9b3ca">◆ </a></span>hx509_ca_tbs_set_serialnumber()</h2> 886 887<div class="memitem"> 888<div class="memproto"> 889 <table class="memname"> 890 <tr> 891 <td class="memname">int hx509_ca_tbs_set_serialnumber </td> 892 <td>(</td> 893 <td class="paramtype">hx509_context </td> 894 <td class="paramname"><em>context</em>, </td> 895 </tr> 896 <tr> 897 <td class="paramkey"></td> 898 <td></td> 899 <td class="paramtype">hx509_ca_tbs </td> 900 <td class="paramname"><em>tbs</em>, </td> 901 </tr> 902 <tr> 903 <td class="paramkey"></td> 904 <td></td> 905 <td class="paramtype">const heim_integer * </td> 906 <td class="paramname"><em>serialNumber</em> </td> 907 </tr> 908 <tr> 909 <td></td> 910 <td>)</td> 911 <td></td><td></td> 912 </tr> 913 </table> 914</div><div class="memdoc"> 915<p>Set the serial number to use for to-be-signed certificate object.</p> 916<dl class="params"><dt>Parameters</dt><dd> 917 <table class="params"> 918 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 919 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 920 <tr><td class="paramname">serialNumber</td><td>serial number to use for the to-be-signed certificate object.</td></tr> 921 </table> 922 </dd> 923</dl> 924<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> 925 926</div> 927</div> 928<a id="ga4a0a95e3af51c1a1851b1d6b92c20662"></a> 929<h2 class="memtitle"><span class="permalink"><a href="#ga4a0a95e3af51c1a1851b1d6b92c20662">◆ </a></span>hx509_ca_tbs_set_signature_algorithm()</h2> 930 931<div class="memitem"> 932<div class="memproto"> 933 <table class="memname"> 934 <tr> 935 <td class="memname">int hx509_ca_tbs_set_signature_algorithm </td> 936 <td>(</td> 937 <td class="paramtype">hx509_context </td> 938 <td class="paramname"><em>context</em>, </td> 939 </tr> 940 <tr> 941 <td class="paramkey"></td> 942 <td></td> 943 <td class="paramtype">hx509_ca_tbs </td> 944 <td class="paramname"><em>tbs</em>, </td> 945 </tr> 946 <tr> 947 <td class="paramkey"></td> 948 <td></td> 949 <td class="paramtype">const AlgorithmIdentifier * </td> 950 <td class="paramname"><em>sigalg</em> </td> 951 </tr> 952 <tr> 953 <td></td> 954 <td>)</td> 955 <td></td><td></td> 956 </tr> 957 </table> 958</div><div class="memdoc"> 959<p>Set signature algorithm on the to be signed certificate</p> 960<dl class="params"><dt>Parameters</dt><dd> 961 <table class="params"> 962 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 963 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 964 <tr><td class="paramname">sigalg</td><td>signature algorithm to use</td></tr> 965 </table> 966 </dd> 967</dl> 968<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> 969 970</div> 971</div> 972<a id="gae12bfa65cf1112bf3181a5499e8f7ba6"></a> 973<h2 class="memtitle"><span class="permalink"><a href="#gae12bfa65cf1112bf3181a5499e8f7ba6">◆ </a></span>hx509_ca_tbs_set_spki()</h2> 974 975<div class="memitem"> 976<div class="memproto"> 977 <table class="memname"> 978 <tr> 979 <td class="memname">int hx509_ca_tbs_set_spki </td> 980 <td>(</td> 981 <td class="paramtype">hx509_context </td> 982 <td class="paramname"><em>context</em>, </td> 983 </tr> 984 <tr> 985 <td class="paramkey"></td> 986 <td></td> 987 <td class="paramtype">hx509_ca_tbs </td> 988 <td class="paramname"><em>tbs</em>, </td> 989 </tr> 990 <tr> 991 <td class="paramkey"></td> 992 <td></td> 993 <td class="paramtype">const SubjectPublicKeyInfo * </td> 994 <td class="paramname"><em>spki</em> </td> 995 </tr> 996 <tr> 997 <td></td> 998 <td>)</td> 999 <td></td><td></td> 1000 </tr> 1001 </table> 1002</div><div class="memdoc"> 1003<p>Set the subject public key info (SPKI) in the to-be-signed certificate object. SPKI is the public key and key related parameters in the certificate.</p> 1004<dl class="params"><dt>Parameters</dt><dd> 1005 <table class="params"> 1006 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 1007 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 1008 <tr><td class="paramname">spki</td><td>subject public key info to use for the to-be-signed certificate object.</td></tr> 1009 </table> 1010 </dd> 1011</dl> 1012<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> 1013 1014</div> 1015</div> 1016<a id="ga9e8cf374812308654e3d7270afb59da1"></a> 1017<h2 class="memtitle"><span class="permalink"><a href="#ga9e8cf374812308654e3d7270afb59da1">◆ </a></span>hx509_ca_tbs_set_subject()</h2> 1018 1019<div class="memitem"> 1020<div class="memproto"> 1021 <table class="memname"> 1022 <tr> 1023 <td class="memname">int hx509_ca_tbs_set_subject </td> 1024 <td>(</td> 1025 <td class="paramtype">hx509_context </td> 1026 <td class="paramname"><em>context</em>, </td> 1027 </tr> 1028 <tr> 1029 <td class="paramkey"></td> 1030 <td></td> 1031 <td class="paramtype">hx509_ca_tbs </td> 1032 <td class="paramname"><em>tbs</em>, </td> 1033 </tr> 1034 <tr> 1035 <td class="paramkey"></td> 1036 <td></td> 1037 <td class="paramtype">hx509_name </td> 1038 <td class="paramname"><em>subject</em> </td> 1039 </tr> 1040 <tr> 1041 <td></td> 1042 <td>)</td> 1043 <td></td><td></td> 1044 </tr> 1045 </table> 1046</div><div class="memdoc"> 1047<p>Set the subject name of a to-be-signed certificate object.</p> 1048<dl class="params"><dt>Parameters</dt><dd> 1049 <table class="params"> 1050 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 1051 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 1052 <tr><td class="paramname">subject</td><td>the name to set a subject.</td></tr> 1053 </table> 1054 </dd> 1055</dl> 1056<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> 1057 1058</div> 1059</div> 1060<a id="ga2d7c245443a81540ff993e7cc6f51ebb"></a> 1061<h2 class="memtitle"><span class="permalink"><a href="#ga2d7c245443a81540ff993e7cc6f51ebb">◆ </a></span>hx509_ca_tbs_set_template()</h2> 1062 1063<div class="memitem"> 1064<div class="memproto"> 1065 <table class="memname"> 1066 <tr> 1067 <td class="memname">int hx509_ca_tbs_set_template </td> 1068 <td>(</td> 1069 <td class="paramtype">hx509_context </td> 1070 <td class="paramname"><em>context</em>, </td> 1071 </tr> 1072 <tr> 1073 <td class="paramkey"></td> 1074 <td></td> 1075 <td class="paramtype">hx509_ca_tbs </td> 1076 <td class="paramname"><em>tbs</em>, </td> 1077 </tr> 1078 <tr> 1079 <td class="paramkey"></td> 1080 <td></td> 1081 <td class="paramtype">int </td> 1082 <td class="paramname"><em>flags</em>, </td> 1083 </tr> 1084 <tr> 1085 <td class="paramkey"></td> 1086 <td></td> 1087 <td class="paramtype">hx509_cert </td> 1088 <td class="paramname"><em>cert</em> </td> 1089 </tr> 1090 <tr> 1091 <td></td> 1092 <td>)</td> 1093 <td></td><td></td> 1094 </tr> 1095 </table> 1096</div><div class="memdoc"> 1097<p>Initialize the to-be-signed certificate object from a template certifiate.</p> 1098<dl class="params"><dt>Parameters</dt><dd> 1099 <table class="params"> 1100 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 1101 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 1102 <tr><td class="paramname">flags</td><td>bit field selecting what to copy from the template certifiate. </td></tr> 1103 <tr><td class="paramname">cert</td><td>template certificate.</td></tr> 1104 </table> 1105 </dd> 1106</dl> 1107<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> 1108 1109</div> 1110</div> 1111<a id="gae22ea3d0201845dbc73f4b21502face6"></a> 1112<h2 class="memtitle"><span class="permalink"><a href="#gae22ea3d0201845dbc73f4b21502face6">◆ </a></span>hx509_ca_tbs_set_unique()</h2> 1113 1114<div class="memitem"> 1115<div class="memproto"> 1116 <table class="memname"> 1117 <tr> 1118 <td class="memname">int hx509_ca_tbs_set_unique </td> 1119 <td>(</td> 1120 <td class="paramtype">hx509_context </td> 1121 <td class="paramname"><em>context</em>, </td> 1122 </tr> 1123 <tr> 1124 <td class="paramkey"></td> 1125 <td></td> 1126 <td class="paramtype">hx509_ca_tbs </td> 1127 <td class="paramname"><em>tbs</em>, </td> 1128 </tr> 1129 <tr> 1130 <td class="paramkey"></td> 1131 <td></td> 1132 <td class="paramtype">const heim_bit_string * </td> 1133 <td class="paramname"><em>subjectUniqueID</em>, </td> 1134 </tr> 1135 <tr> 1136 <td class="paramkey"></td> 1137 <td></td> 1138 <td class="paramtype">const heim_bit_string * </td> 1139 <td class="paramname"><em>issuerUniqueID</em> </td> 1140 </tr> 1141 <tr> 1142 <td></td> 1143 <td>)</td> 1144 <td></td><td></td> 1145 </tr> 1146 </table> 1147</div><div class="memdoc"> 1148<p>Set the issuerUniqueID and subjectUniqueID</p> 1149<p>These are only supposed to be used considered with version 2 certificates, replaced by the two extensions SubjectKeyIdentifier and IssuerKeyIdentifier. This function is to allow application using legacy protocol to issue them.</p> 1150<dl class="params"><dt>Parameters</dt><dd> 1151 <table class="params"> 1152 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 1153 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 1154 <tr><td class="paramname">issuerUniqueID</td><td>to be set </td></tr> 1155 <tr><td class="paramname">subjectUniqueID</td><td>to be set</td></tr> 1156 </table> 1157 </dd> 1158</dl> 1159<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> 1160 1161</div> 1162</div> 1163<a id="ga36432d6249ee668196a692c7286d09ce"></a> 1164<h2 class="memtitle"><span class="permalink"><a href="#ga36432d6249ee668196a692c7286d09ce">◆ </a></span>hx509_ca_tbs_subject_expand()</h2> 1165 1166<div class="memitem"> 1167<div class="memproto"> 1168 <table class="memname"> 1169 <tr> 1170 <td class="memname">int hx509_ca_tbs_subject_expand </td> 1171 <td>(</td> 1172 <td class="paramtype">hx509_context </td> 1173 <td class="paramname"><em>context</em>, </td> 1174 </tr> 1175 <tr> 1176 <td class="paramkey"></td> 1177 <td></td> 1178 <td class="paramtype">hx509_ca_tbs </td> 1179 <td class="paramname"><em>tbs</em>, </td> 1180 </tr> 1181 <tr> 1182 <td class="paramkey"></td> 1183 <td></td> 1184 <td class="paramtype">hx509_env </td> 1185 <td class="paramname"><em>env</em> </td> 1186 </tr> 1187 <tr> 1188 <td></td> 1189 <td>)</td> 1190 <td></td><td></td> 1191 </tr> 1192 </table> 1193</div><div class="memdoc"> 1194<p>Expand the the subject name in the to-be-signed certificate object using <a class="el" href="group__hx509__name.html#ga42015083c70b6aa29c4f082998dbbece">hx509_name_expand()</a>.</p> 1195<dl class="params"><dt>Parameters</dt><dd> 1196 <table class="params"> 1197 <tr><td class="paramname">context</td><td>A hx509 context. </td></tr> 1198 <tr><td class="paramname">tbs</td><td>object to be signed. </td></tr> 1199 <tr><td class="paramname">env</td><td>environment variable to expand variables in the subject name, see hx509_env_init().</td></tr> 1200 </table> 1201 </dd> 1202</dl> 1203<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> 1204 1205</div> 1206</div> 1207<a id="gaf805458a31b3ba5731dc432c711aa5c1"></a> 1208<h2 class="memtitle"><span class="permalink"><a href="#gaf805458a31b3ba5731dc432c711aa5c1">◆ </a></span>hx509_ca_tbs_template_units()</h2> 1209 1210<div class="memitem"> 1211<div class="memproto"> 1212 <table class="memname"> 1213 <tr> 1214 <td class="memname">const struct units* hx509_ca_tbs_template_units </td> 1215 <td>(</td> 1216 <td class="paramtype">void </td> 1217 <td class="paramname"></td><td>)</td> 1218 <td></td> 1219 </tr> 1220 </table> 1221</div><div class="memdoc"> 1222<p>Make of template units, use to build flags argument to <a class="el" href="group__hx509__ca.html#ga2d7c245443a81540ff993e7cc6f51ebb">hx509_ca_tbs_set_template()</a> with parse_units().</p> 1223<dl class="section return"><dt>Returns</dt><dd>an units structure. </dd></dl> 1224 1225</div> 1226</div> 1227</div><!-- contents --> 1228<hr size="1"><address style="text-align: right;"><small> 1229Generated 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> 1230</body> 1231</html> 1232