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