1226031Sstas<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2226031Sstas<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3226031Sstas<title>Heimdalx509library: hx509 CA functions</title> 4226031Sstas<link href="doxygen.css" rel="stylesheet" type="text/css"> 5226031Sstas<link href="tabs.css" rel="stylesheet" type="text/css"> 6226031Sstas</head><body> 7226031Sstas<p> 8226031Sstas<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9226031Sstas</p> 10226031Sstas<!-- end of header marker --> 11226031Sstas<!-- Generated by Doxygen 1.5.6 --> 12226031Sstas<div class="navigation" id="top"> 13226031Sstas <div class="tabs"> 14226031Sstas <ul> 15226031Sstas <li><a href="index.html"><span>Main Page</span></a></li> 16226031Sstas <li><a href="pages.html"><span>Related Pages</span></a></li> 17226031Sstas <li><a href="modules.html"><span>Modules</span></a></li> 18226031Sstas </ul> 19226031Sstas </div> 20226031Sstas</div> 21226031Sstas<div class="contents"> 22226031Sstas<h1>hx509 CA functions</h1><table border="0" cellpadding="0" cellspacing="0"> 23226031Sstas<tr><td></td></tr> 24226031Sstas<tr><td colspan="2"><br><h2>Functions</h2></td></tr> 25226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g627b48e10d0b3576aec5823d6098ea3a">hx509_ca_tbs_init</a> (hx509_context context, hx509_ca_tbs *tbs)</td></tr> 26226031Sstas 27226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free</a> (hx509_ca_tbs *tbs)</td></tr> 28226031Sstas 29226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g6a124401ceb514cf16cf8e3721234d03">hx509_ca_tbs_set_notBefore</a> (hx509_context context, hx509_ca_tbs tbs, time_t t)</td></tr> 30226031Sstas 31226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gc64ad4daabe3c912be50c2a32af4fe05">hx509_ca_tbs_set_notAfter</a> (hx509_context context, hx509_ca_tbs tbs, time_t t)</td></tr> 32226031Sstas 33226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g587184eedd56450858eb74cae842f084">hx509_ca_tbs_set_notAfter_lifetime</a> (hx509_context context, hx509_ca_tbs tbs, time_t delta)</td></tr> 34226031Sstas 35226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">struct units * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g2809ea576f40642337c8bf49071723b0">hx509_ca_tbs_template_units</a> (void)</td></tr> 36226031Sstas 37226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g2d7c245443a81540ff993e7cc6f51ebb">hx509_ca_tbs_set_template</a> (hx509_context context, hx509_ca_tbs tbs, int flags, hx509_cert cert)</td></tr> 38226031Sstas 39226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g3e105ce23d67234c3b5d35a0752449cf">hx509_ca_tbs_set_ca</a> (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)</td></tr> 40226031Sstas 41226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g215241c575ae3296e137f155a0a4dd6e">hx509_ca_tbs_set_proxy</a> (hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)</td></tr> 42226031Sstas 43226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ge41a6e44a39c95e6c29376985f0b39b0">hx509_ca_tbs_set_domaincontroller</a> (hx509_context context, hx509_ca_tbs tbs)</td></tr> 44226031Sstas 45226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ge12bfa65cf1112bf3181a5499e8f7ba6">hx509_ca_tbs_set_spki</a> (hx509_context context, hx509_ca_tbs tbs, const SubjectPublicKeyInfo *spki)</td></tr> 46226031Sstas 47226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g3f611617f0001575b723a4a9c0d9b3ca">hx509_ca_tbs_set_serialnumber</a> (hx509_context context, hx509_ca_tbs tbs, const heim_integer *serialNumber)</td></tr> 48226031Sstas 49226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g4d26e70019741e516dc92158914cd414">hx509_ca_tbs_add_eku</a> (hx509_context context, hx509_ca_tbs tbs, const heim_oid *oid)</td></tr> 50226031Sstas 51226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g8c5b557c63342686630b62239396b96a">hx509_ca_tbs_add_crl_dp_uri</a> (hx509_context context, hx509_ca_tbs tbs, const char *uri, hx509_name issuername)</td></tr> 52226031Sstas 53226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g8e938c9e9b1fea29e5bf77a2824891e2">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> 54226031Sstas 55226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gede019208dbf7ad49cd077951887c4c3">hx509_ca_tbs_add_san_pkinit</a> (hx509_context context, hx509_ca_tbs tbs, const char *principal)</td></tr> 56226031Sstas 57226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gbc4f3398499094a859fbceb769ba5051">hx509_ca_tbs_add_san_ms_upn</a> (hx509_context context, hx509_ca_tbs tbs, const char *principal)</td></tr> 58226031Sstas 59226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g6286a0d6f375949301d62215184e7275">hx509_ca_tbs_add_san_jid</a> (hx509_context context, hx509_ca_tbs tbs, const char *jid)</td></tr> 60226031Sstas 61226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g3f4c23c964ef2331b45f80fb5355ede7">hx509_ca_tbs_add_san_hostname</a> (hx509_context context, hx509_ca_tbs tbs, const char *dnsname)</td></tr> 62226031Sstas 63226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#gf621ee0bac71f4ee09881812f4c4d196">hx509_ca_tbs_add_san_rfc822name</a> (hx509_context context, hx509_ca_tbs tbs, const char *rfc822Name)</td></tr> 64226031Sstas 65226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g9e8cf374812308654e3d7270afb59da1">hx509_ca_tbs_set_subject</a> (hx509_context context, hx509_ca_tbs tbs, hx509_name subject)</td></tr> 66226031Sstas 67226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#ge22ea3d0201845dbc73f4b21502face6">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> 68226031Sstas 69226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g36432d6249ee668196a692c7286d09ce">hx509_ca_tbs_subject_expand</a> (hx509_context context, hx509_ca_tbs tbs, hx509_env env)</td></tr> 70226031Sstas 71226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g3f0ff00b9c54018e346eed759b25ae16">hx509_ca_sign</a> (hx509_context context, hx509_ca_tbs tbs, hx509_cert signer, hx509_cert *certificate)</td></tr> 72226031Sstas 73226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__ca.html#g310b010421b8a7c169566ef74ce319fb">hx509_ca_sign_self</a> (hx509_context context, hx509_ca_tbs tbs, hx509_private_key signer, hx509_cert *certificate)</td></tr> 74226031Sstas 75226031Sstas</table> 76226031Sstas<hr><a name="_details"></a><h2>Detailed Description</h2> 77226031SstasSee the <a class="el" href="page_ca.html">Hx509 CA functions</a> for description and examples. <hr><h2>Function Documentation</h2> 78226031Sstas<a class="anchor" name="g3f0ff00b9c54018e346eed759b25ae16"></a><!-- doxytag: member="ca.c::hx509_ca_sign" ref="g3f0ff00b9c54018e346eed759b25ae16" args="(hx509_context context, hx509_ca_tbs tbs, hx509_cert signer, hx509_cert *certificate)" --> 79226031Sstas<div class="memitem"> 80226031Sstas<div class="memproto"> 81226031Sstas <table class="memname"> 82226031Sstas <tr> 83226031Sstas <td class="memname">int hx509_ca_sign </td> 84226031Sstas <td>(</td> 85226031Sstas <td class="paramtype">hx509_context </td> 86226031Sstas <td class="paramname"> <em>context</em>, </td> 87226031Sstas </tr> 88226031Sstas <tr> 89226031Sstas <td class="paramkey"></td> 90226031Sstas <td></td> 91226031Sstas <td class="paramtype">hx509_ca_tbs </td> 92226031Sstas <td class="paramname"> <em>tbs</em>, </td> 93226031Sstas </tr> 94226031Sstas <tr> 95226031Sstas <td class="paramkey"></td> 96226031Sstas <td></td> 97226031Sstas <td class="paramtype">hx509_cert </td> 98226031Sstas <td class="paramname"> <em>signer</em>, </td> 99226031Sstas </tr> 100226031Sstas <tr> 101226031Sstas <td class="paramkey"></td> 102226031Sstas <td></td> 103226031Sstas <td class="paramtype">hx509_cert * </td> 104226031Sstas <td class="paramname"> <em>certificate</em></td><td> </td> 105226031Sstas </tr> 106226031Sstas <tr> 107226031Sstas <td></td> 108226031Sstas <td>)</td> 109226031Sstas <td></td><td></td><td></td> 110226031Sstas </tr> 111226031Sstas </table> 112226031Sstas</div> 113226031Sstas<div class="memdoc"> 114226031Sstas 115226031Sstas<p> 116226031SstasSign a to-be-signed certificate object with a issuer certificate.<p> 117226031SstasThe caller needs to at least have called the following functions on the to-be-signed certificate object:<ul> 118226031Sstas<li><a class="el" href="group__hx509__ca.html#g627b48e10d0b3576aec5823d6098ea3a">hx509_ca_tbs_init()</a></li><li><a class="el" href="group__hx509__ca.html#g9e8cf374812308654e3d7270afb59da1">hx509_ca_tbs_set_subject()</a></li><li><a class="el" href="group__hx509__ca.html#ge12bfa65cf1112bf3181a5499e8f7ba6">hx509_ca_tbs_set_spki()</a></li></ul> 119226031Sstas<p> 120226031SstasWhen done the to-be-signed certificate object should be freed with <a class="el" href="group__hx509__ca.html#g89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free()</a>.<p> 121226031SstasWhen creating self-signed certificate use <a class="el" href="group__hx509__ca.html#g310b010421b8a7c169566ef74ce319fb">hx509_ca_sign_self()</a> instead.<p> 122226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 123226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 124226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 125226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 126226031Sstas <tr><td valign="top"></td><td valign="top"><em>signer</em> </td><td>the CA certificate object to sign with (need private key). </td></tr> 127226031Sstas <tr><td valign="top"></td><td valign="top"><em>certificate</em> </td><td>return cerificate, free with <a class="el" href="group__hx509__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr> 128226031Sstas </table> 129226031Sstas</dl> 130226031Sstas<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> 131226031Sstas 132226031Sstas</div> 133226031Sstas</div><p> 134226031Sstas<a class="anchor" name="g310b010421b8a7c169566ef74ce319fb"></a><!-- doxytag: member="ca.c::hx509_ca_sign_self" ref="g310b010421b8a7c169566ef74ce319fb" args="(hx509_context context, hx509_ca_tbs tbs, hx509_private_key signer, hx509_cert *certificate)" --> 135226031Sstas<div class="memitem"> 136226031Sstas<div class="memproto"> 137226031Sstas <table class="memname"> 138226031Sstas <tr> 139226031Sstas <td class="memname">int hx509_ca_sign_self </td> 140226031Sstas <td>(</td> 141226031Sstas <td class="paramtype">hx509_context </td> 142226031Sstas <td class="paramname"> <em>context</em>, </td> 143226031Sstas </tr> 144226031Sstas <tr> 145226031Sstas <td class="paramkey"></td> 146226031Sstas <td></td> 147226031Sstas <td class="paramtype">hx509_ca_tbs </td> 148226031Sstas <td class="paramname"> <em>tbs</em>, </td> 149226031Sstas </tr> 150226031Sstas <tr> 151226031Sstas <td class="paramkey"></td> 152226031Sstas <td></td> 153226031Sstas <td class="paramtype">hx509_private_key </td> 154226031Sstas <td class="paramname"> <em>signer</em>, </td> 155226031Sstas </tr> 156226031Sstas <tr> 157226031Sstas <td class="paramkey"></td> 158226031Sstas <td></td> 159226031Sstas <td class="paramtype">hx509_cert * </td> 160226031Sstas <td class="paramname"> <em>certificate</em></td><td> </td> 161226031Sstas </tr> 162226031Sstas <tr> 163226031Sstas <td></td> 164226031Sstas <td>)</td> 165226031Sstas <td></td><td></td><td></td> 166226031Sstas </tr> 167226031Sstas </table> 168226031Sstas</div> 169226031Sstas<div class="memdoc"> 170226031Sstas 171226031Sstas<p> 172226031SstasWork just like <a class="el" href="group__hx509__ca.html#g3f0ff00b9c54018e346eed759b25ae16">hx509_ca_sign()</a> but signs it-self.<p> 173226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 174226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 175226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 176226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 177226031Sstas <tr><td valign="top"></td><td valign="top"><em>signer</em> </td><td>private key to sign with. </td></tr> 178226031Sstas <tr><td valign="top"></td><td valign="top"><em>certificate</em> </td><td>return cerificate, free with <a class="el" href="group__hx509__cert.html#gd2f9bb0ddc4babb26a8ccd983db8c948">hx509_cert_free()</a>.</td></tr> 179226031Sstas </table> 180226031Sstas</dl> 181226031Sstas<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> 182226031Sstas 183226031Sstas</div> 184226031Sstas</div><p> 185226031Sstas<a class="anchor" name="g8c5b557c63342686630b62239396b96a"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_crl_dp_uri" ref="g8c5b557c63342686630b62239396b96a" args="(hx509_context context, hx509_ca_tbs tbs, const char *uri, hx509_name issuername)" --> 186226031Sstas<div class="memitem"> 187226031Sstas<div class="memproto"> 188226031Sstas <table class="memname"> 189226031Sstas <tr> 190226031Sstas <td class="memname">int hx509_ca_tbs_add_crl_dp_uri </td> 191226031Sstas <td>(</td> 192226031Sstas <td class="paramtype">hx509_context </td> 193226031Sstas <td class="paramname"> <em>context</em>, </td> 194226031Sstas </tr> 195226031Sstas <tr> 196226031Sstas <td class="paramkey"></td> 197226031Sstas <td></td> 198226031Sstas <td class="paramtype">hx509_ca_tbs </td> 199226031Sstas <td class="paramname"> <em>tbs</em>, </td> 200226031Sstas </tr> 201226031Sstas <tr> 202226031Sstas <td class="paramkey"></td> 203226031Sstas <td></td> 204226031Sstas <td class="paramtype">const char * </td> 205226031Sstas <td class="paramname"> <em>uri</em>, </td> 206226031Sstas </tr> 207226031Sstas <tr> 208226031Sstas <td class="paramkey"></td> 209226031Sstas <td></td> 210226031Sstas <td class="paramtype">hx509_name </td> 211226031Sstas <td class="paramname"> <em>issuername</em></td><td> </td> 212226031Sstas </tr> 213226031Sstas <tr> 214226031Sstas <td></td> 215226031Sstas <td>)</td> 216226031Sstas <td></td><td></td><td></td> 217226031Sstas </tr> 218226031Sstas </table> 219226031Sstas</div> 220226031Sstas<div class="memdoc"> 221226031Sstas 222226031Sstas<p> 223226031SstasAdd CRL distribution point URI to the to-be-signed certificate object.<p> 224226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 225226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 226226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 227226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 228226031Sstas <tr><td valign="top"></td><td valign="top"><em>uri</em> </td><td>uri to the CRL. </td></tr> 229226031Sstas <tr><td valign="top"></td><td valign="top"><em>issuername</em> </td><td>name of the issuer.</td></tr> 230226031Sstas </table> 231226031Sstas</dl> 232226031Sstas<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> 233226031Sstas 234226031Sstas<p> 235226031Sstasissuername not supported 236226031Sstas</div> 237226031Sstas</div><p> 238226031Sstas<a class="anchor" name="g4d26e70019741e516dc92158914cd414"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_eku" ref="g4d26e70019741e516dc92158914cd414" args="(hx509_context context, hx509_ca_tbs tbs, const heim_oid *oid)" --> 239226031Sstas<div class="memitem"> 240226031Sstas<div class="memproto"> 241226031Sstas <table class="memname"> 242226031Sstas <tr> 243226031Sstas <td class="memname">int hx509_ca_tbs_add_eku </td> 244226031Sstas <td>(</td> 245226031Sstas <td class="paramtype">hx509_context </td> 246226031Sstas <td class="paramname"> <em>context</em>, </td> 247226031Sstas </tr> 248226031Sstas <tr> 249226031Sstas <td class="paramkey"></td> 250226031Sstas <td></td> 251226031Sstas <td class="paramtype">hx509_ca_tbs </td> 252226031Sstas <td class="paramname"> <em>tbs</em>, </td> 253226031Sstas </tr> 254226031Sstas <tr> 255226031Sstas <td class="paramkey"></td> 256226031Sstas <td></td> 257226031Sstas <td class="paramtype">const heim_oid * </td> 258226031Sstas <td class="paramname"> <em>oid</em></td><td> </td> 259226031Sstas </tr> 260226031Sstas <tr> 261226031Sstas <td></td> 262226031Sstas <td>)</td> 263226031Sstas <td></td><td></td><td></td> 264226031Sstas </tr> 265226031Sstas </table> 266226031Sstas</div> 267226031Sstas<div class="memdoc"> 268226031Sstas 269226031Sstas<p> 270226031SstasAn an extended key usage to the to-be-signed certificate object. Duplicates will detected and not added.<p> 271226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 272226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 273226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 274226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 275226031Sstas <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>extended key usage to add.</td></tr> 276226031Sstas </table> 277226031Sstas</dl> 278226031Sstas<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> 279226031Sstas 280226031Sstas</div> 281226031Sstas</div><p> 282226031Sstas<a class="anchor" name="g3f4c23c964ef2331b45f80fb5355ede7"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_hostname" ref="g3f4c23c964ef2331b45f80fb5355ede7" args="(hx509_context context, hx509_ca_tbs tbs, const char *dnsname)" --> 283226031Sstas<div class="memitem"> 284226031Sstas<div class="memproto"> 285226031Sstas <table class="memname"> 286226031Sstas <tr> 287226031Sstas <td class="memname">int hx509_ca_tbs_add_san_hostname </td> 288226031Sstas <td>(</td> 289226031Sstas <td class="paramtype">hx509_context </td> 290226031Sstas <td class="paramname"> <em>context</em>, </td> 291226031Sstas </tr> 292226031Sstas <tr> 293226031Sstas <td class="paramkey"></td> 294226031Sstas <td></td> 295226031Sstas <td class="paramtype">hx509_ca_tbs </td> 296226031Sstas <td class="paramname"> <em>tbs</em>, </td> 297226031Sstas </tr> 298226031Sstas <tr> 299226031Sstas <td class="paramkey"></td> 300226031Sstas <td></td> 301226031Sstas <td class="paramtype">const char * </td> 302226031Sstas <td class="paramname"> <em>dnsname</em></td><td> </td> 303226031Sstas </tr> 304226031Sstas <tr> 305226031Sstas <td></td> 306226031Sstas <td>)</td> 307226031Sstas <td></td><td></td><td></td> 308226031Sstas </tr> 309226031Sstas </table> 310226031Sstas</div> 311226031Sstas<div class="memdoc"> 312226031Sstas 313226031Sstas<p> 314226031SstasAdd a Subject Alternative Name hostname to to-be-signed certificate object. A domain match starts with ., an exact match does not.<p> 315226031SstasExample of a an domain match: .domain.se matches the hostname host.domain.se.<p> 316226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 317226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 318226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 319226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 320226031Sstas <tr><td valign="top"></td><td valign="top"><em>dnsname</em> </td><td>a hostame.</td></tr> 321226031Sstas </table> 322226031Sstas</dl> 323226031Sstas<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> 324226031Sstas 325226031Sstas</div> 326226031Sstas</div><p> 327226031Sstas<a class="anchor" name="g6286a0d6f375949301d62215184e7275"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_jid" ref="g6286a0d6f375949301d62215184e7275" args="(hx509_context context, hx509_ca_tbs tbs, const char *jid)" --> 328226031Sstas<div class="memitem"> 329226031Sstas<div class="memproto"> 330226031Sstas <table class="memname"> 331226031Sstas <tr> 332226031Sstas <td class="memname">int hx509_ca_tbs_add_san_jid </td> 333226031Sstas <td>(</td> 334226031Sstas <td class="paramtype">hx509_context </td> 335226031Sstas <td class="paramname"> <em>context</em>, </td> 336226031Sstas </tr> 337226031Sstas <tr> 338226031Sstas <td class="paramkey"></td> 339226031Sstas <td></td> 340226031Sstas <td class="paramtype">hx509_ca_tbs </td> 341226031Sstas <td class="paramname"> <em>tbs</em>, </td> 342226031Sstas </tr> 343226031Sstas <tr> 344226031Sstas <td class="paramkey"></td> 345226031Sstas <td></td> 346226031Sstas <td class="paramtype">const char * </td> 347226031Sstas <td class="paramname"> <em>jid</em></td><td> </td> 348226031Sstas </tr> 349226031Sstas <tr> 350226031Sstas <td></td> 351226031Sstas <td>)</td> 352226031Sstas <td></td><td></td><td></td> 353226031Sstas </tr> 354226031Sstas </table> 355226031Sstas</div> 356226031Sstas<div class="memdoc"> 357226031Sstas 358226031Sstas<p> 359226031SstasAdd a Jabber/XMPP jid Subject Alternative Name to the to-be-signed certificate object. The jid is an UTF8 string.<p> 360226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 361226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 362226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 363226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 364226031Sstas <tr><td valign="top"></td><td valign="top"><em>jid</em> </td><td>string of an a jabber id in UTF8.</td></tr> 365226031Sstas </table> 366226031Sstas</dl> 367226031Sstas<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> 368226031Sstas 369226031Sstas</div> 370226031Sstas</div><p> 371226031Sstas<a class="anchor" name="gbc4f3398499094a859fbceb769ba5051"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_ms_upn" ref="gbc4f3398499094a859fbceb769ba5051" args="(hx509_context context, hx509_ca_tbs tbs, const char *principal)" --> 372226031Sstas<div class="memitem"> 373226031Sstas<div class="memproto"> 374226031Sstas <table class="memname"> 375226031Sstas <tr> 376226031Sstas <td class="memname">int hx509_ca_tbs_add_san_ms_upn </td> 377226031Sstas <td>(</td> 378226031Sstas <td class="paramtype">hx509_context </td> 379226031Sstas <td class="paramname"> <em>context</em>, </td> 380226031Sstas </tr> 381226031Sstas <tr> 382226031Sstas <td class="paramkey"></td> 383226031Sstas <td></td> 384226031Sstas <td class="paramtype">hx509_ca_tbs </td> 385226031Sstas <td class="paramname"> <em>tbs</em>, </td> 386226031Sstas </tr> 387226031Sstas <tr> 388226031Sstas <td class="paramkey"></td> 389226031Sstas <td></td> 390226031Sstas <td class="paramtype">const char * </td> 391226031Sstas <td class="paramname"> <em>principal</em></td><td> </td> 392226031Sstas </tr> 393226031Sstas <tr> 394226031Sstas <td></td> 395226031Sstas <td>)</td> 396226031Sstas <td></td><td></td><td></td> 397226031Sstas </tr> 398226031Sstas </table> 399226031Sstas</div> 400226031Sstas<div class="memdoc"> 401226031Sstas 402226031Sstas<p> 403226031SstasAdd Microsoft UPN Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.<p> 404226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 405226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 406226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 407226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 408226031Sstas <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>Microsoft UPN string.</td></tr> 409226031Sstas </table> 410226031Sstas</dl> 411226031Sstas<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> 412226031Sstas 413226031Sstas</div> 414226031Sstas</div><p> 415226031Sstas<a class="anchor" name="g8e938c9e9b1fea29e5bf77a2824891e2"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_otherName" ref="g8e938c9e9b1fea29e5bf77a2824891e2" args="(hx509_context context, hx509_ca_tbs tbs, const heim_oid *oid, const heim_octet_string *os)" --> 416226031Sstas<div class="memitem"> 417226031Sstas<div class="memproto"> 418226031Sstas <table class="memname"> 419226031Sstas <tr> 420226031Sstas <td class="memname">int hx509_ca_tbs_add_san_otherName </td> 421226031Sstas <td>(</td> 422226031Sstas <td class="paramtype">hx509_context </td> 423226031Sstas <td class="paramname"> <em>context</em>, </td> 424226031Sstas </tr> 425226031Sstas <tr> 426226031Sstas <td class="paramkey"></td> 427226031Sstas <td></td> 428226031Sstas <td class="paramtype">hx509_ca_tbs </td> 429226031Sstas <td class="paramname"> <em>tbs</em>, </td> 430226031Sstas </tr> 431226031Sstas <tr> 432226031Sstas <td class="paramkey"></td> 433226031Sstas <td></td> 434226031Sstas <td class="paramtype">const heim_oid * </td> 435226031Sstas <td class="paramname"> <em>oid</em>, </td> 436226031Sstas </tr> 437226031Sstas <tr> 438226031Sstas <td class="paramkey"></td> 439226031Sstas <td></td> 440226031Sstas <td class="paramtype">const heim_octet_string * </td> 441226031Sstas <td class="paramname"> <em>os</em></td><td> </td> 442226031Sstas </tr> 443226031Sstas <tr> 444226031Sstas <td></td> 445226031Sstas <td>)</td> 446226031Sstas <td></td><td></td><td></td> 447226031Sstas </tr> 448226031Sstas </table> 449226031Sstas</div> 450226031Sstas<div class="memdoc"> 451226031Sstas 452226031Sstas<p> 453226031SstasAdd Subject Alternative Name otherName to the to-be-signed certificate object.<p> 454226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 455226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 456226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 457226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 458226031Sstas <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>the oid of the OtherName. </td></tr> 459226031Sstas <tr><td valign="top"></td><td valign="top"><em>os</em> </td><td>data in the other name.</td></tr> 460226031Sstas </table> 461226031Sstas</dl> 462226031Sstas<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> 463226031Sstas 464226031Sstas</div> 465226031Sstas</div><p> 466226031Sstas<a class="anchor" name="gede019208dbf7ad49cd077951887c4c3"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_pkinit" ref="gede019208dbf7ad49cd077951887c4c3" args="(hx509_context context, hx509_ca_tbs tbs, const char *principal)" --> 467226031Sstas<div class="memitem"> 468226031Sstas<div class="memproto"> 469226031Sstas <table class="memname"> 470226031Sstas <tr> 471226031Sstas <td class="memname">int hx509_ca_tbs_add_san_pkinit </td> 472226031Sstas <td>(</td> 473226031Sstas <td class="paramtype">hx509_context </td> 474226031Sstas <td class="paramname"> <em>context</em>, </td> 475226031Sstas </tr> 476226031Sstas <tr> 477226031Sstas <td class="paramkey"></td> 478226031Sstas <td></td> 479226031Sstas <td class="paramtype">hx509_ca_tbs </td> 480226031Sstas <td class="paramname"> <em>tbs</em>, </td> 481226031Sstas </tr> 482226031Sstas <tr> 483226031Sstas <td class="paramkey"></td> 484226031Sstas <td></td> 485226031Sstas <td class="paramtype">const char * </td> 486226031Sstas <td class="paramname"> <em>principal</em></td><td> </td> 487226031Sstas </tr> 488226031Sstas <tr> 489226031Sstas <td></td> 490226031Sstas <td>)</td> 491226031Sstas <td></td><td></td><td></td> 492226031Sstas </tr> 493226031Sstas </table> 494226031Sstas</div> 495226031Sstas<div class="memdoc"> 496226031Sstas 497226031Sstas<p> 498226031SstasAdd Kerberos Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.<p> 499226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 500226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 501226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 502226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 503226031Sstas <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>Kerberos principal to add to the certificate.</td></tr> 504226031Sstas </table> 505226031Sstas</dl> 506226031Sstas<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> 507226031Sstas 508226031Sstas</div> 509226031Sstas</div><p> 510226031Sstas<a class="anchor" name="gf621ee0bac71f4ee09881812f4c4d196"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_add_san_rfc822name" ref="gf621ee0bac71f4ee09881812f4c4d196" args="(hx509_context context, hx509_ca_tbs tbs, const char *rfc822Name)" --> 511226031Sstas<div class="memitem"> 512226031Sstas<div class="memproto"> 513226031Sstas <table class="memname"> 514226031Sstas <tr> 515226031Sstas <td class="memname">int hx509_ca_tbs_add_san_rfc822name </td> 516226031Sstas <td>(</td> 517226031Sstas <td class="paramtype">hx509_context </td> 518226031Sstas <td class="paramname"> <em>context</em>, </td> 519226031Sstas </tr> 520226031Sstas <tr> 521226031Sstas <td class="paramkey"></td> 522226031Sstas <td></td> 523226031Sstas <td class="paramtype">hx509_ca_tbs </td> 524226031Sstas <td class="paramname"> <em>tbs</em>, </td> 525226031Sstas </tr> 526226031Sstas <tr> 527226031Sstas <td class="paramkey"></td> 528226031Sstas <td></td> 529226031Sstas <td class="paramtype">const char * </td> 530226031Sstas <td class="paramname"> <em>rfc822Name</em></td><td> </td> 531226031Sstas </tr> 532226031Sstas <tr> 533226031Sstas <td></td> 534226031Sstas <td>)</td> 535226031Sstas <td></td><td></td><td></td> 536226031Sstas </tr> 537226031Sstas </table> 538226031Sstas</div> 539226031Sstas<div class="memdoc"> 540226031Sstas 541226031Sstas<p> 542226031SstasAdd a Subject Alternative Name rfc822 (email address) to to-be-signed certificate object.<p> 543226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 544226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 545226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 546226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 547226031Sstas <tr><td valign="top"></td><td valign="top"><em>rfc822Name</em> </td><td>a string to a email address.</td></tr> 548226031Sstas </table> 549226031Sstas</dl> 550226031Sstas<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> 551226031Sstas 552226031Sstas</div> 553226031Sstas</div><p> 554226031Sstas<a class="anchor" name="g89eef97566653fbbe6ab32b59ea99299"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_free" ref="g89eef97566653fbbe6ab32b59ea99299" args="(hx509_ca_tbs *tbs)" --> 555226031Sstas<div class="memitem"> 556226031Sstas<div class="memproto"> 557226031Sstas <table class="memname"> 558226031Sstas <tr> 559226031Sstas <td class="memname">void hx509_ca_tbs_free </td> 560226031Sstas <td>(</td> 561226031Sstas <td class="paramtype">hx509_ca_tbs * </td> 562226031Sstas <td class="paramname"> <em>tbs</em> </td> 563226031Sstas <td> ) </td> 564226031Sstas <td></td> 565226031Sstas </tr> 566226031Sstas </table> 567226031Sstas</div> 568226031Sstas<div class="memdoc"> 569226031Sstas 570226031Sstas<p> 571226031SstasFree an To Be Signed object.<p> 572226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 573226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 574226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to free. </td></tr> 575226031Sstas </table> 576226031Sstas</dl> 577226031Sstas 578226031Sstas</div> 579226031Sstas</div><p> 580226031Sstas<a class="anchor" name="g627b48e10d0b3576aec5823d6098ea3a"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_init" ref="g627b48e10d0b3576aec5823d6098ea3a" args="(hx509_context context, hx509_ca_tbs *tbs)" --> 581226031Sstas<div class="memitem"> 582226031Sstas<div class="memproto"> 583226031Sstas <table class="memname"> 584226031Sstas <tr> 585226031Sstas <td class="memname">int hx509_ca_tbs_init </td> 586226031Sstas <td>(</td> 587226031Sstas <td class="paramtype">hx509_context </td> 588226031Sstas <td class="paramname"> <em>context</em>, </td> 589226031Sstas </tr> 590226031Sstas <tr> 591226031Sstas <td class="paramkey"></td> 592226031Sstas <td></td> 593226031Sstas <td class="paramtype">hx509_ca_tbs * </td> 594226031Sstas <td class="paramname"> <em>tbs</em></td><td> </td> 595226031Sstas </tr> 596226031Sstas <tr> 597226031Sstas <td></td> 598226031Sstas <td>)</td> 599226031Sstas <td></td><td></td><td></td> 600226031Sstas </tr> 601226031Sstas </table> 602226031Sstas</div> 603226031Sstas<div class="memdoc"> 604226031Sstas 605226031Sstas<p> 606226031SstasAllocate an to-be-signed certificate object that will be converted into an certificate.<p> 607226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 608226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 609226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 610226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>returned to-be-signed certicate object, free with <a class="el" href="group__hx509__ca.html#g89eef97566653fbbe6ab32b59ea99299">hx509_ca_tbs_free()</a>.</td></tr> 611226031Sstas </table> 612226031Sstas</dl> 613226031Sstas<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> 614226031Sstas 615226031Sstas</div> 616226031Sstas</div><p> 617226031Sstas<a class="anchor" name="g3e105ce23d67234c3b5d35a0752449cf"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_ca" ref="g3e105ce23d67234c3b5d35a0752449cf" args="(hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)" --> 618226031Sstas<div class="memitem"> 619226031Sstas<div class="memproto"> 620226031Sstas <table class="memname"> 621226031Sstas <tr> 622226031Sstas <td class="memname">int hx509_ca_tbs_set_ca </td> 623226031Sstas <td>(</td> 624226031Sstas <td class="paramtype">hx509_context </td> 625226031Sstas <td class="paramname"> <em>context</em>, </td> 626226031Sstas </tr> 627226031Sstas <tr> 628226031Sstas <td class="paramkey"></td> 629226031Sstas <td></td> 630226031Sstas <td class="paramtype">hx509_ca_tbs </td> 631226031Sstas <td class="paramname"> <em>tbs</em>, </td> 632226031Sstas </tr> 633226031Sstas <tr> 634226031Sstas <td class="paramkey"></td> 635226031Sstas <td></td> 636226031Sstas <td class="paramtype">int </td> 637226031Sstas <td class="paramname"> <em>pathLenConstraint</em></td><td> </td> 638226031Sstas </tr> 639226031Sstas <tr> 640226031Sstas <td></td> 641226031Sstas <td>)</td> 642226031Sstas <td></td><td></td><td></td> 643226031Sstas </tr> 644226031Sstas </table> 645226031Sstas</div> 646226031Sstas<div class="memdoc"> 647226031Sstas 648226031Sstas<p> 649226031SstasMake the to-be-signed certificate object a CA certificate. If the pathLenConstraint is negative path length constraint is used.<p> 650226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 651226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 652226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 653226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 654226031Sstas <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em> </td><td>path length constraint, negative, no constraint.</td></tr> 655226031Sstas </table> 656226031Sstas</dl> 657226031Sstas<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> 658226031Sstas 659226031Sstas</div> 660226031Sstas</div><p> 661226031Sstas<a class="anchor" name="ge41a6e44a39c95e6c29376985f0b39b0"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_domaincontroller" ref="ge41a6e44a39c95e6c29376985f0b39b0" args="(hx509_context context, hx509_ca_tbs tbs)" --> 662226031Sstas<div class="memitem"> 663226031Sstas<div class="memproto"> 664226031Sstas <table class="memname"> 665226031Sstas <tr> 666226031Sstas <td class="memname">int hx509_ca_tbs_set_domaincontroller </td> 667226031Sstas <td>(</td> 668226031Sstas <td class="paramtype">hx509_context </td> 669226031Sstas <td class="paramname"> <em>context</em>, </td> 670226031Sstas </tr> 671226031Sstas <tr> 672226031Sstas <td class="paramkey"></td> 673226031Sstas <td></td> 674226031Sstas <td class="paramtype">hx509_ca_tbs </td> 675226031Sstas <td class="paramname"> <em>tbs</em></td><td> </td> 676226031Sstas </tr> 677226031Sstas <tr> 678226031Sstas <td></td> 679226031Sstas <td>)</td> 680226031Sstas <td></td><td></td><td></td> 681226031Sstas </tr> 682226031Sstas </table> 683226031Sstas</div> 684226031Sstas<div class="memdoc"> 685226031Sstas 686226031Sstas<p> 687226031SstasMake the to-be-signed certificate object a windows domain controller certificate.<p> 688226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 689226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 690226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 691226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed.</td></tr> 692226031Sstas </table> 693226031Sstas</dl> 694226031Sstas<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> 695226031Sstas 696226031Sstas</div> 697226031Sstas</div><p> 698226031Sstas<a class="anchor" name="gc64ad4daabe3c912be50c2a32af4fe05"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_notAfter" ref="gc64ad4daabe3c912be50c2a32af4fe05" args="(hx509_context context, hx509_ca_tbs tbs, time_t t)" --> 699226031Sstas<div class="memitem"> 700226031Sstas<div class="memproto"> 701226031Sstas <table class="memname"> 702226031Sstas <tr> 703226031Sstas <td class="memname">int hx509_ca_tbs_set_notAfter </td> 704226031Sstas <td>(</td> 705226031Sstas <td class="paramtype">hx509_context </td> 706226031Sstas <td class="paramname"> <em>context</em>, </td> 707226031Sstas </tr> 708226031Sstas <tr> 709226031Sstas <td class="paramkey"></td> 710226031Sstas <td></td> 711226031Sstas <td class="paramtype">hx509_ca_tbs </td> 712226031Sstas <td class="paramname"> <em>tbs</em>, </td> 713226031Sstas </tr> 714226031Sstas <tr> 715226031Sstas <td class="paramkey"></td> 716226031Sstas <td></td> 717226031Sstas <td class="paramtype">time_t </td> 718226031Sstas <td class="paramname"> <em>t</em></td><td> </td> 719226031Sstas </tr> 720226031Sstas <tr> 721226031Sstas <td></td> 722226031Sstas <td>)</td> 723226031Sstas <td></td><td></td><td></td> 724226031Sstas </tr> 725226031Sstas </table> 726226031Sstas</div> 727226031Sstas<div class="memdoc"> 728226031Sstas 729226031Sstas<p> 730226031SstasSet the absolute time when the certificate is valid to.<p> 731226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 732226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 733226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 734226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 735226031Sstas <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>time when the certificate will expire</td></tr> 736226031Sstas </table> 737226031Sstas</dl> 738226031Sstas<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> 739226031Sstas 740226031Sstas</div> 741226031Sstas</div><p> 742226031Sstas<a class="anchor" name="g587184eedd56450858eb74cae842f084"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_notAfter_lifetime" ref="g587184eedd56450858eb74cae842f084" args="(hx509_context context, hx509_ca_tbs tbs, time_t delta)" --> 743226031Sstas<div class="memitem"> 744226031Sstas<div class="memproto"> 745226031Sstas <table class="memname"> 746226031Sstas <tr> 747226031Sstas <td class="memname">int hx509_ca_tbs_set_notAfter_lifetime </td> 748226031Sstas <td>(</td> 749226031Sstas <td class="paramtype">hx509_context </td> 750226031Sstas <td class="paramname"> <em>context</em>, </td> 751226031Sstas </tr> 752226031Sstas <tr> 753226031Sstas <td class="paramkey"></td> 754226031Sstas <td></td> 755226031Sstas <td class="paramtype">hx509_ca_tbs </td> 756226031Sstas <td class="paramname"> <em>tbs</em>, </td> 757226031Sstas </tr> 758226031Sstas <tr> 759226031Sstas <td class="paramkey"></td> 760226031Sstas <td></td> 761226031Sstas <td class="paramtype">time_t </td> 762226031Sstas <td class="paramname"> <em>delta</em></td><td> </td> 763226031Sstas </tr> 764226031Sstas <tr> 765226031Sstas <td></td> 766226031Sstas <td>)</td> 767226031Sstas <td></td><td></td><td></td> 768226031Sstas </tr> 769226031Sstas </table> 770226031Sstas</div> 771226031Sstas<div class="memdoc"> 772226031Sstas 773226031Sstas<p> 774226031SstasSet the relative time when the certificiate is going to expire.<p> 775226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 776226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 777226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 778226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 779226031Sstas <tr><td valign="top"></td><td valign="top"><em>delta</em> </td><td>seconds to the certificate is going to expire.</td></tr> 780226031Sstas </table> 781226031Sstas</dl> 782226031Sstas<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> 783226031Sstas 784226031Sstas</div> 785226031Sstas</div><p> 786226031Sstas<a class="anchor" name="g6a124401ceb514cf16cf8e3721234d03"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_notBefore" ref="g6a124401ceb514cf16cf8e3721234d03" args="(hx509_context context, hx509_ca_tbs tbs, time_t t)" --> 787226031Sstas<div class="memitem"> 788226031Sstas<div class="memproto"> 789226031Sstas <table class="memname"> 790226031Sstas <tr> 791226031Sstas <td class="memname">int hx509_ca_tbs_set_notBefore </td> 792226031Sstas <td>(</td> 793226031Sstas <td class="paramtype">hx509_context </td> 794226031Sstas <td class="paramname"> <em>context</em>, </td> 795226031Sstas </tr> 796226031Sstas <tr> 797226031Sstas <td class="paramkey"></td> 798226031Sstas <td></td> 799226031Sstas <td class="paramtype">hx509_ca_tbs </td> 800226031Sstas <td class="paramname"> <em>tbs</em>, </td> 801226031Sstas </tr> 802226031Sstas <tr> 803226031Sstas <td class="paramkey"></td> 804226031Sstas <td></td> 805226031Sstas <td class="paramtype">time_t </td> 806226031Sstas <td class="paramname"> <em>t</em></td><td> </td> 807226031Sstas </tr> 808226031Sstas <tr> 809226031Sstas <td></td> 810226031Sstas <td>)</td> 811226031Sstas <td></td><td></td><td></td> 812226031Sstas </tr> 813226031Sstas </table> 814226031Sstas</div> 815226031Sstas<div class="memdoc"> 816226031Sstas 817226031Sstas<p> 818226031SstasSet the absolute time when the certificate is valid from. If not set the current time will be used.<p> 819226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 820226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 821226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 822226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 823226031Sstas <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>time the certificated will start to be valid</td></tr> 824226031Sstas </table> 825226031Sstas</dl> 826226031Sstas<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> 827226031Sstas 828226031Sstas</div> 829226031Sstas</div><p> 830226031Sstas<a class="anchor" name="g215241c575ae3296e137f155a0a4dd6e"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_proxy" ref="g215241c575ae3296e137f155a0a4dd6e" args="(hx509_context context, hx509_ca_tbs tbs, int pathLenConstraint)" --> 831226031Sstas<div class="memitem"> 832226031Sstas<div class="memproto"> 833226031Sstas <table class="memname"> 834226031Sstas <tr> 835226031Sstas <td class="memname">int hx509_ca_tbs_set_proxy </td> 836226031Sstas <td>(</td> 837226031Sstas <td class="paramtype">hx509_context </td> 838226031Sstas <td class="paramname"> <em>context</em>, </td> 839226031Sstas </tr> 840226031Sstas <tr> 841226031Sstas <td class="paramkey"></td> 842226031Sstas <td></td> 843226031Sstas <td class="paramtype">hx509_ca_tbs </td> 844226031Sstas <td class="paramname"> <em>tbs</em>, </td> 845226031Sstas </tr> 846226031Sstas <tr> 847226031Sstas <td class="paramkey"></td> 848226031Sstas <td></td> 849226031Sstas <td class="paramtype">int </td> 850226031Sstas <td class="paramname"> <em>pathLenConstraint</em></td><td> </td> 851226031Sstas </tr> 852226031Sstas <tr> 853226031Sstas <td></td> 854226031Sstas <td>)</td> 855226031Sstas <td></td><td></td><td></td> 856226031Sstas </tr> 857226031Sstas </table> 858226031Sstas</div> 859226031Sstas<div class="memdoc"> 860226031Sstas 861226031Sstas<p> 862226031SstasMake the to-be-signed certificate object a proxy certificate. If the pathLenConstraint is negative path length constraint is used.<p> 863226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 864226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 865226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 866226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 867226031Sstas <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em> </td><td>path length constraint, negative, no constraint.</td></tr> 868226031Sstas </table> 869226031Sstas</dl> 870226031Sstas<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> 871226031Sstas 872226031Sstas</div> 873226031Sstas</div><p> 874226031Sstas<a class="anchor" name="g3f611617f0001575b723a4a9c0d9b3ca"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_serialnumber" ref="g3f611617f0001575b723a4a9c0d9b3ca" args="(hx509_context context, hx509_ca_tbs tbs, const heim_integer *serialNumber)" --> 875226031Sstas<div class="memitem"> 876226031Sstas<div class="memproto"> 877226031Sstas <table class="memname"> 878226031Sstas <tr> 879226031Sstas <td class="memname">int hx509_ca_tbs_set_serialnumber </td> 880226031Sstas <td>(</td> 881226031Sstas <td class="paramtype">hx509_context </td> 882226031Sstas <td class="paramname"> <em>context</em>, </td> 883226031Sstas </tr> 884226031Sstas <tr> 885226031Sstas <td class="paramkey"></td> 886226031Sstas <td></td> 887226031Sstas <td class="paramtype">hx509_ca_tbs </td> 888226031Sstas <td class="paramname"> <em>tbs</em>, </td> 889226031Sstas </tr> 890226031Sstas <tr> 891226031Sstas <td class="paramkey"></td> 892226031Sstas <td></td> 893226031Sstas <td class="paramtype">const heim_integer * </td> 894226031Sstas <td class="paramname"> <em>serialNumber</em></td><td> </td> 895226031Sstas </tr> 896226031Sstas <tr> 897226031Sstas <td></td> 898226031Sstas <td>)</td> 899226031Sstas <td></td><td></td><td></td> 900226031Sstas </tr> 901226031Sstas </table> 902226031Sstas</div> 903226031Sstas<div class="memdoc"> 904226031Sstas 905226031Sstas<p> 906226031SstasSet the serial number to use for to-be-signed certificate object.<p> 907226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 908226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 909226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 910226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 911226031Sstas <tr><td valign="top"></td><td valign="top"><em>serialNumber</em> </td><td>serial number to use for the to-be-signed certificate object.</td></tr> 912226031Sstas </table> 913226031Sstas</dl> 914226031Sstas<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> 915226031Sstas 916226031Sstas</div> 917226031Sstas</div><p> 918226031Sstas<a class="anchor" name="ge12bfa65cf1112bf3181a5499e8f7ba6"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_spki" ref="ge12bfa65cf1112bf3181a5499e8f7ba6" args="(hx509_context context, hx509_ca_tbs tbs, const SubjectPublicKeyInfo *spki)" --> 919226031Sstas<div class="memitem"> 920226031Sstas<div class="memproto"> 921226031Sstas <table class="memname"> 922226031Sstas <tr> 923226031Sstas <td class="memname">int hx509_ca_tbs_set_spki </td> 924226031Sstas <td>(</td> 925226031Sstas <td class="paramtype">hx509_context </td> 926226031Sstas <td class="paramname"> <em>context</em>, </td> 927226031Sstas </tr> 928226031Sstas <tr> 929226031Sstas <td class="paramkey"></td> 930226031Sstas <td></td> 931226031Sstas <td class="paramtype">hx509_ca_tbs </td> 932226031Sstas <td class="paramname"> <em>tbs</em>, </td> 933226031Sstas </tr> 934226031Sstas <tr> 935226031Sstas <td class="paramkey"></td> 936226031Sstas <td></td> 937226031Sstas <td class="paramtype">const SubjectPublicKeyInfo * </td> 938226031Sstas <td class="paramname"> <em>spki</em></td><td> </td> 939226031Sstas </tr> 940226031Sstas <tr> 941226031Sstas <td></td> 942226031Sstas <td>)</td> 943226031Sstas <td></td><td></td><td></td> 944226031Sstas </tr> 945226031Sstas </table> 946226031Sstas</div> 947226031Sstas<div class="memdoc"> 948226031Sstas 949226031Sstas<p> 950226031SstasSet 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> 951226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 952226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 953226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 954226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 955226031Sstas <tr><td valign="top"></td><td valign="top"><em>spki</em> </td><td>subject public key info to use for the to-be-signed certificate object.</td></tr> 956226031Sstas </table> 957226031Sstas</dl> 958226031Sstas<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> 959226031Sstas 960226031Sstas</div> 961226031Sstas</div><p> 962226031Sstas<a class="anchor" name="g9e8cf374812308654e3d7270afb59da1"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_subject" ref="g9e8cf374812308654e3d7270afb59da1" args="(hx509_context context, hx509_ca_tbs tbs, hx509_name subject)" --> 963226031Sstas<div class="memitem"> 964226031Sstas<div class="memproto"> 965226031Sstas <table class="memname"> 966226031Sstas <tr> 967226031Sstas <td class="memname">int hx509_ca_tbs_set_subject </td> 968226031Sstas <td>(</td> 969226031Sstas <td class="paramtype">hx509_context </td> 970226031Sstas <td class="paramname"> <em>context</em>, </td> 971226031Sstas </tr> 972226031Sstas <tr> 973226031Sstas <td class="paramkey"></td> 974226031Sstas <td></td> 975226031Sstas <td class="paramtype">hx509_ca_tbs </td> 976226031Sstas <td class="paramname"> <em>tbs</em>, </td> 977226031Sstas </tr> 978226031Sstas <tr> 979226031Sstas <td class="paramkey"></td> 980226031Sstas <td></td> 981226031Sstas <td class="paramtype">hx509_name </td> 982226031Sstas <td class="paramname"> <em>subject</em></td><td> </td> 983226031Sstas </tr> 984226031Sstas <tr> 985226031Sstas <td></td> 986226031Sstas <td>)</td> 987226031Sstas <td></td><td></td><td></td> 988226031Sstas </tr> 989226031Sstas </table> 990226031Sstas</div> 991226031Sstas<div class="memdoc"> 992226031Sstas 993226031Sstas<p> 994226031SstasSet the subject name of a to-be-signed certificate object.<p> 995226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 996226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 997226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 998226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 999226031Sstas <tr><td valign="top"></td><td valign="top"><em>subject</em> </td><td>the name to set a subject.</td></tr> 1000226031Sstas </table> 1001226031Sstas</dl> 1002226031Sstas<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> 1003226031Sstas 1004226031Sstas</div> 1005226031Sstas</div><p> 1006226031Sstas<a class="anchor" name="g2d7c245443a81540ff993e7cc6f51ebb"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_template" ref="g2d7c245443a81540ff993e7cc6f51ebb" args="(hx509_context context, hx509_ca_tbs tbs, int flags, hx509_cert cert)" --> 1007226031Sstas<div class="memitem"> 1008226031Sstas<div class="memproto"> 1009226031Sstas <table class="memname"> 1010226031Sstas <tr> 1011226031Sstas <td class="memname">int hx509_ca_tbs_set_template </td> 1012226031Sstas <td>(</td> 1013226031Sstas <td class="paramtype">hx509_context </td> 1014226031Sstas <td class="paramname"> <em>context</em>, </td> 1015226031Sstas </tr> 1016226031Sstas <tr> 1017226031Sstas <td class="paramkey"></td> 1018226031Sstas <td></td> 1019226031Sstas <td class="paramtype">hx509_ca_tbs </td> 1020226031Sstas <td class="paramname"> <em>tbs</em>, </td> 1021226031Sstas </tr> 1022226031Sstas <tr> 1023226031Sstas <td class="paramkey"></td> 1024226031Sstas <td></td> 1025226031Sstas <td class="paramtype">int </td> 1026226031Sstas <td class="paramname"> <em>flags</em>, </td> 1027226031Sstas </tr> 1028226031Sstas <tr> 1029226031Sstas <td class="paramkey"></td> 1030226031Sstas <td></td> 1031226031Sstas <td class="paramtype">hx509_cert </td> 1032226031Sstas <td class="paramname"> <em>cert</em></td><td> </td> 1033226031Sstas </tr> 1034226031Sstas <tr> 1035226031Sstas <td></td> 1036226031Sstas <td>)</td> 1037226031Sstas <td></td><td></td><td></td> 1038226031Sstas </tr> 1039226031Sstas </table> 1040226031Sstas</div> 1041226031Sstas<div class="memdoc"> 1042226031Sstas 1043226031Sstas<p> 1044226031SstasInitialize the to-be-signed certificate object from a template certifiate.<p> 1045226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 1046226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 1047226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1048226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 1049226031Sstas <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>bit field selecting what to copy from the template certifiate. </td></tr> 1050226031Sstas <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>template certificate.</td></tr> 1051226031Sstas </table> 1052226031Sstas</dl> 1053226031Sstas<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> 1054226031Sstas 1055226031Sstas</div> 1056226031Sstas</div><p> 1057226031Sstas<a class="anchor" name="ge22ea3d0201845dbc73f4b21502face6"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_set_unique" ref="ge22ea3d0201845dbc73f4b21502face6" args="(hx509_context context, hx509_ca_tbs tbs, const heim_bit_string *subjectUniqueID, const heim_bit_string *issuerUniqueID)" --> 1058226031Sstas<div class="memitem"> 1059226031Sstas<div class="memproto"> 1060226031Sstas <table class="memname"> 1061226031Sstas <tr> 1062226031Sstas <td class="memname">int hx509_ca_tbs_set_unique </td> 1063226031Sstas <td>(</td> 1064226031Sstas <td class="paramtype">hx509_context </td> 1065226031Sstas <td class="paramname"> <em>context</em>, </td> 1066226031Sstas </tr> 1067226031Sstas <tr> 1068226031Sstas <td class="paramkey"></td> 1069226031Sstas <td></td> 1070226031Sstas <td class="paramtype">hx509_ca_tbs </td> 1071226031Sstas <td class="paramname"> <em>tbs</em>, </td> 1072226031Sstas </tr> 1073226031Sstas <tr> 1074226031Sstas <td class="paramkey"></td> 1075226031Sstas <td></td> 1076226031Sstas <td class="paramtype">const heim_bit_string * </td> 1077226031Sstas <td class="paramname"> <em>subjectUniqueID</em>, </td> 1078226031Sstas </tr> 1079226031Sstas <tr> 1080226031Sstas <td class="paramkey"></td> 1081226031Sstas <td></td> 1082226031Sstas <td class="paramtype">const heim_bit_string * </td> 1083226031Sstas <td class="paramname"> <em>issuerUniqueID</em></td><td> </td> 1084226031Sstas </tr> 1085226031Sstas <tr> 1086226031Sstas <td></td> 1087226031Sstas <td>)</td> 1088226031Sstas <td></td><td></td><td></td> 1089226031Sstas </tr> 1090226031Sstas </table> 1091226031Sstas</div> 1092226031Sstas<div class="memdoc"> 1093226031Sstas 1094226031Sstas<p> 1095226031SstasSet the issuerUniqueID and subjectUniqueID<p> 1096226031SstasThese 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> 1097226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 1098226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 1099226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1100226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 1101226031Sstas <tr><td valign="top"></td><td valign="top"><em>issuerUniqueID</em> </td><td>to be set </td></tr> 1102226031Sstas <tr><td valign="top"></td><td valign="top"><em>subjectUniqueID</em> </td><td>to be set</td></tr> 1103226031Sstas </table> 1104226031Sstas</dl> 1105226031Sstas<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> 1106226031Sstas 1107226031Sstas</div> 1108226031Sstas</div><p> 1109226031Sstas<a class="anchor" name="g36432d6249ee668196a692c7286d09ce"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_subject_expand" ref="g36432d6249ee668196a692c7286d09ce" args="(hx509_context context, hx509_ca_tbs tbs, hx509_env env)" --> 1110226031Sstas<div class="memitem"> 1111226031Sstas<div class="memproto"> 1112226031Sstas <table class="memname"> 1113226031Sstas <tr> 1114226031Sstas <td class="memname">int hx509_ca_tbs_subject_expand </td> 1115226031Sstas <td>(</td> 1116226031Sstas <td class="paramtype">hx509_context </td> 1117226031Sstas <td class="paramname"> <em>context</em>, </td> 1118226031Sstas </tr> 1119226031Sstas <tr> 1120226031Sstas <td class="paramkey"></td> 1121226031Sstas <td></td> 1122226031Sstas <td class="paramtype">hx509_ca_tbs </td> 1123226031Sstas <td class="paramname"> <em>tbs</em>, </td> 1124226031Sstas </tr> 1125226031Sstas <tr> 1126226031Sstas <td class="paramkey"></td> 1127226031Sstas <td></td> 1128226031Sstas <td class="paramtype">hx509_env </td> 1129226031Sstas <td class="paramname"> <em>env</em></td><td> </td> 1130226031Sstas </tr> 1131226031Sstas <tr> 1132226031Sstas <td></td> 1133226031Sstas <td>)</td> 1134226031Sstas <td></td><td></td><td></td> 1135226031Sstas </tr> 1136226031Sstas </table> 1137226031Sstas</div> 1138226031Sstas<div class="memdoc"> 1139226031Sstas 1140226031Sstas<p> 1141226031SstasExpand the the subject name in the to-be-signed certificate object using <a class="el" href="group__hx509__name.html#g42015083c70b6aa29c4f082998dbbece">hx509_name_expand()</a>.<p> 1142226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd> 1143226031Sstas <table border="0" cellspacing="2" cellpadding="0"> 1144226031Sstas <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr> 1145226031Sstas <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr> 1146226031Sstas <tr><td valign="top"></td><td valign="top"><em>env</em> </td><td>enviroment variable to expand variables in the subject name, see hx509_env_init().</td></tr> 1147226031Sstas </table> 1148226031Sstas</dl> 1149226031Sstas<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> 1150226031Sstas 1151226031Sstas</div> 1152226031Sstas</div><p> 1153226031Sstas<a class="anchor" name="g2809ea576f40642337c8bf49071723b0"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_template_units" ref="g2809ea576f40642337c8bf49071723b0" args="(void)" --> 1154226031Sstas<div class="memitem"> 1155226031Sstas<div class="memproto"> 1156226031Sstas <table class="memname"> 1157226031Sstas <tr> 1158226031Sstas <td class="memname">struct units* hx509_ca_tbs_template_units </td> 1159226031Sstas <td>(</td> 1160226031Sstas <td class="paramtype">void </td> 1161226031Sstas <td class="paramname"> </td> 1162226031Sstas <td> ) </td> 1163226031Sstas <td><code> [read]</code></td> 1164226031Sstas </tr> 1165226031Sstas </table> 1166226031Sstas</div> 1167226031Sstas<div class="memdoc"> 1168226031Sstas 1169226031Sstas<p> 1170226031SstasMake of template units, use to build flags argument to <a class="el" href="group__hx509__ca.html#g2d7c245443a81540ff993e7cc6f51ebb">hx509_ca_tbs_set_template()</a> with parse_units().<p> 1171226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>an units structure. </dd></dl> 1172226031Sstas 1173226031Sstas</div> 1174226031Sstas</div><p> 1175226031Sstas</div> 1176226031Sstas<hr size="1"><address style="text-align: right;"><small> 1177234027SstasGenerated on Wed Jan 11 14:07:41 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> 1178226031Sstas</body> 1179226031Sstas</html> 1180