hdb-protos.h revision 1.1.32.1 1 /* This is a generated file */
2 #ifndef __hdb_protos_h__
3 #define __hdb_protos_h__
4 #ifndef DOXY
5
6 #include <stdarg.h>
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 krb5_error_code
13 entry2mit_string_int (
14 krb5_context /*context*/,
15 krb5_storage */*sp*/,
16 hdb_entry */*ent*/);
17
18 /**
19 * This function adds an HDB entry's current keyset to the entry's key
20 * history. The current keyset is left alone; the caller is responsible
21 * for freeing it.
22 *
23 * @param context Context
24 * @param entry HDB entry
25 */
26
27 krb5_error_code
28 hdb_add_current_keys_to_history (
29 krb5_context /*context*/,
30 hdb_entry */*entry*/);
31
32 /**
33 * This function adds a key to an HDB entry's key history.
34 *
35 * @param context Context
36 * @param entry HDB entry
37 * @param kvno Key version number of the key to add to the history
38 * @param key The Key to add
39 */
40
41 krb5_error_code
42 hdb_add_history_key (
43 krb5_context /*context*/,
44 hdb_entry */*entry*/,
45 krb5_kvno /*kvno*/,
46 Key */*key*/);
47
48 krb5_error_code
49 hdb_add_master_key (
50 krb5_context /*context*/,
51 krb5_keyblock */*key*/,
52 hdb_master_key */*inout*/);
53
54 /**
55 * This function changes an hdb_entry's kvno, swapping the current key
56 * set with a historical keyset. If no historical keys are found then
57 * an error is returned (the caller can still set entry->kvno directly).
58 *
59 * @param context krb5_context
60 * @param new_kvno New kvno for the entry
61 * @param entry hdb_entry to modify
62 */
63
64 krb5_error_code
65 hdb_change_kvno (
66 krb5_context /*context*/,
67 krb5_kvno /*new_kvno*/,
68 hdb_entry */*entry*/);
69
70 krb5_error_code
71 hdb_check_db_format (
72 krb5_context /*context*/,
73 HDB */*db*/);
74
75 krb5_error_code
76 hdb_clear_extension (
77 krb5_context /*context*/,
78 hdb_entry */*entry*/,
79 int /*type*/);
80
81 krb5_error_code
82 hdb_clear_master_key (
83 krb5_context /*context*/,
84 HDB */*db*/);
85
86 /**
87 * Create a handle for a Kerberos database
88 *
89 * Create a handle for a Kerberos database backend specified by a
90 * filename. Doesn't create a file if its doesn't exists, you have to
91 * use O_CREAT to tell the backend to create the file.
92 */
93
94 krb5_error_code
95 hdb_create (
96 krb5_context /*context*/,
97 HDB **/*db*/,
98 const char */*filename*/);
99
100 krb5_error_code
101 hdb_db1_create (
102 krb5_context /*context*/,
103 HDB **/*db*/,
104 const char */*filename*/);
105
106 krb5_error_code
107 hdb_db3_create (
108 krb5_context /*context*/,
109 HDB **/*db*/,
110 const char */*filename*/);
111
112 /**
113 * Return the directory where the hdb database resides.
114 *
115 * @param context Kerberos 5 context.
116 *
117 * @return string pointing to directory.
118 */
119
120 const char *
121 hdb_db_dir (krb5_context /*context*/);
122
123 const char *
124 hdb_dbinfo_get_acl_file (
125 krb5_context /*context*/,
126 struct hdb_dbinfo */*dbp*/);
127
128 const krb5_config_binding *
129 hdb_dbinfo_get_binding (
130 krb5_context /*context*/,
131 struct hdb_dbinfo */*dbp*/);
132
133 const char *
134 hdb_dbinfo_get_dbname (
135 krb5_context /*context*/,
136 struct hdb_dbinfo */*dbp*/);
137
138 const char *
139 hdb_dbinfo_get_label (
140 krb5_context /*context*/,
141 struct hdb_dbinfo */*dbp*/);
142
143 const char *
144 hdb_dbinfo_get_log_file (
145 krb5_context /*context*/,
146 struct hdb_dbinfo */*dbp*/);
147
148 const char *
149 hdb_dbinfo_get_mkey_file (
150 krb5_context /*context*/,
151 struct hdb_dbinfo */*dbp*/);
152
153 struct hdb_dbinfo *
154 hdb_dbinfo_get_next (
155 struct hdb_dbinfo */*dbp*/,
156 struct hdb_dbinfo */*dbprevp*/);
157
158 const char *
159 hdb_dbinfo_get_realm (
160 krb5_context /*context*/,
161 struct hdb_dbinfo */*dbp*/);
162
163 /**
164 * Return the default hdb database resides.
165 *
166 * @param context Kerberos 5 context.
167 *
168 * @return string pointing to directory.
169 */
170
171 const char *
172 hdb_default_db (krb5_context /*context*/);
173
174 krb5_error_code
175 hdb_enctype2key (
176 krb5_context /*context*/,
177 hdb_entry */*e*/,
178 const Keys */*keyset*/,
179 krb5_enctype /*enctype*/,
180 Key **/*key*/);
181
182 krb5_error_code
183 hdb_entry2string (
184 krb5_context /*context*/,
185 hdb_entry */*ent*/,
186 char **/*str*/);
187
188 int
189 hdb_entry2value (
190 krb5_context /*context*/,
191 const hdb_entry */*ent*/,
192 krb5_data */*value*/);
193
194 int
195 hdb_entry_alias2value (
196 krb5_context /*context*/,
197 const hdb_entry_alias */*alias*/,
198 krb5_data */*value*/);
199
200 krb5_error_code
201 hdb_entry_check_mandatory (
202 krb5_context /*context*/,
203 const hdb_entry */*ent*/);
204
205 krb5_error_code
206 hdb_entry_clear_kvno_diff_clnt (
207 krb5_context /*context*/,
208 hdb_entry */*entry*/);
209
210 krb5_error_code
211 hdb_entry_clear_kvno_diff_svc (
212 krb5_context /*context*/,
213 hdb_entry */*entry*/);
214
215 int
216 hdb_entry_clear_password (
217 krb5_context /*context*/,
218 hdb_entry */*entry*/);
219
220 krb5_error_code
221 hdb_entry_get_ConstrainedDelegACL (
222 const hdb_entry */*entry*/,
223 const HDB_Ext_Constrained_delegation_acl **/*a*/);
224
225 krb5_error_code
226 hdb_entry_get_aliases (
227 const hdb_entry */*entry*/,
228 const HDB_Ext_Aliases **/*a*/);
229
230 unsigned int
231 hdb_entry_get_kvno_diff_clnt (const hdb_entry */*entry*/);
232
233 unsigned int
234 hdb_entry_get_kvno_diff_svc (const hdb_entry */*entry*/);
235
236 int
237 hdb_entry_get_password (
238 krb5_context /*context*/,
239 HDB */*db*/,
240 const hdb_entry */*entry*/,
241 char **/*p*/);
242
243 krb5_error_code
244 hdb_entry_get_pkinit_acl (
245 const hdb_entry */*entry*/,
246 const HDB_Ext_PKINIT_acl **/*a*/);
247
248 krb5_error_code
249 hdb_entry_get_pkinit_cert (
250 const hdb_entry */*entry*/,
251 const HDB_Ext_PKINIT_cert **/*a*/);
252
253 krb5_error_code
254 hdb_entry_get_pkinit_hash (
255 const hdb_entry */*entry*/,
256 const HDB_Ext_PKINIT_hash **/*a*/);
257
258 krb5_error_code
259 hdb_entry_get_pw_change_time (
260 const hdb_entry */*entry*/,
261 time_t */*t*/);
262
263 krb5_error_code
264 hdb_entry_set_kvno_diff_clnt (
265 krb5_context /*context*/,
266 hdb_entry */*entry*/,
267 unsigned int /*diff*/);
268
269 krb5_error_code
270 hdb_entry_set_kvno_diff_svc (
271 krb5_context /*context*/,
272 hdb_entry */*entry*/,
273 unsigned int /*diff*/);
274
275 int
276 hdb_entry_set_password (
277 krb5_context /*context*/,
278 HDB */*db*/,
279 hdb_entry */*entry*/,
280 const char */*p*/);
281
282 krb5_error_code
283 hdb_entry_set_pw_change_time (
284 krb5_context /*context*/,
285 hdb_entry */*entry*/,
286 time_t /*t*/);
287
288 HDB_extension *
289 hdb_find_extension (
290 const hdb_entry */*entry*/,
291 int /*type*/);
292
293 krb5_error_code
294 hdb_foreach (
295 krb5_context /*context*/,
296 HDB */*db*/,
297 unsigned /*flags*/,
298 hdb_foreach_func_t /*func*/,
299 void */*data*/);
300
301 void
302 hdb_free_dbinfo (
303 krb5_context /*context*/,
304 struct hdb_dbinfo **/*dbp*/);
305
306 void
307 hdb_free_entry (
308 krb5_context /*context*/,
309 hdb_entry_ex */*ent*/);
310
311 void
312 hdb_free_key (Key */*key*/);
313
314 void
315 hdb_free_keys (
316 krb5_context /*context*/,
317 int /*len*/,
318 Key */*keys*/);
319
320 void
321 hdb_free_master_key (
322 krb5_context /*context*/,
323 hdb_master_key /*mkey*/);
324
325 krb5_error_code
326 hdb_generate_key_set (
327 krb5_context /*context*/,
328 krb5_principal /*principal*/,
329 krb5_key_salt_tuple */*ks_tuple*/,
330 int /*n_ks_tuple*/,
331 Key **/*ret_key_set*/,
332 size_t */*nkeyset*/,
333 int /*no_salt*/);
334
335 krb5_error_code
336 hdb_generate_key_set_password (
337 krb5_context /*context*/,
338 krb5_principal /*principal*/,
339 const char */*password*/,
340 krb5_key_salt_tuple */*ks_tuple*/,
341 int /*n_ks_tuple*/,
342 Key **/*keys*/,
343 size_t */*num_keys*/);
344
345 int
346 hdb_get_dbinfo (
347 krb5_context /*context*/,
348 struct hdb_dbinfo **/*dbp*/);
349
350 krb5_error_code
351 hdb_init_db (
352 krb5_context /*context*/,
353 HDB */*db*/);
354
355 int
356 hdb_key2principal (
357 krb5_context /*context*/,
358 krb5_data */*key*/,
359 krb5_principal /*p*/);
360
361 krb5_error_code
362 hdb_keytab_create (
363 krb5_context /*context*/,
364 HDB ** /*db*/,
365 const char */*arg*/);
366
367 const Keys *
368 hdb_kvno2keys (
369 krb5_context /*context*/,
370 const hdb_entry */*e*/,
371 krb5_kvno /*kvno*/);
372
373 krb5_error_code
374 hdb_ldap_create (
375 krb5_context /*context*/,
376 HDB ** /*db*/,
377 const char */*arg*/);
378
379 krb5_error_code
380 hdb_ldapi_create (
381 krb5_context /*context*/,
382 HDB ** /*db*/,
383 const char */*arg*/);
384
385 krb5_error_code
386 hdb_list_builtin (
387 krb5_context /*context*/,
388 char **/*list*/);
389
390 krb5_error_code
391 hdb_lock (
392 int /*fd*/,
393 int /*operation*/);
394
395 krb5_error_code
396 hdb_mdb_create (
397 krb5_context /*context*/,
398 HDB **/*db*/,
399 const char */*filename*/);
400
401 krb5_error_code
402 hdb_mitdb_create (
403 krb5_context /*context*/,
404 HDB **/*db*/,
405 const char */*filename*/);
406
407 krb5_error_code
408 hdb_ndbm_create (
409 krb5_context /*context*/,
410 HDB **/*db*/,
411 const char */*filename*/);
412
413 krb5_error_code
414 hdb_next_enctype2key (
415 krb5_context /*context*/,
416 const hdb_entry */*e*/,
417 const Keys */*keyset*/,
418 krb5_enctype /*enctype*/,
419 Key **/*key*/);
420
421 int
422 hdb_principal2key (
423 krb5_context /*context*/,
424 krb5_const_principal /*p*/,
425 krb5_data */*key*/);
426
427 krb5_error_code
428 hdb_print_entry (
429 krb5_context /*context*/,
430 HDB */*db*/,
431 hdb_entry_ex */*entry*/,
432 void */*data*/);
433
434 krb5_error_code
435 hdb_process_master_key (
436 krb5_context /*context*/,
437 int /*kvno*/,
438 krb5_keyblock */*key*/,
439 krb5_enctype /*etype*/,
440 hdb_master_key */*mkey*/);
441
442 /**
443 * This function prunes an HDB entry's keys that are too old to have been used
444 * to mint still valid tickets (based on the entry's maximum ticket lifetime).
445 *
446 * @param context Context
447 * @param entry HDB entry
448 */
449
450 krb5_error_code
451 hdb_prune_keys (
452 krb5_context /*context*/,
453 hdb_entry */*entry*/);
454
455 krb5_error_code
456 hdb_read_master_key (
457 krb5_context /*context*/,
458 const char */*filename*/,
459 hdb_master_key */*mkey*/);
460
461 krb5_error_code
462 hdb_replace_extension (
463 krb5_context /*context*/,
464 hdb_entry */*entry*/,
465 const HDB_extension */*ext*/);
466
467 krb5_error_code
468 hdb_seal_key (
469 krb5_context /*context*/,
470 HDB */*db*/,
471 Key */*k*/);
472
473 krb5_error_code
474 hdb_seal_key_mkey (
475 krb5_context /*context*/,
476 Key */*k*/,
477 hdb_master_key /*mkey*/);
478
479 krb5_error_code
480 hdb_seal_keys (
481 krb5_context /*context*/,
482 HDB */*db*/,
483 hdb_entry */*ent*/);
484
485 krb5_error_code
486 hdb_seal_keys_mkey (
487 krb5_context /*context*/,
488 hdb_entry */*ent*/,
489 hdb_master_key /*mkey*/);
490
491 krb5_error_code
492 hdb_set_last_modified_by (
493 krb5_context /*context*/,
494 hdb_entry */*entry*/,
495 krb5_principal /*modby*/,
496 time_t /*modtime*/);
497
498 krb5_error_code
499 hdb_set_master_key (
500 krb5_context /*context*/,
501 HDB */*db*/,
502 krb5_keyblock */*key*/);
503
504 krb5_error_code
505 hdb_set_master_keyfile (
506 krb5_context /*context*/,
507 HDB */*db*/,
508 const char */*keyfile*/);
509
510 /**
511 * Create SQLITE object, and creates the on disk database if its doesn't exists.
512 *
513 * @param context A Kerberos 5 context.
514 * @param db a returned database handle.
515 * @param filename filename
516 *
517 * @return 0 on success, an error code if not
518 */
519
520 krb5_error_code
521 hdb_sqlite_create (
522 krb5_context /*context*/,
523 HDB **/*db*/,
524 const char */*filename*/);
525
526 krb5_error_code
527 hdb_unlock (int /*fd*/);
528
529 krb5_error_code
530 hdb_unseal_key (
531 krb5_context /*context*/,
532 HDB */*db*/,
533 Key */*k*/);
534
535 krb5_error_code
536 hdb_unseal_key_mkey (
537 krb5_context /*context*/,
538 Key */*k*/,
539 hdb_master_key /*mkey*/);
540
541 krb5_error_code
542 hdb_unseal_keys (
543 krb5_context /*context*/,
544 HDB */*db*/,
545 hdb_entry */*ent*/);
546
547 krb5_error_code
548 hdb_unseal_keys_kvno (
549 krb5_context /*context*/,
550 HDB */*db*/,
551 krb5_kvno /*kvno*/,
552 unsigned /*flags*/,
553 hdb_entry */*ent*/);
554
555 krb5_error_code
556 hdb_unseal_keys_mkey (
557 krb5_context /*context*/,
558 hdb_entry */*ent*/,
559 hdb_master_key /*mkey*/);
560
561 int
562 hdb_value2entry (
563 krb5_context /*context*/,
564 krb5_data */*value*/,
565 hdb_entry */*ent*/);
566
567 int
568 hdb_value2entry_alias (
569 krb5_context /*context*/,
570 krb5_data */*value*/,
571 hdb_entry_alias */*ent*/);
572
573 krb5_error_code
574 hdb_write_master_key (
575 krb5_context /*context*/,
576 const char */*filename*/,
577 hdb_master_key /*mkey*/);
578
579 #ifdef __cplusplus
580 }
581 #endif
582
583 #endif /* DOXY */
584 #endif /* __hdb_protos_h__ */
585