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&nbsp;Page</span></a></li>
16226031Sstas      <li><a href="pages.html"><span>Related&nbsp;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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
104226031Sstas          <td class="paramname"> <em>certificate</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
125226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
126226031Sstas    <tr><td valign="top"></td><td valign="top"><em>signer</em>&nbsp;</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>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
160226031Sstas          <td class="paramname"> <em>certificate</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
176226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
177226031Sstas    <tr><td valign="top"></td><td valign="top"><em>signer</em>&nbsp;</td><td>private key to sign with. </td></tr>
178226031Sstas    <tr><td valign="top"></td><td valign="top"><em>certificate</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</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&nbsp;</td>
211226031Sstas          <td class="paramname"> <em>issuername</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
227226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
228226031Sstas    <tr><td valign="top"></td><td valign="top"><em>uri</em>&nbsp;</td><td>uri to the CRL. </td></tr>
229226031Sstas    <tr><td valign="top"></td><td valign="top"><em>issuername</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
258226031Sstas          <td class="paramname"> <em>oid</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
274226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
275226031Sstas    <tr><td valign="top"></td><td valign="top"><em>oid</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
302226031Sstas          <td class="paramname"> <em>dnsname</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
319226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
320226031Sstas    <tr><td valign="top"></td><td valign="top"><em>dnsname</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
347226031Sstas          <td class="paramname"> <em>jid</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
363226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
364226031Sstas    <tr><td valign="top"></td><td valign="top"><em>jid</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
391226031Sstas          <td class="paramname"> <em>principal</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
407226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
408226031Sstas    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
441226031Sstas          <td class="paramname"> <em>os</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
457226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
458226031Sstas    <tr><td valign="top"></td><td valign="top"><em>oid</em>&nbsp;</td><td>the oid of the OtherName. </td></tr>
459226031Sstas    <tr><td valign="top"></td><td valign="top"><em>os</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
486226031Sstas          <td class="paramname"> <em>principal</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
502226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
503226031Sstas    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
530226031Sstas          <td class="paramname"> <em>rfc822Name</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
546226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
547226031Sstas    <tr><td valign="top"></td><td valign="top"><em>rfc822Name</em>&nbsp;</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 *&nbsp;</td>
562226031Sstas          <td class="paramname"> <em>tbs</em>          </td>
563226031Sstas          <td>&nbsp;)&nbsp;</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>&nbsp;</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&nbsp;</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 *&nbsp;</td>
594226031Sstas          <td class="paramname"> <em>tbs</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
610226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
637226031Sstas          <td class="paramname"> <em>pathLenConstraint</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
653226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
654226031Sstas    <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em>&nbsp;</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&nbsp;</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&nbsp;</td>
675226031Sstas          <td class="paramname"> <em>tbs</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
691226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
718226031Sstas          <td class="paramname"> <em>t</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
734226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
735226031Sstas    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
762226031Sstas          <td class="paramname"> <em>delta</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
778226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
779226031Sstas    <tr><td valign="top"></td><td valign="top"><em>delta</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
806226031Sstas          <td class="paramname"> <em>t</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
822226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
823226031Sstas    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
850226031Sstas          <td class="paramname"> <em>pathLenConstraint</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
866226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
867226031Sstas    <tr><td valign="top"></td><td valign="top"><em>pathLenConstraint</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
894226031Sstas          <td class="paramname"> <em>serialNumber</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
910226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
911226031Sstas    <tr><td valign="top"></td><td valign="top"><em>serialNumber</em>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</td>
938226031Sstas          <td class="paramname"> <em>spki</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
954226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
955226031Sstas    <tr><td valign="top"></td><td valign="top"><em>spki</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
982226031Sstas          <td class="paramname"> <em>subject</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
998226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
999226031Sstas    <tr><td valign="top"></td><td valign="top"><em>subject</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
1032226031Sstas          <td class="paramname"> <em>cert</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
1048226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
1049226031Sstas    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</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>&nbsp;</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&nbsp;</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&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
1083226031Sstas          <td class="paramname"> <em>issuerUniqueID</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
1100226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
1101226031Sstas    <tr><td valign="top"></td><td valign="top"><em>issuerUniqueID</em>&nbsp;</td><td>to be set </td></tr>
1102226031Sstas    <tr><td valign="top"></td><td valign="top"><em>subjectUniqueID</em>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td>
1129226031Sstas          <td class="paramname"> <em>env</em></td><td>&nbsp;</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>&nbsp;</td><td>A hx509 context. </td></tr>
1145226031Sstas    <tr><td valign="top"></td><td valign="top"><em>tbs</em>&nbsp;</td><td>object to be signed. </td></tr>
1146226031Sstas    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</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&nbsp;</td>
1161226031Sstas          <td class="paramname">          </td>
1162226031Sstas          <td>&nbsp;)&nbsp;</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&nbsp;<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