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>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.9.1 -->
12<script type="text/javascript" src="menudata.js"></script>
13<script type="text/javascript" src="menu.js"></script>
14<script type="text/javascript">
15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16$(function() {
17  initMenu('',false,false,'search.php','Search');
18});
19/* @license-end */</script>
20<div id="main-nav"></div>
21</div><!-- top -->
22<div class="header">
23  <div class="summary">
24<a href="#func-members">Functions</a>  </div>
25  <div class="headertitle">
26<div class="title">Heimdal Kerberos 5 keytab handling functions</div>  </div>
27</div><!--header-->
28<div class="contents">
29<table class="memberdecls">
30<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
31Functions</h2></td></tr>
32<tr class="memitem:ga0b54b479db89c76e46d6edae8328848e"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga0b54b479db89c76e46d6edae8328848e">krb5_kt_register</a> (krb5_context context, const krb5_kt_ops *ops)</td></tr>
33<tr class="separator:ga0b54b479db89c76e46d6edae8328848e"><td class="memSeparator" colspan="2">&#160;</td></tr>
34<tr class="memitem:gac57fead58fb1baa003d6438613731901"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gac57fead58fb1baa003d6438613731901">krb5_kt_resolve</a> (krb5_context context, const char *name, krb5_keytab *id)</td></tr>
35<tr class="separator:gac57fead58fb1baa003d6438613731901"><td class="memSeparator" colspan="2">&#160;</td></tr>
36<tr class="memitem:ga3fdc1c60208dc99c1f0ebec18e2a7a52"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga3fdc1c60208dc99c1f0ebec18e2a7a52">krb5_kt_default_name</a> (krb5_context context, char *name, size_t namesize)</td></tr>
37<tr class="separator:ga3fdc1c60208dc99c1f0ebec18e2a7a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
38<tr class="memitem:gaaaff7211e887e908d909d75febf33200"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gaaaff7211e887e908d909d75febf33200">krb5_kt_default_modify_name</a> (krb5_context context, char *name, size_t namesize)</td></tr>
39<tr class="separator:gaaaff7211e887e908d909d75febf33200"><td class="memSeparator" colspan="2">&#160;</td></tr>
40<tr class="memitem:gafcd059883c79dbd99a179bc4225d16b5"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gafcd059883c79dbd99a179bc4225d16b5">krb5_kt_default</a> (krb5_context context, krb5_keytab *id)</td></tr>
41<tr class="separator:gafcd059883c79dbd99a179bc4225d16b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
42<tr class="memitem:ga6040b238ff8adeb346ca35e5530bdeff"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga6040b238ff8adeb346ca35e5530bdeff">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<tr class="separator:ga6040b238ff8adeb346ca35e5530bdeff"><td class="memSeparator" colspan="2">&#160;</td></tr>
44<tr class="memitem:ga632921a4b144a4eb656968d836efd9bb"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga632921a4b144a4eb656968d836efd9bb">krb5_kt_get_type</a> (krb5_context context, krb5_keytab keytab, char *prefix, size_t prefixsize)</td></tr>
45<tr class="separator:ga632921a4b144a4eb656968d836efd9bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
46<tr class="memitem:gaa10348fa20bbae806d652aa4adb44bdd"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gaa10348fa20bbae806d652aa4adb44bdd">krb5_kt_get_name</a> (krb5_context context, krb5_keytab keytab, char *name, size_t namesize)</td></tr>
47<tr class="separator:gaa10348fa20bbae806d652aa4adb44bdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
48<tr class="memitem:ga40744ad6c5d9eed2b76d26f5e698d1f3"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga40744ad6c5d9eed2b76d26f5e698d1f3">krb5_kt_get_full_name</a> (krb5_context context, krb5_keytab keytab, char **str)</td></tr>
49<tr class="separator:ga40744ad6c5d9eed2b76d26f5e698d1f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
50<tr class="memitem:gab67f5ae0a7c4b87d193218b842cad590"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close</a> (krb5_context context, krb5_keytab id)</td></tr>
51<tr class="separator:gab67f5ae0a7c4b87d193218b842cad590"><td class="memSeparator" colspan="2">&#160;</td></tr>
52<tr class="memitem:ga23f1f8d506d680564ff0c783b903abf9"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga23f1f8d506d680564ff0c783b903abf9">krb5_kt_destroy</a> (krb5_context context, krb5_keytab id)</td></tr>
53<tr class="separator:ga23f1f8d506d680564ff0c783b903abf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
54<tr class="memitem:ga688d397ec30b48e5edc5a59567bc8010"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare</a> (krb5_context context, krb5_keytab_entry *entry, krb5_const_principal principal, krb5_kvno vno, krb5_enctype enctype)</td></tr>
55<tr class="separator:ga688d397ec30b48e5edc5a59567bc8010"><td class="memSeparator" colspan="2">&#160;</td></tr>
56<tr class="memitem:gad7183b9573330db0575118057b3a02a5"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gad7183b9573330db0575118057b3a02a5">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>
57<tr class="separator:gad7183b9573330db0575118057b3a02a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
58<tr class="memitem:ga6c6c4233517bd5b12f5c3a99ed31b058"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga6c6c4233517bd5b12f5c3a99ed31b058">krb5_kt_copy_entry_contents</a> (krb5_context context, const krb5_keytab_entry *in, krb5_keytab_entry *out)</td></tr>
59<tr class="separator:ga6c6c4233517bd5b12f5c3a99ed31b058"><td class="memSeparator" colspan="2">&#160;</td></tr>
60<tr class="memitem:gac0774ab1407eaaaa0e5998478de246e2"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry</a> (krb5_context context, krb5_keytab_entry *entry)</td></tr>
61<tr class="separator:gac0774ab1407eaaaa0e5998478de246e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
62<tr class="memitem:ga1efd8ee48d6e3caa31cad475423b8917"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga1efd8ee48d6e3caa31cad475423b8917">krb5_kt_start_seq_get</a> (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</td></tr>
63<tr class="separator:ga1efd8ee48d6e3caa31cad475423b8917"><td class="memSeparator" colspan="2">&#160;</td></tr>
64<tr class="memitem:gac40140c41333a86d3c40426f50b4e1b0"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#gac40140c41333a86d3c40426f50b4e1b0">krb5_kt_next_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry, krb5_kt_cursor *cursor)</td></tr>
65<tr class="separator:gac40140c41333a86d3c40426f50b4e1b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
66<tr class="memitem:ga11289efb407d93a1f84d5c64731a4bd1"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get</a> (krb5_context context, krb5_keytab id, krb5_kt_cursor *cursor)</td></tr>
67<tr class="separator:ga11289efb407d93a1f84d5c64731a4bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
68<tr class="memitem:ga68d16c2a59d10dc3ca84bf8cbf6a4731"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga68d16c2a59d10dc3ca84bf8cbf6a4731">krb5_kt_add_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)</td></tr>
69<tr class="separator:ga68d16c2a59d10dc3ca84bf8cbf6a4731"><td class="memSeparator" colspan="2">&#160;</td></tr>
70<tr class="memitem:ga0f3e7f55fd97a595c961f0ffc49bebac"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga0f3e7f55fd97a595c961f0ffc49bebac">krb5_kt_remove_entry</a> (krb5_context context, krb5_keytab id, krb5_keytab_entry *entry)</td></tr>
71<tr class="separator:ga0f3e7f55fd97a595c961f0ffc49bebac"><td class="memSeparator" colspan="2">&#160;</td></tr>
72<tr class="memitem:ga0ed6e2553ad7cd5abe37e5d626c0527b"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__keytab.html#ga0ed6e2553ad7cd5abe37e5d626c0527b">krb5_kt_have_content</a> (krb5_context context, krb5_keytab id)</td></tr>
73<tr class="separator:ga0ed6e2553ad7cd5abe37e5d626c0527b"><td class="memSeparator" colspan="2">&#160;</td></tr>
74</table>
75<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
76<h2 class="groupheader">Function Documentation</h2>
77<a id="ga68d16c2a59d10dc3ca84bf8cbf6a4731"></a>
78<h2 class="memtitle"><span class="permalink"><a href="#ga68d16c2a59d10dc3ca84bf8cbf6a4731">&#9670;&nbsp;</a></span>krb5_kt_add_entry()</h2>
79
80<div class="memitem">
81<div class="memproto">
82      <table class="memname">
83        <tr>
84          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_add_entry </td>
85          <td>(</td>
86          <td class="paramtype">krb5_context&#160;</td>
87          <td class="paramname"><em>context</em>, </td>
88        </tr>
89        <tr>
90          <td class="paramkey"></td>
91          <td></td>
92          <td class="paramtype">krb5_keytab&#160;</td>
93          <td class="paramname"><em>id</em>, </td>
94        </tr>
95        <tr>
96          <td class="paramkey"></td>
97          <td></td>
98          <td class="paramtype">krb5_keytab_entry *&#160;</td>
99          <td class="paramname"><em>entry</em>&#160;</td>
100        </tr>
101        <tr>
102          <td></td>
103          <td>)</td>
104          <td></td><td></td>
105        </tr>
106      </table>
107</div><div class="memdoc">
108<p>Add the entry in &lsquo;entry&rsquo; to the keytab &lsquo;id&rsquo;.</p>
109<dl class="params"><dt>Parameters</dt><dd>
110  <table class="params">
111    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
112    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
113    <tr><td class="paramname">entry</td><td>the entry to add</td></tr>
114  </table>
115  </dd>
116</dl>
117<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
118
119</div>
120</div>
121<a id="gab67f5ae0a7c4b87d193218b842cad590"></a>
122<h2 class="memtitle"><span class="permalink"><a href="#gab67f5ae0a7c4b87d193218b842cad590">&#9670;&nbsp;</a></span>krb5_kt_close()</h2>
123
124<div class="memitem">
125<div class="memproto">
126      <table class="memname">
127        <tr>
128          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_close </td>
129          <td>(</td>
130          <td class="paramtype">krb5_context&#160;</td>
131          <td class="paramname"><em>context</em>, </td>
132        </tr>
133        <tr>
134          <td class="paramkey"></td>
135          <td></td>
136          <td class="paramtype">krb5_keytab&#160;</td>
137          <td class="paramname"><em>id</em>&#160;</td>
138        </tr>
139        <tr>
140          <td></td>
141          <td>)</td>
142          <td></td><td></td>
143        </tr>
144      </table>
145</div><div class="memdoc">
146<p>Finish using the keytab in &lsquo;id&rsquo;. All resources will be released, even on errors.</p>
147<dl class="params"><dt>Parameters</dt><dd>
148  <table class="params">
149    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
150    <tr><td class="paramname">id</td><td>keytab to close.</td></tr>
151  </table>
152  </dd>
153</dl>
154<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
155
156</div>
157</div>
158<a id="ga688d397ec30b48e5edc5a59567bc8010"></a>
159<h2 class="memtitle"><span class="permalink"><a href="#ga688d397ec30b48e5edc5a59567bc8010">&#9670;&nbsp;</a></span>krb5_kt_compare()</h2>
160
161<div class="memitem">
162<div class="memproto">
163      <table class="memname">
164        <tr>
165          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_kt_compare </td>
166          <td>(</td>
167          <td class="paramtype">krb5_context&#160;</td>
168          <td class="paramname"><em>context</em>, </td>
169        </tr>
170        <tr>
171          <td class="paramkey"></td>
172          <td></td>
173          <td class="paramtype">krb5_keytab_entry *&#160;</td>
174          <td class="paramname"><em>entry</em>, </td>
175        </tr>
176        <tr>
177          <td class="paramkey"></td>
178          <td></td>
179          <td class="paramtype">krb5_const_principal&#160;</td>
180          <td class="paramname"><em>principal</em>, </td>
181        </tr>
182        <tr>
183          <td class="paramkey"></td>
184          <td></td>
185          <td class="paramtype">krb5_kvno&#160;</td>
186          <td class="paramname"><em>vno</em>, </td>
187        </tr>
188        <tr>
189          <td class="paramkey"></td>
190          <td></td>
191          <td class="paramtype">krb5_enctype&#160;</td>
192          <td class="paramname"><em>enctype</em>&#160;</td>
193        </tr>
194        <tr>
195          <td></td>
196          <td>)</td>
197          <td></td><td></td>
198        </tr>
199      </table>
200</div><div class="memdoc">
201<p>Compare &lsquo;entry&rsquo; against &lsquo;principal, vno, enctype&rsquo;. Any of &lsquo;principal, vno, enctype&rsquo; might be 0 which acts as a wildcard. Return TRUE if they compare the same, FALSE otherwise.</p>
202<dl class="params"><dt>Parameters</dt><dd>
203  <table class="params">
204    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
205    <tr><td class="paramname">entry</td><td>an entry to match with. </td></tr>
206    <tr><td class="paramname">principal</td><td>principal to match, NULL matches all principals. </td></tr>
207    <tr><td class="paramname">vno</td><td>key version to match, 0 matches all key version numbers. </td></tr>
208    <tr><td class="paramname">enctype</td><td>encryption type to match, 0 matches all encryption types.</td></tr>
209  </table>
210  </dd>
211</dl>
212<dl class="section return"><dt>Returns</dt><dd>Return TRUE or match, FALSE if not matched. </dd></dl>
213
214</div>
215</div>
216<a id="ga6c6c4233517bd5b12f5c3a99ed31b058"></a>
217<h2 class="memtitle"><span class="permalink"><a href="#ga6c6c4233517bd5b12f5c3a99ed31b058">&#9670;&nbsp;</a></span>krb5_kt_copy_entry_contents()</h2>
218
219<div class="memitem">
220<div class="memproto">
221      <table class="memname">
222        <tr>
223          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_copy_entry_contents </td>
224          <td>(</td>
225          <td class="paramtype">krb5_context&#160;</td>
226          <td class="paramname"><em>context</em>, </td>
227        </tr>
228        <tr>
229          <td class="paramkey"></td>
230          <td></td>
231          <td class="paramtype">const krb5_keytab_entry *&#160;</td>
232          <td class="paramname"><em>in</em>, </td>
233        </tr>
234        <tr>
235          <td class="paramkey"></td>
236          <td></td>
237          <td class="paramtype">krb5_keytab_entry *&#160;</td>
238          <td class="paramname"><em>out</em>&#160;</td>
239        </tr>
240        <tr>
241          <td></td>
242          <td>)</td>
243          <td></td><td></td>
244        </tr>
245      </table>
246</div><div class="memdoc">
247<p>Copy the contents of &lsquo;in&rsquo; into &lsquo;out&rsquo;.</p>
248<dl class="params"><dt>Parameters</dt><dd>
249  <table class="params">
250    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
251    <tr><td class="paramname">in</td><td>the keytab entry to copy. </td></tr>
252    <tr><td class="paramname">out</td><td>the copy of the keytab entry, free with <a class="el" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr>
253  </table>
254  </dd>
255</dl>
256<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
257
258</div>
259</div>
260<a id="gafcd059883c79dbd99a179bc4225d16b5"></a>
261<h2 class="memtitle"><span class="permalink"><a href="#gafcd059883c79dbd99a179bc4225d16b5">&#9670;&nbsp;</a></span>krb5_kt_default()</h2>
262
263<div class="memitem">
264<div class="memproto">
265      <table class="memname">
266        <tr>
267          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default </td>
268          <td>(</td>
269          <td class="paramtype">krb5_context&#160;</td>
270          <td class="paramname"><em>context</em>, </td>
271        </tr>
272        <tr>
273          <td class="paramkey"></td>
274          <td></td>
275          <td class="paramtype">krb5_keytab *&#160;</td>
276          <td class="paramname"><em>id</em>&#160;</td>
277        </tr>
278        <tr>
279          <td></td>
280          <td>)</td>
281          <td></td><td></td>
282        </tr>
283      </table>
284</div><div class="memdoc">
285<p>Set &lsquo;id&rsquo; to the default keytab.</p>
286<dl class="params"><dt>Parameters</dt><dd>
287  <table class="params">
288    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
289    <tr><td class="paramname">id</td><td>the new default keytab.</td></tr>
290  </table>
291  </dd>
292</dl>
293<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
294
295</div>
296</div>
297<a id="gaaaff7211e887e908d909d75febf33200"></a>
298<h2 class="memtitle"><span class="permalink"><a href="#gaaaff7211e887e908d909d75febf33200">&#9670;&nbsp;</a></span>krb5_kt_default_modify_name()</h2>
299
300<div class="memitem">
301<div class="memproto">
302      <table class="memname">
303        <tr>
304          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_modify_name </td>
305          <td>(</td>
306          <td class="paramtype">krb5_context&#160;</td>
307          <td class="paramname"><em>context</em>, </td>
308        </tr>
309        <tr>
310          <td class="paramkey"></td>
311          <td></td>
312          <td class="paramtype">char *&#160;</td>
313          <td class="paramname"><em>name</em>, </td>
314        </tr>
315        <tr>
316          <td class="paramkey"></td>
317          <td></td>
318          <td class="paramtype">size_t&#160;</td>
319          <td class="paramname"><em>namesize</em>&#160;</td>
320        </tr>
321        <tr>
322          <td></td>
323          <td>)</td>
324          <td></td><td></td>
325        </tr>
326      </table>
327</div><div class="memdoc">
328<p>Copy the name of the default modify keytab into &lsquo;name&rsquo;.</p>
329<dl class="params"><dt>Parameters</dt><dd>
330  <table class="params">
331    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
332    <tr><td class="paramname">name</td><td>buffer where the name will be written </td></tr>
333    <tr><td class="paramname">namesize</td><td>length of name</td></tr>
334  </table>
335  </dd>
336</dl>
337<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
338
339</div>
340</div>
341<a id="ga3fdc1c60208dc99c1f0ebec18e2a7a52"></a>
342<h2 class="memtitle"><span class="permalink"><a href="#ga3fdc1c60208dc99c1f0ebec18e2a7a52">&#9670;&nbsp;</a></span>krb5_kt_default_name()</h2>
343
344<div class="memitem">
345<div class="memproto">
346      <table class="memname">
347        <tr>
348          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_default_name </td>
349          <td>(</td>
350          <td class="paramtype">krb5_context&#160;</td>
351          <td class="paramname"><em>context</em>, </td>
352        </tr>
353        <tr>
354          <td class="paramkey"></td>
355          <td></td>
356          <td class="paramtype">char *&#160;</td>
357          <td class="paramname"><em>name</em>, </td>
358        </tr>
359        <tr>
360          <td class="paramkey"></td>
361          <td></td>
362          <td class="paramtype">size_t&#160;</td>
363          <td class="paramname"><em>namesize</em>&#160;</td>
364        </tr>
365        <tr>
366          <td></td>
367          <td>)</td>
368          <td></td><td></td>
369        </tr>
370      </table>
371</div><div class="memdoc">
372<p>copy the name of the default keytab into &lsquo;name&rsquo;.</p>
373<dl class="params"><dt>Parameters</dt><dd>
374  <table class="params">
375    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
376    <tr><td class="paramname">name</td><td>buffer where the name will be written </td></tr>
377    <tr><td class="paramname">namesize</td><td>length of name</td></tr>
378  </table>
379  </dd>
380</dl>
381<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
382
383</div>
384</div>
385<a id="ga23f1f8d506d680564ff0c783b903abf9"></a>
386<h2 class="memtitle"><span class="permalink"><a href="#ga23f1f8d506d680564ff0c783b903abf9">&#9670;&nbsp;</a></span>krb5_kt_destroy()</h2>
387
388<div class="memitem">
389<div class="memproto">
390      <table class="memname">
391        <tr>
392          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_destroy </td>
393          <td>(</td>
394          <td class="paramtype">krb5_context&#160;</td>
395          <td class="paramname"><em>context</em>, </td>
396        </tr>
397        <tr>
398          <td class="paramkey"></td>
399          <td></td>
400          <td class="paramtype">krb5_keytab&#160;</td>
401          <td class="paramname"><em>id</em>&#160;</td>
402        </tr>
403        <tr>
404          <td></td>
405          <td>)</td>
406          <td></td><td></td>
407        </tr>
408      </table>
409</div><div class="memdoc">
410<p>Destroy (remove) the keytab in &lsquo;id&rsquo;. All resources will be released, even on errors, does the equvalment of <a class="el" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a> on the resources.</p>
411<dl class="params"><dt>Parameters</dt><dd>
412  <table class="params">
413    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
414    <tr><td class="paramname">id</td><td>keytab to destroy.</td></tr>
415  </table>
416  </dd>
417</dl>
418<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
419
420</div>
421</div>
422<a id="ga11289efb407d93a1f84d5c64731a4bd1"></a>
423<h2 class="memtitle"><span class="permalink"><a href="#ga11289efb407d93a1f84d5c64731a4bd1">&#9670;&nbsp;</a></span>krb5_kt_end_seq_get()</h2>
424
425<div class="memitem">
426<div class="memproto">
427      <table class="memname">
428        <tr>
429          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_end_seq_get </td>
430          <td>(</td>
431          <td class="paramtype">krb5_context&#160;</td>
432          <td class="paramname"><em>context</em>, </td>
433        </tr>
434        <tr>
435          <td class="paramkey"></td>
436          <td></td>
437          <td class="paramtype">krb5_keytab&#160;</td>
438          <td class="paramname"><em>id</em>, </td>
439        </tr>
440        <tr>
441          <td class="paramkey"></td>
442          <td></td>
443          <td class="paramtype">krb5_kt_cursor *&#160;</td>
444          <td class="paramname"><em>cursor</em>&#160;</td>
445        </tr>
446        <tr>
447          <td></td>
448          <td>)</td>
449          <td></td><td></td>
450        </tr>
451      </table>
452</div><div class="memdoc">
453<p>Release all resources associated with &lsquo;cursor&rsquo;.</p>
454<dl class="params"><dt>Parameters</dt><dd>
455  <table class="params">
456    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
457    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
458    <tr><td class="paramname">cursor</td><td>the cursor to free.</td></tr>
459  </table>
460  </dd>
461</dl>
462<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
463
464</div>
465</div>
466<a id="gac0774ab1407eaaaa0e5998478de246e2"></a>
467<h2 class="memtitle"><span class="permalink"><a href="#gac0774ab1407eaaaa0e5998478de246e2">&#9670;&nbsp;</a></span>krb5_kt_free_entry()</h2>
468
469<div class="memitem">
470<div class="memproto">
471      <table class="memname">
472        <tr>
473          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_free_entry </td>
474          <td>(</td>
475          <td class="paramtype">krb5_context&#160;</td>
476          <td class="paramname"><em>context</em>, </td>
477        </tr>
478        <tr>
479          <td class="paramkey"></td>
480          <td></td>
481          <td class="paramtype">krb5_keytab_entry *&#160;</td>
482          <td class="paramname"><em>entry</em>&#160;</td>
483        </tr>
484        <tr>
485          <td></td>
486          <td>)</td>
487          <td></td><td></td>
488        </tr>
489      </table>
490</div><div class="memdoc">
491<p>Free the contents of &lsquo;entry&rsquo;.</p>
492<dl class="params"><dt>Parameters</dt><dd>
493  <table class="params">
494    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
495    <tr><td class="paramname">entry</td><td>the entry to free</td></tr>
496  </table>
497  </dd>
498</dl>
499<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
500
501</div>
502</div>
503<a id="gad7183b9573330db0575118057b3a02a5"></a>
504<h2 class="memtitle"><span class="permalink"><a href="#gad7183b9573330db0575118057b3a02a5">&#9670;&nbsp;</a></span>krb5_kt_get_entry()</h2>
505
506<div class="memitem">
507<div class="memproto">
508      <table class="memname">
509        <tr>
510          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_entry </td>
511          <td>(</td>
512          <td class="paramtype">krb5_context&#160;</td>
513          <td class="paramname"><em>context</em>, </td>
514        </tr>
515        <tr>
516          <td class="paramkey"></td>
517          <td></td>
518          <td class="paramtype">krb5_keytab&#160;</td>
519          <td class="paramname"><em>id</em>, </td>
520        </tr>
521        <tr>
522          <td class="paramkey"></td>
523          <td></td>
524          <td class="paramtype">krb5_const_principal&#160;</td>
525          <td class="paramname"><em>principal</em>, </td>
526        </tr>
527        <tr>
528          <td class="paramkey"></td>
529          <td></td>
530          <td class="paramtype">krb5_kvno&#160;</td>
531          <td class="paramname"><em>kvno</em>, </td>
532        </tr>
533        <tr>
534          <td class="paramkey"></td>
535          <td></td>
536          <td class="paramtype">krb5_enctype&#160;</td>
537          <td class="paramname"><em>enctype</em>, </td>
538        </tr>
539        <tr>
540          <td class="paramkey"></td>
541          <td></td>
542          <td class="paramtype">krb5_keytab_entry *&#160;</td>
543          <td class="paramname"><em>entry</em>&#160;</td>
544        </tr>
545        <tr>
546          <td></td>
547          <td>)</td>
548          <td></td><td></td>
549        </tr>
550      </table>
551</div><div class="memdoc">
552<p>Retrieve the keytab entry for &lsquo;principal, kvno, enctype&rsquo; into &lsquo;entry&rsquo; from the keytab &lsquo;id&rsquo;. Matching is done like <a class="el" href="group__krb5__keytab.html#ga688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.</p>
553<dl class="params"><dt>Parameters</dt><dd>
554  <table class="params">
555    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
556    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
557    <tr><td class="paramname">principal</td><td>principal to match, NULL matches all principals. </td></tr>
558    <tr><td class="paramname">kvno</td><td>key version to match, 0 matches all key version numbers. </td></tr>
559    <tr><td class="paramname">enctype</td><td>encryption type to match, 0 matches all encryption types. </td></tr>
560    <tr><td class="paramname">entry</td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr>
561  </table>
562  </dd>
563</dl>
564<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
565
566</div>
567</div>
568<a id="ga40744ad6c5d9eed2b76d26f5e698d1f3"></a>
569<h2 class="memtitle"><span class="permalink"><a href="#ga40744ad6c5d9eed2b76d26f5e698d1f3">&#9670;&nbsp;</a></span>krb5_kt_get_full_name()</h2>
570
571<div class="memitem">
572<div class="memproto">
573      <table class="memname">
574        <tr>
575          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_full_name </td>
576          <td>(</td>
577          <td class="paramtype">krb5_context&#160;</td>
578          <td class="paramname"><em>context</em>, </td>
579        </tr>
580        <tr>
581          <td class="paramkey"></td>
582          <td></td>
583          <td class="paramtype">krb5_keytab&#160;</td>
584          <td class="paramname"><em>keytab</em>, </td>
585        </tr>
586        <tr>
587          <td class="paramkey"></td>
588          <td></td>
589          <td class="paramtype">char **&#160;</td>
590          <td class="paramname"><em>str</em>&#160;</td>
591        </tr>
592        <tr>
593          <td></td>
594          <td>)</td>
595          <td></td><td></td>
596        </tr>
597      </table>
598</div><div class="memdoc">
599<p>Retrieve the full name of the keytab &lsquo;keytab&rsquo; and store the name in &lsquo;str&rsquo;.</p>
600<dl class="params"><dt>Parameters</dt><dd>
601  <table class="params">
602    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
603    <tr><td class="paramname">keytab</td><td>keytab to get name for. </td></tr>
604    <tr><td class="paramname">str</td><td>the name of the keytab name, usee krb5_xfree() to free the string. On error, *str is set to NULL.</td></tr>
605  </table>
606  </dd>
607</dl>
608<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
609
610</div>
611</div>
612<a id="gaa10348fa20bbae806d652aa4adb44bdd"></a>
613<h2 class="memtitle"><span class="permalink"><a href="#gaa10348fa20bbae806d652aa4adb44bdd">&#9670;&nbsp;</a></span>krb5_kt_get_name()</h2>
614
615<div class="memitem">
616<div class="memproto">
617      <table class="memname">
618        <tr>
619          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_name </td>
620          <td>(</td>
621          <td class="paramtype">krb5_context&#160;</td>
622          <td class="paramname"><em>context</em>, </td>
623        </tr>
624        <tr>
625          <td class="paramkey"></td>
626          <td></td>
627          <td class="paramtype">krb5_keytab&#160;</td>
628          <td class="paramname"><em>keytab</em>, </td>
629        </tr>
630        <tr>
631          <td class="paramkey"></td>
632          <td></td>
633          <td class="paramtype">char *&#160;</td>
634          <td class="paramname"><em>name</em>, </td>
635        </tr>
636        <tr>
637          <td class="paramkey"></td>
638          <td></td>
639          <td class="paramtype">size_t&#160;</td>
640          <td class="paramname"><em>namesize</em>&#160;</td>
641        </tr>
642        <tr>
643          <td></td>
644          <td>)</td>
645          <td></td><td></td>
646        </tr>
647      </table>
648</div><div class="memdoc">
649<p>Retrieve the name of the keytab &lsquo;keytab&rsquo; into &lsquo;name&rsquo;, &lsquo;namesize&rsquo;</p>
650<dl class="params"><dt>Parameters</dt><dd>
651  <table class="params">
652    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
653    <tr><td class="paramname">keytab</td><td>the keytab to get the name for. </td></tr>
654    <tr><td class="paramname">name</td><td>name buffer. </td></tr>
655    <tr><td class="paramname">namesize</td><td>size of name buffer.</td></tr>
656  </table>
657  </dd>
658</dl>
659<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
660
661</div>
662</div>
663<a id="ga632921a4b144a4eb656968d836efd9bb"></a>
664<h2 class="memtitle"><span class="permalink"><a href="#ga632921a4b144a4eb656968d836efd9bb">&#9670;&nbsp;</a></span>krb5_kt_get_type()</h2>
665
666<div class="memitem">
667<div class="memproto">
668      <table class="memname">
669        <tr>
670          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_get_type </td>
671          <td>(</td>
672          <td class="paramtype">krb5_context&#160;</td>
673          <td class="paramname"><em>context</em>, </td>
674        </tr>
675        <tr>
676          <td class="paramkey"></td>
677          <td></td>
678          <td class="paramtype">krb5_keytab&#160;</td>
679          <td class="paramname"><em>keytab</em>, </td>
680        </tr>
681        <tr>
682          <td class="paramkey"></td>
683          <td></td>
684          <td class="paramtype">char *&#160;</td>
685          <td class="paramname"><em>prefix</em>, </td>
686        </tr>
687        <tr>
688          <td class="paramkey"></td>
689          <td></td>
690          <td class="paramtype">size_t&#160;</td>
691          <td class="paramname"><em>prefixsize</em>&#160;</td>
692        </tr>
693        <tr>
694          <td></td>
695          <td>)</td>
696          <td></td><td></td>
697        </tr>
698      </table>
699</div><div class="memdoc">
700<p>Return the type of the &lsquo;keytab&rsquo; in the string <code>prefix of length </code>prefixsize'.</p>
701<dl class="params"><dt>Parameters</dt><dd>
702  <table class="params">
703    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
704    <tr><td class="paramname">keytab</td><td>the keytab to get the prefix for </td></tr>
705    <tr><td class="paramname">prefix</td><td>prefix buffer </td></tr>
706    <tr><td class="paramname">prefixsize</td><td>length of prefix buffer</td></tr>
707  </table>
708  </dd>
709</dl>
710<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
711
712</div>
713</div>
714<a id="ga0ed6e2553ad7cd5abe37e5d626c0527b"></a>
715<h2 class="memtitle"><span class="permalink"><a href="#ga0ed6e2553ad7cd5abe37e5d626c0527b">&#9670;&nbsp;</a></span>krb5_kt_have_content()</h2>
716
717<div class="memitem">
718<div class="memproto">
719      <table class="memname">
720        <tr>
721          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_have_content </td>
722          <td>(</td>
723          <td class="paramtype">krb5_context&#160;</td>
724          <td class="paramname"><em>context</em>, </td>
725        </tr>
726        <tr>
727          <td class="paramkey"></td>
728          <td></td>
729          <td class="paramtype">krb5_keytab&#160;</td>
730          <td class="paramname"><em>id</em>&#160;</td>
731        </tr>
732        <tr>
733          <td></td>
734          <td>)</td>
735          <td></td><td></td>
736        </tr>
737      </table>
738</div><div class="memdoc">
739<p>Return true if the keytab exists and have entries</p>
740<dl class="params"><dt>Parameters</dt><dd>
741  <table class="params">
742    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
743    <tr><td class="paramname">id</td><td>a keytab.</td></tr>
744  </table>
745  </dd>
746</dl>
747<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
748
749</div>
750</div>
751<a id="gac40140c41333a86d3c40426f50b4e1b0"></a>
752<h2 class="memtitle"><span class="permalink"><a href="#gac40140c41333a86d3c40426f50b4e1b0">&#9670;&nbsp;</a></span>krb5_kt_next_entry()</h2>
753
754<div class="memitem">
755<div class="memproto">
756      <table class="memname">
757        <tr>
758          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_next_entry </td>
759          <td>(</td>
760          <td class="paramtype">krb5_context&#160;</td>
761          <td class="paramname"><em>context</em>, </td>
762        </tr>
763        <tr>
764          <td class="paramkey"></td>
765          <td></td>
766          <td class="paramtype">krb5_keytab&#160;</td>
767          <td class="paramname"><em>id</em>, </td>
768        </tr>
769        <tr>
770          <td class="paramkey"></td>
771          <td></td>
772          <td class="paramtype">krb5_keytab_entry *&#160;</td>
773          <td class="paramname"><em>entry</em>, </td>
774        </tr>
775        <tr>
776          <td class="paramkey"></td>
777          <td></td>
778          <td class="paramtype">krb5_kt_cursor *&#160;</td>
779          <td class="paramname"><em>cursor</em>&#160;</td>
780        </tr>
781        <tr>
782          <td></td>
783          <td>)</td>
784          <td></td><td></td>
785        </tr>
786      </table>
787</div><div class="memdoc">
788<p>Get the next entry from keytab, advance the cursor. On last entry the function will return KRB5_KT_END.</p>
789<dl class="params"><dt>Parameters</dt><dd>
790  <table class="params">
791    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
792    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
793    <tr><td class="paramname">entry</td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gac0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>. </td></tr>
794    <tr><td class="paramname">cursor</td><td>the cursor of the iteration.</td></tr>
795  </table>
796  </dd>
797</dl>
798<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
799
800</div>
801</div>
802<a id="ga6040b238ff8adeb346ca35e5530bdeff"></a>
803<h2 class="memtitle"><span class="permalink"><a href="#ga6040b238ff8adeb346ca35e5530bdeff">&#9670;&nbsp;</a></span>krb5_kt_read_service_key()</h2>
804
805<div class="memitem">
806<div class="memproto">
807      <table class="memname">
808        <tr>
809          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_read_service_key </td>
810          <td>(</td>
811          <td class="paramtype">krb5_context&#160;</td>
812          <td class="paramname"><em>context</em>, </td>
813        </tr>
814        <tr>
815          <td class="paramkey"></td>
816          <td></td>
817          <td class="paramtype">krb5_pointer&#160;</td>
818          <td class="paramname"><em>keyprocarg</em>, </td>
819        </tr>
820        <tr>
821          <td class="paramkey"></td>
822          <td></td>
823          <td class="paramtype">krb5_principal&#160;</td>
824          <td class="paramname"><em>principal</em>, </td>
825        </tr>
826        <tr>
827          <td class="paramkey"></td>
828          <td></td>
829          <td class="paramtype">krb5_kvno&#160;</td>
830          <td class="paramname"><em>vno</em>, </td>
831        </tr>
832        <tr>
833          <td class="paramkey"></td>
834          <td></td>
835          <td class="paramtype">krb5_enctype&#160;</td>
836          <td class="paramname"><em>enctype</em>, </td>
837        </tr>
838        <tr>
839          <td class="paramkey"></td>
840          <td></td>
841          <td class="paramtype">krb5_keyblock **&#160;</td>
842          <td class="paramname"><em>key</em>&#160;</td>
843        </tr>
844        <tr>
845          <td></td>
846          <td>)</td>
847          <td></td><td></td>
848        </tr>
849      </table>
850</div><div class="memdoc">
851<p>Read the key identified by &lsquo;(principal, vno, enctype)&rsquo; from the keytab in &lsquo;keyprocarg&rsquo; (the default if == NULL) into &lsquo;*key&rsquo;.</p>
852<dl class="params"><dt>Parameters</dt><dd>
853  <table class="params">
854    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
855    <tr><td class="paramname">keyprocarg</td><td></td></tr>
856    <tr><td class="paramname">principal</td><td></td></tr>
857    <tr><td class="paramname">vno</td><td></td></tr>
858    <tr><td class="paramname">enctype</td><td></td></tr>
859    <tr><td class="paramname">key</td><td></td></tr>
860  </table>
861  </dd>
862</dl>
863<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
864
865</div>
866</div>
867<a id="ga0b54b479db89c76e46d6edae8328848e"></a>
868<h2 class="memtitle"><span class="permalink"><a href="#ga0b54b479db89c76e46d6edae8328848e">&#9670;&nbsp;</a></span>krb5_kt_register()</h2>
869
870<div class="memitem">
871<div class="memproto">
872      <table class="memname">
873        <tr>
874          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_register </td>
875          <td>(</td>
876          <td class="paramtype">krb5_context&#160;</td>
877          <td class="paramname"><em>context</em>, </td>
878        </tr>
879        <tr>
880          <td class="paramkey"></td>
881          <td></td>
882          <td class="paramtype">const krb5_kt_ops *&#160;</td>
883          <td class="paramname"><em>ops</em>&#160;</td>
884        </tr>
885        <tr>
886          <td></td>
887          <td>)</td>
888          <td></td><td></td>
889        </tr>
890      </table>
891</div><div class="memdoc">
892<p>Register a new keytab backend.</p>
893<dl class="params"><dt>Parameters</dt><dd>
894  <table class="params">
895    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
896    <tr><td class="paramname">ops</td><td>a backend to register.</td></tr>
897  </table>
898  </dd>
899</dl>
900<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
901
902</div>
903</div>
904<a id="ga0f3e7f55fd97a595c961f0ffc49bebac"></a>
905<h2 class="memtitle"><span class="permalink"><a href="#ga0f3e7f55fd97a595c961f0ffc49bebac">&#9670;&nbsp;</a></span>krb5_kt_remove_entry()</h2>
906
907<div class="memitem">
908<div class="memproto">
909      <table class="memname">
910        <tr>
911          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_remove_entry </td>
912          <td>(</td>
913          <td class="paramtype">krb5_context&#160;</td>
914          <td class="paramname"><em>context</em>, </td>
915        </tr>
916        <tr>
917          <td class="paramkey"></td>
918          <td></td>
919          <td class="paramtype">krb5_keytab&#160;</td>
920          <td class="paramname"><em>id</em>, </td>
921        </tr>
922        <tr>
923          <td class="paramkey"></td>
924          <td></td>
925          <td class="paramtype">krb5_keytab_entry *&#160;</td>
926          <td class="paramname"><em>entry</em>&#160;</td>
927        </tr>
928        <tr>
929          <td></td>
930          <td>)</td>
931          <td></td><td></td>
932        </tr>
933      </table>
934</div><div class="memdoc">
935<p>Remove an entry from the keytab, matching is done using <a class="el" href="group__krb5__keytab.html#ga688d397ec30b48e5edc5a59567bc8010">krb5_kt_compare()</a>.</p>
936<dl class="params"><dt>Parameters</dt><dd>
937  <table class="params">
938    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
939    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
940    <tr><td class="paramname">entry</td><td>the entry to remove</td></tr>
941  </table>
942  </dd>
943</dl>
944<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
945
946</div>
947</div>
948<a id="gac57fead58fb1baa003d6438613731901"></a>
949<h2 class="memtitle"><span class="permalink"><a href="#gac57fead58fb1baa003d6438613731901">&#9670;&nbsp;</a></span>krb5_kt_resolve()</h2>
950
951<div class="memitem">
952<div class="memproto">
953      <table class="memname">
954        <tr>
955          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_resolve </td>
956          <td>(</td>
957          <td class="paramtype">krb5_context&#160;</td>
958          <td class="paramname"><em>context</em>, </td>
959        </tr>
960        <tr>
961          <td class="paramkey"></td>
962          <td></td>
963          <td class="paramtype">const char *&#160;</td>
964          <td class="paramname"><em>name</em>, </td>
965        </tr>
966        <tr>
967          <td class="paramkey"></td>
968          <td></td>
969          <td class="paramtype">krb5_keytab *&#160;</td>
970          <td class="paramname"><em>id</em>&#160;</td>
971        </tr>
972        <tr>
973          <td></td>
974          <td>)</td>
975          <td></td><td></td>
976        </tr>
977      </table>
978</div><div class="memdoc">
979<p>Resolve the keytab name (of the form &lsquo;type:residual&rsquo;) in &lsquo;name&rsquo; into a keytab in &lsquo;id&rsquo;.</p>
980<dl class="params"><dt>Parameters</dt><dd>
981  <table class="params">
982    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
983    <tr><td class="paramname">name</td><td>name to resolve </td></tr>
984    <tr><td class="paramname">id</td><td>resulting keytab, free with <a class="el" href="group__krb5__keytab.html#gab67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a>.</td></tr>
985  </table>
986  </dd>
987</dl>
988<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
989
990</div>
991</div>
992<a id="ga1efd8ee48d6e3caa31cad475423b8917"></a>
993<h2 class="memtitle"><span class="permalink"><a href="#ga1efd8ee48d6e3caa31cad475423b8917">&#9670;&nbsp;</a></span>krb5_kt_start_seq_get()</h2>
994
995<div class="memitem">
996<div class="memproto">
997      <table class="memname">
998        <tr>
999          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_kt_start_seq_get </td>
1000          <td>(</td>
1001          <td class="paramtype">krb5_context&#160;</td>
1002          <td class="paramname"><em>context</em>, </td>
1003        </tr>
1004        <tr>
1005          <td class="paramkey"></td>
1006          <td></td>
1007          <td class="paramtype">krb5_keytab&#160;</td>
1008          <td class="paramname"><em>id</em>, </td>
1009        </tr>
1010        <tr>
1011          <td class="paramkey"></td>
1012          <td></td>
1013          <td class="paramtype">krb5_kt_cursor *&#160;</td>
1014          <td class="paramname"><em>cursor</em>&#160;</td>
1015        </tr>
1016        <tr>
1017          <td></td>
1018          <td>)</td>
1019          <td></td><td></td>
1020        </tr>
1021      </table>
1022</div><div class="memdoc">
1023<p>Set &lsquo;cursor&rsquo; to point at the beginning of &lsquo;id&rsquo;.</p>
1024<dl class="params"><dt>Parameters</dt><dd>
1025  <table class="params">
1026    <tr><td class="paramname">context</td><td>a Keberos context. </td></tr>
1027    <tr><td class="paramname">id</td><td>a keytab. </td></tr>
1028    <tr><td class="paramname">cursor</td><td>a newly allocated cursor, free with <a class="el" href="group__krb5__keytab.html#ga11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get()</a>.</td></tr>
1029  </table>
1030  </dd>
1031</dl>
1032<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0, see <a class="el" href="group__krb5__error.html#ga35cbf80e68f43a6d9503952886b85ed2">krb5_get_error_message()</a>. </dd></dl>
1033
1034</div>
1035</div>
1036</div><!-- contents -->
1037<hr size="1"><address style="text-align: right;"><small>
1038Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
1039</body>
1040</html>
1041