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 authentication 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 authentication 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__auth.html#g92b082fa699694b353fa51675f2c2259">krb5_rd_req_in_ctx_alloc</a> (krb5_context context, krb5_rd_req_in_ctx *ctx)</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__auth.html#g124150b9eea8b56a9b432cf5e7a8db07">krb5_rd_req_in_set_keytab</a> (krb5_context context, krb5_rd_req_in_ctx in, krb5_keytab keytab)</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__auth.html#gdd6913bc77982a536168d9dd52df2363">krb5_rd_req_in_set_pac_check</a> (krb5_context context, krb5_rd_req_in_ctx in, krb5_boolean flag)</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__auth.html#gc1ffffee7558466d31c23b110c95aa7b">krb5_rd_req_out_get_server</a> (krb5_context context, krb5_rd_req_out_ctx out, krb5_principal *principal)</td></tr> 37 38<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br> 39KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__auth.html#gd8a5460c599500c0d64e632341c8f74a">krb5_rd_req_out_ctx_free</a> (krb5_context context, krb5_rd_req_out_ctx ctx)</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__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx</a> (krb5_context context, krb5_auth_context *auth_context, const krb5_data *inbuf, krb5_const_principal server, krb5_rd_req_in_ctx inctx, krb5_rd_req_out_ctx *outctx)</td></tr> 43 44</table> 45<hr><a name="_details"></a><h2>Detailed Description</h2> 46<hr><h2>Function Documentation</h2> 47<a class="anchor" name="g589cab7251a70a5addbf1af56313401e"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_ctx" ref="g589cab7251a70a5addbf1af56313401e" args="(krb5_context context, krb5_auth_context *auth_context, const krb5_data *inbuf, krb5_const_principal server, krb5_rd_req_in_ctx inctx, krb5_rd_req_out_ctx *outctx)" --> 48<div class="memitem"> 49<div class="memproto"> 50 <table class="memname"> 51 <tr> 52 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_ctx </td> 53 <td>(</td> 54 <td class="paramtype">krb5_context </td> 55 <td class="paramname"> <em>context</em>, </td> 56 </tr> 57 <tr> 58 <td class="paramkey"></td> 59 <td></td> 60 <td class="paramtype">krb5_auth_context * </td> 61 <td class="paramname"> <em>auth_context</em>, </td> 62 </tr> 63 <tr> 64 <td class="paramkey"></td> 65 <td></td> 66 <td class="paramtype">const krb5_data * </td> 67 <td class="paramname"> <em>inbuf</em>, </td> 68 </tr> 69 <tr> 70 <td class="paramkey"></td> 71 <td></td> 72 <td class="paramtype">krb5_const_principal </td> 73 <td class="paramname"> <em>server</em>, </td> 74 </tr> 75 <tr> 76 <td class="paramkey"></td> 77 <td></td> 78 <td class="paramtype">krb5_rd_req_in_ctx </td> 79 <td class="paramname"> <em>inctx</em>, </td> 80 </tr> 81 <tr> 82 <td class="paramkey"></td> 83 <td></td> 84 <td class="paramtype">krb5_rd_req_out_ctx * </td> 85 <td class="paramname"> <em>outctx</em></td><td> </td> 86 </tr> 87 <tr> 88 <td></td> 89 <td>)</td> 90 <td></td><td></td><td></td> 91 </tr> 92 </table> 93</div> 94<div class="memdoc"> 95 96<p> 97The core server function that verify application authentication requests from clients.<p> 98<dl compact><dt><b>Parameters:</b></dt><dd> 99 <table border="0" cellspacing="2" cellpadding="0"> 100 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr> 101 <tr><td valign="top"></td><td valign="top"><em>auth_context</em> </td><td>the authentication context, can be NULL, then default values for the authentication context will used. </td></tr> 102 <tr><td valign="top"></td><td valign="top"><em>inbuf</em> </td><td>the (AP-REQ) authentication buffer</td></tr> 103 <tr><td valign="top"></td><td valign="top"><em>server</em> </td><td>the server with authenticate as, if NULL the function will try to find any available credential in the keytab that will verify the reply. The function will prefer the server the server client specified in the AP-REQ, but if there is no mach, it will try all keytab entries for a match. This have serious performance issues for larger keytabs.</td></tr> 104 <tr><td valign="top"></td><td valign="top"><em>inctx</em> </td><td>control the behavior of the function, if NULL, the default behavior is used. </td></tr> 105 <tr><td valign="top"></td><td valign="top"><em>outctx</em> </td><td>the return outctx, free with <a class="el" href="group__krb5__auth.html#gd8a5460c599500c0d64e632341c8f74a">krb5_rd_req_out_ctx_free()</a>. </td></tr> 106 </table> 107</dl> 108<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl> 109 110</div> 111</div><p> 112<a class="anchor" name="g92b082fa699694b353fa51675f2c2259"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_in_ctx_alloc" ref="g92b082fa699694b353fa51675f2c2259" args="(krb5_context context, krb5_rd_req_in_ctx *ctx)" --> 113<div class="memitem"> 114<div class="memproto"> 115 <table class="memname"> 116 <tr> 117 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_ctx_alloc </td> 118 <td>(</td> 119 <td class="paramtype">krb5_context </td> 120 <td class="paramname"> <em>context</em>, </td> 121 </tr> 122 <tr> 123 <td class="paramkey"></td> 124 <td></td> 125 <td class="paramtype">krb5_rd_req_in_ctx * </td> 126 <td class="paramname"> <em>ctx</em></td><td> </td> 127 </tr> 128 <tr> 129 <td></td> 130 <td>)</td> 131 <td></td><td></td><td></td> 132 </tr> 133 </table> 134</div> 135<div class="memdoc"> 136 137<p> 138Allocate a krb5_rd_req_in_ctx as an input parameter to <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a>. The caller should free the context with krb5_rd_req_in_ctx_free() when done with the context.<p> 139<dl compact><dt><b>Parameters:</b></dt><dd> 140 <table border="0" cellspacing="2" cellpadding="0"> 141 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr> 142 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>in ctx to <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a>.</td></tr> 143 </table> 144</dl> 145<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl> 146 147</div> 148</div><p> 149<a class="anchor" name="g124150b9eea8b56a9b432cf5e7a8db07"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_in_set_keytab" ref="g124150b9eea8b56a9b432cf5e7a8db07" args="(krb5_context context, krb5_rd_req_in_ctx in, krb5_keytab keytab)" --> 150<div class="memitem"> 151<div class="memproto"> 152 <table class="memname"> 153 <tr> 154 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_keytab </td> 155 <td>(</td> 156 <td class="paramtype">krb5_context </td> 157 <td class="paramname"> <em>context</em>, </td> 158 </tr> 159 <tr> 160 <td class="paramkey"></td> 161 <td></td> 162 <td class="paramtype">krb5_rd_req_in_ctx </td> 163 <td class="paramname"> <em>in</em>, </td> 164 </tr> 165 <tr> 166 <td class="paramkey"></td> 167 <td></td> 168 <td class="paramtype">krb5_keytab </td> 169 <td class="paramname"> <em>keytab</em></td><td> </td> 170 </tr> 171 <tr> 172 <td></td> 173 <td>)</td> 174 <td></td><td></td><td></td> 175 </tr> 176 </table> 177</div> 178<div class="memdoc"> 179 180<p> 181Set the keytab that <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a> will use.<p> 182<dl compact><dt><b>Parameters:</b></dt><dd> 183 <table border="0" cellspacing="2" cellpadding="0"> 184 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr> 185 <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>in ctx to <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a>. </td></tr> 186 <tr><td valign="top"></td><td valign="top"><em>keytab</em> </td><td>keytab that <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a> will use, only copy the pointer, so the caller must free they keytab after krb5_rd_req_in_ctx_free() is called.</td></tr> 187 </table> 188</dl> 189<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl> 190 191</div> 192</div><p> 193<a class="anchor" name="gdd6913bc77982a536168d9dd52df2363"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_in_set_pac_check" ref="gdd6913bc77982a536168d9dd52df2363" args="(krb5_context context, krb5_rd_req_in_ctx in, krb5_boolean flag)" --> 194<div class="memitem"> 195<div class="memproto"> 196 <table class="memname"> 197 <tr> 198 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_in_set_pac_check </td> 199 <td>(</td> 200 <td class="paramtype">krb5_context </td> 201 <td class="paramname"> <em>context</em>, </td> 202 </tr> 203 <tr> 204 <td class="paramkey"></td> 205 <td></td> 206 <td class="paramtype">krb5_rd_req_in_ctx </td> 207 <td class="paramname"> <em>in</em>, </td> 208 </tr> 209 <tr> 210 <td class="paramkey"></td> 211 <td></td> 212 <td class="paramtype">krb5_boolean </td> 213 <td class="paramname"> <em>flag</em></td><td> </td> 214 </tr> 215 <tr> 216 <td></td> 217 <td>)</td> 218 <td></td><td></td><td></td> 219 </tr> 220 </table> 221</div> 222<div class="memdoc"> 223 224<p> 225Set if krb5_rq_red() is going to check the Windows PAC or not<p> 226<dl compact><dt><b>Parameters:</b></dt><dd> 227 <table border="0" cellspacing="2" cellpadding="0"> 228 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr> 229 <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>krb5_rd_req_in_ctx to check the option on. </td></tr> 230 <tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>flag to select if to check the pac (TRUE) or not (FALSE).</td></tr> 231 </table> 232</dl> 233<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl> 234 235</div> 236</div><p> 237<a class="anchor" name="gd8a5460c599500c0d64e632341c8f74a"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_out_ctx_free" ref="gd8a5460c599500c0d64e632341c8f74a" args="(krb5_context context, krb5_rd_req_out_ctx ctx)" --> 238<div class="memitem"> 239<div class="memproto"> 240 <table class="memname"> 241 <tr> 242 <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_rd_req_out_ctx_free </td> 243 <td>(</td> 244 <td class="paramtype">krb5_context </td> 245 <td class="paramname"> <em>context</em>, </td> 246 </tr> 247 <tr> 248 <td class="paramkey"></td> 249 <td></td> 250 <td class="paramtype">krb5_rd_req_out_ctx </td> 251 <td class="paramname"> <em>ctx</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> 263Free the krb5_rd_req_out_ctx.<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>Keberos 5 context. </td></tr> 267 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>krb5_rd_req_out_ctx context to free. </td></tr> 268 </table> 269</dl> 270 271</div> 272</div><p> 273<a class="anchor" name="gc1ffffee7558466d31c23b110c95aa7b"></a><!-- doxytag: member="rd_req.c::krb5_rd_req_out_get_server" ref="gc1ffffee7558466d31c23b110c95aa7b" args="(krb5_context context, krb5_rd_req_out_ctx out, krb5_principal *principal)" --> 274<div class="memitem"> 275<div class="memproto"> 276 <table class="memname"> 277 <tr> 278 <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_rd_req_out_get_server </td> 279 <td>(</td> 280 <td class="paramtype">krb5_context </td> 281 <td class="paramname"> <em>context</em>, </td> 282 </tr> 283 <tr> 284 <td class="paramkey"></td> 285 <td></td> 286 <td class="paramtype">krb5_rd_req_out_ctx </td> 287 <td class="paramname"> <em>out</em>, </td> 288 </tr> 289 <tr> 290 <td class="paramkey"></td> 291 <td></td> 292 <td class="paramtype">krb5_principal * </td> 293 <td class="paramname"> <em>principal</em></td><td> </td> 294 </tr> 295 <tr> 296 <td></td> 297 <td>)</td> 298 <td></td><td></td><td></td> 299 </tr> 300 </table> 301</div> 302<div class="memdoc"> 303 304<p> 305Get the principal that was used in the request from the client. Might not match whats in the ticket if <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a> searched in the keytab for a matching key.<p> 306<dl compact><dt><b>Parameters:</b></dt><dd> 307 <table border="0" cellspacing="2" cellpadding="0"> 308 <tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context. </td></tr> 309 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>a krb5_rd_req_out_ctx from <a class="el" href="group__krb5__auth.html#g589cab7251a70a5addbf1af56313401e">krb5_rd_req_ctx()</a>. </td></tr> 310 <tr><td valign="top"></td><td valign="top"><em>principal</em> </td><td>return principal, free with <a class="el" href="group__krb5__principal.html#g5bd3f620ebe8cd4fe44b5c858ba17d22">krb5_free_principal()</a>. </td></tr> 311 </table> 312</dl> 313 314</div> 315</div><p> 316</div> 317<hr size="1"><address style="text-align: right;"><small> 318Generated on Wed Jan 11 14:07:50 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> 319</body> 320</html> 321