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>Heimdalx509library: hx509 CA functions</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
15 <li><a href="index.html"><span>Main Page</span></a></li>
16 <li><a href="pages.html"><span>Related Pages</span></a></li>
17 <li><a href="modules.html"><span>Modules</span></a></li>
21 <div class="contents">
22 <h1>hx509 CA functions</h1><table border="0" cellpadding="0" cellspacing="0">
24 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25 <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>
27 <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>
29 <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>
31 <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>
33 <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>
35 <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>
37 <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>
39 <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>
41 <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>
43 <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>
45 <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>
47 <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>
49 <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>
51 <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>
53 <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>
55 <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>
57 <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>
59 <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>
61 <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>
63 <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>
65 <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>
67 <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>
69 <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>
71 <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>
73 <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>
76 <hr><a name="_details"></a><h2>Detailed Description</h2>
77 See the <a class="el" href="page_ca.html">Hx509 CA functions</a> for description and examples. <hr><h2>Function Documentation</h2>
78 <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)" -->
80 <div class="memproto">
81 <table class="memname">
83 <td class="memname">int hx509_ca_sign </td>
85 <td class="paramtype">hx509_context </td>
86 <td class="paramname"> <em>context</em>, </td>
89 <td class="paramkey"></td>
91 <td class="paramtype">hx509_ca_tbs </td>
92 <td class="paramname"> <em>tbs</em>, </td>
95 <td class="paramkey"></td>
97 <td class="paramtype">hx509_cert </td>
98 <td class="paramname"> <em>signer</em>, </td>
101 <td class="paramkey"></td>
103 <td class="paramtype">hx509_cert * </td>
104 <td class="paramname"> <em>certificate</em></td><td> </td>
109 <td></td><td></td><td></td>
116 Sign a to-be-signed certificate object with a issuer certificate.<p>
117 The caller needs to at least have called the following functions on the to-be-signed certificate object:<ul>
118 <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>
120 When 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>
121 When creating self-signed certificate use <a class="el" href="group__hx509__ca.html#g310b010421b8a7c169566ef74ce319fb">hx509_ca_sign_self()</a> instead.<p>
122 <dl compact><dt><b>Parameters:</b></dt><dd>
123 <table border="0" cellspacing="2" cellpadding="0">
124 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
125 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
126 <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>
127 <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>
130 <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>
134 <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)" -->
135 <div class="memitem">
136 <div class="memproto">
137 <table class="memname">
139 <td class="memname">int hx509_ca_sign_self </td>
141 <td class="paramtype">hx509_context </td>
142 <td class="paramname"> <em>context</em>, </td>
145 <td class="paramkey"></td>
147 <td class="paramtype">hx509_ca_tbs </td>
148 <td class="paramname"> <em>tbs</em>, </td>
151 <td class="paramkey"></td>
153 <td class="paramtype">hx509_private_key </td>
154 <td class="paramname"> <em>signer</em>, </td>
157 <td class="paramkey"></td>
159 <td class="paramtype">hx509_cert * </td>
160 <td class="paramname"> <em>certificate</em></td><td> </td>
165 <td></td><td></td><td></td>
172 Work just like <a class="el" href="group__hx509__ca.html#g3f0ff00b9c54018e346eed759b25ae16">hx509_ca_sign()</a> but signs it-self.<p>
173 <dl compact><dt><b>Parameters:</b></dt><dd>
174 <table border="0" cellspacing="2" cellpadding="0">
175 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
176 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
177 <tr><td valign="top"></td><td valign="top"><em>signer</em> </td><td>private key to sign with. </td></tr>
178 <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>
181 <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>
185 <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)" -->
186 <div class="memitem">
187 <div class="memproto">
188 <table class="memname">
190 <td class="memname">int hx509_ca_tbs_add_crl_dp_uri </td>
192 <td class="paramtype">hx509_context </td>
193 <td class="paramname"> <em>context</em>, </td>
196 <td class="paramkey"></td>
198 <td class="paramtype">hx509_ca_tbs </td>
199 <td class="paramname"> <em>tbs</em>, </td>
202 <td class="paramkey"></td>
204 <td class="paramtype">const char * </td>
205 <td class="paramname"> <em>uri</em>, </td>
208 <td class="paramkey"></td>
210 <td class="paramtype">hx509_name </td>
211 <td class="paramname"> <em>issuername</em></td><td> </td>
216 <td></td><td></td><td></td>
223 Add CRL distribution point URI to the to-be-signed certificate object.<p>
224 <dl compact><dt><b>Parameters:</b></dt><dd>
225 <table border="0" cellspacing="2" cellpadding="0">
226 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
227 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
228 <tr><td valign="top"></td><td valign="top"><em>uri</em> </td><td>uri to the CRL. </td></tr>
229 <tr><td valign="top"></td><td valign="top"><em>issuername</em> </td><td>name of the issuer.</td></tr>
232 <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>
235 issuername not supported
238 <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)" -->
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
243 <td class="memname">int hx509_ca_tbs_add_eku </td>
245 <td class="paramtype">hx509_context </td>
246 <td class="paramname"> <em>context</em>, </td>
249 <td class="paramkey"></td>
251 <td class="paramtype">hx509_ca_tbs </td>
252 <td class="paramname"> <em>tbs</em>, </td>
255 <td class="paramkey"></td>
257 <td class="paramtype">const heim_oid * </td>
258 <td class="paramname"> <em>oid</em></td><td> </td>
263 <td></td><td></td><td></td>
270 An an extended key usage to the to-be-signed certificate object. Duplicates will detected and not added.<p>
271 <dl compact><dt><b>Parameters:</b></dt><dd>
272 <table border="0" cellspacing="2" cellpadding="0">
273 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
274 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
275 <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>extended key usage to add.</td></tr>
278 <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>
282 <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)" -->
283 <div class="memitem">
284 <div class="memproto">
285 <table class="memname">
287 <td class="memname">int hx509_ca_tbs_add_san_hostname </td>
289 <td class="paramtype">hx509_context </td>
290 <td class="paramname"> <em>context</em>, </td>
293 <td class="paramkey"></td>
295 <td class="paramtype">hx509_ca_tbs </td>
296 <td class="paramname"> <em>tbs</em>, </td>
299 <td class="paramkey"></td>
301 <td class="paramtype">const char * </td>
302 <td class="paramname"> <em>dnsname</em></td><td> </td>
307 <td></td><td></td><td></td>
314 Add a Subject Alternative Name hostname to to-be-signed certificate object. A domain match starts with ., an exact match does not.<p>
315 Example of a an domain match: .domain.se matches the hostname host.domain.se.<p>
316 <dl compact><dt><b>Parameters:</b></dt><dd>
317 <table border="0" cellspacing="2" cellpadding="0">
318 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
319 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
320 <tr><td valign="top"></td><td valign="top"><em>dnsname</em> </td><td>a hostame.</td></tr>
323 <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>
327 <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)" -->
328 <div class="memitem">
329 <div class="memproto">
330 <table class="memname">
332 <td class="memname">int hx509_ca_tbs_add_san_jid </td>
334 <td class="paramtype">hx509_context </td>
335 <td class="paramname"> <em>context</em>, </td>
338 <td class="paramkey"></td>
340 <td class="paramtype">hx509_ca_tbs </td>
341 <td class="paramname"> <em>tbs</em>, </td>
344 <td class="paramkey"></td>
346 <td class="paramtype">const char * </td>
347 <td class="paramname"> <em>jid</em></td><td> </td>
352 <td></td><td></td><td></td>
359 Add a Jabber/XMPP jid Subject Alternative Name to the to-be-signed certificate object. The jid is an UTF8 string.<p>
360 <dl compact><dt><b>Parameters:</b></dt><dd>
361 <table border="0" cellspacing="2" cellpadding="0">
362 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
363 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
364 <tr><td valign="top"></td><td valign="top"><em>jid</em> </td><td>string of an a jabber id in UTF8.</td></tr>
367 <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>
371 <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)" -->
372 <div class="memitem">
373 <div class="memproto">
374 <table class="memname">
376 <td class="memname">int hx509_ca_tbs_add_san_ms_upn </td>
378 <td class="paramtype">hx509_context </td>
379 <td class="paramname"> <em>context</em>, </td>
382 <td class="paramkey"></td>
384 <td class="paramtype">hx509_ca_tbs </td>
385 <td class="paramname"> <em>tbs</em>, </td>
388 <td class="paramkey"></td>
390 <td class="paramtype">const char * </td>
391 <td class="paramname"> <em>principal</em></td><td> </td>
396 <td></td><td></td><td></td>
403 Add Microsoft UPN Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.<p>
404 <dl compact><dt><b>Parameters:</b></dt><dd>
405 <table border="0" cellspacing="2" cellpadding="0">
406 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
407 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
408 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>Microsoft UPN string.</td></tr>
411 <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>
415 <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)" -->
416 <div class="memitem">
417 <div class="memproto">
418 <table class="memname">
420 <td class="memname">int hx509_ca_tbs_add_san_otherName </td>
422 <td class="paramtype">hx509_context </td>
423 <td class="paramname"> <em>context</em>, </td>
426 <td class="paramkey"></td>
428 <td class="paramtype">hx509_ca_tbs </td>
429 <td class="paramname"> <em>tbs</em>, </td>
432 <td class="paramkey"></td>
434 <td class="paramtype">const heim_oid * </td>
435 <td class="paramname"> <em>oid</em>, </td>
438 <td class="paramkey"></td>
440 <td class="paramtype">const heim_octet_string * </td>
441 <td class="paramname"> <em>os</em></td><td> </td>
446 <td></td><td></td><td></td>
453 Add Subject Alternative Name otherName to the to-be-signed certificate object.<p>
454 <dl compact><dt><b>Parameters:</b></dt><dd>
455 <table border="0" cellspacing="2" cellpadding="0">
456 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
457 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
458 <tr><td valign="top"></td><td valign="top"><em>oid</em> </td><td>the oid of the OtherName. </td></tr>
459 <tr><td valign="top"></td><td valign="top"><em>os</em> </td><td>data in the other name.</td></tr>
462 <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>
466 <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)" -->
467 <div class="memitem">
468 <div class="memproto">
469 <table class="memname">
471 <td class="memname">int hx509_ca_tbs_add_san_pkinit </td>
473 <td class="paramtype">hx509_context </td>
474 <td class="paramname"> <em>context</em>, </td>
477 <td class="paramkey"></td>
479 <td class="paramtype">hx509_ca_tbs </td>
480 <td class="paramname"> <em>tbs</em>, </td>
483 <td class="paramkey"></td>
485 <td class="paramtype">const char * </td>
486 <td class="paramname"> <em>principal</em></td><td> </td>
491 <td></td><td></td><td></td>
498 Add Kerberos Subject Alternative Name to the to-be-signed certificate object. The principal string is a UTF8 string.<p>
499 <dl compact><dt><b>Parameters:</b></dt><dd>
500 <table border="0" cellspacing="2" cellpadding="0">
501 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
502 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
503 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>Kerberos principal to add to the certificate.</td></tr>
506 <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>
510 <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)" -->
511 <div class="memitem">
512 <div class="memproto">
513 <table class="memname">
515 <td class="memname">int hx509_ca_tbs_add_san_rfc822name </td>
517 <td class="paramtype">hx509_context </td>
518 <td class="paramname"> <em>context</em>, </td>
521 <td class="paramkey"></td>
523 <td class="paramtype">hx509_ca_tbs </td>
524 <td class="paramname"> <em>tbs</em>, </td>
527 <td class="paramkey"></td>
529 <td class="paramtype">const char * </td>
530 <td class="paramname"> <em>rfc822Name</em></td><td> </td>
535 <td></td><td></td><td></td>
542 Add a Subject Alternative Name rfc822 (email address) to to-be-signed certificate object.<p>
543 <dl compact><dt><b>Parameters:</b></dt><dd>
544 <table border="0" cellspacing="2" cellpadding="0">
545 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
546 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
547 <tr><td valign="top"></td><td valign="top"><em>rfc822Name</em> </td><td>a string to a email address.</td></tr>
550 <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>
554 <a class="anchor" name="g89eef97566653fbbe6ab32b59ea99299"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_free" ref="g89eef97566653fbbe6ab32b59ea99299" args="(hx509_ca_tbs *tbs)" -->
555 <div class="memitem">
556 <div class="memproto">
557 <table class="memname">
559 <td class="memname">void hx509_ca_tbs_free </td>
561 <td class="paramtype">hx509_ca_tbs * </td>
562 <td class="paramname"> <em>tbs</em> </td>
563 <td> ) </td>
571 Free an To Be Signed object.<p>
572 <dl compact><dt><b>Parameters:</b></dt><dd>
573 <table border="0" cellspacing="2" cellpadding="0">
574 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to free. </td></tr>
580 <a class="anchor" name="g627b48e10d0b3576aec5823d6098ea3a"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_init" ref="g627b48e10d0b3576aec5823d6098ea3a" args="(hx509_context context, hx509_ca_tbs *tbs)" -->
581 <div class="memitem">
582 <div class="memproto">
583 <table class="memname">
585 <td class="memname">int hx509_ca_tbs_init </td>
587 <td class="paramtype">hx509_context </td>
588 <td class="paramname"> <em>context</em>, </td>
591 <td class="paramkey"></td>
593 <td class="paramtype">hx509_ca_tbs * </td>
594 <td class="paramname"> <em>tbs</em></td><td> </td>
599 <td></td><td></td><td></td>
606 Allocate an to-be-signed certificate object that will be converted into an certificate.<p>
607 <dl compact><dt><b>Parameters:</b></dt><dd>
608 <table border="0" cellspacing="2" cellpadding="0">
609 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
610 <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>
613 <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>
617 <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)" -->
618 <div class="memitem">
619 <div class="memproto">
620 <table class="memname">
622 <td class="memname">int hx509_ca_tbs_set_ca </td>
624 <td class="paramtype">hx509_context </td>
625 <td class="paramname"> <em>context</em>, </td>
628 <td class="paramkey"></td>
630 <td class="paramtype">hx509_ca_tbs </td>
631 <td class="paramname"> <em>tbs</em>, </td>
634 <td class="paramkey"></td>
636 <td class="paramtype">int </td>
637 <td class="paramname"> <em>pathLenConstraint</em></td><td> </td>
642 <td></td><td></td><td></td>
649 Make the to-be-signed certificate object a CA certificate. If the pathLenConstraint is negative path length constraint is used.<p>
650 <dl compact><dt><b>Parameters:</b></dt><dd>
651 <table border="0" cellspacing="2" cellpadding="0">
652 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
653 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
654 <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em> </td><td>path length constraint, negative, no constraint.</td></tr>
657 <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>
661 <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)" -->
662 <div class="memitem">
663 <div class="memproto">
664 <table class="memname">
666 <td class="memname">int hx509_ca_tbs_set_domaincontroller </td>
668 <td class="paramtype">hx509_context </td>
669 <td class="paramname"> <em>context</em>, </td>
672 <td class="paramkey"></td>
674 <td class="paramtype">hx509_ca_tbs </td>
675 <td class="paramname"> <em>tbs</em></td><td> </td>
680 <td></td><td></td><td></td>
687 Make the to-be-signed certificate object a windows domain controller certificate.<p>
688 <dl compact><dt><b>Parameters:</b></dt><dd>
689 <table border="0" cellspacing="2" cellpadding="0">
690 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
691 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed.</td></tr>
694 <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>
698 <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)" -->
699 <div class="memitem">
700 <div class="memproto">
701 <table class="memname">
703 <td class="memname">int hx509_ca_tbs_set_notAfter </td>
705 <td class="paramtype">hx509_context </td>
706 <td class="paramname"> <em>context</em>, </td>
709 <td class="paramkey"></td>
711 <td class="paramtype">hx509_ca_tbs </td>
712 <td class="paramname"> <em>tbs</em>, </td>
715 <td class="paramkey"></td>
717 <td class="paramtype">time_t </td>
718 <td class="paramname"> <em>t</em></td><td> </td>
723 <td></td><td></td><td></td>
730 Set the absolute time when the certificate is valid to.<p>
731 <dl compact><dt><b>Parameters:</b></dt><dd>
732 <table border="0" cellspacing="2" cellpadding="0">
733 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
734 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
735 <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>time when the certificate will expire</td></tr>
738 <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>
742 <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)" -->
743 <div class="memitem">
744 <div class="memproto">
745 <table class="memname">
747 <td class="memname">int hx509_ca_tbs_set_notAfter_lifetime </td>
749 <td class="paramtype">hx509_context </td>
750 <td class="paramname"> <em>context</em>, </td>
753 <td class="paramkey"></td>
755 <td class="paramtype">hx509_ca_tbs </td>
756 <td class="paramname"> <em>tbs</em>, </td>
759 <td class="paramkey"></td>
761 <td class="paramtype">time_t </td>
762 <td class="paramname"> <em>delta</em></td><td> </td>
767 <td></td><td></td><td></td>
774 Set the relative time when the certificiate is going to expire.<p>
775 <dl compact><dt><b>Parameters:</b></dt><dd>
776 <table border="0" cellspacing="2" cellpadding="0">
777 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
778 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
779 <tr><td valign="top"></td><td valign="top"><em>delta</em> </td><td>seconds to the certificate is going to expire.</td></tr>
782 <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>
786 <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)" -->
787 <div class="memitem">
788 <div class="memproto">
789 <table class="memname">
791 <td class="memname">int hx509_ca_tbs_set_notBefore </td>
793 <td class="paramtype">hx509_context </td>
794 <td class="paramname"> <em>context</em>, </td>
797 <td class="paramkey"></td>
799 <td class="paramtype">hx509_ca_tbs </td>
800 <td class="paramname"> <em>tbs</em>, </td>
803 <td class="paramkey"></td>
805 <td class="paramtype">time_t </td>
806 <td class="paramname"> <em>t</em></td><td> </td>
811 <td></td><td></td><td></td>
818 Set the absolute time when the certificate is valid from. If not set the current time will be used.<p>
819 <dl compact><dt><b>Parameters:</b></dt><dd>
820 <table border="0" cellspacing="2" cellpadding="0">
821 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
822 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
823 <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>time the certificated will start to be valid</td></tr>
826 <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>
830 <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)" -->
831 <div class="memitem">
832 <div class="memproto">
833 <table class="memname">
835 <td class="memname">int hx509_ca_tbs_set_proxy </td>
837 <td class="paramtype">hx509_context </td>
838 <td class="paramname"> <em>context</em>, </td>
841 <td class="paramkey"></td>
843 <td class="paramtype">hx509_ca_tbs </td>
844 <td class="paramname"> <em>tbs</em>, </td>
847 <td class="paramkey"></td>
849 <td class="paramtype">int </td>
850 <td class="paramname"> <em>pathLenConstraint</em></td><td> </td>
855 <td></td><td></td><td></td>
862 Make the to-be-signed certificate object a proxy certificate. If the pathLenConstraint is negative path length constraint is used.<p>
863 <dl compact><dt><b>Parameters:</b></dt><dd>
864 <table border="0" cellspacing="2" cellpadding="0">
865 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
866 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
867 <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em> </td><td>path length constraint, negative, no constraint.</td></tr>
870 <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>
874 <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)" -->
875 <div class="memitem">
876 <div class="memproto">
877 <table class="memname">
879 <td class="memname">int hx509_ca_tbs_set_serialnumber </td>
881 <td class="paramtype">hx509_context </td>
882 <td class="paramname"> <em>context</em>, </td>
885 <td class="paramkey"></td>
887 <td class="paramtype">hx509_ca_tbs </td>
888 <td class="paramname"> <em>tbs</em>, </td>
891 <td class="paramkey"></td>
893 <td class="paramtype">const heim_integer * </td>
894 <td class="paramname"> <em>serialNumber</em></td><td> </td>
899 <td></td><td></td><td></td>
906 Set the serial number to use for to-be-signed certificate object.<p>
907 <dl compact><dt><b>Parameters:</b></dt><dd>
908 <table border="0" cellspacing="2" cellpadding="0">
909 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
910 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
911 <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>
914 <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>
918 <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)" -->
919 <div class="memitem">
920 <div class="memproto">
921 <table class="memname">
923 <td class="memname">int hx509_ca_tbs_set_spki </td>
925 <td class="paramtype">hx509_context </td>
926 <td class="paramname"> <em>context</em>, </td>
929 <td class="paramkey"></td>
931 <td class="paramtype">hx509_ca_tbs </td>
932 <td class="paramname"> <em>tbs</em>, </td>
935 <td class="paramkey"></td>
937 <td class="paramtype">const SubjectPublicKeyInfo * </td>
938 <td class="paramname"> <em>spki</em></td><td> </td>
943 <td></td><td></td><td></td>
950 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>
951 <dl compact><dt><b>Parameters:</b></dt><dd>
952 <table border="0" cellspacing="2" cellpadding="0">
953 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
954 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
955 <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>
958 <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>
962 <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)" -->
963 <div class="memitem">
964 <div class="memproto">
965 <table class="memname">
967 <td class="memname">int hx509_ca_tbs_set_subject </td>
969 <td class="paramtype">hx509_context </td>
970 <td class="paramname"> <em>context</em>, </td>
973 <td class="paramkey"></td>
975 <td class="paramtype">hx509_ca_tbs </td>
976 <td class="paramname"> <em>tbs</em>, </td>
979 <td class="paramkey"></td>
981 <td class="paramtype">hx509_name </td>
982 <td class="paramname"> <em>subject</em></td><td> </td>
987 <td></td><td></td><td></td>
994 Set the subject name of a to-be-signed certificate object.<p>
995 <dl compact><dt><b>Parameters:</b></dt><dd>
996 <table border="0" cellspacing="2" cellpadding="0">
997 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
998 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
999 <tr><td valign="top"></td><td valign="top"><em>subject</em> </td><td>the name to set a subject.</td></tr>
1002 <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>
1006 <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)" -->
1007 <div class="memitem">
1008 <div class="memproto">
1009 <table class="memname">
1011 <td class="memname">int hx509_ca_tbs_set_template </td>
1013 <td class="paramtype">hx509_context </td>
1014 <td class="paramname"> <em>context</em>, </td>
1017 <td class="paramkey"></td>
1019 <td class="paramtype">hx509_ca_tbs </td>
1020 <td class="paramname"> <em>tbs</em>, </td>
1023 <td class="paramkey"></td>
1025 <td class="paramtype">int </td>
1026 <td class="paramname"> <em>flags</em>, </td>
1029 <td class="paramkey"></td>
1031 <td class="paramtype">hx509_cert </td>
1032 <td class="paramname"> <em>cert</em></td><td> </td>
1037 <td></td><td></td><td></td>
1041 <div class="memdoc">
1044 Initialize the to-be-signed certificate object from a template certifiate.<p>
1045 <dl compact><dt><b>Parameters:</b></dt><dd>
1046 <table border="0" cellspacing="2" cellpadding="0">
1047 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
1048 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
1049 <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>
1050 <tr><td valign="top"></td><td valign="top"><em>cert</em> </td><td>template certificate.</td></tr>
1053 <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>
1057 <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)" -->
1058 <div class="memitem">
1059 <div class="memproto">
1060 <table class="memname">
1062 <td class="memname">int hx509_ca_tbs_set_unique </td>
1064 <td class="paramtype">hx509_context </td>
1065 <td class="paramname"> <em>context</em>, </td>
1068 <td class="paramkey"></td>
1070 <td class="paramtype">hx509_ca_tbs </td>
1071 <td class="paramname"> <em>tbs</em>, </td>
1074 <td class="paramkey"></td>
1076 <td class="paramtype">const heim_bit_string * </td>
1077 <td class="paramname"> <em>subjectUniqueID</em>, </td>
1080 <td class="paramkey"></td>
1082 <td class="paramtype">const heim_bit_string * </td>
1083 <td class="paramname"> <em>issuerUniqueID</em></td><td> </td>
1088 <td></td><td></td><td></td>
1092 <div class="memdoc">
1095 Set the issuerUniqueID and subjectUniqueID<p>
1096 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>
1097 <dl compact><dt><b>Parameters:</b></dt><dd>
1098 <table border="0" cellspacing="2" cellpadding="0">
1099 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
1100 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
1101 <tr><td valign="top"></td><td valign="top"><em>issuerUniqueID</em> </td><td>to be set </td></tr>
1102 <tr><td valign="top"></td><td valign="top"><em>subjectUniqueID</em> </td><td>to be set</td></tr>
1105 <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>
1109 <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)" -->
1110 <div class="memitem">
1111 <div class="memproto">
1112 <table class="memname">
1114 <td class="memname">int hx509_ca_tbs_subject_expand </td>
1116 <td class="paramtype">hx509_context </td>
1117 <td class="paramname"> <em>context</em>, </td>
1120 <td class="paramkey"></td>
1122 <td class="paramtype">hx509_ca_tbs </td>
1123 <td class="paramname"> <em>tbs</em>, </td>
1126 <td class="paramkey"></td>
1128 <td class="paramtype">hx509_env </td>
1129 <td class="paramname"> <em>env</em></td><td> </td>
1134 <td></td><td></td><td></td>
1138 <div class="memdoc">
1141 Expand 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>
1142 <dl compact><dt><b>Parameters:</b></dt><dd>
1143 <table border="0" cellspacing="2" cellpadding="0">
1144 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
1145 <tr><td valign="top"></td><td valign="top"><em>tbs</em> </td><td>object to be signed. </td></tr>
1146 <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>
1149 <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>
1153 <a class="anchor" name="g2809ea576f40642337c8bf49071723b0"></a><!-- doxytag: member="ca.c::hx509_ca_tbs_template_units" ref="g2809ea576f40642337c8bf49071723b0" args="(void)" -->
1154 <div class="memitem">
1155 <div class="memproto">
1156 <table class="memname">
1158 <td class="memname">struct units* hx509_ca_tbs_template_units </td>
1160 <td class="paramtype">void </td>
1161 <td class="paramname"> </td>
1162 <td> ) </td>
1163 <td><code> [read]</code></td>
1167 <div class="memdoc">
1170 Make 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>
1171 <dl class="return" compact><dt><b>Returns:</b></dt><dd>an units structure. </dd></dl>
1176 <hr size="1"><address style="text-align: right;"><small>
1177 Generated 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>