<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>HeimdalKerberos5library: Heimdal Kerberos 5 library</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<p>
<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
</p>
<!-- end of header marker -->
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Heimdal Kerberos 5 library</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc03fc138d472dd7743a0ab7ecb3061c1">krb5_add_et_list</a> (krb5_context context, void(*func)(struct et_list **))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g02611e3966053f79eda248d76dccc282">krb5_set_password</a> (krb5_context context, krb5_creds *creds, const char *newpw, krb5_principal targprinc, int *result_code, krb5_data *result_code_string, krb5_data *result_string)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gbd94206e186c58a093975424a4a567a8">krb5_init_context</a> (krb5_context *context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd30312a0ba95a71478de1b5fba34db3f">krb5_copy_context</a> (krb5_context context, krb5_context *out)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd4453861fbfc0372e3c44b59325f62aa">krb5_set_config_files</a> (krb5_context context, char **filenames)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gad9a3fd7b838f053a71424d95bf73d40">krb5_prepend_config_files_default</a> (const char *filelist, char ***pfilenames)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g4276c71bee1ba0c9f2bbd659cd351cb3">krb5_get_default_config_files</a> (char ***pfilenames)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files</a> (char **filenames)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION const <br>
krb5_enctype *KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g92110f6472a4fb0a5e0a35da81af4fa2">krb5_kerberos_enctypes</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g5e028d8b3b0444c98b251f46eb48235a">krb5_set_default_in_tkt_etypes</a> (krb5_context context, const krb5_enctype *etypes)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga2bba3d683f1280ddfe8430d834bd5e8">krb5_get_default_in_tkt_etypes</a> (krb5_context context, krb5_pdu pdu_type, krb5_enctype **etypes)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0f4f2bf6056a5fd472d9dd3d393f133e">krb5_init_ets</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3e1564b6d147482eba7bfb5e40a4ff6f">krb5_set_use_admin_kdc</a> (krb5_context context, krb5_boolean flag)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc68122daa411ea028bd521e6e9d2ca6b">krb5_get_use_admin_kdc</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga3776874e66baaaad19316d65aeeb4b5">krb5_add_extra_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3c326674110a2d1c7d3523a0c308dddd">krb5_set_extra_addresses</a> (krb5_context context, const krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0c24a484850684f9252c0f494da2e4c5">krb5_get_extra_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g666a78a6b321bdc7d174343329d0eae9">krb5_add_ignore_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g4d9823757dea2b9884c136fb959383bc">krb5_set_ignore_addresses</a> (krb5_context context, const krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g6f089725948937875bc2594d9b8cbaf7">krb5_get_ignore_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g2f77d43f11ad41cd9b5676cc73f052bc">krb5_set_fcache_version</a> (krb5_context context, int version)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g913ff7c6bd16cd3d3cb07529345b65ba">krb5_get_fcache_version</a> (krb5_context context, int *version)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc5664b887b62be61c00c70fa9e290611">krb5_is_thread_safe</a> (void)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g798fb21edcec6c7b251709f1e447b21b">krb5_set_dns_canonicalize_hostname</a> (krb5_context context, krb5_boolean flag)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gef9f47692fc31c50afc14b581b7aa2fa">krb5_get_dns_canonicalize_hostname</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfacf61debb011b06e22e78251104efa0">krb5_get_kdc_sec_offset</a> (krb5_context context, int32_t *sec, int32_t *usec)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfd16890e03f6dff6f6d013d97e0ee185">krb5_set_kdc_sec_offset</a> (krb5_context context, int32_t sec, int32_t usec)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION time_t <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gbefb8ef32ceedc5ffe6c9440c093a533">krb5_get_max_time_skew</a> (krb5_context context)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g2257aeff745924c48f12d1893d7523ba">krb5_set_max_time_skew</a> (krb5_context context, time_t t)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3a8e40d622ff1460b2f554d83a9059ea">krb5_set_home_dir_access</a> (krb5_context context, krb5_boolean allow)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ge730027c647c418850393bce518f9d66">krb5_copy_host_realm</a> (krb5_context context, const krb5_realm *from, krb5_realm **to)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a> (krb5_context context, krb5_creds *c)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc4fbae1d00b395ec9d69edabd93f432c">krb5_copy_creds_contents</a> (krb5_context context, const krb5_creds *incred, krb5_creds *c)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gcb70cd95ac6806c3265ee6cec400b60d">krb5_copy_creds</a> (krb5_context context, const krb5_creds *incred, krb5_creds **outcred)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g5224797a3ca4c450466ef5102164ee85">krb5_free_creds</a> (krb5_context context, krb5_creds *c)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g45afc77b07b201272eeeaad9890b63cf">krb5_compare_creds</a> (krb5_context context, krb5_flags whichfields, const krb5_creds *mcreds, const krb5_creds *creds)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION unsigned <br>
long KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3e6ea2e16872304ac5cc3bed2a0abb88">krb5_creds_get_ticket_flags</a> (krb5_creds *creds)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero</a> (krb5_data *p)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gb4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free</a> (krb5_data *p)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION void <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g9494f7751d3751c45a5ed4a89a5323b4">krb5_free_data</a> (krb5_context context, krb5_data *p)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gf5b03734f6027c752381986ac0975ea9">krb5_data_alloc</a> (krb5_data *p, int len)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g0602c7a4b056d9004db090df9886811c">krb5_data_realloc</a> (krb5_data *p, int len)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfb664221cde2d10fb5d1b3dfb5c55e04">krb5_data_copy</a> (krb5_data *p, const void *data, size_t len)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g963388a0eea15e4e43dbe9c983e3e212">krb5_copy_data</a> (krb5_context context, const krb5_data *indata, krb5_data **outdata)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gfad0906fca85d7dea0f6b762822d0ff4">krb5_data_cmp</a> (const krb5_data *data1, const krb5_data *data2)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gcbeb984ec39d6f8ccb582816c14318ab">krb5_data_ct_cmp</a> (const krb5_data *data1, const krb5_data *data2)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g8dcc8bb7370f2bd91bea895df7e1b1a2">krb5_krbhst_get_addrinfo</a> (krb5_context context, krb5_krbhst_info *host, struct addrinfo **ai)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g3d994aef26269ee2b15e4d34acb28fed">krb5_free_ticket</a> (krb5_context context, krb5_ticket *ticket)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gc2c0c5fe2dc17714287a20785623be45">krb5_copy_ticket</a> (krb5_context context, const krb5_ticket *from, krb5_ticket **to)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g6cf23f11044d79441ea1456a01ebe7d7">krb5_ticket_get_client</a> (krb5_context context, const krb5_ticket *ticket, krb5_principal *client)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#gd1f40ffc29f379b7dec60144eefdb553">krb5_ticket_get_server</a> (krb5_context context, const krb5_ticket *ticket, krb5_principal *server)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION time_t <br>
KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g118b98784ccadd98cdaaa1ee5076c9fb">krb5_ticket_get_endtime</a> (krb5_context context, const krb5_ticket *ticket)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#ga7387c09a85bf3aabe5bae8a2ec4af73">krb5_ticket_get_authorization_data_type</a> (krb5_context context, krb5_ticket *ticket, int type, krb5_data *data)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
krb5_error_code KRB5_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5.html#g1bb5d4ab0e2ebd85414903617b1ac36b">krb5_set_real_time</a> (krb5_context context, krb5_timestamp sec, int32_t usec)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc03fc138d472dd7743a0ab7ecb3061c1"></a><!-- doxytag: member="add_et_list.c::krb5_add_et_list" ref="gc03fc138d472dd7743a0ab7ecb3061c1" args="(krb5_context context, void(*func)(struct et_list **))" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_et_list </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)(struct et_list **) </td>
<td class="paramname"> <em>func</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add a specified list of error messages to the et list in context. Call func (probably a comerr-generated function) with a pointer to the current et_list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>A kerberos context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>The generated com_err et function.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga3776874e66baaaad19316d65aeeb4b5"></a><!-- doxytag: member="context.c::krb5_add_extra_addresses" ref="ga3776874e66baaaad19316d65aeeb4b5" args="(krb5_context context, krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_extra_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to add</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g666a78a6b321bdc7d174343329d0eae9"></a><!-- doxytag: member="context.c::krb5_add_ignore_addresses" ref="g666a78a6b321bdc7d174343329d0eae9" args="(krb5_context context, krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_add_ignore_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Add extra addresses to ignore when fetching addresses from the underlaying operating system.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to ignore</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g45afc77b07b201272eeeaad9890b63cf"></a><!-- doxytag: member="creds.c::krb5_compare_creds" ref="g45afc77b07b201272eeeaad9890b63cf" args="(krb5_context context, krb5_flags whichfields, const krb5_creds *mcreds, const krb5_creds *creds)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_compare_creds </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_flags </td>
<td class="paramname"> <em>whichfields</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_creds * </td>
<td class="paramname"> <em>mcreds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_creds * </td>
<td class="paramname"> <em>creds</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return TRUE if `mcreds' and `creds' are equal (`whichfields' determines what equal means).<p>
The following flags, set in whichfields affects the comparison:<ul>
<li>KRB5_TC_MATCH_SRV_NAMEONLY Consider all realms equal when comparing the service principal.</li><li>KRB5_TC_MATCH_KEYTYPE Compare enctypes.</li><li>KRB5_TC_MATCH_FLAGS_EXACT Make sure that the ticket flags are identical.</li><li>KRB5_TC_MATCH_FLAGS Make sure that all ticket flags set in mcreds are also present in creds .</li><li>KRB5_TC_MATCH_TIMES_EXACT Compares the ticket times exactly.</li><li>KRB5_TC_MATCH_TIMES Compares only the expiration times of the creds.</li><li>KRB5_TC_MATCH_AUTHDATA Compares the authdata fields.</li><li>KRB5_TC_MATCH_2ND_TKT Compares the second tickets (used by user-to-user authentication).</li><li>KRB5_TC_MATCH_IS_SKEY Compares the existance of the second ticket.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>whichfields</em> </td><td>which fields to compare. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mcreds</em> </td><td>cred to compare with. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>cred to compare with.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return TRUE if mcred and creds are equal, FALSE if not. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd30312a0ba95a71478de1b5fba34db3f"></a><!-- doxytag: member="context.c::krb5_copy_context" ref="gd30312a0ba95a71478de1b5fba34db3f" args="(krb5_context context, krb5_context *out)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_context </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_context * </td>
<td class="paramname"> <em>out</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Make a copy for the Kerberos 5 context, the new krb5_context shoud be freed with <a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>the Kerberos context to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>the copy of the Kerberos, set to NULL error.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gcb70cd95ac6806c3265ee6cec400b60d"></a><!-- doxytag: member="creds.c::krb5_copy_creds" ref="gcb70cd95ac6806c3265ee6cec400b60d" args="(krb5_context context, const krb5_creds *incred, krb5_creds **outcred)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_creds * </td>
<td class="paramname"> <em>incred</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_creds ** </td>
<td class="paramname"> <em>outcred</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy krb5_creds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>incred</em> </td><td>source credential </td></tr>
<tr><td valign="top"></td><td valign="top"><em>outcred</em> </td><td>destination credential, free with <a class="el" href="group__krb5.html#g5224797a3ca4c450466ef5102164ee85">krb5_free_creds()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gc4fbae1d00b395ec9d69edabd93f432c"></a><!-- doxytag: member="creds.c::krb5_copy_creds_contents" ref="gc4fbae1d00b395ec9d69edabd93f432c" args="(krb5_context context, const krb5_creds *incred, krb5_creds *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_creds_contents </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_creds * </td>
<td class="paramname"> <em>incred</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_creds * </td>
<td class="paramname"> <em>c</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy content of krb5_creds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>incred</em> </td><td>source credential </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>destination credential, free with <a class="el" href="group__krb5.html#gd89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g963388a0eea15e4e43dbe9c983e3e212"></a><!-- doxytag: member="data.c::krb5_copy_data" ref="g963388a0eea15e4e43dbe9c983e3e212" args="(krb5_context context, const krb5_data *indata, krb5_data **outdata)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_data </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_data * </td>
<td class="paramname"> <em>indata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_data ** </td>
<td class="paramname"> <em>outdata</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy the data into a newly allocated krb5_data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>indata</em> </td><td>the krb5_data data to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>outdata</em> </td><td>new krb5_date to copy too. Free with <a class="el" href="group__krb5.html#g9494f7751d3751c45a5ed4a89a5323b4">krb5_free_data()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ge730027c647c418850393bce518f9d66"></a><!-- doxytag: member="copy_host_realm.c::krb5_copy_host_realm" ref="ge730027c647c418850393bce518f9d66" args="(krb5_context context, const krb5_realm *from, krb5_realm **to)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_host_realm </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_realm * </td>
<td class="paramname"> <em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_realm ** </td>
<td class="paramname"> <em>to</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy the list of realms from `from' to `to'.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>list of realms to copy from. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>list of realms to copy to, free list of <a class="el" href="group__krb5__support.html#gca0ab80d3affb5986aa5061f3782401b">krb5_free_host_realm()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gc2c0c5fe2dc17714287a20785623be45"></a><!-- doxytag: member="ticket.c::krb5_copy_ticket" ref="gc2c0c5fe2dc17714287a20785623be45" args="(krb5_context context, const krb5_ticket *from, krb5_ticket **to)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_ticket </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_ticket * </td>
<td class="paramname"> <em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_ticket ** </td>
<td class="paramname"> <em>to</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy ticket and content<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>ticket to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>new copy of ticket, free with <a class="el" href="group__krb5.html#g3d994aef26269ee2b15e4d34acb28fed">krb5_free_ticket()</a></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3e6ea2e16872304ac5cc3bed2a0abb88"></a><!-- doxytag: member="creds.c::krb5_creds_get_ticket_flags" ref="g3e6ea2e16872304ac5cc3bed2a0abb88" args="(krb5_creds *creds)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION unsigned long KRB5_LIB_CALL krb5_creds_get_ticket_flags </td>
<td>(</td>
<td class="paramtype">krb5_creds * </td>
<td class="paramname"> <em>creds</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the ticket flags for the credentials in creds. See also <a class="el" href="group__krb5__ticket.html#gb6a75ab695ff8478394084138af9eb16">krb5_ticket_get_flags()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>credential to get ticket flags from</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>ticket flags </dd></dl>
</div>
</div><p>
<a class="anchor" name="gf5b03734f6027c752381986ac0975ea9"></a><!-- doxytag: member="data.c::krb5_data_alloc" ref="gf5b03734f6027c752381986ac0975ea9" args="(krb5_data *p, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_alloc </td>
<td>(</td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocate data of and krb5_data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to allocate. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>size to allocate.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gfad0906fca85d7dea0f6b762822d0ff4"></a><!-- doxytag: member="data.c::krb5_data_cmp" ref="gfad0906fca85d7dea0f6b762822d0ff4" args="(const krb5_data *data1, const krb5_data *data2)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_cmp </td>
<td>(</td>
<td class="paramtype">const krb5_data * </td>
<td class="paramname"> <em>data1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_data * </td>
<td class="paramname"> <em>data2</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Compare to data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>data1</em> </td><td>krb5_data to compare </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data2</em> </td><td>krb5_data to compare</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return the same way as memcmp(), useful when sorting. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gfb664221cde2d10fb5d1b3dfb5c55e04"></a><!-- doxytag: member="data.c::krb5_data_copy" ref="gfb664221cde2d10fb5d1b3dfb5c55e04" args="(krb5_data *p, const void *data, size_t len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_copy </td>
<td>(</td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copy the data of len into the krb5_data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to copy into. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>data to copy.. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>new size.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gcbeb984ec39d6f8ccb582816c14318ab"></a><!-- doxytag: member="data.c::krb5_data_ct_cmp" ref="gcbeb984ec39d6f8ccb582816c14318ab" args="(const krb5_data *data1, const krb5_data *data2)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_data_ct_cmp </td>
<td>(</td>
<td class="paramtype">const krb5_data * </td>
<td class="paramname"> <em>data1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_data * </td>
<td class="paramname"> <em>data2</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Compare to data not exposing timing information from the checksum data<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>data1</em> </td><td>krb5_data to compare </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data2</em> </td><td>krb5_data to compare</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero for same data, otherwise non zero. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gb4b80ac7a8bbab89fe947ae1c7828ea8"></a><!-- doxytag: member="data.c::krb5_data_free" ref="gb4b80ac7a8bbab89fe947ae1c7828ea8" args="(krb5_data *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_free </td>
<td>(</td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free the content of krb5_data structure, its ok to free a zeroed structure (with memset() or <a class="el" href="group__krb5.html#ga059e96dde4e0b8c082eb6f3d570b7bc">krb5_data_zero()</a>). When done, the structure will be zeroed. The same function is called <a class="el" href="group__krb5__deprecated.html#g220b8b17e81dc71dd3ecd1b079160db9">krb5_free_data_contents()</a> in MIT Kerberos.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g0602c7a4b056d9004db090df9886811c"></a><!-- doxytag: member="data.c::krb5_data_realloc" ref="g0602c7a4b056d9004db090df9886811c" args="(krb5_data *p, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_data_realloc </td>
<td>(</td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grow (or shrink) the content of krb5_data to a new size.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>new size.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga059e96dde4e0b8c082eb6f3d570b7bc"></a><!-- doxytag: member="data.c::krb5_data_zero" ref="ga059e96dde4e0b8c082eb6f3d570b7bc" args="(krb5_data *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_data_zero </td>
<td>(</td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reset the (potentially uninitalized) krb5_data structure.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to reset. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gce1b568d05875e7c4fbc6e5af5a8bdbf"></a><!-- doxytag: member="context.c::krb5_free_config_files" ref="gce1b568d05875e7c4fbc6e5af5a8bdbf" args="(char **filenames)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_config_files </td>
<td>(</td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>filenames</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free a list of configuration files.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filenames</em> </td><td>list, terminated with a NULL pointer, to be freed. NULL is an valid argument.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="ge51d83f5d5f589883f1cd10887892777"></a><!-- doxytag: member="context.c::krb5_free_context" ref="ge51d83f5d5f589883f1cd10887892777" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_context </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the krb5_context allocated by <a class="el" href="group__krb5.html#gbd94206e186c58a093975424a4a567a8">krb5_init_context()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>context to be freed. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gd89c4c7b633646c39e4a34a7230c94e1"></a><!-- doxytag: member="creds.c::krb5_free_cred_contents" ref="gd89c4c7b633646c39e4a34a7230c94e1" args="(krb5_context context, krb5_creds *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_cred_contents </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_creds * </td>
<td class="paramname"> <em>c</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free content of krb5_creds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>krb5_creds to free.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5224797a3ca4c450466ef5102164ee85"></a><!-- doxytag: member="creds.c::krb5_free_creds" ref="g5224797a3ca4c450466ef5102164ee85" args="(krb5_context context, krb5_creds *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_creds </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_creds * </td>
<td class="paramname"> <em>c</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free krb5_creds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>krb5_creds to free.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g9494f7751d3751c45a5ed4a89a5323b4"></a><!-- doxytag: member="data.c::krb5_free_data" ref="g9494f7751d3751c45a5ed4a89a5323b4" args="(krb5_context context, krb5_data *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_data </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free krb5_data (and its content).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>krb5_data to free. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g3d994aef26269ee2b15e4d34acb28fed"></a><!-- doxytag: member="ticket.c::krb5_free_ticket" ref="g3d994aef26269ee2b15e4d34acb28fed" args="(krb5_context context, krb5_ticket *ticket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_ticket </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_ticket * </td>
<td class="paramname"> <em>ticket</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Free ticket and content<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to free</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4276c71bee1ba0c9f2bbd659cd351cb3"></a><!-- doxytag: member="context.c::krb5_get_default_config_files" ref="g4276c71bee1ba0c9f2bbd659cd351cb3" args="(char ***pfilenames)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_config_files </td>
<td>(</td>
<td class="paramtype">char *** </td>
<td class="paramname"> <em>pfilenames</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the global configuration list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pfilenames</em> </td><td>return array of filenames, should be freed with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="ga2bba3d683f1280ddfe8430d834bd5e8"></a><!-- doxytag: member="context.c::krb5_get_default_in_tkt_etypes" ref="ga2bba3d683f1280ddfe8430d834bd5e8" args="(krb5_context context, krb5_pdu pdu_type, krb5_enctype **etypes)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_default_in_tkt_etypes </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_pdu </td>
<td class="paramname"> <em>pdu_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_enctype ** </td>
<td class="paramname"> <em>etypes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the default encryption types that will be use in communcation with the KDC, clients and servers.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>etypes</em> </td><td>Encryption types, array terminated with ETYPE_NULL(0), caller should free array with krb5_xfree():</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gef9f47692fc31c50afc14b581b7aa2fa"></a><!-- doxytag: member="context.c::krb5_get_dns_canonicalize_hostname" ref="gef9f47692fc31c50afc14b581b7aa2fa" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_dns_canonicalize_hostname </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get if the library uses DNS to canonicalize hostnames.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>return non zero if the library uses DNS to canonicalize hostnames. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0c24a484850684f9252c0f494da2e4c5"></a><!-- doxytag: member="context.c::krb5_get_extra_addresses" ref="g0c24a484850684f9252c0f494da2e4c5" args="(krb5_context context, krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_extra_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to set</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g913ff7c6bd16cd3d3cb07529345b65ba"></a><!-- doxytag: member="context.c::krb5_get_fcache_version" ref="g913ff7c6bd16cd3d3cb07529345b65ba" args="(krb5_context context, int *version)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_fcache_version </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>version</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get version of fcache that the library should use.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>version</em> </td><td>version number.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6f089725948937875bc2594d9b8cbaf7"></a><!-- doxytag: member="context.c::krb5_get_ignore_addresses" ref="g6f089725948937875bc2594d9b8cbaf7" args="(krb5_context context, krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_ignore_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get extra addresses to ignore when fetching addresses from the underlaying operating system.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>list addreses ignored</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gfacf61debb011b06e22e78251104efa0"></a><!-- doxytag: member="context.c::krb5_get_kdc_sec_offset" ref="gfacf61debb011b06e22e78251104efa0" args="(krb5_context context, int32_t *sec, int32_t *usec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_get_kdc_sec_offset </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t * </td>
<td class="paramname"> <em>sec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t * </td>
<td class="paramname"> <em>usec</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get current offset in time to the KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>seconds part of offset. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>micro seconds part of offset.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero </dd></dl>
</div>
</div><p>
<a class="anchor" name="gbefb8ef32ceedc5ffe6c9440c093a533"></a><!-- doxytag: member="context.c::krb5_get_max_time_skew" ref="gbefb8ef32ceedc5ffe6c9440c093a533" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_get_max_time_skew </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get max time skew allowed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>timeskew in seconds. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gc68122daa411ea028bd521e6e9d2ca6b"></a><!-- doxytag: member="context.c::krb5_get_use_admin_kdc" ref="gc68122daa411ea028bd521e6e9d2ca6b" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_get_use_admin_kdc </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Make the kerberos library default to the admin KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>boolean flag to telling the context will use admin KDC as the default KDC. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gbd94206e186c58a093975424a4a567a8"></a><!-- doxytag: member="context.c::krb5_init_context" ref="gbd94206e186c58a093975424a4a567a8" args="(krb5_context *context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_init_context </td>
<td>(</td>
<td class="paramtype">krb5_context * </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the context structure and reads the configuration file /etc/krb5.conf. The structure should be freed by calling <a class="el" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context()</a> when it is no longer being used.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>pointer to returned context</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an errno code is returned. Failure means either that something bad happened during initialization (typically ENOMEM) or that Kerberos should not be used ENXIO. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0f4f2bf6056a5fd472d9dd3d393f133e"></a><!-- doxytag: member="context.c::krb5_init_ets" ref="g0f4f2bf6056a5fd472d9dd3d393f133e" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_init_ets </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Init the built-in ets in the Kerberos library.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>kerberos context to add the ets too </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gc5664b887b62be61c00c70fa9e290611"></a><!-- doxytag: member="context.c::krb5_is_thread_safe" ref="gc5664b887b62be61c00c70fa9e290611" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_thread_safe </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Runtime check if the Kerberos library was complied with thread support.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>TRUE if the library was compiled with thread support, FALSE if not. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g92110f6472a4fb0a5e0a35da81af4fa2"></a><!-- doxytag: member="context.c::krb5_kerberos_enctypes" ref="g92110f6472a4fb0a5e0a35da81af4fa2" args="(krb5_context context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION const krb5_enctype* KRB5_LIB_CALL krb5_kerberos_enctypes </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em> </td>
<td> ) </td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the list of Kerberos encryption types sorted in order of most preferred to least preferred encryption type. Note that some encryption types might be disabled, so you need to check with <a class="el" href="group__krb5__crypto.html#gd5f2b15d5fde369cf923e8fae4b00bec">krb5_enctype_valid()</a> before using the encryption type.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>list of enctypes, terminated with ETYPE_NULL. Its a static array completed into the Kerberos library so the content doesn't need to be freed. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g8dcc8bb7370f2bd91bea895df7e1b1a2"></a><!-- doxytag: member="krbhst.c::krb5_krbhst_get_addrinfo" ref="g8dcc8bb7370f2bd91bea895df7e1b1a2" args="(krb5_context context, krb5_krbhst_info *host, struct addrinfo **ai)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_krbhst_get_addrinfo </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_krbhst_info * </td>
<td class="paramname"> <em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct addrinfo ** </td>
<td class="paramname"> <em>ai</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return an `struct addrinfo *' for a KDC host.<p>
Returns an the struct addrinfo in in that corresponds to the information in `host'. free:ing is handled by krb5_krbhst_free, so the returned ai must not be released.
<p>
First try this as an IP address, this allows us to add a dot at the end to stop using the search domains.<p>
If the hostname contains a dot, assumes it's a FQDN and don't use search domains since that might be painfully slow when machine is disconnected from that network.
</div>
</div><p>
<a class="anchor" name="gad9a3fd7b838f053a71424d95bf73d40"></a><!-- doxytag: member="context.c::krb5_prepend_config_files_default" ref="gad9a3fd7b838f053a71424d95bf73d40" args="(const char *filelist, char ***pfilenames)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_prepend_config_files_default </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>filelist</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *** </td>
<td class="paramname"> <em>pfilenames</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Prepend the filename to the global configuration list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filelist</em> </td><td>a filename to add to the default list of filename </td></tr>
<tr><td valign="top"></td><td valign="top"><em>pfilenames</em> </td><td>return array of filenames, should be freed with <a class="el" href="group__krb5.html#gce1b568d05875e7c4fbc6e5af5a8bdbf">krb5_free_config_files()</a>.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd4453861fbfc0372e3c44b59325f62aa"></a><!-- doxytag: member="context.c::krb5_set_config_files" ref="gd4453861fbfc0372e3c44b59325f62aa" args="(krb5_context context, char **filenames)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_config_files </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>filenames</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reinit the context from a new set of filenames.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>context to add configuration too. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>filenames</em> </td><td>array of filenames, end of list is indicated with a NULL filename.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5e028d8b3b0444c98b251f46eb48235a"></a><!-- doxytag: member="context.c::krb5_set_default_in_tkt_etypes" ref="g5e028d8b3b0444c98b251f46eb48235a" args="(krb5_context context, const krb5_enctype *etypes)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_default_in_tkt_etypes </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_enctype * </td>
<td class="paramname"> <em>etypes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the default encryption types that will be use in communcation with the KDC, clients and servers.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>etypes</em> </td><td>Encryption types, array terminated with ETYPE_NULL (0).</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g798fb21edcec6c7b251709f1e447b21b"></a><!-- doxytag: member="context.c::krb5_set_dns_canonicalize_hostname" ref="g798fb21edcec6c7b251709f1e447b21b" args="(krb5_context context, krb5_boolean flag)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_dns_canonicalize_hostname </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_boolean </td>
<td class="paramname"> <em>flag</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set if the library should use DNS to canonicalize hostnames.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>if its dns canonicalizion is used or not. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g3c326674110a2d1c7d3523a0c308dddd"></a><!-- doxytag: member="context.c::krb5_set_extra_addresses" ref="g3c326674110a2d1c7d3523a0c308dddd" args="(krb5_context context, const krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_extra_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set extra address to the address list that the library will add to the client's address list when communicating with the KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to set</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2f77d43f11ad41cd9b5676cc73f052bc"></a><!-- doxytag: member="context.c::krb5_set_fcache_version" ref="g2f77d43f11ad41cd9b5676cc73f052bc" args="(krb5_context context, int version)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_fcache_version </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>version</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set version of fcache that the library should use.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>version</em> </td><td>version number.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3a8e40d622ff1460b2f554d83a9059ea"></a><!-- doxytag: member="context.c::krb5_set_home_dir_access" ref="g3a8e40d622ff1460b2f554d83a9059ea" args="(krb5_context context, krb5_boolean allow)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_set_home_dir_access </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_boolean </td>
<td class="paramname"> <em>allow</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Enable and disable home directory access on either the global state or the krb5_context state. By calling <a class="el" href="group__krb5.html#g3a8e40d622ff1460b2f554d83a9059ea">krb5_set_home_dir_access()</a> with context set to NULL, the global state is configured otherwise the state for the krb5_context is modified.<p>
For home directory access to be allowed, both the global state and the krb5_context state have to be allowed.<p>
Administrator (root user), never uses the home directory.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context or NULL </td></tr>
<tr><td valign="top"></td><td valign="top"><em>allow</em> </td><td>allow if TRUE home directory </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the old value </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4d9823757dea2b9884c136fb959383bc"></a><!-- doxytag: member="context.c::krb5_set_ignore_addresses" ref="g4d9823757dea2b9884c136fb959383bc" args="(krb5_context context, const krb5_addresses *addresses)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_ignore_addresses </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_addresses * </td>
<td class="paramname"> <em>addresses</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set extra addresses to ignore when fetching addresses from the underlaying operating system.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>addresses</em> </td><td>addreses to ignore</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="gfd16890e03f6dff6f6d013d97e0ee185"></a><!-- doxytag: member="context.c::krb5_set_kdc_sec_offset" ref="gfd16890e03f6dff6f6d013d97e0ee185" args="(krb5_context context, int32_t sec, int32_t usec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_kdc_sec_offset </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t </td>
<td class="paramname"> <em>sec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t </td>
<td class="paramname"> <em>usec</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set current offset in time to the KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>seconds part of offset. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>micro seconds part of offset.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>returns zero </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2257aeff745924c48f12d1893d7523ba"></a><!-- doxytag: member="context.c::krb5_set_max_time_skew" ref="g2257aeff745924c48f12d1893d7523ba" args="(krb5_context context, time_t t)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_max_time_skew </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">time_t </td>
<td class="paramname"> <em>t</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set max time skew allowed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>timeskew in seconds. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g02611e3966053f79eda248d76dccc282"></a><!-- doxytag: member="changepw.c::krb5_set_password" ref="g02611e3966053f79eda248d76dccc282" args="(krb5_context context, krb5_creds *creds, const char *newpw, krb5_principal targprinc, int *result_code, krb5_data *result_code_string, krb5_data *result_string)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_password </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_creds * </td>
<td class="paramname"> <em>creds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>newpw</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_principal </td>
<td class="paramname"> <em>targprinc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>result_code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>result_code_string</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>result_string</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Change password using creds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Keberos context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>creds</em> </td><td>The initial kadmin/passwd for the principal or an admin principal </td></tr>
<tr><td valign="top"></td><td valign="top"><em>newpw</em> </td><td>The new password to set </td></tr>
<tr><td valign="top"></td><td valign="top"><em>targprinc</em> </td><td>if unset, the default principal is used. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>result_code</em> </td><td>Result code, KRB5_KPASSWD_SUCCESS is when password is changed. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>result_code_string</em> </td><td>binary message from the server, contains at least the result_code. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>result_string</em> </td><td>A message from the kpasswd service or the library in human printable form. The string is NUL terminated.</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>On sucess and *result_code is KRB5_KPASSWD_SUCCESS, the password is changed.</dd></dl>
@
</div>
</div><p>
<a class="anchor" name="g1bb5d4ab0e2ebd85414903617b1ac36b"></a><!-- doxytag: member="time.c::krb5_set_real_time" ref="g1bb5d4ab0e2ebd85414903617b1ac36b" args="(krb5_context context, krb5_timestamp sec, int32_t usec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_set_real_time </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_timestamp </td>
<td class="paramname"> <em>sec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t </td>
<td class="paramname"> <em>usec</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the absolute time that the caller knows the kdc has so the kerberos library can calculate the relative diffrence beteen the KDC time and local system time.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Keberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sec</em> </td><td>The applications new of "now" in seconds </td></tr>
<tr><td valign="top"></td><td valign="top"><em>usec</em> </td><td>The applications new of "now" in micro seconds</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Kerberos 5 error code, see krb5_get_error_message(). </dd></dl>
<p>
If the caller passes in a negative usec, its assumed to be unknown and the function will use the current time usec.
</div>
</div><p>
<a class="anchor" name="g3e1564b6d147482eba7bfb5e40a4ff6f"></a><!-- doxytag: member="context.c::krb5_set_use_admin_kdc" ref="g3e1564b6d147482eba7bfb5e40a4ff6f" args="(krb5_context context, krb5_boolean flag)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_set_use_admin_kdc </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_boolean </td>
<td class="paramname"> <em>flag</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Make the kerberos library default to the admin KDC.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>Kerberos 5 context. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>boolean flag to select if the use the admin KDC or not. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ga7387c09a85bf3aabe5bae8a2ec4af73"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_authorization_data_type" ref="ga7387c09a85bf3aabe5bae8a2ec4af73" args="(krb5_context context, krb5_ticket *ticket, int type, krb5_data *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_authorization_data_type </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_ticket * </td>
<td class="paramname"> <em>ticket</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_data * </td>
<td class="paramname"> <em>data</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Extract the authorization data type of type from the ticket. Store the field in data. This function is to use for kerberos applications.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>Kerberos ticket </td></tr>
<tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type to fetch </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>returned data, free with <a class="el" href="group__krb5.html#gb4b80ac7a8bbab89fe947ae1c7828ea8">krb5_data_free()</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g6cf23f11044d79441ea1456a01ebe7d7"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_client" ref="g6cf23f11044d79441ea1456a01ebe7d7" args="(krb5_context context, const krb5_ticket *ticket, krb5_principal *client)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_client </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_ticket * </td>
<td class="paramname"> <em>ticket</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_principal * </td>
<td class="paramname"> <em>client</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return client principal in ticket<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>client principal, free with <a class="el" href="group__krb5__principal.html#g5bd3f620ebe8cd4fe44b5c858ba17d22">krb5_free_principal()</a></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
<a class="anchor" name="g118b98784ccadd98cdaaa1ee5076c9fb"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_endtime" ref="g118b98784ccadd98cdaaa1ee5076c9fb" args="(krb5_context context, const krb5_ticket *ticket)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION time_t KRB5_LIB_CALL krb5_ticket_get_endtime </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_ticket * </td>
<td class="paramname"> <em>ticket</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return end time of ticket<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy</td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>end time of ticket </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd1f40ffc29f379b7dec60144eefdb553"></a><!-- doxytag: member="ticket.c::krb5_ticket_get_server" ref="gd1f40ffc29f379b7dec60144eefdb553" args="(krb5_context context, const krb5_ticket *ticket, krb5_principal *server)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_ticket_get_server </td>
<td>(</td>
<td class="paramtype">krb5_context </td>
<td class="paramname"> <em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const krb5_ticket * </td>
<td class="paramname"> <em>ticket</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">krb5_principal * </td>
<td class="paramname"> <em>server</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Return server principal in ticket<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>a Kerberos 5 context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ticket</em> </td><td>ticket to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>server</em> </td><td>server principal, free with <a class="el" href="group__krb5__principal.html#g5bd3f620ebe8cd4fe44b5c858ba17d22">krb5_free_principal()</a></td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 0 to indicate success. Otherwise an kerberos et error code is returned, see krb5_get_error_message(). </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated on Wed Jan 11 14:07:47 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>
</body>
</html>