xref: /netbsd-src/crypto/external/bsd/heimdal/dist/doc/doxyout/hdb/html/struct_h_d_b.html (revision dd75ac5b443e967e26b4d18cc8cd5eb98512bfbf)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>HDB Struct Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<p>
8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9</p>
10<!-- end of header marker -->
11<!-- Generated by Doxygen 1.9.1 -->
12<script type="text/javascript" src="menudata.js"></script>
13<script type="text/javascript" src="menu.js"></script>
14<script type="text/javascript">
15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16$(function() {
17  initMenu('',false,false,'search.php','Search');
18});
19/* @license-end */</script>
20<div id="main-nav"></div>
21</div><!-- top -->
22<div class="header">
23  <div class="summary">
24<a href="#pub-attribs">Data Fields</a>  </div>
25  <div class="headertitle">
26<div class="title">HDB Struct Reference</div>  </div>
27</div><!--header-->
28<div class="contents">
29
30<p><code>#include &lt;hdb.h&gt;</code></p>
31<table class="memberdecls">
32<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
33Data Fields</h2></td></tr>
34<tr class="memitem:acb4dd65f4c8add22c2150611944266e3"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#acb4dd65f4c8add22c2150611944266e3">hdb_name</a></td></tr>
35<tr class="separator:acb4dd65f4c8add22c2150611944266e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
36<tr class="memitem:a0195553be67d9fa3882ed141d1075cde"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a0195553be67d9fa3882ed141d1075cde">hdb_open</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, mode_t)</td></tr>
37<tr class="separator:a0195553be67d9fa3882ed141d1075cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
38<tr class="memitem:abcc1159194d397105074fd7af2147ef0"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#abcc1159194d397105074fd7af2147ef0">hdb_close</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr>
39<tr class="separator:abcc1159194d397105074fd7af2147ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
40<tr class="memitem:ad2aaa1e953f3889416effecb330c31d5"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#ad2aaa1e953f3889416effecb330c31d5">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>
41<tr class="separator:ad2aaa1e953f3889416effecb330c31d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
42<tr class="memitem:a221e8919e12c4d5cda20e4c4ea4bea57"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a221e8919e12c4d5cda20e4c4ea4bea57">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>
43<tr class="separator:a221e8919e12c4d5cda20e4c4ea4bea57"><td class="memSeparator" colspan="2">&#160;</td></tr>
44<tr class="memitem:ace37bcc785b39826a25043302aaad7d4"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#ace37bcc785b39826a25043302aaad7d4">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>
45<tr class="separator:ace37bcc785b39826a25043302aaad7d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
46<tr class="memitem:ad40ae16bd6c089fc2224e416a418406d"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#ad40ae16bd6c089fc2224e416a418406d">hdb_remove</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, krb5_const_principal)</td></tr>
47<tr class="separator:ad40ae16bd6c089fc2224e416a418406d"><td class="memSeparator" colspan="2">&#160;</td></tr>
48<tr class="memitem:aa0b135e216639ec17963f0387952fc39"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#aa0b135e216639ec17963f0387952fc39">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>
49<tr class="separator:aa0b135e216639ec17963f0387952fc39"><td class="memSeparator" colspan="2">&#160;</td></tr>
50<tr class="memitem:a619e68062182dac514dfe36a412781b0"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a619e68062182dac514dfe36a412781b0">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>
51<tr class="separator:a619e68062182dac514dfe36a412781b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
52<tr class="memitem:a882a4319a715245764833cded23c25f3"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a882a4319a715245764833cded23c25f3">hdb_lock</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int)</td></tr>
53<tr class="separator:a882a4319a715245764833cded23c25f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
54<tr class="memitem:a7d8c8e5f6ba731f25fc9a59b00606a83"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a7d8c8e5f6ba731f25fc9a59b00606a83">hdb_unlock</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr>
55<tr class="separator:a7d8c8e5f6ba731f25fc9a59b00606a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
56<tr class="memitem:a6a6411230ae97787e3cab4d4ba493a3a"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a6a6411230ae97787e3cab4d4ba493a3a">hdb_rename</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, const char *)</td></tr>
57<tr class="separator:a6a6411230ae97787e3cab4d4ba493a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
58<tr class="memitem:ac7abb33606a55252a11a5ba67643b499"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#ac7abb33606a55252a11a5ba67643b499">hdb__get</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data, krb5_data *)</td></tr>
59<tr class="separator:ac7abb33606a55252a11a5ba67643b499"><td class="memSeparator" colspan="2">&#160;</td></tr>
60<tr class="memitem:abcc7c8b10816ac9ff9dfac3693fb7d08"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#abcc7c8b10816ac9ff9dfac3693fb7d08">hdb__put</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, krb5_data, krb5_data)</td></tr>
61<tr class="separator:abcc7c8b10816ac9ff9dfac3693fb7d08"><td class="memSeparator" colspan="2">&#160;</td></tr>
62<tr class="memitem:a5a23e6989e96466a728af17485131085"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a5a23e6989e96466a728af17485131085">hdb__del</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data)</td></tr>
63<tr class="separator:a5a23e6989e96466a728af17485131085"><td class="memSeparator" colspan="2">&#160;</td></tr>
64<tr class="memitem:a473e9785fb70e2f1bc4bdebcd1110112"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a473e9785fb70e2f1bc4bdebcd1110112">hdb_destroy</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td></tr>
65<tr class="separator:a473e9785fb70e2f1bc4bdebcd1110112"><td class="memSeparator" colspan="2">&#160;</td></tr>
66<tr class="memitem:ae8433b5521e9fa51742cd35cc5214cec"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#ae8433b5521e9fa51742cd35cc5214cec">hdb_get_realms</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_realm **)</td></tr>
67<tr class="separator:ae8433b5521e9fa51742cd35cc5214cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
68<tr class="memitem:a85d5d0d2f801acedfc14ae3774b9d155"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a85d5d0d2f801acedfc14ae3774b9d155">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>
69<tr class="separator:a85d5d0d2f801acedfc14ae3774b9d155"><td class="memSeparator" colspan="2">&#160;</td></tr>
70<tr class="memitem:abe9fe61b33b28bfee51ff02096f50504"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#abe9fe61b33b28bfee51ff02096f50504">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>
71<tr class="separator:abe9fe61b33b28bfee51ff02096f50504"><td class="memSeparator" colspan="2">&#160;</td></tr>
72<tr class="memitem:a712341cb9b9a2770381a9605fcb09078"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a712341cb9b9a2770381a9605fcb09078">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>
73<tr class="separator:a712341cb9b9a2770381a9605fcb09078"><td class="memSeparator" colspan="2">&#160;</td></tr>
74<tr class="memitem:a74e50836e2b6032c53e079e24f37bd3b"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a74e50836e2b6032c53e079e24f37bd3b">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>
75<tr class="separator:a74e50836e2b6032c53e079e24f37bd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
76<tr class="memitem:a54cc9eb48be2209ca7761764bdffb747"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a54cc9eb48be2209ca7761764bdffb747">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>
77<tr class="separator:a54cc9eb48be2209ca7761764bdffb747"><td class="memSeparator" colspan="2">&#160;</td></tr>
78<tr class="memitem:a5095640648b5f15b030ee15318881422"><td class="memItemLeft" align="right" valign="top">krb5_error_code(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_h_d_b.html#a5095640648b5f15b030ee15318881422">hdb_set_sync</a> )(krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int)</td></tr>
79<tr class="separator:a5095640648b5f15b030ee15318881422"><td class="memSeparator" colspan="2">&#160;</td></tr>
80</table>
81<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
82<div class="textblock"><p><a class="el" href="struct_h_d_b.html">HDB</a> backend function pointer structure</p>
83<p>The <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. </p>
84</div><h2 class="groupheader">Field Documentation</h2>
85<a id="a5a23e6989e96466a728af17485131085"></a>
86<h2 class="memtitle"><span class="permalink"><a href="#a5a23e6989e96466a728af17485131085">&#9670;&nbsp;</a></span>hdb__del</h2>
87
88<div class="memitem">
89<div class="memproto">
90      <table class="memname">
91        <tr>
92          <td class="memname">krb5_error_code(* HDB::hdb__del) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data)</td>
93        </tr>
94      </table>
95</div><div class="memdoc">
96<p>Delete and hdb_entry from a classical DB backend</p>
97<p>This function takes a principal key (krb5_data) naming the record to delete.</p>
98<p>Same discussion as in <a class="el" href="struct_h_d_b.html#abcc7c8b10816ac9ff9dfac3693fb7d08">HDB::hdb__put</a> </p>
99
100</div>
101</div>
102<a id="ac7abb33606a55252a11a5ba67643b499"></a>
103<h2 class="memtitle"><span class="permalink"><a href="#ac7abb33606a55252a11a5ba67643b499">&#9670;&nbsp;</a></span>hdb__get</h2>
104
105<div class="memitem">
106<div class="memproto">
107      <table class="memname">
108        <tr>
109          <td class="memname">krb5_error_code(* HDB::hdb__get) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_data, krb5_data *)</td>
110        </tr>
111      </table>
112</div><div class="memdoc">
113<p>Get an hdb_entry from a classical DB backend</p>
114<p>This function takes a principal key (krb5_data) and returns all data related to principal in the return krb5_data. The returned encoded entry is of type hdb_entry or hdb_entry_alias. </p>
115
116</div>
117</div>
118<a id="abcc7c8b10816ac9ff9dfac3693fb7d08"></a>
119<h2 class="memtitle"><span class="permalink"><a href="#abcc7c8b10816ac9ff9dfac3693fb7d08">&#9670;&nbsp;</a></span>hdb__put</h2>
120
121<div class="memitem">
122<div class="memproto">
123      <table class="memname">
124        <tr>
125          <td class="memname">krb5_error_code(* HDB::hdb__put) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, krb5_data, krb5_data)</td>
126        </tr>
127      </table>
128</div><div class="memdoc">
129<p>Store an hdb_entry from a classical DB backend</p>
130<p>This function takes a principal key (krb5_data) and encoded hdb_entry or hdb_entry_alias as the data to store.</p>
131<p>For a file-based DB, this must synchronize to disk when done. This is sub-optimal for kadm5_s_rename_principal(), and for kadm5_s_modify_principal() when using principal aliases; to improve this so that only one fsync() need be done per-transaction will require <a class="el" href="struct_h_d_b.html">HDB</a> API extensions. </p>
132
133</div>
134</div>
135<a id="abe9fe61b33b28bfee51ff02096f50504"></a>
136<h2 class="memtitle"><span class="permalink"><a href="#abe9fe61b33b28bfee51ff02096f50504">&#9670;&nbsp;</a></span>hdb_auth_status</h2>
137
138<div class="memitem">
139<div class="memproto">
140      <table class="memname">
141        <tr>
142          <td class="memname">krb5_error_code(* HDB::hdb_auth_status) (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>
143        </tr>
144      </table>
145</div><div class="memdoc">
146<p>Auth feedback</p>
147<p>This is a feedback call that allows backends that provides lockout functionality to register failure and/or successes.</p>
148<p>In case the entry is locked out, the backend should set the hdb_entry.flags.locked-out flag. </p>
149
150</div>
151</div>
152<a id="a712341cb9b9a2770381a9605fcb09078"></a>
153<h2 class="memtitle"><span class="permalink"><a href="#a712341cb9b9a2770381a9605fcb09078">&#9670;&nbsp;</a></span>hdb_check_constrained_delegation</h2>
154
155<div class="memitem">
156<div class="memproto">
157      <table class="memname">
158        <tr>
159          <td class="memname">krb5_error_code(* HDB::hdb_check_constrained_delegation) (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>
160        </tr>
161      </table>
162</div><div class="memdoc">
163<p>Check if delegation is allowed. </p>
164
165</div>
166</div>
167<a id="a74e50836e2b6032c53e079e24f37bd3b"></a>
168<h2 class="memtitle"><span class="permalink"><a href="#a74e50836e2b6032c53e079e24f37bd3b">&#9670;&nbsp;</a></span>hdb_check_pkinit_ms_upn_match</h2>
169
170<div class="memitem">
171<div class="memproto">
172      <table class="memname">
173        <tr>
174          <td class="memname">krb5_error_code(* HDB::hdb_check_pkinit_ms_upn_match) (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>
175        </tr>
176      </table>
177</div><div class="memdoc">
178<p>Check if this name is an alias for the supplied client for PKINIT userPrinicpalName logins </p>
179
180</div>
181</div>
182<a id="a54cc9eb48be2209ca7761764bdffb747"></a>
183<h2 class="memtitle"><span class="permalink"><a href="#a54cc9eb48be2209ca7761764bdffb747">&#9670;&nbsp;</a></span>hdb_check_s4u2self</h2>
184
185<div class="memitem">
186<div class="memproto">
187      <table class="memname">
188        <tr>
189          <td class="memname">krb5_error_code(* HDB::hdb_check_s4u2self) (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>
190        </tr>
191      </table>
192</div><div class="memdoc">
193<p>Check if s4u2self is allowed from this client to this server </p>
194
195</div>
196</div>
197<a id="abcc1159194d397105074fd7af2147ef0"></a>
198<h2 class="memtitle"><span class="permalink"><a href="#abcc1159194d397105074fd7af2147ef0">&#9670;&nbsp;</a></span>hdb_close</h2>
199
200<div class="memitem">
201<div class="memproto">
202      <table class="memname">
203        <tr>
204          <td class="memname">krb5_error_code(* HDB::hdb_close) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td>
205        </tr>
206      </table>
207</div><div class="memdoc">
208<p>Close the database for transaction</p>
209<p>Closes the database for further transactions, wont release any permanant resources. the database can be -&gt;hdb_open-ed again. </p>
210
211</div>
212</div>
213<a id="a473e9785fb70e2f1bc4bdebcd1110112"></a>
214<h2 class="memtitle"><span class="permalink"><a href="#a473e9785fb70e2f1bc4bdebcd1110112">&#9670;&nbsp;</a></span>hdb_destroy</h2>
215
216<div class="memitem">
217<div class="memproto">
218      <table class="memname">
219        <tr>
220          <td class="memname">krb5_error_code(* HDB::hdb_destroy) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td>
221        </tr>
222      </table>
223</div><div class="memdoc">
224<p>Destroy the handle to the database.</p>
225<p>Destroy 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. </p>
226
227</div>
228</div>
229<a id="a221e8919e12c4d5cda20e4c4ea4bea57"></a>
230<h2 class="memtitle"><span class="permalink"><a href="#a221e8919e12c4d5cda20e4c4ea4bea57">&#9670;&nbsp;</a></span>hdb_fetch_kvno</h2>
231
232<div class="memitem">
233<div class="memproto">
234      <table class="memname">
235        <tr>
236          <td class="memname">krb5_error_code(* HDB::hdb_fetch_kvno) (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>
237        </tr>
238      </table>
239</div><div class="memdoc">
240<p>Fetch an entry from the backend</p>
241<p>Fetch 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 </p>
242
243</div>
244</div>
245<a id="aa0b135e216639ec17963f0387952fc39"></a>
246<h2 class="memtitle"><span class="permalink"><a href="#aa0b135e216639ec17963f0387952fc39">&#9670;&nbsp;</a></span>hdb_firstkey</h2>
247
248<div class="memitem">
249<div class="memproto">
250      <table class="memname">
251        <tr>
252          <td class="memname">krb5_error_code(* HDB::hdb_firstkey) (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>
253        </tr>
254      </table>
255</div><div class="memdoc">
256<p>As part of iteration, fetch one entry </p>
257
258</div>
259</div>
260<a id="ad2aaa1e953f3889416effecb330c31d5"></a>
261<h2 class="memtitle"><span class="permalink"><a href="#ad2aaa1e953f3889416effecb330c31d5">&#9670;&nbsp;</a></span>hdb_free</h2>
262
263<div class="memitem">
264<div class="memproto">
265      <table class="memname">
266        <tr>
267          <td class="memname">void(* HDB::hdb_free) (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>
268        </tr>
269      </table>
270</div><div class="memdoc">
271<p>Free an entry after use. </p>
272
273</div>
274</div>
275<a id="ae8433b5521e9fa51742cd35cc5214cec"></a>
276<h2 class="memtitle"><span class="permalink"><a href="#ae8433b5521e9fa51742cd35cc5214cec">&#9670;&nbsp;</a></span>hdb_get_realms</h2>
277
278<div class="memitem">
279<div class="memproto">
280      <table class="memname">
281        <tr>
282          <td class="memname">krb5_error_code(* HDB::hdb_get_realms) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, krb5_realm **)</td>
283        </tr>
284      </table>
285</div><div class="memdoc">
286<p>Get 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(). </p>
287
288</div>
289</div>
290<a id="a882a4319a715245764833cded23c25f3"></a>
291<h2 class="memtitle"><span class="permalink"><a href="#a882a4319a715245764833cded23c25f3">&#9670;&nbsp;</a></span>hdb_lock</h2>
292
293<div class="memitem">
294<div class="memproto">
295      <table class="memname">
296        <tr>
297          <td class="memname">krb5_error_code(* HDB::hdb_lock) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int)</td>
298        </tr>
299      </table>
300</div><div class="memdoc">
301<p>Lock database</p>
302<p>A 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. </p>
303
304</div>
305</div>
306<a id="acb4dd65f4c8add22c2150611944266e3"></a>
307<h2 class="memtitle"><span class="permalink"><a href="#acb4dd65f4c8add22c2150611944266e3">&#9670;&nbsp;</a></span>hdb_name</h2>
308
309<div class="memitem">
310<div class="memproto">
311      <table class="memname">
312        <tr>
313          <td class="memname">char* HDB::hdb_name</td>
314        </tr>
315      </table>
316</div><div class="memdoc">
317<p>don't use, only for DB3 </p>
318
319</div>
320</div>
321<a id="a619e68062182dac514dfe36a412781b0"></a>
322<h2 class="memtitle"><span class="permalink"><a href="#a619e68062182dac514dfe36a412781b0">&#9670;&nbsp;</a></span>hdb_nextkey</h2>
323
324<div class="memitem">
325<div class="memproto">
326      <table class="memname">
327        <tr>
328          <td class="memname">krb5_error_code(* HDB::hdb_nextkey) (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>
329        </tr>
330      </table>
331</div><div class="memdoc">
332<p>As part of iteration, fetch next entry </p>
333
334</div>
335</div>
336<a id="a0195553be67d9fa3882ed141d1075cde"></a>
337<h2 class="memtitle"><span class="permalink"><a href="#a0195553be67d9fa3882ed141d1075cde">&#9670;&nbsp;</a></span>hdb_open</h2>
338
339<div class="memitem">
340<div class="memproto">
341      <table class="memname">
342        <tr>
343          <td class="memname">krb5_error_code(* HDB::hdb_open) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int, mode_t)</td>
344        </tr>
345      </table>
346</div><div class="memdoc">
347<p>Open (or create) the a Kerberos database.</p>
348<p>Open (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>
349<p>Then done the caller should call <a class="el" href="struct_h_d_b.html#abcc1159194d397105074fd7af2147ef0">hdb_close()</a>, and to release all resources <a class="el" href="struct_h_d_b.html#a473e9785fb70e2f1bc4bdebcd1110112">hdb_destroy()</a>. </p>
350
351</div>
352</div>
353<a id="a85d5d0d2f801acedfc14ae3774b9d155"></a>
354<h2 class="memtitle"><span class="permalink"><a href="#a85d5d0d2f801acedfc14ae3774b9d155">&#9670;&nbsp;</a></span>hdb_password</h2>
355
356<div class="memitem">
357<div class="memproto">
358      <table class="memname">
359        <tr>
360          <td class="memname">krb5_error_code(* HDB::hdb_password) (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>
361        </tr>
362      </table>
363</div><div class="memdoc">
364<p>Change password.</p>
365<p>Will 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#ace37bcc785b39826a25043302aaad7d4">hdb_store()</a> into the database. The backend will still perform all other operations, increasing the kvno, and update modification timestamp.</p>
366<p>The backend needs to call _kadm5_set_keys() and perform password quality checks. </p>
367
368</div>
369</div>
370<a id="ad40ae16bd6c089fc2224e416a418406d"></a>
371<h2 class="memtitle"><span class="permalink"><a href="#ad40ae16bd6c089fc2224e416a418406d">&#9670;&nbsp;</a></span>hdb_remove</h2>
372
373<div class="memitem">
374<div class="memproto">
375      <table class="memname">
376        <tr>
377          <td class="memname">krb5_error_code(* HDB::hdb_remove) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, unsigned, krb5_const_principal)</td>
378        </tr>
379      </table>
380</div><div class="memdoc">
381<p>Remove an entry from the database. </p>
382
383</div>
384</div>
385<a id="a6a6411230ae97787e3cab4d4ba493a3a"></a>
386<h2 class="memtitle"><span class="permalink"><a href="#a6a6411230ae97787e3cab4d4ba493a3a">&#9670;&nbsp;</a></span>hdb_rename</h2>
387
388<div class="memitem">
389<div class="memproto">
390      <table class="memname">
391        <tr>
392          <td class="memname">krb5_error_code(* HDB::hdb_rename) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, const char *)</td>
393        </tr>
394      </table>
395</div><div class="memdoc">
396<p>Rename the data base.</p>
397<p>Assume that the database is not hdb_open'ed and not locked. </p>
398
399</div>
400</div>
401<a id="a5095640648b5f15b030ee15318881422"></a>
402<h2 class="memtitle"><span class="permalink"><a href="#a5095640648b5f15b030ee15318881422">&#9670;&nbsp;</a></span>hdb_set_sync</h2>
403
404<div class="memitem">
405<div class="memproto">
406      <table class="memname">
407        <tr>
408          <td class="memname">krb5_error_code(* HDB::hdb_set_sync) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *, int)</td>
409        </tr>
410      </table>
411</div><div class="memdoc">
412<p>Enable/disable synchronous updates</p>
413<p>Calling this with 0 disables sync. Calling it with non-zero enables sync and does an fsync(). </p>
414
415</div>
416</div>
417<a id="ace37bcc785b39826a25043302aaad7d4"></a>
418<h2 class="memtitle"><span class="permalink"><a href="#ace37bcc785b39826a25043302aaad7d4">&#9670;&nbsp;</a></span>hdb_store</h2>
419
420<div class="memitem">
421<div class="memproto">
422      <table class="memname">
423        <tr>
424          <td class="memname">krb5_error_code(* HDB::hdb_store) (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>
425        </tr>
426      </table>
427</div><div class="memdoc">
428<p>Store an entry to database </p>
429
430</div>
431</div>
432<a id="a7d8c8e5f6ba731f25fc9a59b00606a83"></a>
433<h2 class="memtitle"><span class="permalink"><a href="#a7d8c8e5f6ba731f25fc9a59b00606a83">&#9670;&nbsp;</a></span>hdb_unlock</h2>
434
435<div class="memitem">
436<div class="memproto">
437      <table class="memname">
438        <tr>
439          <td class="memname">krb5_error_code(* HDB::hdb_unlock) (krb5_context, struct <a class="el" href="struct_h_d_b.html">HDB</a> *)</td>
440        </tr>
441      </table>
442</div><div class="memdoc">
443<p>Unlock database </p>
444
445</div>
446</div>
447<hr/>The documentation for this struct was generated from the following file:<ul>
448<li>/home/jaltman/src/sourdough-waffles/lib/hdb/hdb.h</li>
449</ul>
450</div><!-- contents -->
451<hr size="1"><address style="text-align: right;"><small>
452Generated on Tue Nov 15 2022 14:04:25 for Heimdal hdb library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
453</body>
454</html>
455