1cb7820fdSelric /* This is a generated file */
2cb7820fdSelric #ifndef __hdb_protos_h__
3cb7820fdSelric #define __hdb_protos_h__
41c9681d1Schristos #ifndef DOXY
5cb7820fdSelric 
6cb7820fdSelric #include <stdarg.h>
7cb7820fdSelric 
8cb7820fdSelric #ifdef __cplusplus
9cb7820fdSelric extern "C" {
10cb7820fdSelric #endif
11cb7820fdSelric 
12cb7820fdSelric krb5_error_code
131c9681d1Schristos entry2mit_string_int (
141c9681d1Schristos 	krb5_context /*context*/,
151c9681d1Schristos 	krb5_storage */*sp*/,
161c9681d1Schristos 	hdb_entry */*ent*/);
171c9681d1Schristos 
181c9681d1Schristos /**
191c9681d1Schristos  * This function adds an HDB entry's current keyset to the entry's key
201c9681d1Schristos  * history.  The current keyset is left alone; the caller is responsible
211c9681d1Schristos  * for freeing it.
221c9681d1Schristos  *
231c9681d1Schristos  * @param context   Context
241c9681d1Schristos  * @param entry	    HDB entry
251c9681d1Schristos  */
261c9681d1Schristos 
271c9681d1Schristos krb5_error_code
281c9681d1Schristos hdb_add_current_keys_to_history (
291c9681d1Schristos 	krb5_context /*context*/,
301c9681d1Schristos 	hdb_entry */*entry*/);
311c9681d1Schristos 
321c9681d1Schristos /**
331c9681d1Schristos  * This function adds a key to an HDB entry's key history.
341c9681d1Schristos  *
351c9681d1Schristos  * @param context   Context
361c9681d1Schristos  * @param entry	    HDB entry
371c9681d1Schristos  * @param kvno	    Key version number of the key to add to the history
381c9681d1Schristos  * @param key	    The Key to add
391c9681d1Schristos  */
401c9681d1Schristos 
411c9681d1Schristos krb5_error_code
421c9681d1Schristos hdb_add_history_key (
431c9681d1Schristos 	krb5_context /*context*/,
441c9681d1Schristos 	hdb_entry */*entry*/,
451c9681d1Schristos 	krb5_kvno /*kvno*/,
461c9681d1Schristos 	Key */*key*/);
471c9681d1Schristos 
481c9681d1Schristos krb5_error_code
49cb7820fdSelric hdb_add_master_key (
50cb7820fdSelric 	krb5_context /*context*/,
51cb7820fdSelric 	krb5_keyblock */*key*/,
52cb7820fdSelric 	hdb_master_key */*inout*/);
53cb7820fdSelric 
541c9681d1Schristos /**
551c9681d1Schristos  * This function changes an hdb_entry's kvno, swapping the current key
561c9681d1Schristos  * set with a historical keyset.  If no historical keys are found then
571c9681d1Schristos  * an error is returned (the caller can still set entry->kvno directly).
581c9681d1Schristos  *
591c9681d1Schristos  * @param context	krb5_context
601c9681d1Schristos  * @param new_kvno	New kvno for the entry
611c9681d1Schristos  * @param entry		hdb_entry to modify
621c9681d1Schristos  */
631c9681d1Schristos 
641c9681d1Schristos krb5_error_code
651c9681d1Schristos hdb_change_kvno (
661c9681d1Schristos 	krb5_context /*context*/,
671c9681d1Schristos 	krb5_kvno /*new_kvno*/,
681c9681d1Schristos 	hdb_entry */*entry*/);
691c9681d1Schristos 
70cb7820fdSelric krb5_error_code
71cb7820fdSelric hdb_check_db_format (
72cb7820fdSelric 	krb5_context /*context*/,
73cb7820fdSelric 	HDB */*db*/);
74cb7820fdSelric 
75cb7820fdSelric krb5_error_code
76cb7820fdSelric hdb_clear_extension (
77cb7820fdSelric 	krb5_context /*context*/,
78cb7820fdSelric 	hdb_entry */*entry*/,
79cb7820fdSelric 	int /*type*/);
80cb7820fdSelric 
81cb7820fdSelric krb5_error_code
82cb7820fdSelric hdb_clear_master_key (
83cb7820fdSelric 	krb5_context /*context*/,
84cb7820fdSelric 	HDB */*db*/);
85cb7820fdSelric 
861c9681d1Schristos /**
871c9681d1Schristos  * Create a handle for a Kerberos database
881c9681d1Schristos  *
891c9681d1Schristos  * Create a handle for a Kerberos database backend specified by a
901c9681d1Schristos  * filename.  Doesn't create a file if its doesn't exists, you have to
911c9681d1Schristos  * use O_CREAT to tell the backend to create the file.
921c9681d1Schristos  */
931c9681d1Schristos 
94cb7820fdSelric krb5_error_code
95cb7820fdSelric hdb_create (
96cb7820fdSelric 	krb5_context /*context*/,
97cb7820fdSelric 	HDB **/*db*/,
98cb7820fdSelric 	const char */*filename*/);
99cb7820fdSelric 
100cb7820fdSelric krb5_error_code
1011c9681d1Schristos hdb_db1_create (
102cb7820fdSelric 	krb5_context /*context*/,
103cb7820fdSelric 	HDB **/*db*/,
104cb7820fdSelric 	const char */*filename*/);
105cb7820fdSelric 
1061c9681d1Schristos krb5_error_code
1071c9681d1Schristos hdb_db3_create (
1081c9681d1Schristos 	krb5_context /*context*/,
1091c9681d1Schristos 	HDB **/*db*/,
1101c9681d1Schristos 	const char */*filename*/);
1111c9681d1Schristos 
1121c9681d1Schristos /**
1131c9681d1Schristos  * Return the directory where the hdb database resides.
1141c9681d1Schristos  *
1151c9681d1Schristos  * @param context Kerberos 5 context.
1161c9681d1Schristos  *
1171c9681d1Schristos  * @return string pointing to directory.
1181c9681d1Schristos  */
1191c9681d1Schristos 
120cb7820fdSelric const char *
121cb7820fdSelric hdb_db_dir (krb5_context /*context*/);
122cb7820fdSelric 
123cb7820fdSelric const char *
124cb7820fdSelric hdb_dbinfo_get_acl_file (
125cb7820fdSelric 	krb5_context /*context*/,
126cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
127cb7820fdSelric 
128cb7820fdSelric const krb5_config_binding *
129cb7820fdSelric hdb_dbinfo_get_binding (
130cb7820fdSelric 	krb5_context /*context*/,
131cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
132cb7820fdSelric 
133cb7820fdSelric const char *
134cb7820fdSelric hdb_dbinfo_get_dbname (
135cb7820fdSelric 	krb5_context /*context*/,
136cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
137cb7820fdSelric 
138cb7820fdSelric const char *
139cb7820fdSelric hdb_dbinfo_get_label (
140cb7820fdSelric 	krb5_context /*context*/,
141cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
142cb7820fdSelric 
143cb7820fdSelric const char *
144cb7820fdSelric hdb_dbinfo_get_log_file (
145cb7820fdSelric 	krb5_context /*context*/,
146cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
147cb7820fdSelric 
148cb7820fdSelric const char *
149cb7820fdSelric hdb_dbinfo_get_mkey_file (
150cb7820fdSelric 	krb5_context /*context*/,
151cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
152cb7820fdSelric 
153cb7820fdSelric struct hdb_dbinfo *
154cb7820fdSelric hdb_dbinfo_get_next (
155cb7820fdSelric 	struct hdb_dbinfo */*dbp*/,
156cb7820fdSelric 	struct hdb_dbinfo */*dbprevp*/);
157cb7820fdSelric 
158cb7820fdSelric const char *
159cb7820fdSelric hdb_dbinfo_get_realm (
160cb7820fdSelric 	krb5_context /*context*/,
161cb7820fdSelric 	struct hdb_dbinfo */*dbp*/);
162cb7820fdSelric 
1631c9681d1Schristos /**
1641c9681d1Schristos  * Return the default hdb database resides.
1651c9681d1Schristos  *
1661c9681d1Schristos  * @param context Kerberos 5 context.
1671c9681d1Schristos  *
1681c9681d1Schristos  * @return string pointing to directory.
1691c9681d1Schristos  */
1701c9681d1Schristos 
171cb7820fdSelric const char *
172cb7820fdSelric hdb_default_db (krb5_context /*context*/);
173cb7820fdSelric 
174cb7820fdSelric krb5_error_code
175cb7820fdSelric hdb_enctype2key (
176cb7820fdSelric 	krb5_context /*context*/,
177cb7820fdSelric 	hdb_entry */*e*/,
1781c9681d1Schristos 	const Keys */*keyset*/,
179cb7820fdSelric 	krb5_enctype /*enctype*/,
180cb7820fdSelric 	Key **/*key*/);
181cb7820fdSelric 
182cb7820fdSelric krb5_error_code
183cb7820fdSelric hdb_entry2string (
184cb7820fdSelric 	krb5_context /*context*/,
185cb7820fdSelric 	hdb_entry */*ent*/,
186cb7820fdSelric 	char **/*str*/);
187cb7820fdSelric 
188cb7820fdSelric int
189cb7820fdSelric hdb_entry2value (
190cb7820fdSelric 	krb5_context /*context*/,
191cb7820fdSelric 	const hdb_entry */*ent*/,
192cb7820fdSelric 	krb5_data */*value*/);
193cb7820fdSelric 
194cb7820fdSelric int
195cb7820fdSelric hdb_entry_alias2value (
196cb7820fdSelric 	krb5_context /*context*/,
197cb7820fdSelric 	const hdb_entry_alias */*alias*/,
198cb7820fdSelric 	krb5_data */*value*/);
199cb7820fdSelric 
200cb7820fdSelric krb5_error_code
201cb7820fdSelric hdb_entry_check_mandatory (
202cb7820fdSelric 	krb5_context /*context*/,
203cb7820fdSelric 	const hdb_entry */*ent*/);
204cb7820fdSelric 
2051c9681d1Schristos krb5_error_code
2061c9681d1Schristos hdb_entry_clear_kvno_diff_clnt (
2071c9681d1Schristos 	krb5_context /*context*/,
2081c9681d1Schristos 	hdb_entry */*entry*/);
2091c9681d1Schristos 
2101c9681d1Schristos krb5_error_code
2111c9681d1Schristos hdb_entry_clear_kvno_diff_svc (
2121c9681d1Schristos 	krb5_context /*context*/,
2131c9681d1Schristos 	hdb_entry */*entry*/);
2141c9681d1Schristos 
215cb7820fdSelric int
216cb7820fdSelric hdb_entry_clear_password (
217cb7820fdSelric 	krb5_context /*context*/,
218cb7820fdSelric 	hdb_entry */*entry*/);
219cb7820fdSelric 
220cb7820fdSelric krb5_error_code
221cb7820fdSelric hdb_entry_get_ConstrainedDelegACL (
222cb7820fdSelric 	const hdb_entry */*entry*/,
223cb7820fdSelric 	const HDB_Ext_Constrained_delegation_acl **/*a*/);
224cb7820fdSelric 
225cb7820fdSelric krb5_error_code
226cb7820fdSelric hdb_entry_get_aliases (
227cb7820fdSelric 	const hdb_entry */*entry*/,
228cb7820fdSelric 	const HDB_Ext_Aliases **/*a*/);
229cb7820fdSelric 
2301c9681d1Schristos unsigned int
2311c9681d1Schristos hdb_entry_get_kvno_diff_clnt (const hdb_entry */*entry*/);
2321c9681d1Schristos 
2331c9681d1Schristos unsigned int
2341c9681d1Schristos hdb_entry_get_kvno_diff_svc (const hdb_entry */*entry*/);
2351c9681d1Schristos 
236cb7820fdSelric int
237cb7820fdSelric hdb_entry_get_password (
238cb7820fdSelric 	krb5_context /*context*/,
239cb7820fdSelric 	HDB */*db*/,
240cb7820fdSelric 	const hdb_entry */*entry*/,
241cb7820fdSelric 	char **/*p*/);
242cb7820fdSelric 
243cb7820fdSelric krb5_error_code
244cb7820fdSelric hdb_entry_get_pkinit_acl (
245cb7820fdSelric 	const hdb_entry */*entry*/,
246cb7820fdSelric 	const HDB_Ext_PKINIT_acl **/*a*/);
247cb7820fdSelric 
248cb7820fdSelric krb5_error_code
249cb7820fdSelric hdb_entry_get_pkinit_cert (
250cb7820fdSelric 	const hdb_entry */*entry*/,
251cb7820fdSelric 	const HDB_Ext_PKINIT_cert **/*a*/);
252cb7820fdSelric 
253cb7820fdSelric krb5_error_code
254cb7820fdSelric hdb_entry_get_pkinit_hash (
255cb7820fdSelric 	const hdb_entry */*entry*/,
256cb7820fdSelric 	const HDB_Ext_PKINIT_hash **/*a*/);
257cb7820fdSelric 
258cb7820fdSelric krb5_error_code
259cb7820fdSelric hdb_entry_get_pw_change_time (
260cb7820fdSelric 	const hdb_entry */*entry*/,
261cb7820fdSelric 	time_t */*t*/);
262cb7820fdSelric 
2631c9681d1Schristos krb5_error_code
2641c9681d1Schristos hdb_entry_set_kvno_diff_clnt (
2651c9681d1Schristos 	krb5_context /*context*/,
2661c9681d1Schristos 	hdb_entry */*entry*/,
2671c9681d1Schristos 	unsigned int /*diff*/);
2681c9681d1Schristos 
2691c9681d1Schristos krb5_error_code
2701c9681d1Schristos hdb_entry_set_kvno_diff_svc (
2711c9681d1Schristos 	krb5_context /*context*/,
2721c9681d1Schristos 	hdb_entry */*entry*/,
2731c9681d1Schristos 	unsigned int /*diff*/);
2741c9681d1Schristos 
275cb7820fdSelric int
276cb7820fdSelric hdb_entry_set_password (
277cb7820fdSelric 	krb5_context /*context*/,
278cb7820fdSelric 	HDB */*db*/,
279cb7820fdSelric 	hdb_entry */*entry*/,
280cb7820fdSelric 	const char */*p*/);
281cb7820fdSelric 
282cb7820fdSelric krb5_error_code
283cb7820fdSelric hdb_entry_set_pw_change_time (
284cb7820fdSelric 	krb5_context /*context*/,
285cb7820fdSelric 	hdb_entry */*entry*/,
286cb7820fdSelric 	time_t /*t*/);
287cb7820fdSelric 
288cb7820fdSelric HDB_extension *
289cb7820fdSelric hdb_find_extension (
290cb7820fdSelric 	const hdb_entry */*entry*/,
291cb7820fdSelric 	int /*type*/);
292cb7820fdSelric 
293cb7820fdSelric krb5_error_code
294cb7820fdSelric hdb_foreach (
295cb7820fdSelric 	krb5_context /*context*/,
296cb7820fdSelric 	HDB */*db*/,
297cb7820fdSelric 	unsigned /*flags*/,
298cb7820fdSelric 	hdb_foreach_func_t /*func*/,
299cb7820fdSelric 	void */*data*/);
300cb7820fdSelric 
301cb7820fdSelric void
302cb7820fdSelric hdb_free_dbinfo (
303cb7820fdSelric 	krb5_context /*context*/,
304cb7820fdSelric 	struct hdb_dbinfo **/*dbp*/);
305cb7820fdSelric 
306cb7820fdSelric void
307cb7820fdSelric hdb_free_entry (
308cb7820fdSelric 	krb5_context /*context*/,
309cb7820fdSelric 	hdb_entry_ex */*ent*/);
310cb7820fdSelric 
311cb7820fdSelric void
312cb7820fdSelric hdb_free_key (Key */*key*/);
313cb7820fdSelric 
314cb7820fdSelric void
315cb7820fdSelric hdb_free_keys (
316cb7820fdSelric 	krb5_context /*context*/,
317cb7820fdSelric 	int /*len*/,
318cb7820fdSelric 	Key */*keys*/);
319cb7820fdSelric 
320cb7820fdSelric void
321cb7820fdSelric hdb_free_master_key (
322cb7820fdSelric 	krb5_context /*context*/,
323cb7820fdSelric 	hdb_master_key /*mkey*/);
324cb7820fdSelric 
325cb7820fdSelric krb5_error_code
326cb7820fdSelric hdb_generate_key_set (
327cb7820fdSelric 	krb5_context /*context*/,
328cb7820fdSelric 	krb5_principal /*principal*/,
3291c9681d1Schristos 	krb5_key_salt_tuple */*ks_tuple*/,
3301c9681d1Schristos 	int /*n_ks_tuple*/,
331cb7820fdSelric 	Key **/*ret_key_set*/,
332cb7820fdSelric 	size_t */*nkeyset*/,
333cb7820fdSelric 	int /*no_salt*/);
334cb7820fdSelric 
335cb7820fdSelric krb5_error_code
336cb7820fdSelric hdb_generate_key_set_password (
337cb7820fdSelric 	krb5_context /*context*/,
338cb7820fdSelric 	krb5_principal /*principal*/,
339cb7820fdSelric 	const char */*password*/,
340*25a02804Schristos 	Key **/*keys*/,
341*25a02804Schristos 	size_t */*num_keys*/);
342*25a02804Schristos 
343*25a02804Schristos krb5_error_code
344*25a02804Schristos hdb_generate_key_set_password_with_ks_tuple (
345*25a02804Schristos 	krb5_context /*context*/,
346*25a02804Schristos 	krb5_principal /*principal*/,
347*25a02804Schristos 	const char */*password*/,
3481c9681d1Schristos 	krb5_key_salt_tuple */*ks_tuple*/,
3491c9681d1Schristos 	int /*n_ks_tuple*/,
350cb7820fdSelric 	Key **/*keys*/,
351cb7820fdSelric 	size_t */*num_keys*/);
352cb7820fdSelric 
353cb7820fdSelric int
354cb7820fdSelric hdb_get_dbinfo (
355cb7820fdSelric 	krb5_context /*context*/,
356cb7820fdSelric 	struct hdb_dbinfo **/*dbp*/);
357cb7820fdSelric 
358cb7820fdSelric krb5_error_code
359cb7820fdSelric hdb_init_db (
360cb7820fdSelric 	krb5_context /*context*/,
361cb7820fdSelric 	HDB */*db*/);
362cb7820fdSelric 
363cb7820fdSelric int
364cb7820fdSelric hdb_key2principal (
365cb7820fdSelric 	krb5_context /*context*/,
366cb7820fdSelric 	krb5_data */*key*/,
367cb7820fdSelric 	krb5_principal /*p*/);
368cb7820fdSelric 
369cb7820fdSelric krb5_error_code
370cb7820fdSelric hdb_keytab_create (
371cb7820fdSelric 	krb5_context /*context*/,
372cb7820fdSelric 	HDB ** /*db*/,
373cb7820fdSelric 	const char */*arg*/);
374cb7820fdSelric 
3751c9681d1Schristos const Keys *
3761c9681d1Schristos hdb_kvno2keys (
3771c9681d1Schristos 	krb5_context /*context*/,
3781c9681d1Schristos 	const hdb_entry */*e*/,
3791c9681d1Schristos 	krb5_kvno /*kvno*/);
3801c9681d1Schristos 
381cb7820fdSelric krb5_error_code
382cb7820fdSelric hdb_ldap_create (
383cb7820fdSelric 	krb5_context /*context*/,
384cb7820fdSelric 	HDB ** /*db*/,
385cb7820fdSelric 	const char */*arg*/);
386cb7820fdSelric 
387cb7820fdSelric krb5_error_code
388cb7820fdSelric hdb_ldapi_create (
389cb7820fdSelric 	krb5_context /*context*/,
390cb7820fdSelric 	HDB ** /*db*/,
391cb7820fdSelric 	const char */*arg*/);
392cb7820fdSelric 
393cb7820fdSelric krb5_error_code
394cb7820fdSelric hdb_list_builtin (
395cb7820fdSelric 	krb5_context /*context*/,
396cb7820fdSelric 	char **/*list*/);
397cb7820fdSelric 
398cb7820fdSelric krb5_error_code
399cb7820fdSelric hdb_lock (
400cb7820fdSelric 	int /*fd*/,
401cb7820fdSelric 	int /*operation*/);
402cb7820fdSelric 
403cb7820fdSelric krb5_error_code
404cb7820fdSelric hdb_mdb_create (
405cb7820fdSelric 	krb5_context /*context*/,
406cb7820fdSelric 	HDB **/*db*/,
407cb7820fdSelric 	const char */*filename*/);
408cb7820fdSelric 
409cb7820fdSelric krb5_error_code
4101c9681d1Schristos hdb_mitdb_create (
4111c9681d1Schristos 	krb5_context /*context*/,
4121c9681d1Schristos 	HDB **/*db*/,
4131c9681d1Schristos 	const char */*filename*/);
4141c9681d1Schristos 
4151c9681d1Schristos krb5_error_code
416cb7820fdSelric hdb_ndbm_create (
417cb7820fdSelric 	krb5_context /*context*/,
418cb7820fdSelric 	HDB **/*db*/,
419cb7820fdSelric 	const char */*filename*/);
420cb7820fdSelric 
421cb7820fdSelric krb5_error_code
422cb7820fdSelric hdb_next_enctype2key (
423cb7820fdSelric 	krb5_context /*context*/,
424cb7820fdSelric 	const hdb_entry */*e*/,
4251c9681d1Schristos 	const Keys */*keyset*/,
426cb7820fdSelric 	krb5_enctype /*enctype*/,
427cb7820fdSelric 	Key **/*key*/);
428cb7820fdSelric 
429cb7820fdSelric int
430cb7820fdSelric hdb_principal2key (
431cb7820fdSelric 	krb5_context /*context*/,
432cb7820fdSelric 	krb5_const_principal /*p*/,
433cb7820fdSelric 	krb5_data */*key*/);
434cb7820fdSelric 
435cb7820fdSelric krb5_error_code
436cb7820fdSelric hdb_print_entry (
437cb7820fdSelric 	krb5_context /*context*/,
438cb7820fdSelric 	HDB */*db*/,
439cb7820fdSelric 	hdb_entry_ex */*entry*/,
440cb7820fdSelric 	void */*data*/);
441cb7820fdSelric 
442cb7820fdSelric krb5_error_code
443cb7820fdSelric hdb_process_master_key (
444cb7820fdSelric 	krb5_context /*context*/,
445cb7820fdSelric 	int /*kvno*/,
446cb7820fdSelric 	krb5_keyblock */*key*/,
447cb7820fdSelric 	krb5_enctype /*etype*/,
448cb7820fdSelric 	hdb_master_key */*mkey*/);
449cb7820fdSelric 
4501c9681d1Schristos /**
4511c9681d1Schristos  * This function prunes an HDB entry's keys that are too old to have been used
4521c9681d1Schristos  * to mint still valid tickets (based on the entry's maximum ticket lifetime).
4531c9681d1Schristos  *
4541c9681d1Schristos  * @param context   Context
4551c9681d1Schristos  * @param entry	    HDB entry
4561c9681d1Schristos  */
4571c9681d1Schristos 
4581c9681d1Schristos krb5_error_code
4591c9681d1Schristos hdb_prune_keys (
4601c9681d1Schristos 	krb5_context /*context*/,
4611c9681d1Schristos 	hdb_entry */*entry*/);
4621c9681d1Schristos 
463cb7820fdSelric krb5_error_code
464cb7820fdSelric hdb_read_master_key (
465cb7820fdSelric 	krb5_context /*context*/,
466cb7820fdSelric 	const char */*filename*/,
467cb7820fdSelric 	hdb_master_key */*mkey*/);
468cb7820fdSelric 
469cb7820fdSelric krb5_error_code
470cb7820fdSelric hdb_replace_extension (
471cb7820fdSelric 	krb5_context /*context*/,
472cb7820fdSelric 	hdb_entry */*entry*/,
473cb7820fdSelric 	const HDB_extension */*ext*/);
474cb7820fdSelric 
475cb7820fdSelric krb5_error_code
476cb7820fdSelric hdb_seal_key (
477cb7820fdSelric 	krb5_context /*context*/,
478cb7820fdSelric 	HDB */*db*/,
479cb7820fdSelric 	Key */*k*/);
480cb7820fdSelric 
481cb7820fdSelric krb5_error_code
482cb7820fdSelric hdb_seal_key_mkey (
483cb7820fdSelric 	krb5_context /*context*/,
484cb7820fdSelric 	Key */*k*/,
485cb7820fdSelric 	hdb_master_key /*mkey*/);
486cb7820fdSelric 
487cb7820fdSelric krb5_error_code
488cb7820fdSelric hdb_seal_keys (
489cb7820fdSelric 	krb5_context /*context*/,
490cb7820fdSelric 	HDB */*db*/,
491cb7820fdSelric 	hdb_entry */*ent*/);
492cb7820fdSelric 
493cb7820fdSelric krb5_error_code
494cb7820fdSelric hdb_seal_keys_mkey (
495cb7820fdSelric 	krb5_context /*context*/,
496cb7820fdSelric 	hdb_entry */*ent*/,
497cb7820fdSelric 	hdb_master_key /*mkey*/);
498cb7820fdSelric 
499cb7820fdSelric krb5_error_code
5001c9681d1Schristos hdb_set_last_modified_by (
5011c9681d1Schristos 	krb5_context /*context*/,
5021c9681d1Schristos 	hdb_entry */*entry*/,
5031c9681d1Schristos 	krb5_principal /*modby*/,
5041c9681d1Schristos 	time_t /*modtime*/);
5051c9681d1Schristos 
5061c9681d1Schristos krb5_error_code
507cb7820fdSelric hdb_set_master_key (
508cb7820fdSelric 	krb5_context /*context*/,
509cb7820fdSelric 	HDB */*db*/,
510cb7820fdSelric 	krb5_keyblock */*key*/);
511cb7820fdSelric 
512cb7820fdSelric krb5_error_code
513cb7820fdSelric hdb_set_master_keyfile (
514cb7820fdSelric 	krb5_context /*context*/,
515cb7820fdSelric 	HDB */*db*/,
516cb7820fdSelric 	const char */*keyfile*/);
517cb7820fdSelric 
5181c9681d1Schristos /**
5191c9681d1Schristos  * Create SQLITE object, and creates the on disk database if its doesn't exists.
5201c9681d1Schristos  *
5211c9681d1Schristos  * @param context A Kerberos 5 context.
5221c9681d1Schristos  * @param db a returned database handle.
5231c9681d1Schristos  * @param filename filename
5241c9681d1Schristos  *
5251c9681d1Schristos  * @return        0 on success, an error code if not
5261c9681d1Schristos  */
5271c9681d1Schristos 
528cb7820fdSelric krb5_error_code
529cb7820fdSelric hdb_sqlite_create (
530cb7820fdSelric 	krb5_context /*context*/,
531cb7820fdSelric 	HDB **/*db*/,
5321c9681d1Schristos 	const char */*filename*/);
533cb7820fdSelric 
534cb7820fdSelric krb5_error_code
535cb7820fdSelric hdb_unlock (int /*fd*/);
536cb7820fdSelric 
537cb7820fdSelric krb5_error_code
538cb7820fdSelric hdb_unseal_key (
539cb7820fdSelric 	krb5_context /*context*/,
540cb7820fdSelric 	HDB */*db*/,
541cb7820fdSelric 	Key */*k*/);
542cb7820fdSelric 
543cb7820fdSelric krb5_error_code
544cb7820fdSelric hdb_unseal_key_mkey (
545cb7820fdSelric 	krb5_context /*context*/,
546cb7820fdSelric 	Key */*k*/,
547cb7820fdSelric 	hdb_master_key /*mkey*/);
548cb7820fdSelric 
549cb7820fdSelric krb5_error_code
550cb7820fdSelric hdb_unseal_keys (
551cb7820fdSelric 	krb5_context /*context*/,
552cb7820fdSelric 	HDB */*db*/,
553cb7820fdSelric 	hdb_entry */*ent*/);
554cb7820fdSelric 
555cb7820fdSelric krb5_error_code
5561c9681d1Schristos hdb_unseal_keys_kvno (
5571c9681d1Schristos 	krb5_context /*context*/,
5581c9681d1Schristos 	HDB */*db*/,
5591c9681d1Schristos 	krb5_kvno /*kvno*/,
5601c9681d1Schristos 	unsigned /*flags*/,
5611c9681d1Schristos 	hdb_entry */*ent*/);
5621c9681d1Schristos 
5631c9681d1Schristos krb5_error_code
564cb7820fdSelric hdb_unseal_keys_mkey (
565cb7820fdSelric 	krb5_context /*context*/,
566cb7820fdSelric 	hdb_entry */*ent*/,
567cb7820fdSelric 	hdb_master_key /*mkey*/);
568cb7820fdSelric 
569cb7820fdSelric int
570cb7820fdSelric hdb_value2entry (
571cb7820fdSelric 	krb5_context /*context*/,
572cb7820fdSelric 	krb5_data */*value*/,
573cb7820fdSelric 	hdb_entry */*ent*/);
574cb7820fdSelric 
575cb7820fdSelric int
576cb7820fdSelric hdb_value2entry_alias (
577cb7820fdSelric 	krb5_context /*context*/,
578cb7820fdSelric 	krb5_data */*value*/,
579cb7820fdSelric 	hdb_entry_alias */*ent*/);
580cb7820fdSelric 
581cb7820fdSelric krb5_error_code
582cb7820fdSelric hdb_write_master_key (
583cb7820fdSelric 	krb5_context /*context*/,
584cb7820fdSelric 	const char */*filename*/,
585cb7820fdSelric 	hdb_master_key /*mkey*/);
586cb7820fdSelric 
587cb7820fdSelric #ifdef __cplusplus
588cb7820fdSelric }
589cb7820fdSelric #endif
590cb7820fdSelric 
5911c9681d1Schristos #endif /* DOXY */
592cb7820fdSelric #endif /* __hdb_protos_h__ */
593