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 Page</span></a></li> 16 <li><a href="pages.html"><span>Related Pages</span></a></li> 17 <li><a href="modules.html"><span>Modules</span></a></li> 18 <li><a href="annotated.html"><span>Data Structures</span></a></li> 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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 * </td> 112 <td class="paramname"> <em>entry</em></td><td> </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> </td><td>a Keberos context. </td></tr> 128 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 129 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to add</td></tr> 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 </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 </td> 150 <td class="paramname"> <em>id</em></td><td> </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> </td><td>a Keberos context. </td></tr> 166 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>keytab to close.</td></tr> 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 </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 * </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 </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 </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 </td> 205 <td class="paramname"> <em>enctype</em></td><td> </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> </td><td>a Keberos context. </td></tr> 221 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>an entry to match with. </td></tr> 222 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>principal to match, NULL matches all principals. </td></tr> 223 <tr><td valign="top"></td><td valign="top"><em>vno</em> </td><td>key version to match, 0 matches all key version numbers. </td></tr> 224 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td>encryption type to match, 0 matches all encryption types.</td></tr> 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 </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 * </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 * </td> 251 <td class="paramname"> <em>out</em></td><td> </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> </td><td>a Keberos context. </td></tr> 267 <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>the keytab entry to copy. </td></tr> 268 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the copy of the keytab entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr> 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 </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 * </td> 289 <td class="paramname"> <em>id</em></td><td> </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> </td><td>a Keberos context. </td></tr> 305 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>the new default keytab.</td></tr> 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 </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 * </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 </td> 332 <td class="paramname"> <em>namesize</em></td><td> </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> </td><td>a Keberos context. </td></tr> 348 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>buffer where the name will be written </td></tr> 349 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>length of name</td></tr> 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 </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 * </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 </td> 376 <td class="paramname"> <em>namesize</em></td><td> </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> </td><td>a Keberos context. </td></tr> 392 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>buffer where the name will be written </td></tr> 393 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>length of name</td></tr> 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 </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 </td> 414 <td class="paramname"> <em>id</em></td><td> </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> </td><td>a Keberos context. </td></tr> 430 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>keytab to destroy.</td></tr> 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 </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 </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 * </td> 457 <td class="paramname"> <em>cursor</em></td><td> </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> </td><td>a Keberos context. </td></tr> 473 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 474 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>the cursor to free.</td></tr> 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 </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 * </td> 495 <td class="paramname"> <em>entry</em></td><td> </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> </td><td>a Keberos context. </td></tr> 511 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to free</td></tr> 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 </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 </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 </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 </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 </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 * </td> 556 <td class="paramname"> <em>entry</em></td><td> </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> </td><td>a Keberos context. </td></tr> 572 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 573 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>principal to match, NULL matches all principals. </td></tr> 574 <tr><td valign="top"></td><td valign="top"><em>kvno</em> </td><td>key version to match, 0 matches all key version numbers. </td></tr> 575 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td>encryption type to match, 0 matches all encryption types. </td></tr> 576 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>.</td></tr> 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 </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 </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 ** </td> 603 <td class="paramname"> <em>str</em></td><td> </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> </td><td>a Keberos context. </td></tr> 619 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>keytab to get name for. </td></tr> 620 <tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the name of the keytab name, usee krb5_xfree() to free the string. On error, *str is set to NULL.</td></tr> 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 </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 </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 * </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 </td> 653 <td class="paramname"> <em>namesize</em></td><td> </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> </td><td>a Keberos context. </td></tr> 669 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>the keytab to get the name for. </td></tr> 670 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name buffer. </td></tr> 671 <tr><td valign="top"></td><td valign="top"><em>namesize</em> </td><td>size of name buffer.</td></tr> 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 </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 </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 * </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 </td> 704 <td class="paramname"> <em>prefixsize</em></td><td> </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> </td><td>a Keberos context. </td></tr> 720 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>the keytab to get the prefix for </td></tr> 721 <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>prefix buffer </td></tr> 722 <tr><td valign="top"></td><td valign="top"><em>prefixsize</em> </td><td>length of prefix buffer</td></tr> 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 </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 </td> 743 <td class="paramname"> <em>id</em></td><td> </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> </td><td>a Keberos context. </td></tr> 759 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab.</td></tr> 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 </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 </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 * </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 * </td> 792 <td class="paramname"> <em>cursor</em></td><td> </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> </td><td>a Keberos context. </td></tr> 808 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 809 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the returned entry, free with <a class="el" href="group__krb5__keytab.html#gc0774ab1407eaaaa0e5998478de246e2">krb5_kt_free_entry()</a>. </td></tr> 810 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>the cursor of the iteration.</td></tr> 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 </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 </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 </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 </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 </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 ** </td> 855 <td class="paramname"> <em>key</em></td><td> </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> </td><td>a Keberos context. </td></tr> 871 <tr><td valign="top"></td><td valign="top"><em>keyprocarg</em> </td><td></td></tr> 872 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td></td></tr> 873 <tr><td valign="top"></td><td valign="top"><em>vno</em> </td><td></td></tr> 874 <tr><td valign="top"></td><td valign="top"><em>enctype</em> </td><td></td></tr> 875 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td></td></tr> 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 </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 * </td> 896 <td class="paramname"> <em>ops</em></td><td> </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> </td><td>a Keberos context. </td></tr> 912 <tr><td valign="top"></td><td valign="top"><em>ops</em> </td><td>a backend to register.</td></tr> 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 </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 </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 * </td> 939 <td class="paramname"> <em>entry</em></td><td> </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> </td><td>a Keberos context. </td></tr> 955 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 956 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>the entry to remove</td></tr> 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 </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 * </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 * </td> 983 <td class="paramname"> <em>id</em></td><td> </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> </td><td>a Keberos context. </td></tr> 999 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name to resolve </td></tr> 1000 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>resulting keytab, free with <a class="el" href="group__krb5__keytab.html#gb67f5ae0a7c4b87d193218b842cad590">krb5_kt_close()</a>.</td></tr> 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 </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 </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 * </td> 1027 <td class="paramname"> <em>cursor</em></td><td> </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> </td><td>a Keberos context. </td></tr> 1043 <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>a keytab. </td></tr> 1044 <tr><td valign="top"></td><td valign="top"><em>cursor</em> </td><td>a newly allocated cursor, free with <a class="el" href="group__krb5__keytab.html#g11289efb407d93a1f84d5c64731a4bd1">krb5_kt_end_seq_get()</a>.</td></tr> 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 <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