1ae771770SStanislav Sedov<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2ae771770SStanislav Sedov<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3ae771770SStanislav Sedov<title>Heimdalhdblibrary: HDB Struct Reference</title> 4ae771770SStanislav Sedov<link href="doxygen.css" rel="stylesheet" type="text/css"> 5ae771770SStanislav Sedov<link href="tabs.css" rel="stylesheet" type="text/css"> 6ae771770SStanislav Sedov</head><body> 7ae771770SStanislav Sedov<p> 8ae771770SStanislav Sedov<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9ae771770SStanislav Sedov</p> 10ae771770SStanislav Sedov<!-- end of header marker --> 11ae771770SStanislav Sedov<!-- Generated by Doxygen 1.5.6 --> 12ae771770SStanislav Sedov<div class="navigation" id="top"> 13ae771770SStanislav Sedov <div class="tabs"> 14ae771770SStanislav Sedov <ul> 15ae771770SStanislav Sedov <li><a href="index.html"><span>Main Page</span></a></li> 16ae771770SStanislav Sedov <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> 17ae771770SStanislav Sedov </ul> 18ae771770SStanislav Sedov </div> 19ae771770SStanislav Sedov <div class="tabs"> 20ae771770SStanislav Sedov <ul> 21ae771770SStanislav Sedov <li><a href="annotated.html"><span>Data Structures</span></a></li> 22ae771770SStanislav Sedov <li><a href="functions.html"><span>Data Fields</span></a></li> 23ae771770SStanislav Sedov </ul> 24ae771770SStanislav Sedov </div> 25ae771770SStanislav Sedov</div> 26ae771770SStanislav Sedov<div class="contents"> 27ae771770SStanislav Sedov<h1>HDB Struct Reference</h1><!-- doxytag: class="HDB" --><code>#include <hdb.h></code> 28ae771770SStanislav Sedov<p> 29ae771770SStanislav Sedov<table border="0" cellpadding="0" cellspacing="0"> 30ae771770SStanislav Sedov<tr><td></td></tr> 31ae771770SStanislav Sedov<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> 32ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#cb4dd65f4c8add22c2150611944266e3">hdb_name</a></td></tr> 33ae771770SStanislav Sedov 34ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#739d719f5e48e4673722479bb0bc417c">hdb_open</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, mode_t)</td></tr> 35ae771770SStanislav Sedov 36ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#b86313852bebd064b8ef42b98e30f1cb">hdb_close</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr> 37ae771770SStanislav Sedov 38ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#d0621f6de165296a1d1c644c74cb5965">hdb_free</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *)</td></tr> 39ae771770SStanislav Sedov 40ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#73b9a2fea78f68b9fa7eaed9007775ba">hdb_fetch_kvno</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_const_principal, unsigned, krb5_kvno, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *)</td></tr> 41ae771770SStanislav Sedov 42ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#8a683627a8cc9b2fa76aa4a42d8e8724">hdb_store</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *)</td></tr> 43ae771770SStanislav Sedov 44ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#2de18a02cf3dcfd148d3112235df03a1">hdb_remove</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_const_principal)</td></tr> 45ae771770SStanislav Sedov 46ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#82cc2fee837e0d41f4d4cb650461bd0b">hdb_firstkey</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *)</td></tr> 47ae771770SStanislav Sedov 48ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#d93d9f3f5d1c6142017ba5d0fe46cbd9">hdb_nextkey</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *)</td></tr> 49ae771770SStanislav Sedov 50ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#bdd9f324fd42913dd4f04e874038e30d">hdb_lock</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int)</td></tr> 51ae771770SStanislav Sedov 52ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#fa43e8d87b994dfb71740d36b2b3b655">hdb_unlock</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr> 53ae771770SStanislav Sedov 54ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#aa3df6b688ca81ec30d9011cab651707">hdb_rename</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, const char *)</td></tr> 55ae771770SStanislav Sedov 56ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">hdb__get</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data, krb5_data *)</td></tr> 57ae771770SStanislav Sedov 58ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#eb2874e8e0ab765a53395843cae7c7a1">hdb__put</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, krb5_data, krb5_data)</td></tr> 59ae771770SStanislav Sedov 60ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#43d6e0776bcdbfc5a21578950d2fd739">hdb__del</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data)</td></tr> 61ae771770SStanislav Sedov 62ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#09d63facb47c20e3a6edcbbc3caf0b53">hdb_destroy</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr> 63ae771770SStanislav Sedov 64ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#676bb1e2c8ff84d1814ac70587b45310">hdb_get_realms</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_realm **)</td></tr> 65ae771770SStanislav Sedov 66ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#31384c881a1bb57801506fc8607002ea">hdb_password</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, const char *, int)</td></tr> 67ae771770SStanislav Sedov 68ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#344ce9ae59b81f82ae9e4acdc02c4688">hdb_auth_status</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, int)</td></tr> 69ae771770SStanislav Sedov 70ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#9d6f3a3789dfe4b181d488864e0367fc">hdb_check_constrained_delegation</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal)</td></tr> 71ae771770SStanislav Sedov 72ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#28d8f763a87d331b58720e45f574184d">hdb_check_pkinit_ms_upn_match</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal)</td></tr> 73ae771770SStanislav Sedov 74ae771770SStanislav Sedov<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(* </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#15319f1bc3c038258e7003b828a68a23">hdb_check_s4u2self</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal)</td></tr> 75ae771770SStanislav Sedov 76ae771770SStanislav Sedov</table> 77ae771770SStanislav Sedov<hr><a name="_details"></a><h2>Detailed Description</h2> 78ae771770SStanislav Sedov<a class="el" href="struct_h_d_b.html">HDB</a> backend function pointer structure<p> 79ae771770SStanislav SedovThe <a class="el" href="struct_h_d_b.html">HDB</a> structure is what the KDC and kadmind framework uses to query the backend database when talking about principals. <hr><h2>Field Documentation</h2> 80ae771770SStanislav Sedov<a class="anchor" name="cb4dd65f4c8add22c2150611944266e3"></a><!-- doxytag: member="HDB::hdb_name" ref="cb4dd65f4c8add22c2150611944266e3" args="" --> 81ae771770SStanislav Sedov<div class="memitem"> 82ae771770SStanislav Sedov<div class="memproto"> 83ae771770SStanislav Sedov <table class="memname"> 84ae771770SStanislav Sedov <tr> 85ae771770SStanislav Sedov <td class="memname">char* <a class="el" href="struct_h_d_b.html#cb4dd65f4c8add22c2150611944266e3">HDB::hdb_name</a> </td> 86ae771770SStanislav Sedov </tr> 87ae771770SStanislav Sedov </table> 88ae771770SStanislav Sedov</div> 89ae771770SStanislav Sedov<div class="memdoc"> 90ae771770SStanislav Sedov 91ae771770SStanislav Sedov<p> 92ae771770SStanislav Sedovdon't use, only for DB3 93ae771770SStanislav Sedov</div> 94ae771770SStanislav Sedov</div><p> 95ae771770SStanislav Sedov<a class="anchor" name="739d719f5e48e4673722479bb0bc417c"></a><!-- doxytag: member="HDB::hdb_open" ref="739d719f5e48e4673722479bb0bc417c" args=")(krb5_context, struct HDB *, int, mode_t)" --> 96ae771770SStanislav Sedov<div class="memitem"> 97ae771770SStanislav Sedov<div class="memproto"> 98ae771770SStanislav Sedov <table class="memname"> 99ae771770SStanislav Sedov <tr> 100ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#739d719f5e48e4673722479bb0bc417c">HDB::hdb_open</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, mode_t) </td> 101ae771770SStanislav Sedov </tr> 102ae771770SStanislav Sedov </table> 103ae771770SStanislav Sedov</div> 104ae771770SStanislav Sedov<div class="memdoc"> 105ae771770SStanislav Sedov 106ae771770SStanislav Sedov<p> 107ae771770SStanislav SedovOpen (or create) the a Kerberos database.<p> 108ae771770SStanislav SedovOpen (or create) the a Kerberos database that was resolved with hdb_create(). The third and fourth flag to the function are the same as open(), thus passing O_CREAT will create the data base if it doesn't exists.<p> 109ae771770SStanislav SedovThen done the caller should call <a class="el" href="struct_h_d_b.html#b86313852bebd064b8ef42b98e30f1cb">hdb_close()</a>, and to release all resources <a class="el" href="struct_h_d_b.html#09d63facb47c20e3a6edcbbc3caf0b53">hdb_destroy()</a>. 110ae771770SStanislav Sedov</div> 111ae771770SStanislav Sedov</div><p> 112ae771770SStanislav Sedov<a class="anchor" name="b86313852bebd064b8ef42b98e30f1cb"></a><!-- doxytag: member="HDB::hdb_close" ref="b86313852bebd064b8ef42b98e30f1cb" args=")(krb5_context, struct HDB *)" --> 113ae771770SStanislav Sedov<div class="memitem"> 114ae771770SStanislav Sedov<div class="memproto"> 115ae771770SStanislav Sedov <table class="memname"> 116ae771770SStanislav Sedov <tr> 117ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#b86313852bebd064b8ef42b98e30f1cb">HDB::hdb_close</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *) </td> 118ae771770SStanislav Sedov </tr> 119ae771770SStanislav Sedov </table> 120ae771770SStanislav Sedov</div> 121ae771770SStanislav Sedov<div class="memdoc"> 122ae771770SStanislav Sedov 123ae771770SStanislav Sedov<p> 124ae771770SStanislav SedovClose the database for transaction<p> 125ae771770SStanislav SedovCloses the database for further transactions, wont release any permanant resources. the database can be ->hdb_open-ed again. 126ae771770SStanislav Sedov</div> 127ae771770SStanislav Sedov</div><p> 128ae771770SStanislav Sedov<a class="anchor" name="d0621f6de165296a1d1c644c74cb5965"></a><!-- doxytag: member="HDB::hdb_free" ref="d0621f6de165296a1d1c644c74cb5965" args=")(krb5_context, struct HDB *, hdb_entry_ex *)" --> 129ae771770SStanislav Sedov<div class="memitem"> 130ae771770SStanislav Sedov<div class="memproto"> 131ae771770SStanislav Sedov <table class="memname"> 132ae771770SStanislav Sedov <tr> 133ae771770SStanislav Sedov <td class="memname">void(* <a class="el" href="struct_h_d_b.html#d0621f6de165296a1d1c644c74cb5965">HDB::hdb_free</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *) </td> 134ae771770SStanislav Sedov </tr> 135ae771770SStanislav Sedov </table> 136ae771770SStanislav Sedov</div> 137ae771770SStanislav Sedov<div class="memdoc"> 138ae771770SStanislav Sedov 139ae771770SStanislav Sedov<p> 140ae771770SStanislav SedovFree an entry after use. 141ae771770SStanislav Sedov</div> 142ae771770SStanislav Sedov</div><p> 143ae771770SStanislav Sedov<a class="anchor" name="73b9a2fea78f68b9fa7eaed9007775ba"></a><!-- doxytag: member="HDB::hdb_fetch_kvno" ref="73b9a2fea78f68b9fa7eaed9007775ba" args=")(krb5_context, struct HDB *, krb5_const_principal, unsigned, krb5_kvno, hdb_entry_ex *)" --> 144ae771770SStanislav Sedov<div class="memitem"> 145ae771770SStanislav Sedov<div class="memproto"> 146ae771770SStanislav Sedov <table class="memname"> 147ae771770SStanislav Sedov <tr> 148ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#73b9a2fea78f68b9fa7eaed9007775ba">HDB::hdb_fetch_kvno</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_const_principal, unsigned, krb5_kvno, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *) </td> 149ae771770SStanislav Sedov </tr> 150ae771770SStanislav Sedov </table> 151ae771770SStanislav Sedov</div> 152ae771770SStanislav Sedov<div class="memdoc"> 153ae771770SStanislav Sedov 154ae771770SStanislav Sedov<p> 155ae771770SStanislav SedovFetch an entry from the backend<p> 156ae771770SStanislav SedovFetch an entry from the backend, flags are what type of entry should be fetch: client, server, krbtgt. knvo (if specified and flags HDB_F_KVNO_SPECIFIED set) is the kvno to get 157ae771770SStanislav Sedov</div> 158ae771770SStanislav Sedov</div><p> 159ae771770SStanislav Sedov<a class="anchor" name="8a683627a8cc9b2fa76aa4a42d8e8724"></a><!-- doxytag: member="HDB::hdb_store" ref="8a683627a8cc9b2fa76aa4a42d8e8724" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" --> 160ae771770SStanislav Sedov<div class="memitem"> 161ae771770SStanislav Sedov<div class="memproto"> 162ae771770SStanislav Sedov <table class="memname"> 163ae771770SStanislav Sedov <tr> 164ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#8a683627a8cc9b2fa76aa4a42d8e8724">HDB::hdb_store</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *) </td> 165ae771770SStanislav Sedov </tr> 166ae771770SStanislav Sedov </table> 167ae771770SStanislav Sedov</div> 168ae771770SStanislav Sedov<div class="memdoc"> 169ae771770SStanislav Sedov 170ae771770SStanislav Sedov<p> 171ae771770SStanislav SedovStore an entry to database 172ae771770SStanislav Sedov</div> 173ae771770SStanislav Sedov</div><p> 174ae771770SStanislav Sedov<a class="anchor" name="2de18a02cf3dcfd148d3112235df03a1"></a><!-- doxytag: member="HDB::hdb_remove" ref="2de18a02cf3dcfd148d3112235df03a1" args=")(krb5_context, struct HDB *, krb5_const_principal)" --> 175ae771770SStanislav Sedov<div class="memitem"> 176ae771770SStanislav Sedov<div class="memproto"> 177ae771770SStanislav Sedov <table class="memname"> 178ae771770SStanislav Sedov <tr> 179ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#2de18a02cf3dcfd148d3112235df03a1">HDB::hdb_remove</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_const_principal) </td> 180ae771770SStanislav Sedov </tr> 181ae771770SStanislav Sedov </table> 182ae771770SStanislav Sedov</div> 183ae771770SStanislav Sedov<div class="memdoc"> 184ae771770SStanislav Sedov 185ae771770SStanislav Sedov<p> 186ae771770SStanislav SedovRemove an entry from the database. 187ae771770SStanislav Sedov</div> 188ae771770SStanislav Sedov</div><p> 189ae771770SStanislav Sedov<a class="anchor" name="82cc2fee837e0d41f4d4cb650461bd0b"></a><!-- doxytag: member="HDB::hdb_firstkey" ref="82cc2fee837e0d41f4d4cb650461bd0b" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" --> 190ae771770SStanislav Sedov<div class="memitem"> 191ae771770SStanislav Sedov<div class="memproto"> 192ae771770SStanislav Sedov <table class="memname"> 193ae771770SStanislav Sedov <tr> 194ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#82cc2fee837e0d41f4d4cb650461bd0b">HDB::hdb_firstkey</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *) </td> 195ae771770SStanislav Sedov </tr> 196ae771770SStanislav Sedov </table> 197ae771770SStanislav Sedov</div> 198ae771770SStanislav Sedov<div class="memdoc"> 199ae771770SStanislav Sedov 200ae771770SStanislav Sedov<p> 201ae771770SStanislav SedovAs part of iteration, fetch one entry 202ae771770SStanislav Sedov</div> 203ae771770SStanislav Sedov</div><p> 204ae771770SStanislav Sedov<a class="anchor" name="d93d9f3f5d1c6142017ba5d0fe46cbd9"></a><!-- doxytag: member="HDB::hdb_nextkey" ref="d93d9f3f5d1c6142017ba5d0fe46cbd9" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" --> 205ae771770SStanislav Sedov<div class="memitem"> 206ae771770SStanislav Sedov<div class="memproto"> 207ae771770SStanislav Sedov <table class="memname"> 208ae771770SStanislav Sedov <tr> 209ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#d93d9f3f5d1c6142017ba5d0fe46cbd9">HDB::hdb_nextkey</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *) </td> 210ae771770SStanislav Sedov </tr> 211ae771770SStanislav Sedov </table> 212ae771770SStanislav Sedov</div> 213ae771770SStanislav Sedov<div class="memdoc"> 214ae771770SStanislav Sedov 215ae771770SStanislav Sedov<p> 216ae771770SStanislav SedovAs part of iteration, fetch next entry 217ae771770SStanislav Sedov</div> 218ae771770SStanislav Sedov</div><p> 219ae771770SStanislav Sedov<a class="anchor" name="bdd9f324fd42913dd4f04e874038e30d"></a><!-- doxytag: member="HDB::hdb_lock" ref="bdd9f324fd42913dd4f04e874038e30d" args=")(krb5_context, struct HDB *, int)" --> 220ae771770SStanislav Sedov<div class="memitem"> 221ae771770SStanislav Sedov<div class="memproto"> 222ae771770SStanislav Sedov <table class="memname"> 223ae771770SStanislav Sedov <tr> 224ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#bdd9f324fd42913dd4f04e874038e30d">HDB::hdb_lock</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int) </td> 225ae771770SStanislav Sedov </tr> 226ae771770SStanislav Sedov </table> 227ae771770SStanislav Sedov</div> 228ae771770SStanislav Sedov<div class="memdoc"> 229ae771770SStanislav Sedov 230ae771770SStanislav Sedov<p> 231ae771770SStanislav SedovLock database<p> 232ae771770SStanislav SedovA lock can only be held by one consumers. Transaction can still happen on the database while the lock is held, so the entry is only useful for syncroning creation of the database and renaming of the database. 233ae771770SStanislav Sedov</div> 234ae771770SStanislav Sedov</div><p> 235ae771770SStanislav Sedov<a class="anchor" name="fa43e8d87b994dfb71740d36b2b3b655"></a><!-- doxytag: member="HDB::hdb_unlock" ref="fa43e8d87b994dfb71740d36b2b3b655" args=")(krb5_context, struct HDB *)" --> 236ae771770SStanislav Sedov<div class="memitem"> 237ae771770SStanislav Sedov<div class="memproto"> 238ae771770SStanislav Sedov <table class="memname"> 239ae771770SStanislav Sedov <tr> 240ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#fa43e8d87b994dfb71740d36b2b3b655">HDB::hdb_unlock</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *) </td> 241ae771770SStanislav Sedov </tr> 242ae771770SStanislav Sedov </table> 243ae771770SStanislav Sedov</div> 244ae771770SStanislav Sedov<div class="memdoc"> 245ae771770SStanislav Sedov 246ae771770SStanislav Sedov<p> 247ae771770SStanislav SedovUnlock database 248ae771770SStanislav Sedov</div> 249ae771770SStanislav Sedov</div><p> 250ae771770SStanislav Sedov<a class="anchor" name="aa3df6b688ca81ec30d9011cab651707"></a><!-- doxytag: member="HDB::hdb_rename" ref="aa3df6b688ca81ec30d9011cab651707" args=")(krb5_context, struct HDB *, const char *)" --> 251ae771770SStanislav Sedov<div class="memitem"> 252ae771770SStanislav Sedov<div class="memproto"> 253ae771770SStanislav Sedov <table class="memname"> 254ae771770SStanislav Sedov <tr> 255ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#aa3df6b688ca81ec30d9011cab651707">HDB::hdb_rename</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, const char *) </td> 256ae771770SStanislav Sedov </tr> 257ae771770SStanislav Sedov </table> 258ae771770SStanislav Sedov</div> 259ae771770SStanislav Sedov<div class="memdoc"> 260ae771770SStanislav Sedov 261ae771770SStanislav Sedov<p> 262ae771770SStanislav SedovRename the data base.<p> 263ae771770SStanislav SedovAssume that the database is not hdb_open'ed and not locked. 264ae771770SStanislav Sedov</div> 265ae771770SStanislav Sedov</div><p> 266ae771770SStanislav Sedov<a class="anchor" name="447dc66c22431d0ceec328f405fc107a"></a><!-- doxytag: member="HDB::hdb__get" ref="447dc66c22431d0ceec328f405fc107a" args=")(krb5_context, struct HDB *, krb5_data, krb5_data *)" --> 267ae771770SStanislav Sedov<div class="memitem"> 268ae771770SStanislav Sedov<div class="memproto"> 269ae771770SStanislav Sedov <table class="memname"> 270ae771770SStanislav Sedov <tr> 271ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">HDB::hdb__get</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data, krb5_data *) </td> 272ae771770SStanislav Sedov </tr> 273ae771770SStanislav Sedov </table> 274ae771770SStanislav Sedov</div> 275ae771770SStanislav Sedov<div class="memdoc"> 276ae771770SStanislav Sedov 277ae771770SStanislav Sedov<p> 278ae771770SStanislav SedovGet an hdb_entry from a classical DB backend<p> 279ae771770SStanislav SedovIf the database is a classical DB (ie BDB, NDBM, GDBM, etc) backend, this function will take a principal key (krb5_data) and return all data related to principal in the return krb5_data. The returned encoded entry is of type hdb_entry or hdb_entry_alias. 280ae771770SStanislav Sedov</div> 281ae771770SStanislav Sedov</div><p> 282ae771770SStanislav Sedov<a class="anchor" name="eb2874e8e0ab765a53395843cae7c7a1"></a><!-- doxytag: member="HDB::hdb__put" ref="eb2874e8e0ab765a53395843cae7c7a1" args=")(krb5_context, struct HDB *, int, krb5_data, krb5_data)" --> 283ae771770SStanislav Sedov<div class="memitem"> 284ae771770SStanislav Sedov<div class="memproto"> 285ae771770SStanislav Sedov <table class="memname"> 286ae771770SStanislav Sedov <tr> 287ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#eb2874e8e0ab765a53395843cae7c7a1">HDB::hdb__put</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, krb5_data, krb5_data) </td> 288ae771770SStanislav Sedov </tr> 289ae771770SStanislav Sedov </table> 290ae771770SStanislav Sedov</div> 291ae771770SStanislav Sedov<div class="memdoc"> 292ae771770SStanislav Sedov 293ae771770SStanislav Sedov<p> 294ae771770SStanislav SedovStore an hdb_entry from a classical DB backend<p> 295ae771770SStanislav SedovSame discussion as in <a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">HDB::hdb__get</a> 296ae771770SStanislav Sedov</div> 297ae771770SStanislav Sedov</div><p> 298ae771770SStanislav Sedov<a class="anchor" name="43d6e0776bcdbfc5a21578950d2fd739"></a><!-- doxytag: member="HDB::hdb__del" ref="43d6e0776bcdbfc5a21578950d2fd739" args=")(krb5_context, struct HDB *, krb5_data)" --> 299ae771770SStanislav Sedov<div class="memitem"> 300ae771770SStanislav Sedov<div class="memproto"> 301ae771770SStanislav Sedov <table class="memname"> 302ae771770SStanislav Sedov <tr> 303ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#43d6e0776bcdbfc5a21578950d2fd739">HDB::hdb__del</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data) </td> 304ae771770SStanislav Sedov </tr> 305ae771770SStanislav Sedov </table> 306ae771770SStanislav Sedov</div> 307ae771770SStanislav Sedov<div class="memdoc"> 308ae771770SStanislav Sedov 309ae771770SStanislav Sedov<p> 310ae771770SStanislav SedovDelete and hdb_entry from a classical DB backend<p> 311ae771770SStanislav SedovSame discussion as in <a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">HDB::hdb__get</a> 312ae771770SStanislav Sedov</div> 313ae771770SStanislav Sedov</div><p> 314ae771770SStanislav Sedov<a class="anchor" name="09d63facb47c20e3a6edcbbc3caf0b53"></a><!-- doxytag: member="HDB::hdb_destroy" ref="09d63facb47c20e3a6edcbbc3caf0b53" args=")(krb5_context, struct HDB *)" --> 315ae771770SStanislav Sedov<div class="memitem"> 316ae771770SStanislav Sedov<div class="memproto"> 317ae771770SStanislav Sedov <table class="memname"> 318ae771770SStanislav Sedov <tr> 319ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#09d63facb47c20e3a6edcbbc3caf0b53">HDB::hdb_destroy</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *) </td> 320ae771770SStanislav Sedov </tr> 321ae771770SStanislav Sedov </table> 322ae771770SStanislav Sedov</div> 323ae771770SStanislav Sedov<div class="memdoc"> 324ae771770SStanislav Sedov 325ae771770SStanislav Sedov<p> 326ae771770SStanislav SedovDestroy the handle to the database.<p> 327ae771770SStanislav SedovDestroy the handle to the database, deallocate all memory and related resources. Does not remove any permanent data. Its the logical reverse of hdb_create() function that is the entry point for the module. 328ae771770SStanislav Sedov</div> 329ae771770SStanislav Sedov</div><p> 330ae771770SStanislav Sedov<a class="anchor" name="676bb1e2c8ff84d1814ac70587b45310"></a><!-- doxytag: member="HDB::hdb_get_realms" ref="676bb1e2c8ff84d1814ac70587b45310" args=")(krb5_context, struct HDB *, krb5_realm **)" --> 331ae771770SStanislav Sedov<div class="memitem"> 332ae771770SStanislav Sedov<div class="memproto"> 333ae771770SStanislav Sedov <table class="memname"> 334ae771770SStanislav Sedov <tr> 335ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#676bb1e2c8ff84d1814ac70587b45310">HDB::hdb_get_realms</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_realm **) </td> 336ae771770SStanislav Sedov </tr> 337ae771770SStanislav Sedov </table> 338ae771770SStanislav Sedov</div> 339ae771770SStanislav Sedov<div class="memdoc"> 340ae771770SStanislav Sedov 341ae771770SStanislav Sedov<p> 342ae771770SStanislav SedovGet the list of realms this backend handles. This call is optional to support. The returned realms are used for announcing the realms over bonjour. Free returned array with krb5_free_host_realm(). 343ae771770SStanislav Sedov</div> 344ae771770SStanislav Sedov</div><p> 345ae771770SStanislav Sedov<a class="anchor" name="31384c881a1bb57801506fc8607002ea"></a><!-- doxytag: member="HDB::hdb_password" ref="31384c881a1bb57801506fc8607002ea" args=")(krb5_context, struct HDB *, hdb_entry_ex *, const char *, int)" --> 346ae771770SStanislav Sedov<div class="memitem"> 347ae771770SStanislav Sedov<div class="memproto"> 348ae771770SStanislav Sedov <table class="memname"> 349ae771770SStanislav Sedov <tr> 350ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#31384c881a1bb57801506fc8607002ea">HDB::hdb_password</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, const char *, int) </td> 351ae771770SStanislav Sedov </tr> 352ae771770SStanislav Sedov </table> 353ae771770SStanislav Sedov</div> 354ae771770SStanislav Sedov<div class="memdoc"> 355ae771770SStanislav Sedov 356ae771770SStanislav Sedov<p> 357ae771770SStanislav SedovChange password.<p> 358ae771770SStanislav SedovWill update keys for the entry when given password. The new keys must be written into the entry and will then later be -><a class="el" href="struct_h_d_b.html#8a683627a8cc9b2fa76aa4a42d8e8724">hdb_store()</a> into the database. The backend will still perform all other operations, increasing the kvno, and update modification timestamp.<p> 359ae771770SStanislav SedovThe backend needs to call _kadm5_set_keys() and perform password quality checks. 360ae771770SStanislav Sedov</div> 361ae771770SStanislav Sedov</div><p> 362ae771770SStanislav Sedov<a class="anchor" name="344ce9ae59b81f82ae9e4acdc02c4688"></a><!-- doxytag: member="HDB::hdb_auth_status" ref="344ce9ae59b81f82ae9e4acdc02c4688" args=")(krb5_context, struct HDB *, hdb_entry_ex *, int)" --> 363ae771770SStanislav Sedov<div class="memitem"> 364ae771770SStanislav Sedov<div class="memproto"> 365ae771770SStanislav Sedov <table class="memname"> 366ae771770SStanislav Sedov <tr> 367ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#344ce9ae59b81f82ae9e4acdc02c4688">HDB::hdb_auth_status</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, int) </td> 368ae771770SStanislav Sedov </tr> 369ae771770SStanislav Sedov </table> 370ae771770SStanislav Sedov</div> 371ae771770SStanislav Sedov<div class="memdoc"> 372ae771770SStanislav Sedov 373ae771770SStanislav Sedov<p> 374ae771770SStanislav SedovAuth feedback<p> 375ae771770SStanislav SedovThis is a feedback call that allows backends that provides lockout functionality to register failure and/or successes.<p> 376ae771770SStanislav SedovIn case the entry is locked out, the backend should set the hdb_entry.flags.locked-out flag. 377ae771770SStanislav Sedov</div> 378ae771770SStanislav Sedov</div><p> 379ae771770SStanislav Sedov<a class="anchor" name="9d6f3a3789dfe4b181d488864e0367fc"></a><!-- doxytag: member="HDB::hdb_check_constrained_delegation" ref="9d6f3a3789dfe4b181d488864e0367fc" args=")(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal)" --> 380ae771770SStanislav Sedov<div class="memitem"> 381ae771770SStanislav Sedov<div class="memproto"> 382ae771770SStanislav Sedov <table class="memname"> 383ae771770SStanislav Sedov <tr> 384ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#9d6f3a3789dfe4b181d488864e0367fc">HDB::hdb_check_constrained_delegation</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal) </td> 385ae771770SStanislav Sedov </tr> 386ae771770SStanislav Sedov </table> 387ae771770SStanislav Sedov</div> 388ae771770SStanislav Sedov<div class="memdoc"> 389ae771770SStanislav Sedov 390ae771770SStanislav Sedov<p> 391ae771770SStanislav SedovCheck if delegation is allowed. 392ae771770SStanislav Sedov</div> 393ae771770SStanislav Sedov</div><p> 394ae771770SStanislav Sedov<a class="anchor" name="28d8f763a87d331b58720e45f574184d"></a><!-- doxytag: member="HDB::hdb_check_pkinit_ms_upn_match" ref="28d8f763a87d331b58720e45f574184d" args=")(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal)" --> 395ae771770SStanislav Sedov<div class="memitem"> 396ae771770SStanislav Sedov<div class="memproto"> 397ae771770SStanislav Sedov <table class="memname"> 398ae771770SStanislav Sedov <tr> 399ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#28d8f763a87d331b58720e45f574184d">HDB::hdb_check_pkinit_ms_upn_match</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal) </td> 400ae771770SStanislav Sedov </tr> 401ae771770SStanislav Sedov </table> 402ae771770SStanislav Sedov</div> 403ae771770SStanislav Sedov<div class="memdoc"> 404ae771770SStanislav Sedov 405ae771770SStanislav Sedov<p> 406ae771770SStanislav SedovCheck if this name is an alias for the supplied client for PKINIT userPrinicpalName logins 407ae771770SStanislav Sedov</div> 408ae771770SStanislav Sedov</div><p> 409ae771770SStanislav Sedov<a class="anchor" name="15319f1bc3c038258e7003b828a68a23"></a><!-- doxytag: member="HDB::hdb_check_s4u2self" ref="15319f1bc3c038258e7003b828a68a23" args=")(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal)" --> 410ae771770SStanislav Sedov<div class="memitem"> 411ae771770SStanislav Sedov<div class="memproto"> 412ae771770SStanislav Sedov <table class="memname"> 413ae771770SStanislav Sedov <tr> 414ae771770SStanislav Sedov <td class="memname">krb5_error_code(* <a class="el" href="struct_h_d_b.html#15319f1bc3c038258e7003b828a68a23">HDB::hdb_check_s4u2self</a>)(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, <a class="el" href="structhdb__entry__ex.html">hdb_entry_ex</a> *, krb5_const_principal) </td> 415ae771770SStanislav Sedov </tr> 416ae771770SStanislav Sedov </table> 417ae771770SStanislav Sedov</div> 418ae771770SStanislav Sedov<div class="memdoc"> 419ae771770SStanislav Sedov 420ae771770SStanislav Sedov<p> 421ae771770SStanislav SedovCheck if s4u2self is allowed from this client to this server 422ae771770SStanislav Sedov</div> 423ae771770SStanislav Sedov</div><p> 424ae771770SStanislav Sedov<hr>The documentation for this struct was generated from the following file:<ul> 425*cf771f22SStanislav Sedov<li>/Users/lha/src/heimdal/heimdal-release/heimdal-1.5.2/lib/hdb/hdb.h</ul> 426ae771770SStanislav Sedov</div> 427ae771770SStanislav Sedov<hr size="1"><address style="text-align: right;"><small> 428*cf771f22SStanislav SedovGenerated on Wed Jan 11 14:07:38 2012 for Heimdalhdblibrary 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> 429ae771770SStanislav Sedov</body> 430ae771770SStanislav Sedov</html> 431