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>HeimdalKerberos5library: Heimdal Kerberos 5 keytab handling 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>
18 <li><a href="annotated.html"><span>Data Structures</span></a></li>
22 <div class="contents">
23 <h1>Heimdal Kerberos 5 keytab handling functions</h1><table border="0" cellpadding="0" cellspacing="0">
25 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
26 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
27 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g0b54b479db89c76e46d6edae8328848e">krb5_kt_register</a> (krb5_context context, const krb5_kt_ops *ops)</td></tr>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gc57fead58fb1baa003d6438613731901">krb5_kt_resolve</a> (krb5_context context, const char *name, krb5_keytab *id)</td></tr>
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g3fdc1c60208dc99c1f0ebec18e2a7a52">krb5_kt_default_name</a> (krb5_context context, char *name, size_t namesize)</td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
36 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gaaff7211e887e908d909d75febf33200">krb5_kt_default_modify_name</a> (krb5_context context, char *name, size_t namesize)</td></tr>
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
39 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gfcd059883c79dbd99a179bc4225d16b5">krb5_kt_default</a> (krb5_context context, krb5_keytab *id)</td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
42 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g6040b238ff8adeb346ca35e5530bdeff">krb5_kt_read_service_key</a> (krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock **key)</td></tr>
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
45 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g632921a4b144a4eb656968d836efd9bb">krb5_kt_get_type</a> (krb5_context context, krb5_keytab keytab, char *prefix, size_t prefixsize)</td></tr>
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
48 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga10348fa20bbae806d652aa4adb44bdd">krb5_kt_get_name</a> (krb5_context context, krb5_keytab keytab, char *name, size_t namesize)</td></tr>
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
51 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g40744ad6c5d9eed2b76d26f5e698d1f3">krb5_kt_get_full_name</a> (krb5_context context, krb5_keytab keytab, char **str)</td></tr>
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
54 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gb67f5ae0a7c4b87d193218b842cad590">krb5_kt_close</a> (krb5_context context, krb5_keytab id)</td></tr>
56 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
57 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g23f1f8d506d680564ff0c783b903abf9">krb5_kt_destroy</a> (krb5_context context, krb5_keytab id)</td></tr>
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
60 KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare</a> (krb5_context context, krb5_keytab_entry *entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)</td></tr>
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
63 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gd7183b9573330db0575118057b3a02a5">krb5_kt_get_entry</a> (krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry *entry)</td></tr>
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
66 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g6c6c4233517bd5b12f5c3a99ed31b058">krb5_kt_copy_entry_contents</a> (krb5_context context, const krb5_keytab_entry *in, krb5_keytab_entry *out)</td></tr>
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
69 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry</a> (krb5_context context, krb5_keytab_entry *entry)</td></tr>
71 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
72 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g1efd8ee48d6e3caa31cad475423b8917">krb5_kt_start_seq_get</a> (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</td></tr>
74 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
75 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gc40140c41333a86d3c40426f50b4e1b0">krb5_kt_next_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry, krb5_kt_cursor *cursor)</td></tr>
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
78 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get</a> (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</td></tr>
80 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
81 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g68d16c2a59d10dc3ca84bf8cbf6a4731">krb5_kt_add_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)</td></tr>
83 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
84 krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#g0f3e7f55fd97a595c961f0ffc49bebac">krb5_kt_remove_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)</td></tr>
86 <tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
87 KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gf0947f9089022eaf4c83a463cad10ed3">krb5_kt_have_content</a> (krb5_context context, krb5_keytab id)</td></tr>
90 <hr><a name="_details"></a><h2>Detailed Description</h2>
91 <hr><h2>Function Documentation</h2>
92 <a class="anchor" name="g68d16c2a59d10dc3ca84bf8cbf6a4731"></a><!-- doxytag: member="keytab.c::krb5_kt_add_entry" ref="g68d16c2a59d10dc3ca84bf8cbf6a4731" args="(krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)" -->
94 <div class="memproto">
95 <table class="memname">
97 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry </td>
99 <td class="paramtype">krb5_context </td>
100 <td class="paramname"> <em>context</em>, </td>
103 <td class="paramkey"></td>
105 <td class="paramtype">krb5_keytab </td>
106 <td class="paramname"> <em>id</em>, </td>
109 <td class="paramkey"></td>
111 <td class="paramtype">krb5_keytab_entry * </td>
112 <td class="paramname"> <em>entry</em></td><td> </td>
117 <td></td><td></td><td></td>
124 Add the entry in `entry' to the keytab `id'.<p>
125 <dl compact><dt><b>Parameters:</b></dt><dd>
126 <table border="0" cellspacing="2" cellpadding="0">
127 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
128 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
129 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to add</td></tr>
132 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
136 <a class="anchor" name="gb67f5ae0a7c4b87d193218b842cad590"></a><!-- doxytag: member="keytab.c::krb5_kt_close" ref="gb67f5ae0a7c4b87d193218b842cad590" args="(krb5_context context, krb5_keytab id)" -->
137 <div class="memitem">
138 <div class="memproto">
139 <table class="memname">
141 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close </td>
143 <td class="paramtype">krb5_context </td>
144 <td class="paramname"> <em>context</em>, </td>
147 <td class="paramkey"></td>
149 <td class="paramtype">krb5_keytab </td>
150 <td class="paramname"> <em>id</em></td><td> </td>
155 <td></td><td></td><td></td>
162 Finish using the keytab in `id'. All resources will be released, even on errors.<p>
163 <dl compact><dt><b>Parameters:</b></dt><dd>
164 <table border="0" cellspacing="2" cellpadding="0">
165 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
166 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>keytab to close.</td></tr>
169 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
173 <a class="anchor" name="g688d397ec30b48e5edc5a59567bc8010"></a><!-- doxytag: member="keytab.c::krb5_kt_compare" ref="g688d397ec30b48e5edc5a59567bc8010" args="(krb5_context context, krb5_keytab_entry *entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)" -->
174 <div class="memitem">
175 <div class="memproto">
176 <table class="memname">
178 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare </td>
180 <td class="paramtype">krb5_context </td>
181 <td class="paramname"> <em>context</em>, </td>
184 <td class="paramkey"></td>
186 <td class="paramtype">krb5_keytab_entry * </td>
187 <td class="paramname"> <em>entry</em>, </td>
190 <td class="paramkey"></td>
192 <td class="paramtype">krb5_const_principal </td>
193 <td class="paramname"> <em>principal</em>, </td>
196 <td class="paramkey"></td>
198 <td class="paramtype">krb5_kvno </td>
199 <td class="paramname"> <em>vno</em>, </td>
202 <td class="paramkey"></td>
204 <td class="paramtype">krb5_enctype </td>
205 <td class="paramname"> <em>enctype</em></td><td> </td>
210 <td></td><td></td><td></td>
217 Compare `entry' against `principal, vno, enctype'. Any of `principal, vno, enctype' might be 0 which acts as a wildcard. Return TRUE if they compare the same, FALSE otherwise.<p>
218 <dl compact><dt><b>Parameters:</b></dt><dd>
219 <table border="0" cellspacing="2" cellpadding="0">
220 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
221 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>an entry to match with. </td></tr>
222 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>principal to match, NULL matches all principals. </td></tr>
223 <tr><td valign="top"></td><td valign="top"><em>vno</em> </td><td>key version to match, 0 matches all key version numbers. </td></tr>
224 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td>encryption type to match, 0 matches all encryption types.</td></tr>
227 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return TRUE or match, FALSE if not matched. </dd></dl>
231 <a class="anchor" name="g6c6c4233517bd5b12f5c3a99ed31b058"></a><!-- doxytag: member="keytab.c::krb5_kt_copy_entry_contents" ref="g6c6c4233517bd5b12f5c3a99ed31b058" args="(krb5_context context, const krb5_keytab_entry *in, krb5_keytab_entry *out)" -->
232 <div class="memitem">
233 <div class="memproto">
234 <table class="memname">
236 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents </td>
238 <td class="paramtype">krb5_context </td>
239 <td class="paramname"> <em>context</em>, </td>
242 <td class="paramkey"></td>
244 <td class="paramtype">const krb5_keytab_entry * </td>
245 <td class="paramname"> <em>in</em>, </td>
248 <td class="paramkey"></td>
250 <td class="paramtype">krb5_keytab_entry * </td>
251 <td class="paramname"> <em>out</em></td><td> </td>
256 <td></td><td></td><td></td>
263 Copy the contents of `in' into `out'.<p>
264 <dl compact><dt><b>Parameters:</b></dt><dd>
265 <table border="0" cellspacing="2" cellpadding="0">
266 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
267 <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>the keytab entry to copy. </td></tr>
268 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the copy of the keytab entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr>
271 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
275 <a class="anchor" name="gfcd059883c79dbd99a179bc4225d16b5"></a><!-- doxytag: member="keytab.c::krb5_kt_default" ref="gfcd059883c79dbd99a179bc4225d16b5" args="(krb5_context context, krb5_keytab *id)" -->
276 <div class="memitem">
277 <div class="memproto">
278 <table class="memname">
280 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default </td>
282 <td class="paramtype">krb5_context </td>
283 <td class="paramname"> <em>context</em>, </td>
286 <td class="paramkey"></td>
288 <td class="paramtype">krb5_keytab * </td>
289 <td class="paramname"> <em>id</em></td><td> </td>
294 <td></td><td></td><td></td>
301 Set `id' to the default keytab.<p>
302 <dl compact><dt><b>Parameters:</b></dt><dd>
303 <table border="0" cellspacing="2" cellpadding="0">
304 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
305 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>the new default keytab.</td></tr>
308 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
312 <a class="anchor" name="gaaff7211e887e908d909d75febf33200"></a><!-- doxytag: member="keytab.c::krb5_kt_default_modify_name" ref="gaaff7211e887e908d909d75febf33200" args="(krb5_context context, char *name, size_t namesize)" -->
313 <div class="memitem">
314 <div class="memproto">
315 <table class="memname">
317 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name </td>
319 <td class="paramtype">krb5_context </td>
320 <td class="paramname"> <em>context</em>, </td>
323 <td class="paramkey"></td>
325 <td class="paramtype">char * </td>
326 <td class="paramname"> <em>name</em>, </td>
329 <td class="paramkey"></td>
331 <td class="paramtype">size_t </td>
332 <td class="paramname"> <em>namesize</em></td><td> </td>
337 <td></td><td></td><td></td>
344 Copy the name of the default modify keytab into `name'.<p>
345 <dl compact><dt><b>Parameters:</b></dt><dd>
346 <table border="0" cellspacing="2" cellpadding="0">
347 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
348 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>buffer where the name will be written </td></tr>
349 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>length of name</td></tr>
352 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
356 <a class="anchor" name="g3fdc1c60208dc99c1f0ebec18e2a7a52"></a><!-- doxytag: member="keytab.c::krb5_kt_default_name" ref="g3fdc1c60208dc99c1f0ebec18e2a7a52" args="(krb5_context context, char *name, size_t namesize)" -->
357 <div class="memitem">
358 <div class="memproto">
359 <table class="memname">
361 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name </td>
363 <td class="paramtype">krb5_context </td>
364 <td class="paramname"> <em>context</em>, </td>
367 <td class="paramkey"></td>
369 <td class="paramtype">char * </td>
370 <td class="paramname"> <em>name</em>, </td>
373 <td class="paramkey"></td>
375 <td class="paramtype">size_t </td>
376 <td class="paramname"> <em>namesize</em></td><td> </td>
381 <td></td><td></td><td></td>
388 copy the name of the default keytab into `name'.<p>
389 <dl compact><dt><b>Parameters:</b></dt><dd>
390 <table border="0" cellspacing="2" cellpadding="0">
391 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
392 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>buffer where the name will be written </td></tr>
393 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>length of name</td></tr>
396 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
400 <a class="anchor" name="g23f1f8d506d680564ff0c783b903abf9"></a><!-- doxytag: member="keytab.c::krb5_kt_destroy" ref="g23f1f8d506d680564ff0c783b903abf9" args="(krb5_context context, krb5_keytab id)" -->
401 <div class="memitem">
402 <div class="memproto">
403 <table class="memname">
405 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy </td>
407 <td class="paramtype">krb5_context </td>
408 <td class="paramname"> <em>context</em>, </td>
411 <td class="paramkey"></td>
413 <td class="paramtype">krb5_keytab </td>
414 <td class="paramname"> <em>id</em></td><td> </td>
419 <td></td><td></td><td></td>
426 Destroy (remove) the keytab in `id'. All resources will be released, even on errors, does the equvalment of <a class="el" href="group__krb5__keytab.html#gb67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a> on the resources.<p>
427 <dl compact><dt><b>Parameters:</b></dt><dd>
428 <table border="0" cellspacing="2" cellpadding="0">
429 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
430 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>keytab to destroy.</td></tr>
433 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
437 <a class="anchor" name="g11289efb407d93a1f84d5c64731a4bd1"></a><!-- doxytag: member="keytab.c::krb5_kt_end_seq_get" ref="g11289efb407d93a1f84d5c64731a4bd1" args="(krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)" -->
438 <div class="memitem">
439 <div class="memproto">
440 <table class="memname">
442 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get </td>
444 <td class="paramtype">krb5_context </td>
445 <td class="paramname"> <em>context</em>, </td>
448 <td class="paramkey"></td>
450 <td class="paramtype">krb5_keytab </td>
451 <td class="paramname"> <em>id</em>, </td>
454 <td class="paramkey"></td>
456 <td class="paramtype">krb5_kt_cursor * </td>
457 <td class="paramname"> <em>cursor</em></td><td> </td>
462 <td></td><td></td><td></td>
469 Release all resources associated with `cursor'.<p>
470 <dl compact><dt><b>Parameters:</b></dt><dd>
471 <table border="0" cellspacing="2" cellpadding="0">
472 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
473 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
474 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>the cursor to free.</td></tr>
477 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
481 <a class="anchor" name="gc0774ab1407eaaaa0e5998478de246e2"></a><!-- doxytag: member="keytab.c::krb5_kt_free_entry" ref="gc0774ab1407eaaaa0e5998478de246e2" args="(krb5_context context, krb5_keytab_entry *entry)" -->
482 <div class="memitem">
483 <div class="memproto">
484 <table class="memname">
486 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry </td>
488 <td class="paramtype">krb5_context </td>
489 <td class="paramname"> <em>context</em>, </td>
492 <td class="paramkey"></td>
494 <td class="paramtype">krb5_keytab_entry * </td>
495 <td class="paramname"> <em>entry</em></td><td> </td>
500 <td></td><td></td><td></td>
507 Free the contents of `entry'.<p>
508 <dl compact><dt><b>Parameters:</b></dt><dd>
509 <table border="0" cellspacing="2" cellpadding="0">
510 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
511 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to free</td></tr>
514 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
518 <a class="anchor" name="gd7183b9573330db0575118057b3a02a5"></a><!-- doxytag: member="keytab.c::krb5_kt_get_entry" ref="gd7183b9573330db0575118057b3a02a5" args="(krb5_context context, krb5_keytab id, krb5_const_principal principal, krb5_kvno kvno, krb5_enctype enctype, krb5_keytab_entry *entry)" -->
519 <div class="memitem">
520 <div class="memproto">
521 <table class="memname">
523 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry </td>
525 <td class="paramtype">krb5_context </td>
526 <td class="paramname"> <em>context</em>, </td>
529 <td class="paramkey"></td>
531 <td class="paramtype">krb5_keytab </td>
532 <td class="paramname"> <em>id</em>, </td>
535 <td class="paramkey"></td>
537 <td class="paramtype">krb5_const_principal </td>
538 <td class="paramname"> <em>principal</em>, </td>
541 <td class="paramkey"></td>
543 <td class="paramtype">krb5_kvno </td>
544 <td class="paramname"> <em>kvno</em>, </td>
547 <td class="paramkey"></td>
549 <td class="paramtype">krb5_enctype </td>
550 <td class="paramname"> <em>enctype</em>, </td>
553 <td class="paramkey"></td>
555 <td class="paramtype">krb5_keytab_entry * </td>
556 <td class="paramname"> <em>entry</em></td><td> </td>
561 <td></td><td></td><td></td>
568 Retrieve the keytab entry for `principal, kvno, enctype' into `entry' from the keytab `id'. Matching is done like <a class="el" href="group__krb5__keytab.html#g688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.<p>
569 <dl compact><dt><b>Parameters:</b></dt><dd>
570 <table border="0" cellspacing="2" cellpadding="0">
571 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
572 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
573 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>principal to match, NULL matches all principals. </td></tr>
574 <tr><td valign="top"></td><td valign="top"><em>kvno</em> </td><td>key version to match, 0 matches all key version numbers. </td></tr>
575 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td>encryption type to match, 0 matches all encryption types. </td></tr>
576 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr>
579 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
583 <a class="anchor" name="g40744ad6c5d9eed2b76d26f5e698d1f3"></a><!-- doxytag: member="keytab.c::krb5_kt_get_full_name" ref="g40744ad6c5d9eed2b76d26f5e698d1f3" args="(krb5_context context, krb5_keytab keytab, char **str)" -->
584 <div class="memitem">
585 <div class="memproto">
586 <table class="memname">
588 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name </td>
590 <td class="paramtype">krb5_context </td>
591 <td class="paramname"> <em>context</em>, </td>
594 <td class="paramkey"></td>
596 <td class="paramtype">krb5_keytab </td>
597 <td class="paramname"> <em>keytab</em>, </td>
600 <td class="paramkey"></td>
602 <td class="paramtype">char ** </td>
603 <td class="paramname"> <em>str</em></td><td> </td>
608 <td></td><td></td><td></td>
615 Retrieve the full name of the keytab `keytab' and store the name in `str'.<p>
616 <dl compact><dt><b>Parameters:</b></dt><dd>
617 <table border="0" cellspacing="2" cellpadding="0">
618 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
619 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>keytab to get name for. </td></tr>
620 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the name of the keytab name, usee krb5_xfree() to free the string. On error, *str is set to NULL.</td></tr>
623 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
627 <a class="anchor" name="ga10348fa20bbae806d652aa4adb44bdd"></a><!-- doxytag: member="keytab.c::krb5_kt_get_name" ref="ga10348fa20bbae806d652aa4adb44bdd" args="(krb5_context context, krb5_keytab keytab, char *name, size_t namesize)" -->
628 <div class="memitem">
629 <div class="memproto">
630 <table class="memname">
632 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name </td>
634 <td class="paramtype">krb5_context </td>
635 <td class="paramname"> <em>context</em>, </td>
638 <td class="paramkey"></td>
640 <td class="paramtype">krb5_keytab </td>
641 <td class="paramname"> <em>keytab</em>, </td>
644 <td class="paramkey"></td>
646 <td class="paramtype">char * </td>
647 <td class="paramname"> <em>name</em>, </td>
650 <td class="paramkey"></td>
652 <td class="paramtype">size_t </td>
653 <td class="paramname"> <em>namesize</em></td><td> </td>
658 <td></td><td></td><td></td>
665 Retrieve the name of the keytab `keytab' into `name', `namesize'<p>
666 <dl compact><dt><b>Parameters:</b></dt><dd>
667 <table border="0" cellspacing="2" cellpadding="0">
668 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
669 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>the keytab to get the name for. </td></tr>
670 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name buffer. </td></tr>
671 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>size of name buffer.</td></tr>
674 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
678 <a class="anchor" name="g632921a4b144a4eb656968d836efd9bb"></a><!-- doxytag: member="keytab.c::krb5_kt_get_type" ref="g632921a4b144a4eb656968d836efd9bb" args="(krb5_context context, krb5_keytab keytab, char *prefix, size_t prefixsize)" -->
679 <div class="memitem">
680 <div class="memproto">
681 <table class="memname">
683 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type </td>
685 <td class="paramtype">krb5_context </td>
686 <td class="paramname"> <em>context</em>, </td>
689 <td class="paramkey"></td>
691 <td class="paramtype">krb5_keytab </td>
692 <td class="paramname"> <em>keytab</em>, </td>
695 <td class="paramkey"></td>
697 <td class="paramtype">char * </td>
698 <td class="paramname"> <em>prefix</em>, </td>
701 <td class="paramkey"></td>
703 <td class="paramtype">size_t </td>
704 <td class="paramname"> <em>prefixsize</em></td><td> </td>
709 <td></td><td></td><td></td>
716 Return the type of the `keytab' in the string `prefix of length `prefixsize'.<p>
717 <dl compact><dt><b>Parameters:</b></dt><dd>
718 <table border="0" cellspacing="2" cellpadding="0">
719 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
720 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>the keytab to get the prefix for </td></tr>
721 <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>prefix buffer </td></tr>
722 <tr><td valign="top"></td><td valign="top"><em>prefixsize</em> </td><td>length of prefix buffer</td></tr>
725 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
729 <a class="anchor" name="gf0947f9089022eaf4c83a463cad10ed3"></a><!-- doxytag: member="keytab.c::krb5_kt_have_content" ref="gf0947f9089022eaf4c83a463cad10ed3" args="(krb5_context context, krb5_keytab id)" -->
730 <div class="memitem">
731 <div class="memproto">
732 <table class="memname">
734 <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_have_content </td>
736 <td class="paramtype">krb5_context </td>
737 <td class="paramname"> <em>context</em>, </td>
740 <td class="paramkey"></td>
742 <td class="paramtype">krb5_keytab </td>
743 <td class="paramname"> <em>id</em></td><td> </td>
748 <td></td><td></td><td></td>
755 Return true if the keytab exists and have entries<p>
756 <dl compact><dt><b>Parameters:</b></dt><dd>
757 <table border="0" cellspacing="2" cellpadding="0">
758 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
759 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab.</td></tr>
762 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
766 <a class="anchor" name="gc40140c41333a86d3c40426f50b4e1b0"></a><!-- doxytag: member="keytab.c::krb5_kt_next_entry" ref="gc40140c41333a86d3c40426f50b4e1b0" args="(krb5_context context, krb5_keytab id, krb5_keytab_entry *entry, krb5_kt_cursor *cursor)" -->
767 <div class="memitem">
768 <div class="memproto">
769 <table class="memname">
771 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry </td>
773 <td class="paramtype">krb5_context </td>
774 <td class="paramname"> <em>context</em>, </td>
777 <td class="paramkey"></td>
779 <td class="paramtype">krb5_keytab </td>
780 <td class="paramname"> <em>id</em>, </td>
783 <td class="paramkey"></td>
785 <td class="paramtype">krb5_keytab_entry * </td>
786 <td class="paramname"> <em>entry</em>, </td>
789 <td class="paramkey"></td>
791 <td class="paramtype">krb5_kt_cursor * </td>
792 <td class="paramname"> <em>cursor</em></td><td> </td>
797 <td></td><td></td><td></td>
804 Get the next entry from keytab, advance the cursor. On last entry the function will return KRB5_KT_END.<p>
805 <dl compact><dt><b>Parameters:</b></dt><dd>
806 <table border="0" cellspacing="2" cellpadding="0">
807 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
808 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
809 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>. </td></tr>
810 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>the cursor of the iteration.</td></tr>
813 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
817 <a class="anchor" name="g6040b238ff8adeb346ca35e5530bdeff"></a><!-- doxytag: member="keytab.c::krb5_kt_read_service_key" ref="g6040b238ff8adeb346ca35e5530bdeff" args="(krb5_context context, krb5_pointer keyprocarg, krb5_principal principal, krb5_kvno vno, krb5_enctype enctype, krb5_keyblock **key)" -->
818 <div class="memitem">
819 <div class="memproto">
820 <table class="memname">
822 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key </td>
824 <td class="paramtype">krb5_context </td>
825 <td class="paramname"> <em>context</em>, </td>
828 <td class="paramkey"></td>
830 <td class="paramtype">krb5_pointer </td>
831 <td class="paramname"> <em>keyprocarg</em>, </td>
834 <td class="paramkey"></td>
836 <td class="paramtype">krb5_principal </td>
837 <td class="paramname"> <em>principal</em>, </td>
840 <td class="paramkey"></td>
842 <td class="paramtype">krb5_kvno </td>
843 <td class="paramname"> <em>vno</em>, </td>
846 <td class="paramkey"></td>
848 <td class="paramtype">krb5_enctype </td>
849 <td class="paramname"> <em>enctype</em>, </td>
852 <td class="paramkey"></td>
854 <td class="paramtype">krb5_keyblock ** </td>
855 <td class="paramname"> <em>key</em></td><td> </td>
860 <td></td><td></td><td></td>
867 Read the key identified by `(principal, vno, enctype)' from the keytab in `keyprocarg' (the default if == NULL) into `*key'.<p>
868 <dl compact><dt><b>Parameters:</b></dt><dd>
869 <table border="0" cellspacing="2" cellpadding="0">
870 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
871 <tr><td valign="top"></td><td valign="top"><em>keyprocarg</em> </td><td></td></tr>
872 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td></td></tr>
873 <tr><td valign="top"></td><td valign="top"><em>vno</em> </td><td></td></tr>
874 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td></td></tr>
875 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td></td></tr>
878 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
882 <a class="anchor" name="g0b54b479db89c76e46d6edae8328848e"></a><!-- doxytag: member="keytab.c::krb5_kt_register" ref="g0b54b479db89c76e46d6edae8328848e" args="(krb5_context context, const krb5_kt_ops *ops)" -->
883 <div class="memitem">
884 <div class="memproto">
885 <table class="memname">
887 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register </td>
889 <td class="paramtype">krb5_context </td>
890 <td class="paramname"> <em>context</em>, </td>
893 <td class="paramkey"></td>
895 <td class="paramtype">const krb5_kt_ops * </td>
896 <td class="paramname"> <em>ops</em></td><td> </td>
901 <td></td><td></td><td></td>
908 Register a new keytab backend.<p>
909 <dl compact><dt><b>Parameters:</b></dt><dd>
910 <table border="0" cellspacing="2" cellpadding="0">
911 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
912 <tr><td valign="top"></td><td valign="top"><em>ops</em> </td><td>a backend to register.</td></tr>
915 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
919 <a class="anchor" name="g0f3e7f55fd97a595c961f0ffc49bebac"></a><!-- doxytag: member="keytab.c::krb5_kt_remove_entry" ref="g0f3e7f55fd97a595c961f0ffc49bebac" args="(krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)" -->
920 <div class="memitem">
921 <div class="memproto">
922 <table class="memname">
924 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry </td>
926 <td class="paramtype">krb5_context </td>
927 <td class="paramname"> <em>context</em>, </td>
930 <td class="paramkey"></td>
932 <td class="paramtype">krb5_keytab </td>
933 <td class="paramname"> <em>id</em>, </td>
936 <td class="paramkey"></td>
938 <td class="paramtype">krb5_keytab_entry * </td>
939 <td class="paramname"> <em>entry</em></td><td> </td>
944 <td></td><td></td><td></td>
951 Remove an entry from the keytab, matching is done using <a class="el" href="group__krb5__keytab.html#g688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.<p>
952 <dl compact><dt><b>Parameters:</b></dt><dd>
953 <table border="0" cellspacing="2" cellpadding="0">
954 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
955 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
956 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to remove</td></tr>
959 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
963 <a class="anchor" name="gc57fead58fb1baa003d6438613731901"></a><!-- doxytag: member="keytab.c::krb5_kt_resolve" ref="gc57fead58fb1baa003d6438613731901" args="(krb5_context context, const char *name, krb5_keytab *id)" -->
964 <div class="memitem">
965 <div class="memproto">
966 <table class="memname">
968 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve </td>
970 <td class="paramtype">krb5_context </td>
971 <td class="paramname"> <em>context</em>, </td>
974 <td class="paramkey"></td>
976 <td class="paramtype">const char * </td>
977 <td class="paramname"> <em>name</em>, </td>
980 <td class="paramkey"></td>
982 <td class="paramtype">krb5_keytab * </td>
983 <td class="paramname"> <em>id</em></td><td> </td>
988 <td></td><td></td><td></td>
995 Resolve the keytab name (of the form `type:residual') in `name' into a keytab in `id'.<p>
996 <dl compact><dt><b>Parameters:</b></dt><dd>
997 <table border="0" cellspacing="2" cellpadding="0">
998 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
999 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name to resolve </td></tr>
1000 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>resulting keytab, free with <a class="el" href="group__krb5__keytab.html#gb67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a>.</td></tr>
1003 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1007 <a class="anchor" name="g1efd8ee48d6e3caa31cad475423b8917"></a><!-- doxytag: member="keytab.c::krb5_kt_start_seq_get" ref="g1efd8ee48d6e3caa31cad475423b8917" args="(krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)" -->
1008 <div class="memitem">
1009 <div class="memproto">
1010 <table class="memname">
1012 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get </td>
1014 <td class="paramtype">krb5_context </td>
1015 <td class="paramname"> <em>context</em>, </td>
1018 <td class="paramkey"></td>
1020 <td class="paramtype">krb5_keytab </td>
1021 <td class="paramname"> <em>id</em>, </td>
1024 <td class="paramkey"></td>
1026 <td class="paramtype">krb5_kt_cursor * </td>
1027 <td class="paramname"> <em>cursor</em></td><td> </td>
1032 <td></td><td></td><td></td>
1036 <div class="memdoc">
1039 Set `cursor' to point at the beginning of `id'.<p>
1040 <dl compact><dt><b>Parameters:</b></dt><dd>
1041 <table border="0" cellspacing="2" cellpadding="0">
1042 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context. </td></tr>
1043 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr>
1044 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>a newly allocated cursor, free with <a class="el" href="group__krb5__keytab.html#g11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get()</a>.</td></tr>
1047 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1052 <hr size="1"><address style="text-align: right;"><small>
1053 Generated on Wed Jan 11 14:07:49 2012 for HeimdalKerberos5library 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>