xref: /netbsd-src/crypto/external/bsd/heimdal/include/hdb-protos.h (revision 241bea01a19bbb306af27777a870b86d41cb3fda)
1170f4091Selric /* This is a generated file */
2170f4091Selric #ifndef __hdb_protos_h__
3170f4091Selric #define __hdb_protos_h__
4d3273b5bSchristos #ifndef DOXY
5170f4091Selric 
6170f4091Selric #include <stdarg.h>
7170f4091Selric 
8170f4091Selric #ifdef __cplusplus
9170f4091Selric extern "C" {
10170f4091Selric #endif
11170f4091Selric 
12170f4091Selric krb5_error_code
13d3273b5bSchristos entry2mit_string_int (
14d3273b5bSchristos 	krb5_context /*context*/,
15d3273b5bSchristos 	krb5_storage */*sp*/,
16d3273b5bSchristos 	hdb_entry */*ent*/);
17d3273b5bSchristos 
18d3273b5bSchristos /**
19d3273b5bSchristos  * This function adds an HDB entry's current keyset to the entry's key
20d3273b5bSchristos  * history.  The current keyset is left alone; the caller is responsible
21d3273b5bSchristos  * for freeing it.
22d3273b5bSchristos  *
23d3273b5bSchristos  * @param context   Context
24d3273b5bSchristos  * @param entry	    HDB entry
25d3273b5bSchristos  */
26d3273b5bSchristos 
27d3273b5bSchristos krb5_error_code
28d3273b5bSchristos hdb_add_current_keys_to_history (
29d3273b5bSchristos 	krb5_context /*context*/,
30d3273b5bSchristos 	hdb_entry */*entry*/);
31d3273b5bSchristos 
32d3273b5bSchristos /**
33d3273b5bSchristos  * This function adds a key to an HDB entry's key history.
34d3273b5bSchristos  *
35d3273b5bSchristos  * @param context   Context
36d3273b5bSchristos  * @param entry	    HDB entry
37d3273b5bSchristos  * @param kvno	    Key version number of the key to add to the history
38d3273b5bSchristos  * @param key	    The Key to add
39d3273b5bSchristos  */
40d3273b5bSchristos 
41d3273b5bSchristos krb5_error_code
42d3273b5bSchristos hdb_add_history_key (
43d3273b5bSchristos 	krb5_context /*context*/,
44d3273b5bSchristos 	hdb_entry */*entry*/,
45d3273b5bSchristos 	krb5_kvno /*kvno*/,
46d3273b5bSchristos 	Key */*key*/);
47d3273b5bSchristos 
48d3273b5bSchristos krb5_error_code
49170f4091Selric hdb_add_master_key (
50170f4091Selric 	krb5_context /*context*/,
51170f4091Selric 	krb5_keyblock */*key*/,
52170f4091Selric 	hdb_master_key */*inout*/);
53170f4091Selric 
54d3273b5bSchristos /**
55d3273b5bSchristos  * This function changes an hdb_entry's kvno, swapping the current key
56d3273b5bSchristos  * set with a historical keyset.  If no historical keys are found then
57d3273b5bSchristos  * an error is returned (the caller can still set entry->kvno directly).
58d3273b5bSchristos  *
59d3273b5bSchristos  * @param context	krb5_context
60d3273b5bSchristos  * @param new_kvno	New kvno for the entry
61d3273b5bSchristos  * @param entry		hdb_entry to modify
62d3273b5bSchristos  */
63d3273b5bSchristos 
64d3273b5bSchristos krb5_error_code
65d3273b5bSchristos hdb_change_kvno (
66d3273b5bSchristos 	krb5_context /*context*/,
67d3273b5bSchristos 	krb5_kvno /*new_kvno*/,
68d3273b5bSchristos 	hdb_entry */*entry*/);
69d3273b5bSchristos 
70170f4091Selric krb5_error_code
71170f4091Selric hdb_check_db_format (
72170f4091Selric 	krb5_context /*context*/,
73170f4091Selric 	HDB */*db*/);
74170f4091Selric 
75170f4091Selric krb5_error_code
76170f4091Selric hdb_clear_extension (
77170f4091Selric 	krb5_context /*context*/,
78170f4091Selric 	hdb_entry */*entry*/,
79170f4091Selric 	int /*type*/);
80170f4091Selric 
81170f4091Selric krb5_error_code
82170f4091Selric hdb_clear_master_key (
83170f4091Selric 	krb5_context /*context*/,
84170f4091Selric 	HDB */*db*/);
85170f4091Selric 
86d3273b5bSchristos /**
87d3273b5bSchristos  * Create a handle for a Kerberos database
88d3273b5bSchristos  *
89d3273b5bSchristos  * Create a handle for a Kerberos database backend specified by a
90d3273b5bSchristos  * filename.  Doesn't create a file if its doesn't exists, you have to
91d3273b5bSchristos  * use O_CREAT to tell the backend to create the file.
92d3273b5bSchristos  */
93d3273b5bSchristos 
94170f4091Selric krb5_error_code
95170f4091Selric hdb_create (
96170f4091Selric 	krb5_context /*context*/,
97170f4091Selric 	HDB **/*db*/,
98170f4091Selric 	const char */*filename*/);
99170f4091Selric 
100170f4091Selric krb5_error_code
101d3273b5bSchristos hdb_db1_create (
102170f4091Selric 	krb5_context /*context*/,
103170f4091Selric 	HDB **/*db*/,
104170f4091Selric 	const char */*filename*/);
105170f4091Selric 
106d3273b5bSchristos krb5_error_code
107d3273b5bSchristos hdb_db3_create (
108d3273b5bSchristos 	krb5_context /*context*/,
109d3273b5bSchristos 	HDB **/*db*/,
110d3273b5bSchristos 	const char */*filename*/);
111d3273b5bSchristos 
112d3273b5bSchristos /**
113d3273b5bSchristos  * Return the directory where the hdb database resides.
114d3273b5bSchristos  *
115d3273b5bSchristos  * @param context Kerberos 5 context.
116d3273b5bSchristos  *
117d3273b5bSchristos  * @return string pointing to directory.
118d3273b5bSchristos  */
119d3273b5bSchristos 
120170f4091Selric const char *
121170f4091Selric hdb_db_dir (krb5_context /*context*/);
122170f4091Selric 
123170f4091Selric const char *
124170f4091Selric hdb_dbinfo_get_acl_file (
125170f4091Selric 	krb5_context /*context*/,
126170f4091Selric 	struct hdb_dbinfo */*dbp*/);
127170f4091Selric 
128170f4091Selric const krb5_config_binding *
129170f4091Selric hdb_dbinfo_get_binding (
130170f4091Selric 	krb5_context /*context*/,
131170f4091Selric 	struct hdb_dbinfo */*dbp*/);
132170f4091Selric 
133170f4091Selric const char *
134170f4091Selric hdb_dbinfo_get_dbname (
135170f4091Selric 	krb5_context /*context*/,
136170f4091Selric 	struct hdb_dbinfo */*dbp*/);
137170f4091Selric 
138170f4091Selric const char *
139170f4091Selric hdb_dbinfo_get_label (
140170f4091Selric 	krb5_context /*context*/,
141170f4091Selric 	struct hdb_dbinfo */*dbp*/);
142170f4091Selric 
143170f4091Selric const char *
144170f4091Selric hdb_dbinfo_get_log_file (
145170f4091Selric 	krb5_context /*context*/,
146170f4091Selric 	struct hdb_dbinfo */*dbp*/);
147170f4091Selric 
148170f4091Selric const char *
149170f4091Selric hdb_dbinfo_get_mkey_file (
150170f4091Selric 	krb5_context /*context*/,
151170f4091Selric 	struct hdb_dbinfo */*dbp*/);
152170f4091Selric 
153170f4091Selric struct hdb_dbinfo *
154170f4091Selric hdb_dbinfo_get_next (
155170f4091Selric 	struct hdb_dbinfo */*dbp*/,
156170f4091Selric 	struct hdb_dbinfo */*dbprevp*/);
157170f4091Selric 
158170f4091Selric const char *
159170f4091Selric hdb_dbinfo_get_realm (
160170f4091Selric 	krb5_context /*context*/,
161170f4091Selric 	struct hdb_dbinfo */*dbp*/);
162170f4091Selric 
163d3273b5bSchristos /**
164d3273b5bSchristos  * Return the default hdb database resides.
165d3273b5bSchristos  *
166d3273b5bSchristos  * @param context Kerberos 5 context.
167d3273b5bSchristos  *
168d3273b5bSchristos  * @return string pointing to directory.
169d3273b5bSchristos  */
170d3273b5bSchristos 
171170f4091Selric const char *
172170f4091Selric hdb_default_db (krb5_context /*context*/);
173170f4091Selric 
174170f4091Selric krb5_error_code
175170f4091Selric hdb_enctype2key (
176170f4091Selric 	krb5_context /*context*/,
177170f4091Selric 	hdb_entry */*e*/,
178d3273b5bSchristos 	const Keys */*keyset*/,
179170f4091Selric 	krb5_enctype /*enctype*/,
180170f4091Selric 	Key **/*key*/);
181170f4091Selric 
182170f4091Selric krb5_error_code
183170f4091Selric hdb_entry2string (
184170f4091Selric 	krb5_context /*context*/,
185170f4091Selric 	hdb_entry */*ent*/,
186170f4091Selric 	char **/*str*/);
187170f4091Selric 
188170f4091Selric int
189170f4091Selric hdb_entry2value (
190170f4091Selric 	krb5_context /*context*/,
191170f4091Selric 	const hdb_entry */*ent*/,
192170f4091Selric 	krb5_data */*value*/);
193170f4091Selric 
194170f4091Selric int
195170f4091Selric hdb_entry_alias2value (
196170f4091Selric 	krb5_context /*context*/,
197170f4091Selric 	const hdb_entry_alias */*alias*/,
198170f4091Selric 	krb5_data */*value*/);
199170f4091Selric 
200170f4091Selric krb5_error_code
201170f4091Selric hdb_entry_check_mandatory (
202170f4091Selric 	krb5_context /*context*/,
203170f4091Selric 	const hdb_entry */*ent*/);
204170f4091Selric 
205d3273b5bSchristos krb5_error_code
206d3273b5bSchristos hdb_entry_clear_kvno_diff_clnt (
207d3273b5bSchristos 	krb5_context /*context*/,
208d3273b5bSchristos 	hdb_entry */*entry*/);
209d3273b5bSchristos 
210d3273b5bSchristos krb5_error_code
211d3273b5bSchristos hdb_entry_clear_kvno_diff_svc (
212d3273b5bSchristos 	krb5_context /*context*/,
213d3273b5bSchristos 	hdb_entry */*entry*/);
214d3273b5bSchristos 
215170f4091Selric int
216170f4091Selric hdb_entry_clear_password (
217170f4091Selric 	krb5_context /*context*/,
218170f4091Selric 	hdb_entry */*entry*/);
219170f4091Selric 
220170f4091Selric krb5_error_code
221170f4091Selric hdb_entry_get_ConstrainedDelegACL (
222170f4091Selric 	const hdb_entry */*entry*/,
223170f4091Selric 	const HDB_Ext_Constrained_delegation_acl **/*a*/);
224170f4091Selric 
225170f4091Selric krb5_error_code
226170f4091Selric hdb_entry_get_aliases (
227170f4091Selric 	const hdb_entry */*entry*/,
228170f4091Selric 	const HDB_Ext_Aliases **/*a*/);
229170f4091Selric 
230d3273b5bSchristos unsigned int
231d3273b5bSchristos hdb_entry_get_kvno_diff_clnt (const hdb_entry */*entry*/);
232d3273b5bSchristos 
233d3273b5bSchristos unsigned int
234d3273b5bSchristos hdb_entry_get_kvno_diff_svc (const hdb_entry */*entry*/);
235d3273b5bSchristos 
236170f4091Selric int
237170f4091Selric hdb_entry_get_password (
238170f4091Selric 	krb5_context /*context*/,
239170f4091Selric 	HDB */*db*/,
240170f4091Selric 	const hdb_entry */*entry*/,
241170f4091Selric 	char **/*p*/);
242170f4091Selric 
243170f4091Selric krb5_error_code
244170f4091Selric hdb_entry_get_pkinit_acl (
245170f4091Selric 	const hdb_entry */*entry*/,
246170f4091Selric 	const HDB_Ext_PKINIT_acl **/*a*/);
247170f4091Selric 
248170f4091Selric krb5_error_code
249170f4091Selric hdb_entry_get_pkinit_cert (
250170f4091Selric 	const hdb_entry */*entry*/,
251170f4091Selric 	const HDB_Ext_PKINIT_cert **/*a*/);
252170f4091Selric 
253170f4091Selric krb5_error_code
254170f4091Selric hdb_entry_get_pkinit_hash (
255170f4091Selric 	const hdb_entry */*entry*/,
256170f4091Selric 	const HDB_Ext_PKINIT_hash **/*a*/);
257170f4091Selric 
258170f4091Selric krb5_error_code
259170f4091Selric hdb_entry_get_pw_change_time (
260170f4091Selric 	const hdb_entry */*entry*/,
261170f4091Selric 	time_t */*t*/);
262170f4091Selric 
263d3273b5bSchristos krb5_error_code
264d3273b5bSchristos hdb_entry_set_kvno_diff_clnt (
265d3273b5bSchristos 	krb5_context /*context*/,
266d3273b5bSchristos 	hdb_entry */*entry*/,
267d3273b5bSchristos 	unsigned int /*diff*/);
268d3273b5bSchristos 
269d3273b5bSchristos krb5_error_code
270d3273b5bSchristos hdb_entry_set_kvno_diff_svc (
271d3273b5bSchristos 	krb5_context /*context*/,
272d3273b5bSchristos 	hdb_entry */*entry*/,
273d3273b5bSchristos 	unsigned int /*diff*/);
274d3273b5bSchristos 
275170f4091Selric int
276170f4091Selric hdb_entry_set_password (
277170f4091Selric 	krb5_context /*context*/,
278170f4091Selric 	HDB */*db*/,
279170f4091Selric 	hdb_entry */*entry*/,
280170f4091Selric 	const char */*p*/);
281170f4091Selric 
282170f4091Selric krb5_error_code
283170f4091Selric hdb_entry_set_pw_change_time (
284170f4091Selric 	krb5_context /*context*/,
285170f4091Selric 	hdb_entry */*entry*/,
286170f4091Selric 	time_t /*t*/);
287170f4091Selric 
288170f4091Selric HDB_extension *
289170f4091Selric hdb_find_extension (
290170f4091Selric 	const hdb_entry */*entry*/,
291170f4091Selric 	int /*type*/);
292170f4091Selric 
293170f4091Selric krb5_error_code
294170f4091Selric hdb_foreach (
295170f4091Selric 	krb5_context /*context*/,
296170f4091Selric 	HDB */*db*/,
297170f4091Selric 	unsigned /*flags*/,
298170f4091Selric 	hdb_foreach_func_t /*func*/,
299170f4091Selric 	void */*data*/);
300170f4091Selric 
301170f4091Selric void
302170f4091Selric hdb_free_dbinfo (
303170f4091Selric 	krb5_context /*context*/,
304170f4091Selric 	struct hdb_dbinfo **/*dbp*/);
305170f4091Selric 
306170f4091Selric void
307170f4091Selric hdb_free_entry (
308170f4091Selric 	krb5_context /*context*/,
309170f4091Selric 	hdb_entry_ex */*ent*/);
310170f4091Selric 
311170f4091Selric void
312170f4091Selric hdb_free_key (Key */*key*/);
313170f4091Selric 
314170f4091Selric void
315170f4091Selric hdb_free_keys (
316170f4091Selric 	krb5_context /*context*/,
317170f4091Selric 	int /*len*/,
318170f4091Selric 	Key */*keys*/);
319170f4091Selric 
320170f4091Selric void
321170f4091Selric hdb_free_master_key (
322170f4091Selric 	krb5_context /*context*/,
323170f4091Selric 	hdb_master_key /*mkey*/);
324170f4091Selric 
325170f4091Selric krb5_error_code
326170f4091Selric hdb_generate_key_set (
327170f4091Selric 	krb5_context /*context*/,
328170f4091Selric 	krb5_principal /*principal*/,
329d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
330d3273b5bSchristos 	int /*n_ks_tuple*/,
331170f4091Selric 	Key **/*ret_key_set*/,
332170f4091Selric 	size_t */*nkeyset*/,
333170f4091Selric 	int /*no_salt*/);
334170f4091Selric 
335170f4091Selric krb5_error_code
336170f4091Selric hdb_generate_key_set_password (
337170f4091Selric 	krb5_context /*context*/,
338170f4091Selric 	krb5_principal /*principal*/,
339170f4091Selric 	const char */*password*/,
340*241bea01Schristos 	Key **/*keys*/,
341*241bea01Schristos 	size_t */*num_keys*/);
342*241bea01Schristos 
343*241bea01Schristos krb5_error_code
344*241bea01Schristos hdb_generate_key_set_password_with_ks_tuple (
345*241bea01Schristos 	krb5_context /*context*/,
346*241bea01Schristos 	krb5_principal /*principal*/,
347*241bea01Schristos 	const char */*password*/,
348d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
349d3273b5bSchristos 	int /*n_ks_tuple*/,
350170f4091Selric 	Key **/*keys*/,
351170f4091Selric 	size_t */*num_keys*/);
352170f4091Selric 
353170f4091Selric int
354170f4091Selric hdb_get_dbinfo (
355170f4091Selric 	krb5_context /*context*/,
356170f4091Selric 	struct hdb_dbinfo **/*dbp*/);
357170f4091Selric 
358170f4091Selric krb5_error_code
359170f4091Selric hdb_init_db (
360170f4091Selric 	krb5_context /*context*/,
361170f4091Selric 	HDB */*db*/);
362170f4091Selric 
363170f4091Selric int
364170f4091Selric hdb_key2principal (
365170f4091Selric 	krb5_context /*context*/,
366170f4091Selric 	krb5_data */*key*/,
367170f4091Selric 	krb5_principal /*p*/);
368170f4091Selric 
369170f4091Selric krb5_error_code
370170f4091Selric hdb_keytab_create (
371170f4091Selric 	krb5_context /*context*/,
372170f4091Selric 	HDB ** /*db*/,
373170f4091Selric 	const char */*arg*/);
374170f4091Selric 
375d3273b5bSchristos const Keys *
376d3273b5bSchristos hdb_kvno2keys (
377d3273b5bSchristos 	krb5_context /*context*/,
378d3273b5bSchristos 	const hdb_entry */*e*/,
379d3273b5bSchristos 	krb5_kvno /*kvno*/);
380d3273b5bSchristos 
381170f4091Selric krb5_error_code
382170f4091Selric hdb_ldap_create (
383170f4091Selric 	krb5_context /*context*/,
384170f4091Selric 	HDB ** /*db*/,
385170f4091Selric 	const char */*arg*/);
386170f4091Selric 
387170f4091Selric krb5_error_code
388170f4091Selric hdb_ldapi_create (
389170f4091Selric 	krb5_context /*context*/,
390170f4091Selric 	HDB ** /*db*/,
391170f4091Selric 	const char */*arg*/);
392170f4091Selric 
393170f4091Selric krb5_error_code
394170f4091Selric hdb_list_builtin (
395170f4091Selric 	krb5_context /*context*/,
396170f4091Selric 	char **/*list*/);
397170f4091Selric 
398170f4091Selric krb5_error_code
399170f4091Selric hdb_lock (
400170f4091Selric 	int /*fd*/,
401170f4091Selric 	int /*operation*/);
402170f4091Selric 
403170f4091Selric krb5_error_code
404170f4091Selric hdb_mdb_create (
405170f4091Selric 	krb5_context /*context*/,
406170f4091Selric 	HDB **/*db*/,
407170f4091Selric 	const char */*filename*/);
408170f4091Selric 
409170f4091Selric krb5_error_code
410d3273b5bSchristos hdb_mitdb_create (
411d3273b5bSchristos 	krb5_context /*context*/,
412d3273b5bSchristos 	HDB **/*db*/,
413d3273b5bSchristos 	const char */*filename*/);
414d3273b5bSchristos 
415d3273b5bSchristos krb5_error_code
416170f4091Selric hdb_ndbm_create (
417170f4091Selric 	krb5_context /*context*/,
418170f4091Selric 	HDB **/*db*/,
419170f4091Selric 	const char */*filename*/);
420170f4091Selric 
421170f4091Selric krb5_error_code
422170f4091Selric hdb_next_enctype2key (
423170f4091Selric 	krb5_context /*context*/,
424170f4091Selric 	const hdb_entry */*e*/,
425d3273b5bSchristos 	const Keys */*keyset*/,
426170f4091Selric 	krb5_enctype /*enctype*/,
427170f4091Selric 	Key **/*key*/);
428170f4091Selric 
429170f4091Selric int
430170f4091Selric hdb_principal2key (
431170f4091Selric 	krb5_context /*context*/,
432170f4091Selric 	krb5_const_principal /*p*/,
433170f4091Selric 	krb5_data */*key*/);
434170f4091Selric 
435170f4091Selric krb5_error_code
436170f4091Selric hdb_print_entry (
437170f4091Selric 	krb5_context /*context*/,
438170f4091Selric 	HDB */*db*/,
439170f4091Selric 	hdb_entry_ex */*entry*/,
440170f4091Selric 	void */*data*/);
441170f4091Selric 
442170f4091Selric krb5_error_code
443170f4091Selric hdb_process_master_key (
444170f4091Selric 	krb5_context /*context*/,
445170f4091Selric 	int /*kvno*/,
446170f4091Selric 	krb5_keyblock */*key*/,
447170f4091Selric 	krb5_enctype /*etype*/,
448170f4091Selric 	hdb_master_key */*mkey*/);
449170f4091Selric 
450d3273b5bSchristos /**
451d3273b5bSchristos  * This function prunes an HDB entry's keys that are too old to have been used
452d3273b5bSchristos  * to mint still valid tickets (based on the entry's maximum ticket lifetime).
453d3273b5bSchristos  *
454d3273b5bSchristos  * @param context   Context
455d3273b5bSchristos  * @param entry	    HDB entry
456d3273b5bSchristos  */
457d3273b5bSchristos 
458d3273b5bSchristos krb5_error_code
459d3273b5bSchristos hdb_prune_keys (
460d3273b5bSchristos 	krb5_context /*context*/,
461d3273b5bSchristos 	hdb_entry */*entry*/);
462d3273b5bSchristos 
463170f4091Selric krb5_error_code
464170f4091Selric hdb_read_master_key (
465170f4091Selric 	krb5_context /*context*/,
466170f4091Selric 	const char */*filename*/,
467170f4091Selric 	hdb_master_key */*mkey*/);
468170f4091Selric 
469170f4091Selric krb5_error_code
470170f4091Selric hdb_replace_extension (
471170f4091Selric 	krb5_context /*context*/,
472170f4091Selric 	hdb_entry */*entry*/,
473170f4091Selric 	const HDB_extension */*ext*/);
474170f4091Selric 
475170f4091Selric krb5_error_code
476170f4091Selric hdb_seal_key (
477170f4091Selric 	krb5_context /*context*/,
478170f4091Selric 	HDB */*db*/,
479170f4091Selric 	Key */*k*/);
480170f4091Selric 
481170f4091Selric krb5_error_code
482170f4091Selric hdb_seal_key_mkey (
483170f4091Selric 	krb5_context /*context*/,
484170f4091Selric 	Key */*k*/,
485170f4091Selric 	hdb_master_key /*mkey*/);
486170f4091Selric 
487170f4091Selric krb5_error_code
488170f4091Selric hdb_seal_keys (
489170f4091Selric 	krb5_context /*context*/,
490170f4091Selric 	HDB */*db*/,
491170f4091Selric 	hdb_entry */*ent*/);
492170f4091Selric 
493170f4091Selric krb5_error_code
494170f4091Selric hdb_seal_keys_mkey (
495170f4091Selric 	krb5_context /*context*/,
496170f4091Selric 	hdb_entry */*ent*/,
497170f4091Selric 	hdb_master_key /*mkey*/);
498170f4091Selric 
499170f4091Selric krb5_error_code
500d3273b5bSchristos hdb_set_last_modified_by (
501d3273b5bSchristos 	krb5_context /*context*/,
502d3273b5bSchristos 	hdb_entry */*entry*/,
503d3273b5bSchristos 	krb5_principal /*modby*/,
504d3273b5bSchristos 	time_t /*modtime*/);
505d3273b5bSchristos 
506d3273b5bSchristos krb5_error_code
507170f4091Selric hdb_set_master_key (
508170f4091Selric 	krb5_context /*context*/,
509170f4091Selric 	HDB */*db*/,
510170f4091Selric 	krb5_keyblock */*key*/);
511170f4091Selric 
512170f4091Selric krb5_error_code
513170f4091Selric hdb_set_master_keyfile (
514170f4091Selric 	krb5_context /*context*/,
515170f4091Selric 	HDB */*db*/,
516170f4091Selric 	const char */*keyfile*/);
517170f4091Selric 
518d3273b5bSchristos /**
519d3273b5bSchristos  * Create SQLITE object, and creates the on disk database if its doesn't exists.
520d3273b5bSchristos  *
521d3273b5bSchristos  * @param context A Kerberos 5 context.
522d3273b5bSchristos  * @param db a returned database handle.
523d3273b5bSchristos  * @param filename filename
524d3273b5bSchristos  *
525d3273b5bSchristos  * @return        0 on success, an error code if not
526d3273b5bSchristos  */
527d3273b5bSchristos 
528170f4091Selric krb5_error_code
529170f4091Selric hdb_sqlite_create (
530170f4091Selric 	krb5_context /*context*/,
531170f4091Selric 	HDB **/*db*/,
532d3273b5bSchristos 	const char */*filename*/);
533170f4091Selric 
534170f4091Selric krb5_error_code
535170f4091Selric hdb_unlock (int /*fd*/);
536170f4091Selric 
537170f4091Selric krb5_error_code
538170f4091Selric hdb_unseal_key (
539170f4091Selric 	krb5_context /*context*/,
540170f4091Selric 	HDB */*db*/,
541170f4091Selric 	Key */*k*/);
542170f4091Selric 
543170f4091Selric krb5_error_code
544170f4091Selric hdb_unseal_key_mkey (
545170f4091Selric 	krb5_context /*context*/,
546170f4091Selric 	Key */*k*/,
547170f4091Selric 	hdb_master_key /*mkey*/);
548170f4091Selric 
549170f4091Selric krb5_error_code
550170f4091Selric hdb_unseal_keys (
551170f4091Selric 	krb5_context /*context*/,
552170f4091Selric 	HDB */*db*/,
553170f4091Selric 	hdb_entry */*ent*/);
554170f4091Selric 
555170f4091Selric krb5_error_code
556d3273b5bSchristos hdb_unseal_keys_kvno (
557d3273b5bSchristos 	krb5_context /*context*/,
558d3273b5bSchristos 	HDB */*db*/,
559d3273b5bSchristos 	krb5_kvno /*kvno*/,
560d3273b5bSchristos 	unsigned /*flags*/,
561d3273b5bSchristos 	hdb_entry */*ent*/);
562d3273b5bSchristos 
563d3273b5bSchristos krb5_error_code
564170f4091Selric hdb_unseal_keys_mkey (
565170f4091Selric 	krb5_context /*context*/,
566170f4091Selric 	hdb_entry */*ent*/,
567170f4091Selric 	hdb_master_key /*mkey*/);
568170f4091Selric 
569170f4091Selric int
570170f4091Selric hdb_value2entry (
571170f4091Selric 	krb5_context /*context*/,
572170f4091Selric 	krb5_data */*value*/,
573170f4091Selric 	hdb_entry */*ent*/);
574170f4091Selric 
575170f4091Selric int
576170f4091Selric hdb_value2entry_alias (
577170f4091Selric 	krb5_context /*context*/,
578170f4091Selric 	krb5_data */*value*/,
579170f4091Selric 	hdb_entry_alias */*ent*/);
580170f4091Selric 
581170f4091Selric krb5_error_code
582170f4091Selric hdb_write_master_key (
583170f4091Selric 	krb5_context /*context*/,
584170f4091Selric 	const char */*filename*/,
585170f4091Selric 	hdb_master_key /*mkey*/);
586170f4091Selric 
587170f4091Selric #ifdef __cplusplus
588170f4091Selric }
589170f4091Selric #endif
590170f4091Selric 
591d3273b5bSchristos #endif /* DOXY */
592170f4091Selric #endif /* __hdb_protos_h__ */
593