003 File Manager
Current Path:
/usr/include
usr
/
include
/
π
..
π
Block.h
(1.96 KB)
π
Block_private.h
(5.94 KB)
π
FlexLexer.h
(6.73 KB)
π
_ctype.h
(5.98 KB)
π
_semaphore.h
(2.05 KB)
π
a.out.h
(1.88 KB)
π
aio.h
(7.69 KB)
π
alias.h
(8.51 KB)
π
ar.h
(2.69 KB)
π
archive.h
(51.93 KB)
π
archive_entry.h
(32.79 KB)
π
arpa
π
asn1-common.h
(2.06 KB)
π
asn1_err.h
(1.07 KB)
π
assert.h
(2.93 KB)
π
atf-c
π
atf-c++
π
atf-c++.hpp
(1.49 KB)
π
atf-c.h
(1.5 KB)
π
base64.h
(1.99 KB)
π
be.h
(5.32 KB)
π
bitstring.h
(1.53 KB)
π
blacklist.h
(2.2 KB)
π
bluetooth.h
(6.65 KB)
π
bsdxml.h
(40.5 KB)
π
bsdxml_external.h
(5.4 KB)
π
bsm
π
bsnmp
π
bzlib.h
(6.09 KB)
π
c++
π
calendar.h
(1.83 KB)
π
cam
π
camlib.h
(7.39 KB)
π
capsicum_helpers.h
(4.33 KB)
π
casper
π
cms_asn1.h
(27.2 KB)
π
com_err.h
(2.62 KB)
π
com_right.h
(2.8 KB)
π
complex.h
(4.68 KB)
π
cpio.h
(2.4 KB)
π
crmf_asn1.h
(13.31 KB)
π
crypto
π
ctype.h
(4.59 KB)
π
curses.h
(97.92 KB)
π
cuse.h
(3.26 KB)
π
db.h
(7.49 KB)
π
der-private.h
(1.29 KB)
π
der-protos.h
(10.5 KB)
π
der.h
(3.08 KB)
π
dev
π
devctl.h
(2.02 KB)
π
devdctl
π
devinfo.h
(4.52 KB)
π
devstat.h
(5.2 KB)
π
dialog.h
(37.7 KB)
π
digest_asn1.h
(17.01 KB)
π
dirent.h
(4.13 KB)
π
dlfcn.h
(5.04 KB)
π
dlg_colors.h
(6.87 KB)
π
dlg_config.h
(2.64 KB)
π
dlg_keys.h
(5.23 KB)
π
dpv.h
(5.76 KB)
π
dtrace.h
(23.64 KB)
π
dwarf.h
(20.09 KB)
π
edit
π
efivar-dp.h
(2.58 KB)
π
efivar.h
(3.75 KB)
π
elf-hints.h
(1.96 KB)
π
elf.h
(1.59 KB)
π
err.h
(2.98 KB)
π
errno.h
(8.29 KB)
π
eti.h
(2.9 KB)
π
execinfo.h
(1.92 KB)
π
fcntl.h
(12.02 KB)
π
fenv.h
(8.19 KB)
π
fetch.h
(4.87 KB)
π
figpar.h
(3.84 KB)
π
float.h
(86 B)
π
floatingpoint.h
(2.01 KB)
π
fmtmsg.h
(2.76 KB)
π
fmtutils.h
(2.19 KB)
π
fnmatch.h
(2.32 KB)
π
form.h
(18.37 KB)
π
fs
π
fstab.h
(3.03 KB)
π
fts.h
(5.47 KB)
π
ftw.h
(2.26 KB)
π
gcc
π
gelf.h
(5 KB)
π
geom
π
getarg.h
(3.15 KB)
π
getopt.h
(2.73 KB)
π
glob.h
(4.21 KB)
π
grp.h
(3.21 KB)
π
gssapi
π
gssapi.h
(158 B)
π
hdb-protos.h
(7.24 KB)
π
hdb.h
(9.85 KB)
π
hdb_asn1.h
(16.72 KB)
π
hdb_err.h
(944 B)
π
heim_asn1.h
(2.33 KB)
π
heim_err.h
(1.46 KB)
π
heim_threads.h
(6.91 KB)
π
heimbase.h
(5.1 KB)
π
heimntlm-protos.h
(3.78 KB)
π
heimntlm.h
(4.85 KB)
π
hex.h
(2.08 KB)
π
histedit.h
(9.16 KB)
π
hx509-private.h
(9.39 KB)
π
hx509-protos.h
(22.53 KB)
π
hx509.h
(5.88 KB)
π
hx509_err.h
(3.04 KB)
π
iconv.h
(4.23 KB)
π
ieeefp.h
(261 B)
π
ifaddrs.h
(2.09 KB)
π
infiniband
π
inttypes.h
(2.2 KB)
π
iso646.h
(1.67 KB)
π
isofs
π
jail.h
(2.46 KB)
π
k524_err.h
(724 B)
π
kadm5
π
kafs.h
(7.09 KB)
π
kdc-protos.h
(2.25 KB)
π
kdc.h
(3.5 KB)
π
kenv.h
(1.58 KB)
π
krb5
π
krb5-private.h
(12.91 KB)
π
krb5-protos.h
(113.43 KB)
π
krb5-types.h
(1.48 KB)
π
krb5.h
(29.75 KB)
π
krb5_asn1.h
(70.51 KB)
π
krb5_ccapi.h
(7.52 KB)
π
krb5_err.h
(7.37 KB)
π
kvm.h
(4.11 KB)
π
kx509_asn1.h
(4.61 KB)
π
langinfo.h
(3.95 KB)
π
lib80211
π
lib9p
π
libcasper.h
(6.53 KB)
π
libcasper_service.h
(2.5 KB)
π
libdwarf.h
(32.98 KB)
π
libelf.h
(7.72 KB)
π
libgen.h
(2.65 KB)
π
libgeom.h
(4.47 KB)
π
libgpio.h
(3.48 KB)
π
libipt
π
libmilter
π
libnetmap.h
(24.54 KB)
π
libproc.h
(5.51 KB)
π
libprocstat.h
(7.57 KB)
π
librss.h
(2.96 KB)
π
libufs.h
(5.08 KB)
π
libusb.h
(22.05 KB)
π
libusb20.h
(12.45 KB)
π
libusb20_desc.h
(17.6 KB)
π
libutil.h
(8.04 KB)
π
libxo
π
libzfs.h
(32.8 KB)
π
libzfs_core.h
(5.1 KB)
π
libzfsbootenv.h
(1.22 KB)
π
limits.h
(4.7 KB)
π
link.h
(1.71 KB)
π
linker_set.h
(3.85 KB)
π
locale.h
(2.64 KB)
π
login_cap.h
(6.25 KB)
π
lzma
π
lzma.h
(9.63 KB)
π
machine
π
magic.h
(5.64 KB)
π
malloc.h
(102 B)
π
malloc_np.h
(5.04 KB)
π
math.h
(13.92 KB)
π
md4.h
(2.31 KB)
π
md5.h
(810 B)
π
memory.h
(1.68 KB)
π
memstat.h
(7.26 KB)
π
menu.h
(11.99 KB)
π
monetary.h
(1.88 KB)
π
mp.h
(857 B)
π
mpool.h
(4.16 KB)
π
mqueue.h
(2.22 KB)
π
mtlib.h
(4.22 KB)
π
ncurses.h
(97.92 KB)
π
ncurses_dll.h
(4.42 KB)
π
ndbm.h
(2.67 KB)
π
net
π
net80211
π
netconfig.h
(3.71 KB)
π
netdb.h
(10.78 KB)
π
netgraph
π
netgraph.h
(3.02 KB)
π
netinet
π
netinet6
π
netipsec
π
netnatm
π
netpfil
π
netsmb
π
nfs
π
nfsclient
π
nfsserver
π
nl_types.h
(2.94 KB)
π
nlist.h
(2.13 KB)
π
nss.h
(2.32 KB)
π
nsswitch.h
(7.16 KB)
π
ntlm_err.h
(970 B)
π
ocsp_asn1.h
(14.58 KB)
π
omp.h
(15.76 KB)
π
opencsd
π
openssl
π
opie.h
(5.57 KB)
π
osreldate.h
(1.51 KB)
π
panel.h
(4.1 KB)
π
parse_bytes.h
(2.13 KB)
π
parse_time.h
(2.19 KB)
π
parse_units.h
(2.73 KB)
π
pathconv.h
(1.64 KB)
π
paths.h
(5.16 KB)
π
pcap
π
pcap-bpf.h
(2.24 KB)
π
pcap-namedb.h
(1.98 KB)
π
pcap-netmap.h
(126 B)
π
pcap.h
(2.17 KB)
π
pkcs10_asn1.h
(4.13 KB)
π
pkcs12_asn1.h
(13.04 KB)
π
pkcs8_asn1.h
(6.51 KB)
π
pkcs9_asn1.h
(5.95 KB)
π
pkinit_asn1.h
(26.54 KB)
π
pmc.h
(4.51 KB)
π
pmcformat.h
(1.47 KB)
π
pmclog.h
(5.74 KB)
π
poll.h
(4.03 KB)
π
printf.h
(5.15 KB)
π
private
π
proc_service.h
(2.96 KB)
π
protocols
π
pthread.h
(12.7 KB)
π
pthread_np.h
(3.28 KB)
π
pwd.h
(6.05 KB)
π
radlib.h
(8.86 KB)
π
radlib_vs.h
(3.6 KB)
π
ranlib.h
(1.99 KB)
π
rdma
π
readpassphrase.h
(1.82 KB)
π
regex.h
(3.87 KB)
π
res_update.h
(2.45 KB)
π
resolv.h
(18.69 KB)
π
resolve.h
(7.26 KB)
π
rfc2459_asn1.h
(73.99 KB)
π
ripemd.h
(5.09 KB)
π
roken-common.h
(11.68 KB)
π
roken.h
(6.86 KB)
π
rpc
π
rpcsvc
π
rpoll.h
(2.13 KB)
π
rtbl.h
(3.61 KB)
π
rtld_db.h
(3.82 KB)
π
runetype.h
(3.76 KB)
π
sched.h
(9.06 KB)
π
sdp.h
(21.58 KB)
π
search.h
(1.71 KB)
π
security
π
semaphore.h
(2.35 KB)
π
setjmp.h
(2.5 KB)
π
sha.h
(5.91 KB)
π
sha224.h
(2.93 KB)
π
sha256.h
(3.01 KB)
π
sha384.h
(2.94 KB)
π
sha512.h
(3.02 KB)
π
sha512t.h
(4.6 KB)
π
signal.h
(4.42 KB)
π
skein.h
(15.95 KB)
π
skein_freebsd.h
(3.85 KB)
π
skein_iv.h
(5.54 KB)
π
skein_port.h
(5.17 KB)
π
spawn.h
(4.26 KB)
π
stab.h
(3.07 KB)
π
stdalign.h
(1.81 KB)
π
stdarg.h
(87 B)
π
stdatomic.h
(13.94 KB)
π
stdbool.h
(1.64 KB)
π
stddef.h
(2.59 KB)
π
stdint.h
(2.63 KB)
π
stdio.h
(16.92 KB)
π
stdlib.h
(11.23 KB)
π
stdnoreturn.h
(1.59 KB)
π
string.h
(5.32 KB)
π
string_m.h
(1.72 KB)
π
stringlist.h
(1.83 KB)
π
strings.h
(2.47 KB)
π
sys
π
sysdecode.h
(6.59 KB)
π
sysexits.h
(5.17 KB)
π
syslog.h
(7.25 KB)
π
taclib.h
(5.28 KB)
π
tar.h
(2.9 KB)
π
tcpd.h
(8.18 KB)
π
teken
π
term.h
(40.4 KB)
π
termcap.h
(3.39 KB)
π
termios.h
(3.28 KB)
π
tgmath.h
(8.85 KB)
π
thread_db.h
(6.36 KB)
π
thread_pool_impl.h
(2.76 KB)
π
threads.h
(3.56 KB)
π
time.h
(7.07 KB)
π
timeconv.h
(2.42 KB)
π
timers.h
(1.97 KB)
π
ttyent.h
(2.95 KB)
π
uchar.h
(2.3 KB)
π
ucontext.h
(2.91 KB)
π
ufs
π
ugidfw.h
(2.68 KB)
π
ulimit.h
(1.58 KB)
π
ulog.h
(1.67 KB)
π
unctrl.h
(3.1 KB)
π
unistd.h
(18.71 KB)
π
usb.h
(9.48 KB)
π
usbhid.h
(3.75 KB)
π
utempter.h
(1.76 KB)
π
utime.h
(2.01 KB)
π
utmpx.h
(3.03 KB)
π
uuid.h
(2.43 KB)
π
varargs.h
(1.54 KB)
π
vgl.h
(5.59 KB)
π
vis.h
(4.48 KB)
π
vm
π
vmmapi.h
(10.49 KB)
π
wchar.h
(8.81 KB)
π
wctype.h
(3.89 KB)
π
wind.h
(3.09 KB)
π
wind_err.h
(860 B)
π
wordexp.h
(2.75 KB)
π
x86
π
xdbm.h
(1.91 KB)
π
xlocale
π
xlocale.h
(2.23 KB)
π
ypclnt.h
(2.33 KB)
π
zconf.h
(16.24 KB)
π
zdb.h
(1.02 KB)
π
zinject.h
(2.14 KB)
π
zlib.h
(94.08 KB)
π
zstream.h
(820 B)
π
zutil_import.h
(2.51 KB)
Editing: hdb.h
/* * Copyright (c) 1997 - 2007 Kungliga Tekniska HΓΆgskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * 3. Neither the name of the Institute nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /* $Id$ */ #ifndef __HDB_H__ #define __HDB_H__ #include <krb5.h> #include <hdb_err.h> #include <heim_asn1.h> #include <hdb_asn1.h> struct hdb_dbinfo; enum hdb_lockop{ HDB_RLOCK, HDB_WLOCK }; /* flags for various functions */ #define HDB_F_DECRYPT 1 /* decrypt keys */ #define HDB_F_REPLACE 2 /* replace entry */ #define HDB_F_GET_CLIENT 4 /* fetch client */ #define HDB_F_GET_SERVER 8 /* fetch server */ #define HDB_F_GET_KRBTGT 16 /* fetch krbtgt */ #define HDB_F_GET_ANY 28 /* fetch any of client,server,krbtgt */ #define HDB_F_CANON 32 /* want canonicalition */ #define HDB_F_ADMIN_DATA 64 /* want data that kdc don't use */ #define HDB_F_KVNO_SPECIFIED 128 /* we want a particular KVNO */ #define HDB_F_CURRENT_KVNO 256 /* we want the current KVNO */ /* 512, 1024, 2048 are reserved for kvno operations that is not part of the 1.5 branch */ #define HDB_F_ALL_KVNOS 2048 /* we want all the keys, live or not */ #define HDB_F_FOR_AS_REQ 4096 /* fetch is for a AS REQ */ #define HDB_F_FOR_TGS_REQ 8192 /* fetch is for a TGS REQ */ /* hdb_capability_flags */ #define HDB_CAP_F_HANDLE_ENTERPRISE_PRINCIPAL 1 #define HDB_CAP_F_HANDLE_PASSWORDS 2 #define HDB_CAP_F_PASSWORD_UPDATE_KEYS 4 /* auth status values */ #define HDB_AUTH_SUCCESS 0 #define HDB_AUTH_WRONG_PASSWORD 1 #define HDB_AUTH_INVALID_SIGNATURE 2 /* key usage for master key */ #define HDB_KU_MKEY 0x484442 typedef struct hdb_master_key_data *hdb_master_key; /** * hdb_entry_ex is a wrapper structure around the hdb_entry structure * that allows backends to keep a pointer to the backing store, ie in * ->hdb_fetch_kvno(), so that we the kadmin/kpasswd backend gets around to * ->hdb_store(), the backend doesn't need to lookup the entry again. */ typedef struct hdb_entry_ex { void *ctx; hdb_entry entry; void (*free_entry)(krb5_context, struct hdb_entry_ex *); } hdb_entry_ex; /** * HDB backend function pointer structure * * The HDB structure is what the KDC and kadmind framework uses to * query the backend database when talking about principals. */ typedef struct HDB{ void *hdb_db; void *hdb_dbc; /** don't use, only for DB3 */ char *hdb_name; int hdb_master_key_set; hdb_master_key hdb_master_key; int hdb_openp; int hdb_capability_flags; /** * Open (or create) the a Kerberos database. * * 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. * * Then done the caller should call hdb_close(), and to release * all resources hdb_destroy(). */ krb5_error_code (*hdb_open)(krb5_context, struct HDB*, int, mode_t); /** * Close the database for transaction * * Closes the database for further transactions, wont release any * permanant resources. the database can be ->hdb_open-ed again. */ krb5_error_code (*hdb_close)(krb5_context, struct HDB*); /** * Free an entry after use. */ void (*hdb_free)(krb5_context, struct HDB*, hdb_entry_ex*); /** * Fetch an entry from the backend * * 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 */ krb5_error_code (*hdb_fetch_kvno)(krb5_context, struct HDB*, krb5_const_principal, unsigned, krb5_kvno, hdb_entry_ex*); /** * Store an entry to database */ krb5_error_code (*hdb_store)(krb5_context, struct HDB*, unsigned, hdb_entry_ex*); /** * Remove an entry from the database. */ krb5_error_code (*hdb_remove)(krb5_context, struct HDB*, krb5_const_principal); /** * As part of iteration, fetch one entry */ krb5_error_code (*hdb_firstkey)(krb5_context, struct HDB*, unsigned, hdb_entry_ex*); /** * As part of iteration, fetch next entry */ krb5_error_code (*hdb_nextkey)(krb5_context, struct HDB*, unsigned, hdb_entry_ex*); /** * Lock database * * 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. */ krb5_error_code (*hdb_lock)(krb5_context, struct HDB*, int); /** * Unlock database */ krb5_error_code (*hdb_unlock)(krb5_context, struct HDB*); /** * Rename the data base. * * Assume that the database is not hdb_open'ed and not locked. */ krb5_error_code (*hdb_rename)(krb5_context, struct HDB*, const char*); /** * Get an hdb_entry from a classical DB backend * * If the database is a classical DB (ie BDB, NDBM, GDBM, etc) * backend, this function will take a principal key (krb5_data) * and return all data related to principal in the return * krb5_data. The returned encoded entry is of type hdb_entry or * hdb_entry_alias. */ krb5_error_code (*hdb__get)(krb5_context, struct HDB*, krb5_data, krb5_data*); /** * Store an hdb_entry from a classical DB backend * * Same discussion as in @ref HDB::hdb__get */ krb5_error_code (*hdb__put)(krb5_context, struct HDB*, int, krb5_data, krb5_data); /** * Delete and hdb_entry from a classical DB backend * * Same discussion as in @ref HDB::hdb__get */ krb5_error_code (*hdb__del)(krb5_context, struct HDB*, krb5_data); /** * Destroy the handle to the database. * * 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. */ krb5_error_code (*hdb_destroy)(krb5_context, struct HDB*); /** * 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(). */ krb5_error_code (*hdb_get_realms)(krb5_context, struct HDB *, krb5_realm **); /** * Change password. * * Will update keys for the entry when given password. The new * keys must be written into the entry and will then later be * ->hdb_store() into the database. The backend will still perform * all other operations, increasing the kvno, and update * modification timestamp. * * The backend needs to call _kadm5_set_keys() and perform password * quality checks. */ krb5_error_code (*hdb_password)(krb5_context, struct HDB*, hdb_entry_ex*, const char *, int); /** * Auth feedback * * This is a feedback call that allows backends that provides * lockout functionality to register failure and/or successes. * * In case the entry is locked out, the backend should set the * hdb_entry.flags.locked-out flag. */ krb5_error_code (*hdb_auth_status)(krb5_context, struct HDB *, hdb_entry_ex *, int); /** * Check if delegation is allowed. */ krb5_error_code (*hdb_check_constrained_delegation)(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal); /** * Check if this name is an alias for the supplied client for PKINIT userPrinicpalName logins */ krb5_error_code (*hdb_check_pkinit_ms_upn_match)(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal); /** * Check if s4u2self is allowed from this client to this server */ krb5_error_code (*hdb_check_s4u2self)(krb5_context, struct HDB *, hdb_entry_ex *, krb5_const_principal); }HDB; #define HDB_INTERFACE_VERSION 7 struct hdb_so_method { int version; const char *prefix; krb5_error_code (*create)(krb5_context, HDB **, const char *filename); }; typedef krb5_error_code (*hdb_foreach_func_t)(krb5_context, HDB*, hdb_entry_ex*, void*); extern krb5_kt_ops hdb_kt_ops; struct hdb_method { int interface_version; const char *prefix; krb5_error_code (*create)(krb5_context, HDB **, const char *filename); }; extern const int hdb_interface_version; #include <hdb-protos.h> #endif /* __HDB_H__ */
Upload File
Create Folder