1226031Sstas<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2226031Sstas<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3226031Sstas<title>Heimdalhdblibrary: HDB Struct Reference</title>
4226031Sstas<link href="doxygen.css" rel="stylesheet" type="text/css">
5226031Sstas<link href="tabs.css" rel="stylesheet" type="text/css">
6226031Sstas</head><body>
7226031Sstas<p>
8226031Sstas<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9226031Sstas</p>
10226031Sstas<!-- end of header marker -->
11226031Sstas<!-- Generated by Doxygen 1.5.6 -->
12226031Sstas<div class="navigation" id="top">
13226031Sstas  <div class="tabs">
14226031Sstas    <ul>
15226031Sstas      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16226031Sstas      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
17226031Sstas    </ul>
18226031Sstas  </div>
19226031Sstas  <div class="tabs">
20226031Sstas    <ul>
21226031Sstas      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
22226031Sstas      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
23226031Sstas    </ul>
24226031Sstas  </div>
25226031Sstas</div>
26226031Sstas<div class="contents">
27226031Sstas<h1>HDB Struct Reference</h1><!-- doxytag: class="HDB" --><code>#include &lt;hdb.h&gt;</code>
28226031Sstas<p>
29226031Sstas<table border="0" cellpadding="0" cellspacing="0">
30226031Sstas<tr><td></td></tr>
31226031Sstas<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
32226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#cb4dd65f4c8add22c2150611944266e3">hdb_name</a></td></tr>
33226031Sstas
34226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
35226031Sstas
36226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
37226031Sstas
38226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</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>
39226031Sstas
40226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
41226031Sstas
42226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
43226031Sstas
44226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
45226031Sstas
46226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
47226031Sstas
48226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
49226031Sstas
50226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
51226031Sstas
52226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
53226031Sstas
54226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
55226031Sstas
56226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
57226031Sstas
58226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
59226031Sstas
60226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
61226031Sstas
62226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
63226031Sstas
64226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
65226031Sstas
66226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
67226031Sstas
68226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
69226031Sstas
70226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
71226031Sstas
72226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
73226031Sstas
74226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">krb5_error_code(*&nbsp;</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>
75226031Sstas
76226031Sstas</table>
77226031Sstas<hr><a name="_details"></a><h2>Detailed Description</h2>
78226031Sstas<a class="el" href="struct_h_d_b.html">HDB</a> backend function pointer structure<p>
79226031SstasThe <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>
80226031Sstas<a class="anchor" name="cb4dd65f4c8add22c2150611944266e3"></a><!-- doxytag: member="HDB::hdb_name" ref="cb4dd65f4c8add22c2150611944266e3" args="" -->
81226031Sstas<div class="memitem">
82226031Sstas<div class="memproto">
83226031Sstas      <table class="memname">
84226031Sstas        <tr>
85226031Sstas          <td class="memname">char* <a class="el" href="struct_h_d_b.html#cb4dd65f4c8add22c2150611944266e3">HDB::hdb_name</a>          </td>
86226031Sstas        </tr>
87226031Sstas      </table>
88226031Sstas</div>
89226031Sstas<div class="memdoc">
90226031Sstas
91226031Sstas<p>
92226031Sstasdon't use, only for DB3 
93226031Sstas</div>
94226031Sstas</div><p>
95226031Sstas<a class="anchor" name="739d719f5e48e4673722479bb0bc417c"></a><!-- doxytag: member="HDB::hdb_open" ref="739d719f5e48e4673722479bb0bc417c" args=")(krb5_context, struct HDB *, int, mode_t)" -->
96226031Sstas<div class="memitem">
97226031Sstas<div class="memproto">
98226031Sstas      <table class="memname">
99226031Sstas        <tr>
100226031Sstas          <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>
101226031Sstas        </tr>
102226031Sstas      </table>
103226031Sstas</div>
104226031Sstas<div class="memdoc">
105226031Sstas
106226031Sstas<p>
107226031SstasOpen (or create) the a Kerberos database.<p>
108226031SstasOpen (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>
109226031SstasThen 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>. 
110226031Sstas</div>
111226031Sstas</div><p>
112226031Sstas<a class="anchor" name="b86313852bebd064b8ef42b98e30f1cb"></a><!-- doxytag: member="HDB::hdb_close" ref="b86313852bebd064b8ef42b98e30f1cb" args=")(krb5_context, struct HDB *)" -->
113226031Sstas<div class="memitem">
114226031Sstas<div class="memproto">
115226031Sstas      <table class="memname">
116226031Sstas        <tr>
117226031Sstas          <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>
118226031Sstas        </tr>
119226031Sstas      </table>
120226031Sstas</div>
121226031Sstas<div class="memdoc">
122226031Sstas
123226031Sstas<p>
124226031SstasClose the database for transaction<p>
125226031SstasCloses the database for further transactions, wont release any permanant resources. the database can be -&gt;hdb_open-ed again. 
126226031Sstas</div>
127226031Sstas</div><p>
128226031Sstas<a class="anchor" name="d0621f6de165296a1d1c644c74cb5965"></a><!-- doxytag: member="HDB::hdb_free" ref="d0621f6de165296a1d1c644c74cb5965" args=")(krb5_context, struct HDB *, hdb_entry_ex *)" -->
129226031Sstas<div class="memitem">
130226031Sstas<div class="memproto">
131226031Sstas      <table class="memname">
132226031Sstas        <tr>
133226031Sstas          <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>
134226031Sstas        </tr>
135226031Sstas      </table>
136226031Sstas</div>
137226031Sstas<div class="memdoc">
138226031Sstas
139226031Sstas<p>
140226031SstasFree an entry after use. 
141226031Sstas</div>
142226031Sstas</div><p>
143226031Sstas<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 *)" -->
144226031Sstas<div class="memitem">
145226031Sstas<div class="memproto">
146226031Sstas      <table class="memname">
147226031Sstas        <tr>
148226031Sstas          <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>
149226031Sstas        </tr>
150226031Sstas      </table>
151226031Sstas</div>
152226031Sstas<div class="memdoc">
153226031Sstas
154226031Sstas<p>
155226031SstasFetch an entry from the backend<p>
156226031SstasFetch 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 
157226031Sstas</div>
158226031Sstas</div><p>
159226031Sstas<a class="anchor" name="8a683627a8cc9b2fa76aa4a42d8e8724"></a><!-- doxytag: member="HDB::hdb_store" ref="8a683627a8cc9b2fa76aa4a42d8e8724" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" -->
160226031Sstas<div class="memitem">
161226031Sstas<div class="memproto">
162226031Sstas      <table class="memname">
163226031Sstas        <tr>
164226031Sstas          <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>
165226031Sstas        </tr>
166226031Sstas      </table>
167226031Sstas</div>
168226031Sstas<div class="memdoc">
169226031Sstas
170226031Sstas<p>
171226031SstasStore an entry to database 
172226031Sstas</div>
173226031Sstas</div><p>
174226031Sstas<a class="anchor" name="2de18a02cf3dcfd148d3112235df03a1"></a><!-- doxytag: member="HDB::hdb_remove" ref="2de18a02cf3dcfd148d3112235df03a1" args=")(krb5_context, struct HDB *, krb5_const_principal)" -->
175226031Sstas<div class="memitem">
176226031Sstas<div class="memproto">
177226031Sstas      <table class="memname">
178226031Sstas        <tr>
179226031Sstas          <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>
180226031Sstas        </tr>
181226031Sstas      </table>
182226031Sstas</div>
183226031Sstas<div class="memdoc">
184226031Sstas
185226031Sstas<p>
186226031SstasRemove an entry from the database. 
187226031Sstas</div>
188226031Sstas</div><p>
189226031Sstas<a class="anchor" name="82cc2fee837e0d41f4d4cb650461bd0b"></a><!-- doxytag: member="HDB::hdb_firstkey" ref="82cc2fee837e0d41f4d4cb650461bd0b" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" -->
190226031Sstas<div class="memitem">
191226031Sstas<div class="memproto">
192226031Sstas      <table class="memname">
193226031Sstas        <tr>
194226031Sstas          <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>
195226031Sstas        </tr>
196226031Sstas      </table>
197226031Sstas</div>
198226031Sstas<div class="memdoc">
199226031Sstas
200226031Sstas<p>
201226031SstasAs part of iteration, fetch one entry 
202226031Sstas</div>
203226031Sstas</div><p>
204226031Sstas<a class="anchor" name="d93d9f3f5d1c6142017ba5d0fe46cbd9"></a><!-- doxytag: member="HDB::hdb_nextkey" ref="d93d9f3f5d1c6142017ba5d0fe46cbd9" args=")(krb5_context, struct HDB *, unsigned, hdb_entry_ex *)" -->
205226031Sstas<div class="memitem">
206226031Sstas<div class="memproto">
207226031Sstas      <table class="memname">
208226031Sstas        <tr>
209226031Sstas          <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>
210226031Sstas        </tr>
211226031Sstas      </table>
212226031Sstas</div>
213226031Sstas<div class="memdoc">
214226031Sstas
215226031Sstas<p>
216226031SstasAs part of iteration, fetch next entry 
217226031Sstas</div>
218226031Sstas</div><p>
219226031Sstas<a class="anchor" name="bdd9f324fd42913dd4f04e874038e30d"></a><!-- doxytag: member="HDB::hdb_lock" ref="bdd9f324fd42913dd4f04e874038e30d" args=")(krb5_context, struct HDB *, int)" -->
220226031Sstas<div class="memitem">
221226031Sstas<div class="memproto">
222226031Sstas      <table class="memname">
223226031Sstas        <tr>
224226031Sstas          <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>
225226031Sstas        </tr>
226226031Sstas      </table>
227226031Sstas</div>
228226031Sstas<div class="memdoc">
229226031Sstas
230226031Sstas<p>
231226031SstasLock database<p>
232226031SstasA 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. 
233226031Sstas</div>
234226031Sstas</div><p>
235226031Sstas<a class="anchor" name="fa43e8d87b994dfb71740d36b2b3b655"></a><!-- doxytag: member="HDB::hdb_unlock" ref="fa43e8d87b994dfb71740d36b2b3b655" args=")(krb5_context, struct HDB *)" -->
236226031Sstas<div class="memitem">
237226031Sstas<div class="memproto">
238226031Sstas      <table class="memname">
239226031Sstas        <tr>
240226031Sstas          <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>
241226031Sstas        </tr>
242226031Sstas      </table>
243226031Sstas</div>
244226031Sstas<div class="memdoc">
245226031Sstas
246226031Sstas<p>
247226031SstasUnlock database 
248226031Sstas</div>
249226031Sstas</div><p>
250226031Sstas<a class="anchor" name="aa3df6b688ca81ec30d9011cab651707"></a><!-- doxytag: member="HDB::hdb_rename" ref="aa3df6b688ca81ec30d9011cab651707" args=")(krb5_context, struct HDB *, const char *)" -->
251226031Sstas<div class="memitem">
252226031Sstas<div class="memproto">
253226031Sstas      <table class="memname">
254226031Sstas        <tr>
255226031Sstas          <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>
256226031Sstas        </tr>
257226031Sstas      </table>
258226031Sstas</div>
259226031Sstas<div class="memdoc">
260226031Sstas
261226031Sstas<p>
262226031SstasRename the data base.<p>
263226031SstasAssume that the database is not hdb_open'ed and not locked. 
264226031Sstas</div>
265226031Sstas</div><p>
266226031Sstas<a class="anchor" name="447dc66c22431d0ceec328f405fc107a"></a><!-- doxytag: member="HDB::hdb__get" ref="447dc66c22431d0ceec328f405fc107a" args=")(krb5_context, struct HDB *, krb5_data, krb5_data *)" -->
267226031Sstas<div class="memitem">
268226031Sstas<div class="memproto">
269226031Sstas      <table class="memname">
270226031Sstas        <tr>
271226031Sstas          <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>
272226031Sstas        </tr>
273226031Sstas      </table>
274226031Sstas</div>
275226031Sstas<div class="memdoc">
276226031Sstas
277226031Sstas<p>
278226031SstasGet an hdb_entry from a classical DB backend<p>
279226031SstasIf 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. 
280226031Sstas</div>
281226031Sstas</div><p>
282226031Sstas<a class="anchor" name="eb2874e8e0ab765a53395843cae7c7a1"></a><!-- doxytag: member="HDB::hdb__put" ref="eb2874e8e0ab765a53395843cae7c7a1" args=")(krb5_context, struct HDB *, int, krb5_data, krb5_data)" -->
283226031Sstas<div class="memitem">
284226031Sstas<div class="memproto">
285226031Sstas      <table class="memname">
286226031Sstas        <tr>
287226031Sstas          <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>
288226031Sstas        </tr>
289226031Sstas      </table>
290226031Sstas</div>
291226031Sstas<div class="memdoc">
292226031Sstas
293226031Sstas<p>
294226031SstasStore an hdb_entry from a classical DB backend<p>
295226031SstasSame discussion as in <a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">HDB::hdb__get</a> 
296226031Sstas</div>
297226031Sstas</div><p>
298226031Sstas<a class="anchor" name="43d6e0776bcdbfc5a21578950d2fd739"></a><!-- doxytag: member="HDB::hdb__del" ref="43d6e0776bcdbfc5a21578950d2fd739" args=")(krb5_context, struct HDB *, krb5_data)" -->
299226031Sstas<div class="memitem">
300226031Sstas<div class="memproto">
301226031Sstas      <table class="memname">
302226031Sstas        <tr>
303226031Sstas          <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>
304226031Sstas        </tr>
305226031Sstas      </table>
306226031Sstas</div>
307226031Sstas<div class="memdoc">
308226031Sstas
309226031Sstas<p>
310226031SstasDelete and hdb_entry from a classical DB backend<p>
311226031SstasSame discussion as in <a class="el" href="struct_h_d_b.html#447dc66c22431d0ceec328f405fc107a">HDB::hdb__get</a> 
312226031Sstas</div>
313226031Sstas</div><p>
314226031Sstas<a class="anchor" name="09d63facb47c20e3a6edcbbc3caf0b53"></a><!-- doxytag: member="HDB::hdb_destroy" ref="09d63facb47c20e3a6edcbbc3caf0b53" args=")(krb5_context, struct HDB *)" -->
315226031Sstas<div class="memitem">
316226031Sstas<div class="memproto">
317226031Sstas      <table class="memname">
318226031Sstas        <tr>
319226031Sstas          <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>
320226031Sstas        </tr>
321226031Sstas      </table>
322226031Sstas</div>
323226031Sstas<div class="memdoc">
324226031Sstas
325226031Sstas<p>
326226031SstasDestroy the handle to the database.<p>
327226031SstasDestroy 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. 
328226031Sstas</div>
329226031Sstas</div><p>
330226031Sstas<a class="anchor" name="676bb1e2c8ff84d1814ac70587b45310"></a><!-- doxytag: member="HDB::hdb_get_realms" ref="676bb1e2c8ff84d1814ac70587b45310" args=")(krb5_context, struct HDB *, krb5_realm **)" -->
331226031Sstas<div class="memitem">
332226031Sstas<div class="memproto">
333226031Sstas      <table class="memname">
334226031Sstas        <tr>
335226031Sstas          <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>
336226031Sstas        </tr>
337226031Sstas      </table>
338226031Sstas</div>
339226031Sstas<div class="memdoc">
340226031Sstas
341226031Sstas<p>
342226031SstasGet 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(). 
343226031Sstas</div>
344226031Sstas</div><p>
345226031Sstas<a class="anchor" name="31384c881a1bb57801506fc8607002ea"></a><!-- doxytag: member="HDB::hdb_password" ref="31384c881a1bb57801506fc8607002ea" args=")(krb5_context, struct HDB *, hdb_entry_ex *, const char *, int)" -->
346226031Sstas<div class="memitem">
347226031Sstas<div class="memproto">
348226031Sstas      <table class="memname">
349226031Sstas        <tr>
350226031Sstas          <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>
351226031Sstas        </tr>
352226031Sstas      </table>
353226031Sstas</div>
354226031Sstas<div class="memdoc">
355226031Sstas
356226031Sstas<p>
357226031SstasChange password.<p>
358226031SstasWill update keys for the entry when given password. The new keys must be written into the entry and will then later be -&gt;<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>
359226031SstasThe backend needs to call _kadm5_set_keys() and perform password quality checks. 
360226031Sstas</div>
361226031Sstas</div><p>
362226031Sstas<a class="anchor" name="344ce9ae59b81f82ae9e4acdc02c4688"></a><!-- doxytag: member="HDB::hdb_auth_status" ref="344ce9ae59b81f82ae9e4acdc02c4688" args=")(krb5_context, struct HDB *, hdb_entry_ex *, int)" -->
363226031Sstas<div class="memitem">
364226031Sstas<div class="memproto">
365226031Sstas      <table class="memname">
366226031Sstas        <tr>
367226031Sstas          <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>
368226031Sstas        </tr>
369226031Sstas      </table>
370226031Sstas</div>
371226031Sstas<div class="memdoc">
372226031Sstas
373226031Sstas<p>
374226031SstasAuth feedback<p>
375226031SstasThis is a feedback call that allows backends that provides lockout functionality to register failure and/or successes.<p>
376226031SstasIn case the entry is locked out, the backend should set the hdb_entry.flags.locked-out flag. 
377226031Sstas</div>
378226031Sstas</div><p>
379226031Sstas<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)" -->
380226031Sstas<div class="memitem">
381226031Sstas<div class="memproto">
382226031Sstas      <table class="memname">
383226031Sstas        <tr>
384226031Sstas          <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>
385226031Sstas        </tr>
386226031Sstas      </table>
387226031Sstas</div>
388226031Sstas<div class="memdoc">
389226031Sstas
390226031Sstas<p>
391226031SstasCheck if delegation is allowed. 
392226031Sstas</div>
393226031Sstas</div><p>
394226031Sstas<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)" -->
395226031Sstas<div class="memitem">
396226031Sstas<div class="memproto">
397226031Sstas      <table class="memname">
398226031Sstas        <tr>
399226031Sstas          <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>
400226031Sstas        </tr>
401226031Sstas      </table>
402226031Sstas</div>
403226031Sstas<div class="memdoc">
404226031Sstas
405226031Sstas<p>
406226031SstasCheck if this name is an alias for the supplied client for PKINIT userPrinicpalName logins 
407226031Sstas</div>
408226031Sstas</div><p>
409226031Sstas<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)" -->
410226031Sstas<div class="memitem">
411226031Sstas<div class="memproto">
412226031Sstas      <table class="memname">
413226031Sstas        <tr>
414226031Sstas          <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>
415226031Sstas        </tr>
416226031Sstas      </table>
417226031Sstas</div>
418226031Sstas<div class="memdoc">
419226031Sstas
420226031Sstas<p>
421226031SstasCheck if s4u2self is allowed from this client to this server 
422226031Sstas</div>
423226031Sstas</div><p>
424226031Sstas<hr>The documentation for this struct was generated from the following file:<ul>
425234027Sstas<li>/Users/lha/src/heimdal/heimdal-release/heimdal-1.5.2/lib/hdb/hdb.h</ul>
426226031Sstas</div>
427226031Sstas<hr size="1"><address style="text-align: right;"><small>
428234027SstasGenerated on Wed Jan 11 14:07:38 2012 for Heimdalhdblibrary by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
429226031Sstas</body>
430226031Sstas</html>
431