xref: /freebsd/crypto/krb5/src/lib/kdb/kdb5.h (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1*7f2fe78bSCy Schubert /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2*7f2fe78bSCy Schubert #ifndef _KRB5_KDB5_H_
3*7f2fe78bSCy Schubert #define _KRB5_KDB5_H_
4*7f2fe78bSCy Schubert 
5*7f2fe78bSCy Schubert #include <k5-int.h>
6*7f2fe78bSCy Schubert 
7*7f2fe78bSCy Schubert #if HAVE_UNISTD_H
8*7f2fe78bSCy Schubert #include <unistd.h>
9*7f2fe78bSCy Schubert #endif
10*7f2fe78bSCy Schubert 
11*7f2fe78bSCy Schubert #include <errno.h>
12*7f2fe78bSCy Schubert #include <utime.h>
13*7f2fe78bSCy Schubert #include "kdb.h"
14*7f2fe78bSCy Schubert 
15*7f2fe78bSCy Schubert #define KRB5_DB_GET_DB_CONTEXT(kcontext) (((kdb5_dal_handle*) (kcontext)->dal_handle)->db_context)
16*7f2fe78bSCy Schubert #define KRB5_DB_GET_PROFILE(kcontext)  ((kcontext)->profile)
17*7f2fe78bSCy Schubert #define KRB5_DB_GET_REALM(kcontext)    ((kcontext)->default_realm)
18*7f2fe78bSCy Schubert 
19*7f2fe78bSCy Schubert typedef struct _db_library {
20*7f2fe78bSCy Schubert     char name[KDB_MAX_DB_NAME];
21*7f2fe78bSCy Schubert     int reference_cnt;
22*7f2fe78bSCy Schubert     struct plugin_dir_handle dl_dir_handle;
23*7f2fe78bSCy Schubert     kdb_vftabl vftabl;
24*7f2fe78bSCy Schubert     struct _db_library *next, *prev;
25*7f2fe78bSCy Schubert } *db_library;
26*7f2fe78bSCy Schubert 
27*7f2fe78bSCy Schubert struct _kdb5_dal_handle
28*7f2fe78bSCy Schubert {
29*7f2fe78bSCy Schubert     /* Helps us to change db_library without affecting modules to some
30*7f2fe78bSCy Schubert        extent.  */
31*7f2fe78bSCy Schubert     void *db_context;
32*7f2fe78bSCy Schubert     db_library lib_handle;
33*7f2fe78bSCy Schubert     krb5_keylist_node *master_keylist;
34*7f2fe78bSCy Schubert     krb5_principal master_princ;
35*7f2fe78bSCy Schubert };
36*7f2fe78bSCy Schubert /* typedef kdb5_dal_handle is in k5-int.h now */
37*7f2fe78bSCy Schubert 
38*7f2fe78bSCy Schubert #endif  /* end of _KRB5_KDB5_H_ */
39