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"> 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.5.6 --> 12<div class="navigation" id="top"> 13 <div class="tabs"> 14 <ul> 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> 18 </ul> 19 </div> 20</div> 21<div class="contents"> 22<h1>hx509 name functions</h1><table border="0" cellpadding="0" cellspacing="0"> 23<tr><td></td></tr> 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> 26 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> 28 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> 30 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> 32 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> 34 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> 36 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> 38 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> 40 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> 42 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> 44 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> 46 47</table> 48<hr><a name="_details"></a><h2>Detailed Description</h2> 49See 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)" --> 51<div class="memitem"> 52<div class="memproto"> 53 <table class="memname"> 54 <tr> 55 <td class="memname">int hx509_general_name_unparse </td> 56 <td>(</td> 57 <td class="paramtype">GeneralName * </td> 58 <td class="paramname"> <em>name</em>, </td> 59 </tr> 60 <tr> 61 <td class="paramkey"></td> 62 <td></td> 63 <td class="paramtype">char ** </td> 64 <td class="paramname"> <em>str</em></td><td> </td> 65 </tr> 66 <tr> 67 <td></td> 68 <td>)</td> 69 <td></td><td></td><td></td> 70 </tr> 71 </table> 72</div> 73<div class="memdoc"> 74 75<p> 76Unparse 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> 81 </table> 82</dl> 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> 84 85</div> 86</div><p> 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)" --> 88<div class="memitem"> 89<div class="memproto"> 90 <table class="memname"> 91 <tr> 92 <td class="memname">int hx509_name_binary </td> 93 <td>(</td> 94 <td class="paramtype">const hx509_name </td> 95 <td class="paramname"> <em>name</em>, </td> 96 </tr> 97 <tr> 98 <td class="paramkey"></td> 99 <td></td> 100 <td class="paramtype">heim_octet_string * </td> 101 <td class="paramname"> <em>os</em></td><td> </td> 102 </tr> 103 <tr> 104 <td></td> 105 <td>)</td> 106 <td></td><td></td><td></td> 107 </tr> 108 </table> 109</div> 110<div class="memdoc"> 111 112<p> 113Convert 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> 118 </table> 119</dl> 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> 121 122</div> 123</div><p> 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"> 128 <tr> 129 <td class="memname">int hx509_name_cmp </td> 130 <td>(</td> 131 <td class="paramtype">hx509_name </td> 132 <td class="paramname"> <em>n1</em>, </td> 133 </tr> 134 <tr> 135 <td class="paramkey"></td> 136 <td></td> 137 <td class="paramtype">hx509_name </td> 138 <td class="paramname"> <em>n2</em></td><td> </td> 139 </tr> 140 <tr> 141 <td></td> 142 <td>)</td> 143 <td></td><td></td><td></td> 144 </tr> 145 </table> 146</div> 147<div class="memdoc"> 148 149<p> 150Compare 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> 155 </table> 156</dl> 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> 158 159</div> 160</div><p> 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"> 165 <tr> 166 <td class="memname">int hx509_name_copy </td> 167 <td>(</td> 168 <td class="paramtype">hx509_context </td> 169 <td class="paramname"> <em>context</em>, </td> 170 </tr> 171 <tr> 172 <td class="paramkey"></td> 173 <td></td> 174 <td class="paramtype">const hx509_name </td> 175 <td class="paramname"> <em>from</em>, </td> 176 </tr> 177 <tr> 178 <td class="paramkey"></td> 179 <td></td> 180 <td class="paramtype">hx509_name * </td> 181 <td class="paramname"> <em>to</em></td><td> </td> 182 </tr> 183 <tr> 184 <td></td> 185 <td>)</td> 186 <td></td><td></td><td></td> 187 </tr> 188 </table> 189</div> 190<div class="memdoc"> 191 192<p> 193Copy 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> 199 </table> 200</dl> 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> 202 203</div> 204</div><p> 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"> 209 <tr> 210 <td class="memname">int hx509_name_expand </td> 211 <td>(</td> 212 <td class="paramtype">hx509_context </td> 213 <td class="paramname"> <em>context</em>, </td> 214 </tr> 215 <tr> 216 <td class="paramkey"></td> 217 <td></td> 218 <td class="paramtype">hx509_name </td> 219 <td class="paramname"> <em>name</em>, </td> 220 </tr> 221 <tr> 222 <td class="paramkey"></td> 223 <td></td> 224 <td class="paramtype">hx509_env </td> 225 <td class="paramname"> <em>env</em></td><td> </td> 226 </tr> 227 <tr> 228 <td></td> 229 <td>)</td> 230 <td></td><td></td><td></td> 231 </tr> 232 </table> 233</div> 234<div class="memdoc"> 235 236<p> 237Expands 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> 243 </table> 244</dl> 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> 246 247<p> 248Only UTF8String rdnSequence names are allowed 249</div> 250</div><p> 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"> 255 <tr> 256 <td class="memname">void hx509_name_free </td> 257 <td>(</td> 258 <td class="paramtype">hx509_name * </td> 259 <td class="paramname"> <em>name</em> </td> 260 <td> ) </td> 261 <td></td> 262 </tr> 263 </table> 264</div> 265<div class="memdoc"> 266 267<p> 268Free 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> 272 </table> 273</dl> 274 275</div> 276</div><p> 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"> 281 <tr> 282 <td class="memname">int hx509_name_is_null_p </td> 283 <td>(</td> 284 <td class="paramtype">const hx509_name </td> 285 <td class="paramname"> <em>name</em> </td> 286 <td> ) </td> 287 <td></td> 288 </tr> 289 </table> 290</div> 291<div class="memdoc"> 292 293<p> 294Unparse 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> 298 </table> 299</dl> 300<dl class="return" compact><dt><b>Returns:</b></dt><dd>non zero if the name is empty/null. </dd></dl> 301 302</div> 303</div><p> 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"> 308 <tr> 309 <td class="memname">int hx509_name_to_Name </td> 310 <td>(</td> 311 <td class="paramtype">const hx509_name </td> 312 <td class="paramname"> <em>from</em>, </td> 313 </tr> 314 <tr> 315 <td class="paramkey"></td> 316 <td></td> 317 <td class="paramtype">Name * </td> 318 <td class="paramname"> <em>to</em></td><td> </td> 319 </tr> 320 <tr> 321 <td></td> 322 <td>)</td> 323 <td></td><td></td><td></td> 324 </tr> 325 </table> 326</div> 327<div class="memdoc"> 328 329<p> 330Convert 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> 335 </table> 336</dl> 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> 338 339</div> 340</div><p> 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"> 345 <tr> 346 <td class="memname">int hx509_name_to_string </td> 347 <td>(</td> 348 <td class="paramtype">const hx509_name </td> 349 <td class="paramname"> <em>name</em>, </td> 350 </tr> 351 <tr> 352 <td class="paramkey"></td> 353 <td></td> 354 <td class="paramtype">char ** </td> 355 <td class="paramname"> <em>str</em></td><td> </td> 356 </tr> 357 <tr> 358 <td></td> 359 <td>)</td> 360 <td></td><td></td><td></td> 361 </tr> 362 </table> 363</div> 364<div class="memdoc"> 365 366<p> 367Convert 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> 372 </table> 373</dl> 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> 375 376</div> 377</div><p> 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"> 382 <tr> 383 <td class="memname">int hx509_parse_name </td> 384 <td>(</td> 385 <td class="paramtype">hx509_context </td> 386 <td class="paramname"> <em>context</em>, </td> 387 </tr> 388 <tr> 389 <td class="paramkey"></td> 390 <td></td> 391 <td class="paramtype">const char * </td> 392 <td class="paramname"> <em>str</em>, </td> 393 </tr> 394 <tr> 395 <td class="paramkey"></td> 396 <td></td> 397 <td class="paramtype">hx509_name * </td> 398 <td class="paramname"> <em>name</em></td><td> </td> 399 </tr> 400 <tr> 401 <td></td> 402 <td>)</td> 403 <td></td><td></td><td></td> 404 </tr> 405 </table> 406</div> 407<div class="memdoc"> 408 409<p> 410Parse 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> 416 </table> 417</dl> 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> 419 420</div> 421</div><p> 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"> 426 <tr> 427 <td class="memname">int hx509_unparse_der_name </td> 428 <td>(</td> 429 <td class="paramtype">const void * </td> 430 <td class="paramname"> <em>data</em>, </td> 431 </tr> 432 <tr> 433 <td class="paramkey"></td> 434 <td></td> 435 <td class="paramtype">size_t </td> 436 <td class="paramname"> <em>length</em>, </td> 437 </tr> 438 <tr> 439 <td class="paramkey"></td> 440 <td></td> 441 <td class="paramtype">char ** </td> 442 <td class="paramname"> <em>str</em></td><td> </td> 443 </tr> 444 <tr> 445 <td></td> 446 <td>)</td> 447 <td></td><td></td><td></td> 448 </tr> 449 </table> 450</div> 451<div class="memdoc"> 452 453<p> 454Convert 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> 460 </table> 461</dl> 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> 463 464</div> 465</div><p> 466</div> 467<hr size="1"><address style="text-align: right;"><small> 468Generated 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> 469</body> 470</html> 471