1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Heimdalx509library: hx509 name functions</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
15 <li><a href="index.html"><span>Main Page</span></a></li>
16 <li><a href="pages.html"><span>Related Pages</span></a></li>
17 <li><a href="modules.html"><span>Modules</span></a></li>
21 <div class="contents">
22 <h1>hx509 name functions</h1><table border="0" cellpadding="0" cellspacing="0">
24 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g1bd74b34e0aa88b083678ba231d38718">hx509_name_to_string</a> (const hx509_name name, char **str)</td></tr>
27 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#gbd49c49301d601bc53371b867a7eac54">hx509_name_cmp</a> (hx509_name n1, hx509_name n2)</td></tr>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g0565f607a4e57d0911ee7081ad9548c5">hx509_parse_name</a> (hx509_context context, const char *str, hx509_name *name)</td></tr>
31 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#gcf9b6bfcdd810bed71e98f7e04d918ca">hx509_name_copy</a> (hx509_context context, const hx509_name from, hx509_name *to)</td></tr>
33 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g6e65dc67aa48bb87e4fb98ecfe512fbd">hx509_name_to_Name</a> (const hx509_name from, Name *to)</td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g42015083c70b6aa29c4f082998dbbece">hx509_name_expand</a> (hx509_context context, hx509_name name, hx509_env env)</td></tr>
37 <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#gaf351931efb02fc7aea736af9977155e">hx509_name_free</a> (hx509_name *name)</td></tr>
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#gf8f73e0a75da2189b1815d8c968750df">hx509_unparse_der_name</a> (const void *data, size_t length, char **str)</td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g1838777e576422c1cb17093bbf7fa018">hx509_name_binary</a> (const hx509_name name, heim_octet_string *os)</td></tr>
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g4f6715dcabbbcb5d48512e504eae8352">hx509_name_is_null_p</a> (const hx509_name name)</td></tr>
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hx509__name.html#g678a0bf7676746ea1827efe951042f1e">hx509_general_name_unparse</a> (GeneralName *name, char **str)</td></tr>
48 <hr><a name="_details"></a><h2>Detailed Description</h2>
49 See the <a class="el" href="page_name.html">PKIX/X.509 Names</a> for description and examples. <hr><h2>Function Documentation</h2>
50 <a class="anchor" name="g678a0bf7676746ea1827efe951042f1e"></a><!-- doxytag: member="name.c::hx509_general_name_unparse" ref="g678a0bf7676746ea1827efe951042f1e" args="(GeneralName *name, char **str)" -->
52 <div class="memproto">
53 <table class="memname">
55 <td class="memname">int hx509_general_name_unparse </td>
57 <td class="paramtype">GeneralName * </td>
58 <td class="paramname"> <em>name</em>, </td>
61 <td class="paramkey"></td>
63 <td class="paramtype">char ** </td>
64 <td class="paramname"> <em>str</em></td><td> </td>
69 <td></td><td></td><td></td>
76 Unparse the hx509 name in name into a string.<p>
77 <dl compact><dt><b>Parameters:</b></dt><dd>
78 <table border="0" cellspacing="2" cellpadding="0">
79 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name to print </td></tr>
80 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>an allocated string returns the name in string form</td></tr>
83 <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>
87 <a class="anchor" name="g1838777e576422c1cb17093bbf7fa018"></a><!-- doxytag: member="name.c::hx509_name_binary" ref="g1838777e576422c1cb17093bbf7fa018" args="(const hx509_name name, heim_octet_string *os)" -->
89 <div class="memproto">
90 <table class="memname">
92 <td class="memname">int hx509_name_binary </td>
94 <td class="paramtype">const hx509_name </td>
95 <td class="paramname"> <em>name</em>, </td>
98 <td class="paramkey"></td>
100 <td class="paramtype">heim_octet_string * </td>
101 <td class="paramname"> <em>os</em></td><td> </td>
106 <td></td><td></td><td></td>
113 Convert a hx509_name object to DER encoded name.<p>
114 <dl compact><dt><b>Parameters:</b></dt><dd>
115 <table border="0" cellspacing="2" cellpadding="0">
116 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name to concert </td></tr>
117 <tr><td valign="top"></td><td valign="top"><em>os</em> </td><td>data to a DER encoded name, free the resulting octet string with hx509_xfree(os->data).</td></tr>
120 <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>
124 <a class="anchor" name="gbd49c49301d601bc53371b867a7eac54"></a><!-- doxytag: member="name.c::hx509_name_cmp" ref="gbd49c49301d601bc53371b867a7eac54" args="(hx509_name n1, hx509_name n2)" -->
125 <div class="memitem">
126 <div class="memproto">
127 <table class="memname">
129 <td class="memname">int hx509_name_cmp </td>
131 <td class="paramtype">hx509_name </td>
132 <td class="paramname"> <em>n1</em>, </td>
135 <td class="paramkey"></td>
137 <td class="paramtype">hx509_name </td>
138 <td class="paramname"> <em>n2</em></td><td> </td>
143 <td></td><td></td><td></td>
150 Compare to hx509 name object, useful for sorting.<p>
151 <dl compact><dt><b>Parameters:</b></dt><dd>
152 <table border="0" cellspacing="2" cellpadding="0">
153 <tr><td valign="top"></td><td valign="top"><em>n1</em> </td><td>a hx509 name object. </td></tr>
154 <tr><td valign="top"></td><td valign="top"><em>n2</em> </td><td>a hx509 name object.</td></tr>
157 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 the objects are the same, returns > 0 is n2 is "larger" then n2, < 0 if n1 is "smaller" then n2. </dd></dl>
161 <a class="anchor" name="gcf9b6bfcdd810bed71e98f7e04d918ca"></a><!-- doxytag: member="name.c::hx509_name_copy" ref="gcf9b6bfcdd810bed71e98f7e04d918ca" args="(hx509_context context, const hx509_name from, hx509_name *to)" -->
162 <div class="memitem">
163 <div class="memproto">
164 <table class="memname">
166 <td class="memname">int hx509_name_copy </td>
168 <td class="paramtype">hx509_context </td>
169 <td class="paramname"> <em>context</em>, </td>
172 <td class="paramkey"></td>
174 <td class="paramtype">const hx509_name </td>
175 <td class="paramname"> <em>from</em>, </td>
178 <td class="paramkey"></td>
180 <td class="paramtype">hx509_name * </td>
181 <td class="paramname"> <em>to</em></td><td> </td>
186 <td></td><td></td><td></td>
193 Copy a hx509 name object.<p>
194 <dl compact><dt><b>Parameters:</b></dt><dd>
195 <table border="0" cellspacing="2" cellpadding="0">
196 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 cotext. </td></tr>
197 <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>the name to copy from </td></tr>
198 <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>the name to copy to</td></tr>
201 <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>
205 <a class="anchor" name="g42015083c70b6aa29c4f082998dbbece"></a><!-- doxytag: member="name.c::hx509_name_expand" ref="g42015083c70b6aa29c4f082998dbbece" args="(hx509_context context, hx509_name name, hx509_env env)" -->
206 <div class="memitem">
207 <div class="memproto">
208 <table class="memname">
210 <td class="memname">int hx509_name_expand </td>
212 <td class="paramtype">hx509_context </td>
213 <td class="paramname"> <em>context</em>, </td>
216 <td class="paramkey"></td>
218 <td class="paramtype">hx509_name </td>
219 <td class="paramname"> <em>name</em>, </td>
222 <td class="paramkey"></td>
224 <td class="paramtype">hx509_env </td>
225 <td class="paramname"> <em>env</em></td><td> </td>
230 <td></td><td></td><td></td>
237 Expands variables in the name using env. Variables are on the form ${name}. Useful when dealing with certificate templates.<p>
238 <dl compact><dt><b>Parameters:</b></dt><dd>
239 <table border="0" cellspacing="2" cellpadding="0">
240 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 cotext. </td></tr>
241 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name to expand. </td></tr>
242 <tr><td valign="top"></td><td valign="top"><em>env</em> </td><td>environment variable to expand.</td></tr>
245 <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>
248 Only UTF8String rdnSequence names are allowed
251 <a class="anchor" name="gaf351931efb02fc7aea736af9977155e"></a><!-- doxytag: member="name.c::hx509_name_free" ref="gaf351931efb02fc7aea736af9977155e" args="(hx509_name *name)" -->
252 <div class="memitem">
253 <div class="memproto">
254 <table class="memname">
256 <td class="memname">void hx509_name_free </td>
258 <td class="paramtype">hx509_name * </td>
259 <td class="paramname"> <em>name</em> </td>
260 <td> ) </td>
268 Free a hx509 name object, upond return *name will be NULL.<p>
269 <dl compact><dt><b>Parameters:</b></dt><dd>
270 <table border="0" cellspacing="2" cellpadding="0">
271 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>a hx509 name object to be freed. </td></tr>
277 <a class="anchor" name="g4f6715dcabbbcb5d48512e504eae8352"></a><!-- doxytag: member="name.c::hx509_name_is_null_p" ref="g4f6715dcabbbcb5d48512e504eae8352" args="(const hx509_name name)" -->
278 <div class="memitem">
279 <div class="memproto">
280 <table class="memname">
282 <td class="memname">int hx509_name_is_null_p </td>
284 <td class="paramtype">const hx509_name </td>
285 <td class="paramname"> <em>name</em> </td>
286 <td> ) </td>
294 Unparse the hx509 name in name into a string.<p>
295 <dl compact><dt><b>Parameters:</b></dt><dd>
296 <table border="0" cellspacing="2" cellpadding="0">
297 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name to check if its empty/null.</td></tr>
300 <dl class="return" compact><dt><b>Returns:</b></dt><dd>non zero if the name is empty/null. </dd></dl>
304 <a class="anchor" name="g6e65dc67aa48bb87e4fb98ecfe512fbd"></a><!-- doxytag: member="name.c::hx509_name_to_Name" ref="g6e65dc67aa48bb87e4fb98ecfe512fbd" args="(const hx509_name from, Name *to)" -->
305 <div class="memitem">
306 <div class="memproto">
307 <table class="memname">
309 <td class="memname">int hx509_name_to_Name </td>
311 <td class="paramtype">const hx509_name </td>
312 <td class="paramname"> <em>from</em>, </td>
315 <td class="paramkey"></td>
317 <td class="paramtype">Name * </td>
318 <td class="paramname"> <em>to</em></td><td> </td>
323 <td></td><td></td><td></td>
330 Convert a hx509_name into a Name.<p>
331 <dl compact><dt><b>Parameters:</b></dt><dd>
332 <table border="0" cellspacing="2" cellpadding="0">
333 <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>the name to copy from </td></tr>
334 <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>the name to copy to</td></tr>
337 <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>
341 <a class="anchor" name="g1bd74b34e0aa88b083678ba231d38718"></a><!-- doxytag: member="name.c::hx509_name_to_string" ref="g1bd74b34e0aa88b083678ba231d38718" args="(const hx509_name name, char **str)" -->
342 <div class="memitem">
343 <div class="memproto">
344 <table class="memname">
346 <td class="memname">int hx509_name_to_string </td>
348 <td class="paramtype">const hx509_name </td>
349 <td class="paramname"> <em>name</em>, </td>
352 <td class="paramkey"></td>
354 <td class="paramtype">char ** </td>
355 <td class="paramname"> <em>str</em></td><td> </td>
360 <td></td><td></td><td></td>
367 Convert the hx509 name object into a printable string. The resulting string should be freed with free().<p>
368 <dl compact><dt><b>Parameters:</b></dt><dd>
369 <table border="0" cellspacing="2" cellpadding="0">
370 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name to print </td></tr>
371 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string to return</td></tr>
374 <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>
378 <a class="anchor" name="g0565f607a4e57d0911ee7081ad9548c5"></a><!-- doxytag: member="name.c::hx509_parse_name" ref="g0565f607a4e57d0911ee7081ad9548c5" args="(hx509_context context, const char *str, hx509_name *name)" -->
379 <div class="memitem">
380 <div class="memproto">
381 <table class="memname">
383 <td class="memname">int hx509_parse_name </td>
385 <td class="paramtype">hx509_context </td>
386 <td class="paramname"> <em>context</em>, </td>
389 <td class="paramkey"></td>
391 <td class="paramtype">const char * </td>
392 <td class="paramname"> <em>str</em>, </td>
395 <td class="paramkey"></td>
397 <td class="paramtype">hx509_name * </td>
398 <td class="paramname"> <em>name</em></td><td> </td>
403 <td></td><td></td><td></td>
410 Parse a string into a hx509 name object.<p>
411 <dl compact><dt><b>Parameters:</b></dt><dd>
412 <table border="0" cellspacing="2" cellpadding="0">
413 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A hx509 context. </td></tr>
414 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string to parse. </td></tr>
415 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the resulting object, NULL in case of error.</td></tr>
418 <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>
422 <a class="anchor" name="gf8f73e0a75da2189b1815d8c968750df"></a><!-- doxytag: member="name.c::hx509_unparse_der_name" ref="gf8f73e0a75da2189b1815d8c968750df" args="(const void *data, size_t length, char **str)" -->
423 <div class="memitem">
424 <div class="memproto">
425 <table class="memname">
427 <td class="memname">int hx509_unparse_der_name </td>
429 <td class="paramtype">const void * </td>
430 <td class="paramname"> <em>data</em>, </td>
433 <td class="paramkey"></td>
435 <td class="paramtype">size_t </td>
436 <td class="paramname"> <em>length</em>, </td>
439 <td class="paramkey"></td>
441 <td class="paramtype">char ** </td>
442 <td class="paramname"> <em>str</em></td><td> </td>
447 <td></td><td></td><td></td>
454 Convert a DER encoded name info a string.<p>
455 <dl compact><dt><b>Parameters:</b></dt><dd>
456 <table border="0" cellspacing="2" cellpadding="0">
457 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>data to a DER/BER encoded name </td></tr>
458 <tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>length of data </td></tr>
459 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the resulting string, is NULL on failure.</td></tr>
462 <dl class="return" compact><dt><b>Returns:</b></dt><dd>An hx509 error code, see <a class="el" href="group__hx509__error.html#g15791abff76719acb531223fdcbcac87">hx509_get_error_string()</a>. </dd></dl>
467 <hr size="1"><address style="text-align: right;"><small>
468 Generated on Wed Jan 11 14:07:40 2012 for Heimdalx509library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>