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">
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&nbsp;Page</span></a></li>
16      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
17      <li><a href="modules.html"><span>Modules</span></a></li>
18      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
19    </ul>
20  </div>
21</div>
22<div class="contents">
23<h1>Heimdal Kerberos 5 keytab handling functions</h1><table border="0" cellpadding="0" cellspacing="0">
24<tr><td></td></tr>
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>
27krb5_error_code KRB5_LIB_CALL&nbsp;</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>
28
29<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30krb5_error_code KRB5_LIB_CALL&nbsp;</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>
31
32<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33krb5_error_code KRB5_LIB_CALL&nbsp;</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>
34
35<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
36krb5_error_code KRB5_LIB_CALL&nbsp;</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>
37
38<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
39krb5_error_code KRB5_LIB_CALL&nbsp;</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>
40
41<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
42krb5_error_code KRB5_LIB_CALL&nbsp;</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>
43
44<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
45krb5_error_code KRB5_LIB_CALL&nbsp;</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>
46
47<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
48krb5_error_code KRB5_LIB_CALL&nbsp;</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>
49
50<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
51krb5_error_code KRB5_LIB_CALL&nbsp;</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>
52
53<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
54krb5_error_code KRB5_LIB_CALL&nbsp;</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>
55
56<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
57krb5_error_code KRB5_LIB_CALL&nbsp;</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>
58
59<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
60KRB5_LIB_CALL&nbsp;</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>
61
62<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
63krb5_error_code KRB5_LIB_CALL&nbsp;</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>
64
65<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
66krb5_error_code KRB5_LIB_CALL&nbsp;</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>
67
68<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
69krb5_error_code KRB5_LIB_CALL&nbsp;</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>
70
71<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
72krb5_error_code KRB5_LIB_CALL&nbsp;</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>
73
74<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
75krb5_error_code KRB5_LIB_CALL&nbsp;</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>
76
77<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
78krb5_error_code KRB5_LIB_CALL&nbsp;</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>
79
80<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
81krb5_error_code KRB5_LIB_CALL&nbsp;</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>
82
83<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
84krb5_error_code KRB5_LIB_CALL&nbsp;</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>
85
86<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
87KRB5_LIB_CALL&nbsp;</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>
88
89</table>
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)" -->
93<div class="memitem">
94<div class="memproto">
95      <table class="memname">
96        <tr>
97          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry           </td>
98          <td>(</td>
99          <td class="paramtype">krb5_context&nbsp;</td>
100          <td class="paramname"> <em>context</em>, </td>
101        </tr>
102        <tr>
103          <td class="paramkey"></td>
104          <td></td>
105          <td class="paramtype">krb5_keytab&nbsp;</td>
106          <td class="paramname"> <em>id</em>, </td>
107        </tr>
108        <tr>
109          <td class="paramkey"></td>
110          <td></td>
111          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
112          <td class="paramname"> <em>entry</em></td><td>&nbsp;</td>
113        </tr>
114        <tr>
115          <td></td>
116          <td>)</td>
117          <td></td><td></td><td></td>
118        </tr>
119      </table>
120</div>
121<div class="memdoc">
122
123<p>
124Add 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>&nbsp;</td><td>a Keberos context. </td></tr>
128    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
129    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>the entry to add</td></tr>
130  </table>
131</dl>
132<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
133
134</div>
135</div><p>
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">
140        <tr>
141          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close           </td>
142          <td>(</td>
143          <td class="paramtype">krb5_context&nbsp;</td>
144          <td class="paramname"> <em>context</em>, </td>
145        </tr>
146        <tr>
147          <td class="paramkey"></td>
148          <td></td>
149          <td class="paramtype">krb5_keytab&nbsp;</td>
150          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
151        </tr>
152        <tr>
153          <td></td>
154          <td>)</td>
155          <td></td><td></td><td></td>
156        </tr>
157      </table>
158</div>
159<div class="memdoc">
160
161<p>
162Finish 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>&nbsp;</td><td>a Keberos context. </td></tr>
166    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>keytab to close.</td></tr>
167  </table>
168</dl>
169<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
170
171</div>
172</div><p>
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">
177        <tr>
178          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare           </td>
179          <td>(</td>
180          <td class="paramtype">krb5_context&nbsp;</td>
181          <td class="paramname"> <em>context</em>, </td>
182        </tr>
183        <tr>
184          <td class="paramkey"></td>
185          <td></td>
186          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
187          <td class="paramname"> <em>entry</em>, </td>
188        </tr>
189        <tr>
190          <td class="paramkey"></td>
191          <td></td>
192          <td class="paramtype">krb5_const_principal&nbsp;</td>
193          <td class="paramname"> <em>principal</em>, </td>
194        </tr>
195        <tr>
196          <td class="paramkey"></td>
197          <td></td>
198          <td class="paramtype">krb5_kvno&nbsp;</td>
199          <td class="paramname"> <em>vno</em>, </td>
200        </tr>
201        <tr>
202          <td class="paramkey"></td>
203          <td></td>
204          <td class="paramtype">krb5_enctype&nbsp;</td>
205          <td class="paramname"> <em>enctype</em></td><td>&nbsp;</td>
206        </tr>
207        <tr>
208          <td></td>
209          <td>)</td>
210          <td></td><td></td><td></td>
211        </tr>
212      </table>
213</div>
214<div class="memdoc">
215
216<p>
217Compare `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>&nbsp;</td><td>a Keberos context. </td></tr>
221    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>an entry to match with. </td></tr>
222    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</td><td>principal to match, NULL matches all principals. </td></tr>
223    <tr><td valign="top"></td><td valign="top"><em>vno</em>&nbsp;</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>&nbsp;</td><td>encryption type to match, 0 matches all encryption types.</td></tr>
225  </table>
226</dl>
227<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return TRUE or match, FALSE if not matched. </dd></dl>
228
229</div>
230</div><p>
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">
235        <tr>
236          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents           </td>
237          <td>(</td>
238          <td class="paramtype">krb5_context&nbsp;</td>
239          <td class="paramname"> <em>context</em>, </td>
240        </tr>
241        <tr>
242          <td class="paramkey"></td>
243          <td></td>
244          <td class="paramtype">const krb5_keytab_entry *&nbsp;</td>
245          <td class="paramname"> <em>in</em>, </td>
246        </tr>
247        <tr>
248          <td class="paramkey"></td>
249          <td></td>
250          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
251          <td class="paramname"> <em>out</em></td><td>&nbsp;</td>
252        </tr>
253        <tr>
254          <td></td>
255          <td>)</td>
256          <td></td><td></td><td></td>
257        </tr>
258      </table>
259</div>
260<div class="memdoc">
261
262<p>
263Copy 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>&nbsp;</td><td>a Keberos context. </td></tr>
267    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>the keytab entry to copy. </td></tr>
268    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</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>
269  </table>
270</dl>
271<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
272
273</div>
274</div><p>
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">
279        <tr>
280          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default           </td>
281          <td>(</td>
282          <td class="paramtype">krb5_context&nbsp;</td>
283          <td class="paramname"> <em>context</em>, </td>
284        </tr>
285        <tr>
286          <td class="paramkey"></td>
287          <td></td>
288          <td class="paramtype">krb5_keytab *&nbsp;</td>
289          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
290        </tr>
291        <tr>
292          <td></td>
293          <td>)</td>
294          <td></td><td></td><td></td>
295        </tr>
296      </table>
297</div>
298<div class="memdoc">
299
300<p>
301Set `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>&nbsp;</td><td>a Keberos context. </td></tr>
305    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>the new default keytab.</td></tr>
306  </table>
307</dl>
308<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
309
310</div>
311</div><p>
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">
316        <tr>
317          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name           </td>
318          <td>(</td>
319          <td class="paramtype">krb5_context&nbsp;</td>
320          <td class="paramname"> <em>context</em>, </td>
321        </tr>
322        <tr>
323          <td class="paramkey"></td>
324          <td></td>
325          <td class="paramtype">char *&nbsp;</td>
326          <td class="paramname"> <em>name</em>, </td>
327        </tr>
328        <tr>
329          <td class="paramkey"></td>
330          <td></td>
331          <td class="paramtype">size_t&nbsp;</td>
332          <td class="paramname"> <em>namesize</em></td><td>&nbsp;</td>
333        </tr>
334        <tr>
335          <td></td>
336          <td>)</td>
337          <td></td><td></td><td></td>
338        </tr>
339      </table>
340</div>
341<div class="memdoc">
342
343<p>
344Copy 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>&nbsp;</td><td>a Keberos context. </td></tr>
348    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>buffer where the name will be written </td></tr>
349    <tr><td valign="top"></td><td valign="top"><em>namesize</em>&nbsp;</td><td>length of name</td></tr>
350  </table>
351</dl>
352<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
353
354</div>
355</div><p>
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">
360        <tr>
361          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name           </td>
362          <td>(</td>
363          <td class="paramtype">krb5_context&nbsp;</td>
364          <td class="paramname"> <em>context</em>, </td>
365        </tr>
366        <tr>
367          <td class="paramkey"></td>
368          <td></td>
369          <td class="paramtype">char *&nbsp;</td>
370          <td class="paramname"> <em>name</em>, </td>
371        </tr>
372        <tr>
373          <td class="paramkey"></td>
374          <td></td>
375          <td class="paramtype">size_t&nbsp;</td>
376          <td class="paramname"> <em>namesize</em></td><td>&nbsp;</td>
377        </tr>
378        <tr>
379          <td></td>
380          <td>)</td>
381          <td></td><td></td><td></td>
382        </tr>
383      </table>
384</div>
385<div class="memdoc">
386
387<p>
388copy 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>&nbsp;</td><td>a Keberos context. </td></tr>
392    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>buffer where the name will be written </td></tr>
393    <tr><td valign="top"></td><td valign="top"><em>namesize</em>&nbsp;</td><td>length of name</td></tr>
394  </table>
395</dl>
396<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
397
398</div>
399</div><p>
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">
404        <tr>
405          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy           </td>
406          <td>(</td>
407          <td class="paramtype">krb5_context&nbsp;</td>
408          <td class="paramname"> <em>context</em>, </td>
409        </tr>
410        <tr>
411          <td class="paramkey"></td>
412          <td></td>
413          <td class="paramtype">krb5_keytab&nbsp;</td>
414          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
415        </tr>
416        <tr>
417          <td></td>
418          <td>)</td>
419          <td></td><td></td><td></td>
420        </tr>
421      </table>
422</div>
423<div class="memdoc">
424
425<p>
426Destroy (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>&nbsp;</td><td>a Keberos context. </td></tr>
430    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>keytab to destroy.</td></tr>
431  </table>
432</dl>
433<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
434
435</div>
436</div><p>
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">
441        <tr>
442          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get           </td>
443          <td>(</td>
444          <td class="paramtype">krb5_context&nbsp;</td>
445          <td class="paramname"> <em>context</em>, </td>
446        </tr>
447        <tr>
448          <td class="paramkey"></td>
449          <td></td>
450          <td class="paramtype">krb5_keytab&nbsp;</td>
451          <td class="paramname"> <em>id</em>, </td>
452        </tr>
453        <tr>
454          <td class="paramkey"></td>
455          <td></td>
456          <td class="paramtype">krb5_kt_cursor *&nbsp;</td>
457          <td class="paramname"> <em>cursor</em></td><td>&nbsp;</td>
458        </tr>
459        <tr>
460          <td></td>
461          <td>)</td>
462          <td></td><td></td><td></td>
463        </tr>
464      </table>
465</div>
466<div class="memdoc">
467
468<p>
469Release 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>&nbsp;</td><td>a Keberos context. </td></tr>
473    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
474    <tr><td valign="top"></td><td valign="top"><em>cursor</em>&nbsp;</td><td>the cursor to free.</td></tr>
475  </table>
476</dl>
477<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
478
479</div>
480</div><p>
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">
485        <tr>
486          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry           </td>
487          <td>(</td>
488          <td class="paramtype">krb5_context&nbsp;</td>
489          <td class="paramname"> <em>context</em>, </td>
490        </tr>
491        <tr>
492          <td class="paramkey"></td>
493          <td></td>
494          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
495          <td class="paramname"> <em>entry</em></td><td>&nbsp;</td>
496        </tr>
497        <tr>
498          <td></td>
499          <td>)</td>
500          <td></td><td></td><td></td>
501        </tr>
502      </table>
503</div>
504<div class="memdoc">
505
506<p>
507Free 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>&nbsp;</td><td>a Keberos context. </td></tr>
511    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>the entry to free</td></tr>
512  </table>
513</dl>
514<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
515
516</div>
517</div><p>
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">
522        <tr>
523          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry           </td>
524          <td>(</td>
525          <td class="paramtype">krb5_context&nbsp;</td>
526          <td class="paramname"> <em>context</em>, </td>
527        </tr>
528        <tr>
529          <td class="paramkey"></td>
530          <td></td>
531          <td class="paramtype">krb5_keytab&nbsp;</td>
532          <td class="paramname"> <em>id</em>, </td>
533        </tr>
534        <tr>
535          <td class="paramkey"></td>
536          <td></td>
537          <td class="paramtype">krb5_const_principal&nbsp;</td>
538          <td class="paramname"> <em>principal</em>, </td>
539        </tr>
540        <tr>
541          <td class="paramkey"></td>
542          <td></td>
543          <td class="paramtype">krb5_kvno&nbsp;</td>
544          <td class="paramname"> <em>kvno</em>, </td>
545        </tr>
546        <tr>
547          <td class="paramkey"></td>
548          <td></td>
549          <td class="paramtype">krb5_enctype&nbsp;</td>
550          <td class="paramname"> <em>enctype</em>, </td>
551        </tr>
552        <tr>
553          <td class="paramkey"></td>
554          <td></td>
555          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
556          <td class="paramname"> <em>entry</em></td><td>&nbsp;</td>
557        </tr>
558        <tr>
559          <td></td>
560          <td>)</td>
561          <td></td><td></td><td></td>
562        </tr>
563      </table>
564</div>
565<div class="memdoc">
566
567<p>
568Retrieve 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>&nbsp;</td><td>a Keberos context. </td></tr>
572    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
573    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</td><td>principal to match, NULL matches all principals. </td></tr>
574    <tr><td valign="top"></td><td valign="top"><em>kvno</em>&nbsp;</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>&nbsp;</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>&nbsp;</td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr>
577  </table>
578</dl>
579<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
580
581</div>
582</div><p>
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">
587        <tr>
588          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name           </td>
589          <td>(</td>
590          <td class="paramtype">krb5_context&nbsp;</td>
591          <td class="paramname"> <em>context</em>, </td>
592        </tr>
593        <tr>
594          <td class="paramkey"></td>
595          <td></td>
596          <td class="paramtype">krb5_keytab&nbsp;</td>
597          <td class="paramname"> <em>keytab</em>, </td>
598        </tr>
599        <tr>
600          <td class="paramkey"></td>
601          <td></td>
602          <td class="paramtype">char **&nbsp;</td>
603          <td class="paramname"> <em>str</em></td><td>&nbsp;</td>
604        </tr>
605        <tr>
606          <td></td>
607          <td>)</td>
608          <td></td><td></td><td></td>
609        </tr>
610      </table>
611</div>
612<div class="memdoc">
613
614<p>
615Retrieve 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>&nbsp;</td><td>a Keberos context. </td></tr>
619    <tr><td valign="top"></td><td valign="top"><em>keytab</em>&nbsp;</td><td>keytab to get name for. </td></tr>
620    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the name of the keytab name, usee krb5_xfree() to free the string. On error, *str is set to NULL.</td></tr>
621  </table>
622</dl>
623<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
624
625</div>
626</div><p>
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">
631        <tr>
632          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name           </td>
633          <td>(</td>
634          <td class="paramtype">krb5_context&nbsp;</td>
635          <td class="paramname"> <em>context</em>, </td>
636        </tr>
637        <tr>
638          <td class="paramkey"></td>
639          <td></td>
640          <td class="paramtype">krb5_keytab&nbsp;</td>
641          <td class="paramname"> <em>keytab</em>, </td>
642        </tr>
643        <tr>
644          <td class="paramkey"></td>
645          <td></td>
646          <td class="paramtype">char *&nbsp;</td>
647          <td class="paramname"> <em>name</em>, </td>
648        </tr>
649        <tr>
650          <td class="paramkey"></td>
651          <td></td>
652          <td class="paramtype">size_t&nbsp;</td>
653          <td class="paramname"> <em>namesize</em></td><td>&nbsp;</td>
654        </tr>
655        <tr>
656          <td></td>
657          <td>)</td>
658          <td></td><td></td><td></td>
659        </tr>
660      </table>
661</div>
662<div class="memdoc">
663
664<p>
665Retrieve 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>&nbsp;</td><td>a Keberos context. </td></tr>
669    <tr><td valign="top"></td><td valign="top"><em>keytab</em>&nbsp;</td><td>the keytab to get the name for. </td></tr>
670    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name buffer. </td></tr>
671    <tr><td valign="top"></td><td valign="top"><em>namesize</em>&nbsp;</td><td>size of name buffer.</td></tr>
672  </table>
673</dl>
674<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
675
676</div>
677</div><p>
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">
682        <tr>
683          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type           </td>
684          <td>(</td>
685          <td class="paramtype">krb5_context&nbsp;</td>
686          <td class="paramname"> <em>context</em>, </td>
687        </tr>
688        <tr>
689          <td class="paramkey"></td>
690          <td></td>
691          <td class="paramtype">krb5_keytab&nbsp;</td>
692          <td class="paramname"> <em>keytab</em>, </td>
693        </tr>
694        <tr>
695          <td class="paramkey"></td>
696          <td></td>
697          <td class="paramtype">char *&nbsp;</td>
698          <td class="paramname"> <em>prefix</em>, </td>
699        </tr>
700        <tr>
701          <td class="paramkey"></td>
702          <td></td>
703          <td class="paramtype">size_t&nbsp;</td>
704          <td class="paramname"> <em>prefixsize</em></td><td>&nbsp;</td>
705        </tr>
706        <tr>
707          <td></td>
708          <td>)</td>
709          <td></td><td></td><td></td>
710        </tr>
711      </table>
712</div>
713<div class="memdoc">
714
715<p>
716Return 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>&nbsp;</td><td>a Keberos context. </td></tr>
720    <tr><td valign="top"></td><td valign="top"><em>keytab</em>&nbsp;</td><td>the keytab to get the prefix for </td></tr>
721    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>prefix buffer </td></tr>
722    <tr><td valign="top"></td><td valign="top"><em>prefixsize</em>&nbsp;</td><td>length of prefix buffer</td></tr>
723  </table>
724</dl>
725<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
726
727</div>
728</div><p>
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">
733        <tr>
734          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_have_content           </td>
735          <td>(</td>
736          <td class="paramtype">krb5_context&nbsp;</td>
737          <td class="paramname"> <em>context</em>, </td>
738        </tr>
739        <tr>
740          <td class="paramkey"></td>
741          <td></td>
742          <td class="paramtype">krb5_keytab&nbsp;</td>
743          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
744        </tr>
745        <tr>
746          <td></td>
747          <td>)</td>
748          <td></td><td></td><td></td>
749        </tr>
750      </table>
751</div>
752<div class="memdoc">
753
754<p>
755Return 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>&nbsp;</td><td>a Keberos context. </td></tr>
759    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab.</td></tr>
760  </table>
761</dl>
762<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
763
764</div>
765</div><p>
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">
770        <tr>
771          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry           </td>
772          <td>(</td>
773          <td class="paramtype">krb5_context&nbsp;</td>
774          <td class="paramname"> <em>context</em>, </td>
775        </tr>
776        <tr>
777          <td class="paramkey"></td>
778          <td></td>
779          <td class="paramtype">krb5_keytab&nbsp;</td>
780          <td class="paramname"> <em>id</em>, </td>
781        </tr>
782        <tr>
783          <td class="paramkey"></td>
784          <td></td>
785          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
786          <td class="paramname"> <em>entry</em>, </td>
787        </tr>
788        <tr>
789          <td class="paramkey"></td>
790          <td></td>
791          <td class="paramtype">krb5_kt_cursor *&nbsp;</td>
792          <td class="paramname"> <em>cursor</em></td><td>&nbsp;</td>
793        </tr>
794        <tr>
795          <td></td>
796          <td>)</td>
797          <td></td><td></td><td></td>
798        </tr>
799      </table>
800</div>
801<div class="memdoc">
802
803<p>
804Get 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>&nbsp;</td><td>a Keberos context. </td></tr>
808    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
809    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</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>&nbsp;</td><td>the cursor of the iteration.</td></tr>
811  </table>
812</dl>
813<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
814
815</div>
816</div><p>
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">
821        <tr>
822          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key           </td>
823          <td>(</td>
824          <td class="paramtype">krb5_context&nbsp;</td>
825          <td class="paramname"> <em>context</em>, </td>
826        </tr>
827        <tr>
828          <td class="paramkey"></td>
829          <td></td>
830          <td class="paramtype">krb5_pointer&nbsp;</td>
831          <td class="paramname"> <em>keyprocarg</em>, </td>
832        </tr>
833        <tr>
834          <td class="paramkey"></td>
835          <td></td>
836          <td class="paramtype">krb5_principal&nbsp;</td>
837          <td class="paramname"> <em>principal</em>, </td>
838        </tr>
839        <tr>
840          <td class="paramkey"></td>
841          <td></td>
842          <td class="paramtype">krb5_kvno&nbsp;</td>
843          <td class="paramname"> <em>vno</em>, </td>
844        </tr>
845        <tr>
846          <td class="paramkey"></td>
847          <td></td>
848          <td class="paramtype">krb5_enctype&nbsp;</td>
849          <td class="paramname"> <em>enctype</em>, </td>
850        </tr>
851        <tr>
852          <td class="paramkey"></td>
853          <td></td>
854          <td class="paramtype">krb5_keyblock **&nbsp;</td>
855          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
856        </tr>
857        <tr>
858          <td></td>
859          <td>)</td>
860          <td></td><td></td><td></td>
861        </tr>
862      </table>
863</div>
864<div class="memdoc">
865
866<p>
867Read 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>&nbsp;</td><td>a Keberos context. </td></tr>
871    <tr><td valign="top"></td><td valign="top"><em>keyprocarg</em>&nbsp;</td><td></td></tr>
872    <tr><td valign="top"></td><td valign="top"><em>principal</em>&nbsp;</td><td></td></tr>
873    <tr><td valign="top"></td><td valign="top"><em>vno</em>&nbsp;</td><td></td></tr>
874    <tr><td valign="top"></td><td valign="top"><em>enctype</em>&nbsp;</td><td></td></tr>
875    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
876  </table>
877</dl>
878<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
879
880</div>
881</div><p>
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">
886        <tr>
887          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register           </td>
888          <td>(</td>
889          <td class="paramtype">krb5_context&nbsp;</td>
890          <td class="paramname"> <em>context</em>, </td>
891        </tr>
892        <tr>
893          <td class="paramkey"></td>
894          <td></td>
895          <td class="paramtype">const krb5_kt_ops *&nbsp;</td>
896          <td class="paramname"> <em>ops</em></td><td>&nbsp;</td>
897        </tr>
898        <tr>
899          <td></td>
900          <td>)</td>
901          <td></td><td></td><td></td>
902        </tr>
903      </table>
904</div>
905<div class="memdoc">
906
907<p>
908Register 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>&nbsp;</td><td>a Keberos context. </td></tr>
912    <tr><td valign="top"></td><td valign="top"><em>ops</em>&nbsp;</td><td>a backend to register.</td></tr>
913  </table>
914</dl>
915<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
916
917</div>
918</div><p>
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">
923        <tr>
924          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry           </td>
925          <td>(</td>
926          <td class="paramtype">krb5_context&nbsp;</td>
927          <td class="paramname"> <em>context</em>, </td>
928        </tr>
929        <tr>
930          <td class="paramkey"></td>
931          <td></td>
932          <td class="paramtype">krb5_keytab&nbsp;</td>
933          <td class="paramname"> <em>id</em>, </td>
934        </tr>
935        <tr>
936          <td class="paramkey"></td>
937          <td></td>
938          <td class="paramtype">krb5_keytab_entry *&nbsp;</td>
939          <td class="paramname"> <em>entry</em></td><td>&nbsp;</td>
940        </tr>
941        <tr>
942          <td></td>
943          <td>)</td>
944          <td></td><td></td><td></td>
945        </tr>
946      </table>
947</div>
948<div class="memdoc">
949
950<p>
951Remove 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>&nbsp;</td><td>a Keberos context. </td></tr>
955    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
956    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>the entry to remove</td></tr>
957  </table>
958</dl>
959<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
960
961</div>
962</div><p>
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">
967        <tr>
968          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve           </td>
969          <td>(</td>
970          <td class="paramtype">krb5_context&nbsp;</td>
971          <td class="paramname"> <em>context</em>, </td>
972        </tr>
973        <tr>
974          <td class="paramkey"></td>
975          <td></td>
976          <td class="paramtype">const char *&nbsp;</td>
977          <td class="paramname"> <em>name</em>, </td>
978        </tr>
979        <tr>
980          <td class="paramkey"></td>
981          <td></td>
982          <td class="paramtype">krb5_keytab *&nbsp;</td>
983          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
984        </tr>
985        <tr>
986          <td></td>
987          <td>)</td>
988          <td></td><td></td><td></td>
989        </tr>
990      </table>
991</div>
992<div class="memdoc">
993
994<p>
995Resolve 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>&nbsp;</td><td>a Keberos context. </td></tr>
999    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name to resolve </td></tr>
1000    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>resulting keytab, free with <a class="el" href="group__krb5__keytab.html#gb67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a>.</td></tr>
1001  </table>
1002</dl>
1003<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1004
1005</div>
1006</div><p>
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">
1011        <tr>
1012          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get           </td>
1013          <td>(</td>
1014          <td class="paramtype">krb5_context&nbsp;</td>
1015          <td class="paramname"> <em>context</em>, </td>
1016        </tr>
1017        <tr>
1018          <td class="paramkey"></td>
1019          <td></td>
1020          <td class="paramtype">krb5_keytab&nbsp;</td>
1021          <td class="paramname"> <em>id</em>, </td>
1022        </tr>
1023        <tr>
1024          <td class="paramkey"></td>
1025          <td></td>
1026          <td class="paramtype">krb5_kt_cursor *&nbsp;</td>
1027          <td class="paramname"> <em>cursor</em></td><td>&nbsp;</td>
1028        </tr>
1029        <tr>
1030          <td></td>
1031          <td>)</td>
1032          <td></td><td></td><td></td>
1033        </tr>
1034      </table>
1035</div>
1036<div class="memdoc">
1037
1038<p>
1039Set `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>&nbsp;</td><td>a Keberos context. </td></tr>
1043    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>a keytab. </td></tr>
1044    <tr><td valign="top"></td><td valign="top"><em>cursor</em>&nbsp;</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>
1045  </table>
1046</dl>
1047<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0, see krb5_get_error_message(). </dd></dl>
1048
1049</div>
1050</div><p>
1051</div>
1052<hr size="1"><address style="text-align: right;"><small>
1053Generated on Wed Jan 11 14:07:49 2012 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
1054</body>
1055</html>
1056