summaryrefslogtreecommitdiffstats
path: root/kerberos5
diff options
context:
space:
mode:
Diffstat (limited to 'kerberos5')
-rw-r--r--kerberos5/Makefile31
-rw-r--r--kerberos5/Makefile.inc48
-rw-r--r--kerberos5/README13
-rw-r--r--kerberos5/doc/Makefile6
-rw-r--r--kerberos5/include/config.h1633
-rw-r--r--kerberos5/include/crypto-headers.h26
-rw-r--r--kerberos5/include/krb5-types.h63
-rw-r--r--kerberos5/include/version.h6
-rw-r--r--kerberos5/lib/Makefile8
-rw-r--r--kerberos5/lib/Makefile.inc5
-rw-r--r--kerberos5/lib/libasn1/Makefile117
-rw-r--r--kerberos5/lib/libgssapi_krb5/Makefile89
-rw-r--r--kerberos5/lib/libgssapi_krb5/gss_krb5.c832
-rw-r--r--kerberos5/lib/libgssapi_krb5/gss_oid.c227
-rw-r--r--kerberos5/lib/libgssapi_krb5/pname_to_uid.c59
-rw-r--r--kerberos5/lib/libgssapi_krb5/prefix.c33
-rw-r--r--kerberos5/lib/libgssapi_ntlm/Makefile51
-rw-r--r--kerberos5/lib/libgssapi_ntlm/prefix.c40
-rw-r--r--kerberos5/lib/libgssapi_spnego/Makefile62
-rw-r--r--kerberos5/lib/libgssapi_spnego/freebsd_compat.c84
-rw-r--r--kerberos5/lib/libhdb/Makefile106
-rw-r--r--kerberos5/lib/libheimbase/Makefile26
-rw-r--r--kerberos5/lib/libheimipcc/Makefile20
-rw-r--r--kerberos5/lib/libheimipcs/Makefile21
-rw-r--r--kerberos5/lib/libheimntlm/Makefile40
-rw-r--r--kerberos5/lib/libheimsqlite/Makefile11
-rw-r--r--kerberos5/lib/libhx509/Makefile304
-rw-r--r--kerberos5/lib/libkadm5clnt/Makefile45
-rw-r--r--kerberos5/lib/libkadm5srv/Makefile47
-rw-r--r--kerberos5/lib/libkafs5/Makefile52
-rw-r--r--kerberos5/lib/libkdc/Makefile40
-rw-r--r--kerberos5/lib/libkrb5/Makefile640
-rw-r--r--kerberos5/lib/libroken/Makefile92
-rw-r--r--kerberos5/lib/libsl/Makefile10
-rw-r--r--kerberos5/lib/libvers/Makefile17
-rw-r--r--kerberos5/lib/libwind/Makefile35
-rw-r--r--kerberos5/libexec/Makefile6
-rw-r--r--kerberos5/libexec/Makefile.inc5
-rw-r--r--kerberos5/libexec/digest-service/Makefile18
-rw-r--r--kerberos5/libexec/hprop/Makefile21
-rw-r--r--kerberos5/libexec/hpropd/Makefile15
-rw-r--r--kerberos5/libexec/ipropd-master/Makefile19
-rw-r--r--kerberos5/libexec/ipropd-slave/Makefile16
-rw-r--r--kerberos5/libexec/kadmind/Makefile21
-rw-r--r--kerberos5/libexec/kcm/Makefile33
-rw-r--r--kerberos5/libexec/kdc/Makefile19
-rw-r--r--kerberos5/libexec/kdigest/Makefile21
-rw-r--r--kerberos5/libexec/kfd/Makefile15
-rw-r--r--kerberos5/libexec/kimpersonate/Makefile16
-rw-r--r--kerberos5/libexec/kpasswdd/Makefile14
-rw-r--r--kerberos5/tools/Makefile5
-rw-r--r--kerberos5/tools/Makefile.inc5
-rw-r--r--kerberos5/tools/asn1_compile/Makefile41
-rw-r--r--kerberos5/tools/make-roken/Makefile13
-rw-r--r--kerberos5/tools/slc/Makefile24
-rw-r--r--kerberos5/usr.bin/Makefile6
-rw-r--r--kerberos5/usr.bin/Makefile.inc5
-rw-r--r--kerberos5/usr.bin/hxtool/Makefile18
-rw-r--r--kerberos5/usr.bin/kadmin/Makefile45
-rw-r--r--kerberos5/usr.bin/kcc/Makefile27
-rw-r--r--kerberos5/usr.bin/kdestroy/Makefile13
-rw-r--r--kerberos5/usr.bin/kf/Makefile15
-rw-r--r--kerberos5/usr.bin/kgetcred/Makefile11
-rw-r--r--kerberos5/usr.bin/kinit/Makefile12
-rw-r--r--kerberos5/usr.bin/kpasswd/Makefile12
-rw-r--r--kerberos5/usr.bin/krb5-config/Makefile28
-rw-r--r--kerberos5/usr.bin/ksu/Makefile18
-rw-r--r--kerberos5/usr.bin/string2key/Makefile17
-rw-r--r--kerberos5/usr.bin/verify_krb5_conf/Makefile13
-rw-r--r--kerberos5/usr.sbin/Makefile5
-rw-r--r--kerberos5/usr.sbin/Makefile.inc5
-rw-r--r--kerberos5/usr.sbin/iprop-log/Makefile21
-rw-r--r--kerberos5/usr.sbin/kstash/Makefile15
-rw-r--r--kerberos5/usr.sbin/ktutil/Makefile31
74 files changed, 5583 insertions, 0 deletions
diff --git a/kerberos5/Makefile b/kerberos5/Makefile
new file mode 100644
index 0000000..d87fa16
--- /dev/null
+++ b/kerberos5/Makefile
@@ -0,0 +1,31 @@
+# $FreeBSD$
+
+SUBDIR= doc lib libexec usr.bin usr.sbin
+
+# These are the programs which depend on Kerberos.
+KPROGS= lib/libpam \
+ secure/lib/libssh secure/usr.bin/ssh secure/usr.sbin/sshd
+
+# This target is used to rebuild these programs WITH Kerberos.
+kerberize:
+.for entry in ${KPROGS}
+ cd ${.CURDIR}/../${entry}; \
+ ${MAKE} cleandir; \
+ ${MAKE} obj; \
+ ${MAKE} depend; \
+ ${MAKE} all; \
+ ${MAKE} install
+.endfor
+
+# This target is used to rebuild these programs WITHOUT Kerberos.
+dekerberize:
+.for entry in ${KPROGS}
+ cd ${.CURDIR}/../${entry}; \
+ ${MAKE} -DWITHOUT_KERBEROS cleandir; \
+ ${MAKE} -DWITHOUT_KERBEROS obj; \
+ ${MAKE} -DWITHOUT_KERBEROS depend; \
+ ${MAKE} -DWITHOUT_KERBEROS all; \
+ ${MAKE} -DWITHOUT_KERBEROS install
+.endfor
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/Makefile.inc b/kerberos5/Makefile.inc
new file mode 100644
index 0000000..5dc86c2
--- /dev/null
+++ b/kerberos5/Makefile.inc
@@ -0,0 +1,48 @@
+# $FreeBSD$
+
+NO_LINT=
+
+KRB5DIR= ${.CURDIR}/../../../crypto/heimdal
+
+CFLAGS+= -DHAVE_CONFIG_H -I${.CURDIR}/../../include
+
+.if defined(WITH_OPENLDAP) && !defined(COMPAT_32BIT)
+OPENLDAPBASE?= /usr/local
+LDAPLDADD= -lldap -llber
+LDAPDPADD= ${LDAPLDADD:C;^-l(.*)$;${OPENLDAPBASE}/lib/lib\1.a;}
+LDAPCFLAGS= -I${OPENLDAPBASE}/include -DOPENLDAP=1 -DLDAP_DEPRECATED=1
+LDAPLDFLAGS= -L${OPENLDAPBASE}/lib -Wl,-rpath,${OPENLDAPBASE}/lib
+.endif
+
+LIBHEIMIPCC= ${.OBJDIR}/../../lib/libheimipcc/libheimipcc.a
+LIBHEIMIPCS= ${.OBJDIR}/../../lib/libheimipcs/libheimipcs.a
+LIBVERS= ${.OBJDIR}/../../lib/libvers/libvers.a
+LIBSL= ${.OBJDIR}/../../lib/libsl/libsl.a
+
+.if defined(SRCS)
+
+ETSRCS= \
+ ${KRB5DIR}/lib/asn1/asn1_err.et \
+ ${KRB5DIR}/lib/hdb/hdb_err.et \
+ ${KRB5DIR}/lib/kadm5/kadm5_err.et \
+ ${KRB5DIR}/lib/krb5/heim_err.et \
+ ${KRB5DIR}/lib/krb5/k524_err.et \
+ ${KRB5DIR}/lib/krb5/krb5_err.et \
+ ${KRB5DIR}/lib/krb5/krb_err.et \
+ ${KRB5DIR}/lib/gssapi/krb5/gkrb5_err.et \
+ ${KRB5DIR}/lib/hx509/hx509_err.et \
+ ${KRB5DIR}/lib/wind/wind_err.et \
+ ${KRB5DIR}/lib/ntlm/ntlm_err.et
+
+.for ET in ${ETSRCS}
+.for _ET in ${ET:T:R}
+.if ${SRCS:M${_ET}.[ch]} != ""
+.ORDER: ${_ET}.c ${_ET}.h
+${_ET}.c ${_ET}.h: ${ET}
+ compile_et ${.ALLSRC}
+CLEANFILES+= ${_ET}.h ${_ET}.c
+.endif
+.endfor
+.endfor
+
+.endif # defined(SRCS)
diff --git a/kerberos5/README b/kerberos5/README
new file mode 100644
index 0000000..9f97cf6
--- /dev/null
+++ b/kerberos5/README
@@ -0,0 +1,13 @@
+This subtree is world-exportable, as it does not contain any
+cryptographic code.
+
+At the time of writing, it did not even contain source code, only
+Makefiles and headers.
+
+Please maintain this "exportable" status quo.
+
+Thanks!
+
+MarkM
+markm@freebsd.org
+20th Sept 1997
diff --git a/kerberos5/doc/Makefile b/kerberos5/doc/Makefile
new file mode 100644
index 0000000..1f71ed8
--- /dev/null
+++ b/kerberos5/doc/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+INFO= heimdal
+SRCDIR= ${.CURDIR}/../../crypto/heimdal/doc
+
+.include <bsd.info.mk>
diff --git a/kerberos5/include/config.h b/kerberos5/include/config.h
new file mode 100644
index 0000000..1f9ad88
--- /dev/null
+++ b/kerberos5/include/config.h
@@ -0,0 +1,1633 @@
+/* include/config.h. Generated from config.h.in by configure. */
+/* include/config.h.in. Generated from configure.ac by autoheader. */
+
+/* $FreeBSD$ */
+
+#ifndef RCSID
+#define RCSID(msg) \
+static /**/const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg }
+#endif
+
+/* Maximum values on all known systems */
+#define MaxHostNameLen (64+4)
+#define MaxPathLen (1024+4)
+
+
+
+#ifdef BUILD_KRB5_LIB
+#ifndef KRB5_LIB
+#ifdef _WIN32_
+#define KRB5_LIB_FUNCTION __declspec(dllexport)
+#define KRB5_LIB_CALL __stdcall
+#define KRB5_LIB_VARIABLE __declspec(dllexport)
+#else
+#define KRB5_LIB_FUNCTION
+#define KRB5_LIB_CALL
+#define KRB5_LIB_VARIABLE
+#endif
+#endif
+#endif
+
+
+#ifdef BUILD_ROKEN_LIB
+#ifndef ROKEN_LIB
+#ifdef _WIN32_
+#define ROKEN_LIB_FUNCTION __declspec(dllexport)
+#define ROKEN_LIB_CALL __stdcall
+#define ROKEN_LIB_VARIABLE __declspec(dllexport)
+#else
+#define ROKEN_LIB_FUNCTION
+#define ROKEN_LIB_CALL
+#define ROKEN_LIB_VARIABLE
+#endif
+#endif
+#endif
+
+
+#ifdef BUILD_GSSAPI_LIB
+#ifndef GSSAPI_LIB
+#ifdef _WIN32_
+#define GSSAPI_LIB_FUNCTION __declspec(dllexport)
+#define GSSAPI_LIB_CALL __stdcall
+#define GSSAPI_LIB_VARIABLE __declspec(dllexport)
+#else
+#define GSSAPI_LIB_FUNCTION
+#define GSSAPI_LIB_CALL
+#define GSSAPI_LIB_VARIABLE
+#endif
+#endif
+#endif
+
+
+/* Define if you want authentication support in telnet. */
+#define AUTHENTICATION 1
+
+/* path to bin */
+#define BINDIR "/usr/bin"
+
+/* Define if realloc(NULL) doesn't work. */
+/* #undef BROKEN_REALLOC */
+
+/* Define if you want support for DCE/DFS PAG's. */
+/* #undef DCE */
+
+/* Define if you want to use DES encryption in telnet. */
+#define DES_ENCRYPTION 1
+
+/* Define this to enable diagnostics in telnet. */
+#define DIAGNOSTICS 1
+
+/* Define to enable DIGEST. */
+#define DIGEST 1
+
+/* Define if want to use the weak AFS string to key functions. */
+#define ENABLE_AFS_STRING_TO_KEY 1
+
+/* Define if you want have a thread safe libraries */
+#define ENABLE_PTHREAD_SUPPORT 1
+
+/* Define if you want encryption support in telnet. */
+#define ENCRYPTION 1
+
+/* define if sys/param.h defines the endiness */
+#define ENDIANESS_IN_SYS_PARAM_H 1
+
+/* Define this if you want support for broken ENV_{VAR,VAL} telnets. */
+/* #undef ENV_HACK */
+
+/* define if prototype of gethostbyaddr is compatible with struct hostent
+ *gethostbyaddr(const void *, size_t, int) */
+/* #undef GETHOSTBYADDR_PROTO_COMPATIBLE */
+
+/* define if prototype of gethostbyname is compatible with struct hostent
+ *gethostbyname(const char *) */
+#define GETHOSTBYNAME_PROTO_COMPATIBLE 1
+
+/* define if prototype of getservbyname is compatible with struct servent
+ *getservbyname(const char *, const char *) */
+#define GETSERVBYNAME_PROTO_COMPATIBLE 1
+
+/* define if prototype of getsockname is compatible with int getsockname(int,
+ struct sockaddr*, socklen_t*) */
+#define GETSOCKNAME_PROTO_COMPATIBLE 1
+
+/* Define if you have the `altzone' variable. */
+/* #undef HAVE_ALTZONE */
+
+/* Define to 1 if you have the `arc4random' function. */
+#define HAVE_ARC4RANDOM 1
+
+/* Define to 1 if you have the <arpa/ftp.h> header file. */
+#define HAVE_ARPA_FTP_H 1
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 1
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Define to 1 if you have the <arpa/telnet.h> header file. */
+#define HAVE_ARPA_TELNET_H 1
+
+/* Define to 1 if you have the <asl.h> header file. */
+/* #undef HAVE_ASL_H */
+
+/* Define to 1 if you have the `asnprintf' function. */
+/* #undef HAVE_ASNPRINTF */
+
+/* Define to 1 if you have the `asprintf' function. */
+#define HAVE_ASPRINTF 1
+
+/* Define to 1 if you have the `atexit' function. */
+#define HAVE_ATEXIT 1
+
+/* Define to 1 if you have the `backtrace' function. */
+/* #undef HAVE_BACKTRACE */
+
+/* Define to 1 if you have the <bind/bitypes.h> header file. */
+/* #undef HAVE_BIND_BITYPES_H */
+
+/* Define to 1 if you have the <bsdsetjmp.h> header file. */
+/* #undef HAVE_BSDSETJMP_H */
+
+/* Define to 1 if you have the `bswap16' function. */
+/* #undef HAVE_BSWAP16 */
+
+/* Define to 1 if you have the `bswap32' function. */
+/* #undef HAVE_BSWAP32 */
+
+/* Define to 1 if you have the <capability.h> header file. */
+/* #undef HAVE_CAPABILITY_H */
+
+/* whether capng is available for privilege reduction */
+/* #undef HAVE_CAPNG */
+
+/* Define to 1 if you have the `cap_set_proc' function. */
+/* #undef HAVE_CAP_SET_PROC */
+
+/* Define to 1 if you have the `cgetent' function. */
+#define HAVE_CGETENT 1
+
+/* Define if you have the function `chown'. */
+#define HAVE_CHOWN 1
+
+/* Define if you have the function `closefrom'. */
+#define HAVE_CLOSEFROM 1
+
+/* Define to 1 if you have the <CommonCrypto/CommonCryptor.h> header file. */
+/* #undef HAVE_COMMONCRYPTO_COMMONCRYPTOR_H */
+
+/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
+/* #undef HAVE_COMMONCRYPTO_COMMONDIGEST_H */
+
+/* Define to 1 if you have the <config.h> header file. */
+/* #undef HAVE_CONFIG_H */
+
+/* Define if you have the function `copyhostent'. */
+/* #undef HAVE_COPYHOSTENT */
+
+/* Define to 1 if you have the `crypt' function. */
+#define HAVE_CRYPT 1
+
+/* Define to 1 if you have the <crypt.h> header file. */
+/* #undef HAVE_CRYPT_H */
+
+/* Define to 1 if you have the <curses.h> header file. */
+#define HAVE_CURSES_H 1
+
+/* Define if you have the function `daemon'. */
+#define HAVE_DAEMON 1
+
+/* define if you have a berkeley db1/2 library */
+#define HAVE_DB1 1
+
+/* define if you have a berkeley db3/4/5 library */
+/* #undef HAVE_DB3 */
+
+/* Define to 1 if you have the <db3/db.h> header file. */
+/* #undef HAVE_DB3_DB_H */
+
+/* Define to 1 if you have the <db4/db.h> header file. */
+/* #undef HAVE_DB4_DB_H */
+
+/* Define to 1 if you have the <db5/db.h> header file. */
+/* #undef HAVE_DB5_DB_H */
+
+/* Define if you have user supplied header location */
+/* #undef HAVE_DBHEADER */
+
+/* Define to 1 if you have the `dbm_firstkey' function. */
+#define HAVE_DBM_FIRSTKEY 1
+
+/* Define to 1 if you have the <dbm.h> header file. */
+/* #undef HAVE_DBM_H */
+
+/* Define to 1 if you have the `dbopen' function. */
+#define HAVE_DBOPEN 1
+
+/* Define to 1 if you have the `db_create' function. */
+/* #undef HAVE_DB_CREATE */
+
+/* Define to 1 if you have the <db.h> header file. */
+#define HAVE_DB_H 1
+
+/* define if you have ndbm compat in db */
+/* #undef HAVE_DB_NDBM */
+
+/* Define to 1 if you have the declaration of `altzone', and to 0 if you
+ don't. */
+/* #undef HAVE_DECL_ALTZONE */
+
+/* Define to 1 if you have the declaration of `environ', and to 0 if you
+ don't. */
+#define HAVE_DECL_ENVIRON 0
+
+/* Define to 1 if you have the declaration of `h_errlist', and to 0 if you
+ don't. */
+#define HAVE_DECL_H_ERRLIST 0
+
+/* Define to 1 if you have the declaration of `h_errno', and to 0 if you
+ don't. */
+#define HAVE_DECL_H_ERRNO 1
+
+/* Define to 1 if you have the declaration of `h_nerr', and to 0 if you don't.
+ */
+/* #undef HAVE_DECL_H_NERR */
+
+/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't.
+ */
+#define HAVE_DECL_OPTARG 1
+
+/* Define to 1 if you have the declaration of `opterr', and to 0 if you don't.
+ */
+#define HAVE_DECL_OPTERR 1
+
+/* Define to 1 if you have the declaration of `optind', and to 0 if you don't.
+ */
+#define HAVE_DECL_OPTIND 1
+
+/* Define to 1 if you have the declaration of `optopt', and to 0 if you don't.
+ */
+#define HAVE_DECL_OPTOPT 1
+
+/* Define to 1 if you have the declaration of `timezone', and to 0 if you
+ don't. */
+#define HAVE_DECL_TIMEZONE 1
+
+/* Define to 1 if you have the declaration of `_res', and to 0 if you don't.
+ */
+#define HAVE_DECL__RES 1
+
+/* Define to 1 if you have the declaration of `__progname', and to 0 if you
+ don't. */
+#define HAVE_DECL___PROGNAME 0
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#define HAVE_DIRENT_H 1
+
+/* have a dirfd function/macro */
+#define HAVE_DIRFD 1
+
+/* Define if DIR has field dd_fd. */
+#define HAVE_DIR_DD_FD 1
+
+/* Define to 1 if you have the `dispatch_async_f' function. */
+/* #undef HAVE_DISPATCH_ASYNC_F */
+
+/* Define to 1 if you have the <dispatch/dispatch.h> header file. */
+/* #undef HAVE_DISPATCH_DISPATCH_H */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dlopen' function. */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the <dns.h> header file. */
+/* #undef HAVE_DNS_H */
+
+/* Define to 1 if you have the `dns_search' function. */
+/* #undef HAVE_DNS_SEARCH */
+
+/* Define to 1 if you have the `dn_expand' function. */
+#define HAVE_DN_EXPAND 1
+
+/* Define to 1 if you have the `door_create' function. */
+/* #undef HAVE_DOOR_CREATE */
+
+/* Define if you have the function `ecalloc'. */
+/* #undef HAVE_ECALLOC */
+
+/* Define if you have the function `emalloc'. */
+/* #undef HAVE_EMALLOC */
+
+/* Define if you have the function `erealloc'. */
+/* #undef HAVE_EREALLOC */
+
+/* Define if you have the function `err'. */
+#define HAVE_ERR 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define if you have the function `errx'. */
+#define HAVE_ERRX 1
+
+/* Define to 1 if you have the <err.h> header file. */
+#define HAVE_ERR_H 1
+
+/* Define if you have the function `estrdup'. */
+/* #undef HAVE_ESTRDUP */
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+/* #undef HAVE_EXECINFO_H */
+
+/* Define if you have the function `fchown'. */
+#define HAVE_FCHOWN 1
+
+/* Define to 1 if you have the `fcntl' function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the function `flock'. */
+#define HAVE_FLOCK 1
+
+/* Define if you have the function `fnmatch'. */
+#define HAVE_FNMATCH 1
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#define HAVE_FNMATCH_H 1
+
+/* Have -framework Security */
+/* #undef HAVE_FRAMEWORK_SECURITY */
+
+/* Define to 1 if you have the `freeaddrinfo' function. */
+#define HAVE_FREEADDRINFO 1
+
+/* Define if you have the function `freehostent'. */
+#define HAVE_FREEHOSTENT 1
+
+/* Define to 1 if you have the `gai_strerror' function. */
+#define HAVE_GAI_STRERROR 1
+
+/* Define if os support gcd. */
+/* #undef HAVE_GCD */
+
+/* Define to 1 if you have the <gdbm/ndbm.h> header file. */
+/* #undef HAVE_GDBM_NDBM_H */
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the `getconfattr' function. */
+/* #undef HAVE_GETCONFATTR */
+
+/* Define if you have the function `getcwd'. */
+#define HAVE_GETCWD 1
+
+/* Define if you have the function `getdtablesize'. */
+#define HAVE_GETDTABLESIZE 1
+
+/* Define if you have the function `getegid'. */
+#define HAVE_GETEGID 1
+
+/* Define if you have the function `geteuid'. */
+#define HAVE_GETEUID 1
+
+/* Define if you have the function `getgid'. */
+#define HAVE_GETGID 1
+
+/* Define to 1 if you have the `gethostbyname' function. */
+#define HAVE_GETHOSTBYNAME 1
+
+/* Define to 1 if you have the `gethostbyname2' function. */
+#define HAVE_GETHOSTBYNAME2 1
+
+/* Define if you have the function `gethostname'. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define if you have the function `getifaddrs'. */
+#define HAVE_GETIFADDRS 1
+
+/* Define if you have the function `getipnodebyaddr'. */
+#define HAVE_GETIPNODEBYADDR 1
+
+/* Define if you have the function `getipnodebyname'. */
+#define HAVE_GETIPNODEBYNAME 1
+
+/* Define to 1 if you have the `getlogin' function. */
+#define HAVE_GETLOGIN 1
+
+/* Define if you have a working getmsg. */
+/* #undef HAVE_GETMSG */
+
+/* Define to 1 if you have the `getnameinfo' function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define if you have the function `getopt'. */
+#define HAVE_GETOPT 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getpeereid' function. */
+#define HAVE_GETPEEREID 1
+
+/* Define to 1 if you have the `getpeerucred' function. */
+/* #undef HAVE_GETPEERUCRED */
+
+/* Define to 1 if you have the `getprogname' function. */
+#define HAVE_GETPROGNAME 1
+
+/* Define to 1 if you have the `getpwnam_r' function. */
+#define HAVE_GETPWNAM_R 1
+
+/* Define to 1 if you have the `getrlimit' function. */
+#define HAVE_GETRLIMIT 1
+
+/* Define to 1 if you have the `getsockopt' function. */
+#define HAVE_GETSOCKOPT 1
+
+/* Define to 1 if you have the `getspnam' function. */
+/* #undef HAVE_GETSPNAM */
+
+/* Define if you have the function `gettimeofday'. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `getudbnam' function. */
+/* #undef HAVE_GETUDBNAM */
+
+/* Define if you have the function `getuid'. */
+#define HAVE_GETUID 1
+
+/* Define if you have the function `getusershell'. */
+#define HAVE_GETUSERSHELL 1
+
+/* define if you have a glob() that groks GLOB_BRACE, GLOB_NOCHECK,
+ GLOB_QUOTE, GLOB_TILDE, and GLOB_LIMIT */
+#define HAVE_GLOB 1
+
+/* Define to 1 if you have the `grantpt' function. */
+#define HAVE_GRANTPT 1
+
+/* Define to 1 if you have the <grp.h> header file. */
+#define HAVE_GRP_H 1
+
+/* Define to 1 if you have the `hstrerror' function. */
+#define HAVE_HSTRERROR 1
+
+/* Define if you have the `h_errlist' variable. */
+#define HAVE_H_ERRLIST 1
+
+/* Define if you have the `h_errno' variable. */
+#define HAVE_H_ERRNO 1
+
+/* Define if you have the `h_nerr' variable. */
+/* #undef HAVE_H_NERR */
+
+/* Define to 1 if you have the <ifaddrs.h> header file. */
+#define HAVE_IFADDRS_H 1
+
+/* Define if you have the in6addr_loopback variable */
+#define HAVE_IN6ADDR_LOOPBACK 1
+
+/* define */
+#define HAVE_INET_ATON 1
+
+/* define */
+#define HAVE_INET_NTOP 1
+
+/* define */
+#define HAVE_INET_PTON 1
+
+/* Define if you have the function `initgroups'. */
+#define HAVE_INITGROUPS 1
+
+/* Define if you have the function `innetgr'. */
+#define HAVE_INNETGR 1
+
+/* Define to 1 if the system has the type `int16_t'. */
+#define HAVE_INT16_T 1
+
+/* Define to 1 if the system has the type `int32_t'. */
+#define HAVE_INT32_T 1
+
+/* Define to 1 if the system has the type `int64_t'. */
+#define HAVE_INT64_T 1
+
+/* Define to 1 if the system has the type `int8_t'. */
+#define HAVE_INT8_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <io.h> header file. */
+/* #undef HAVE_IO_H */
+
+/* Define if you have IPv6. */
+#define HAVE_IPV6 1
+
+/* Define if you have the function `iruserok'. */
+#define HAVE_IRUSEROK 1
+
+/* Define to 1 if you have the `issetugid' function. */
+#define HAVE_ISSETUGID 1
+
+/* Define if you want to use the Kerberos Credentials Manager. */
+#define HAVE_KCM 1
+
+/* Define to 1 if you have the <libutil.h> header file. */
+#define HAVE_LIBUTIL_H 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `loadquery' function. */
+/* #undef HAVE_LOADQUERY */
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the function `localtime_r'. */
+#define HAVE_LOCALTIME_R 1
+
+/* Define to 1 if you have the `logout' function. */
+/* #undef HAVE_LOGOUT */
+
+/* Define to 1 if you have the `logwtmp' function. */
+/* #undef HAVE_LOGWTMP */
+
+/* Define to 1 if the system has the type `long long'. */
+#define HAVE_LONG_LONG 1
+
+/* Define if you have the function `lstat'. */
+#define HAVE_LSTAT 1
+
+/* Define to 1 if you have the <maillock.h> header file. */
+/* #undef HAVE_MAILLOCK_H */
+
+/* Define if you have the function `memmove'. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have the function `mkstemp'. */
+#define HAVE_MKSTEMP 1
+
+/* Define to 1 if you have the `mktime' function. */
+#define HAVE_MKTIME 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* define if you have a ndbm library */
+#define HAVE_NDBM 1
+
+/* Define to 1 if you have the <ndbm.h> header file. */
+#define HAVE_NDBM_H 1
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netgroup.h> header file. */
+/* #undef HAVE_NETGROUP_H */
+
+/* Define to 1 if you have the <netinet6/in6.h> header file. */
+/* #undef HAVE_NETINET6_IN6_H */
+
+/* Define to 1 if you have the <netinet6/in6_var.h> header file. */
+/* #undef HAVE_NETINET6_IN6_VAR_H */
+
+/* Define to 1 if you have the <netinet/in6.h> header file. */
+/* #undef HAVE_NETINET_IN6_H */
+
+/* Define to 1 if you have the <netinet/in6_machtypes.h> header file. */
+/* #undef HAVE_NETINET_IN6_MACHTYPES_H */
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the <netinet/in_systm.h> header file. */
+#define HAVE_NETINET_IN_SYSTM_H 1
+
+/* Define to 1 if you have the <netinet/ip.h> header file. */
+#define HAVE_NETINET_IP_H 1
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define if NDBM really is DB (creates files *.db) */
+#define HAVE_NEW_DB 1
+
+/* Define to 1 if you have the `on_exit' function. */
+/* #undef HAVE_ON_EXIT */
+
+/* Define to 1 if you have the `openpty' function. */
+#define HAVE_OPENPTY 1
+
+/* define to use openssl's libcrypto */
+#define HAVE_OPENSSL 1
+
+/* Define to enable basic OSF C2 support. */
+/* #undef HAVE_OSFC2 */
+
+/* Define to 1 if you have the <paths.h> header file. */
+#define HAVE_PATHS_H 1
+
+/* Define to 1 if you have the `pidfile' function. */
+/* #undef HAVE_PIDFILE */
+
+/* Define to 1 if you have the `poll' function. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have the <poll.h> header file. */
+#define HAVE_POLL_H 1
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Define to 1 if you have the `ptsname' function. */
+#define HAVE_PTSNAME 1
+
+/* Define to 1 if you have the <pty.h> header file. */
+/* #undef HAVE_PTY_H */
+
+/* Define if you have the function `putenv'. */
+#define HAVE_PUTENV 1
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#define HAVE_PWD_H 1
+
+/* Define to 1 if you have the `rand' function. */
+#define HAVE_RAND 1
+
+/* Define to 1 if you have the `random' function. */
+#define HAVE_RANDOM 1
+
+/* Define if you have the function `rcmd'. */
+#define HAVE_RCMD 1
+
+/* Define if you have a readline compatible library. */
+#define HAVE_READLINE 1
+
+/* Define to 1 if you have the
+ <[readline.h])[][]_AH_CHECK_HEADER([readline/readline.h]> header file. */
+/* #undef HAVE_READLINE_H */
+
+/* Define to 1 if you have the <readline/readline.h > header file. */
+/* #undef HAVE_READLINE_READLINE_H_ */
+
+/* Define if you have the function `readv'. */
+#define HAVE_READV 1
+
+/* Define if you have the function `recvmsg'. */
+#define HAVE_RECVMSG 1
+
+/* Define to 1 if you have the <resolv.h> header file. */
+#define HAVE_RESOLV_H 1
+
+/* Define to 1 if you have the `res_ndestroy' function. */
+#define HAVE_RES_NDESTROY 1
+
+/* Define to 1 if you have the `res_nsearch' function. */
+#define HAVE_RES_NSEARCH 1
+
+/* Define to 1 if you have the `res_search' function. */
+#define HAVE_RES_SEARCH 1
+
+/* Define to 1 if you have the `revoke' function. */
+#define HAVE_REVOKE 1
+
+/* Define to 1 if you have the <rpcsvc/ypclnt.h> header file. */
+#define HAVE_RPCSVC_YPCLNT_H 1
+
+/* Define to 1 if you have the <sac.h> header file. */
+/* #undef HAVE_SAC_H */
+
+/* Define to 1 if the system has the type `sa_family_t'. */
+#define HAVE_SA_FAMILY_T 1
+
+/* Define if you want support for cache in sqlite. */
+#undef HAVE_SCC
+
+/* Define to 1 if you have the <search.h> header file. */
+#define HAVE_SEARCH_H 1
+
+/* Define to 1 if you have the <security/pam_modules.h> header file. */
+#define HAVE_SECURITY_PAM_MODULES_H 1
+
+/* Define to 1 if you have the `select' function. */
+#define HAVE_SELECT 1
+
+/* Define if you have the function `sendmsg'. */
+#define HAVE_SENDMSG 1
+
+/* Define if you have the function `setegid'. */
+#define HAVE_SETEGID 1
+
+/* Define if you have the function `setenv'. */
+#define HAVE_SETENV 1
+
+/* Define if you have the function `seteuid'. */
+#define HAVE_SETEUID 1
+
+/* Define to 1 if you have the `setitimer' function. */
+#define HAVE_SETITIMER 1
+
+/* Define to 1 if you have the `setlim' function. */
+/* #undef HAVE_SETLIM */
+
+/* Define to 1 if you have the `setlogin' function. */
+#define HAVE_SETLOGIN 1
+
+/* Define to 1 if you have the `setpcred' function. */
+/* #undef HAVE_SETPCRED */
+
+/* Define to 1 if you have the `setpgid' function. */
+#define HAVE_SETPGID 1
+
+/* Define to 1 if you have the `setproctitle' function. */
+#define HAVE_SETPROCTITLE 1
+
+/* Define to 1 if you have the `setprogname' function. */
+#define HAVE_SETPROGNAME 1
+
+/* Define to 1 if you have the `setregid' function. */
+#define HAVE_SETREGID 1
+
+/* Define to 1 if you have the `setresgid' function. */
+#define HAVE_SETRESGID 1
+
+/* Define to 1 if you have the `setresuid' function. */
+#define HAVE_SETRESUID 1
+
+/* Define to 1 if you have the `setreuid' function. */
+#define HAVE_SETREUID 1
+
+/* Define to 1 if you have the `setsid' function. */
+#define HAVE_SETSID 1
+
+/* Define to 1 if you have the `setsockopt' function. */
+#define HAVE_SETSOCKOPT 1
+
+/* Define to 1 if you have the `setutent' function. */
+/* #undef HAVE_SETUTENT */
+
+/* Define to 1 if you have the `sgi_getcapabilitybyname' function. */
+/* #undef HAVE_SGI_GETCAPABILITYBYNAME */
+
+/* Define to 1 if you have the <sgtty.h> header file. */
+/* #undef HAVE_SGTTY_H */
+
+/* Define to 1 if you have the <shadow.h> header file. */
+/* #undef HAVE_SHADOW_H */
+
+/* Define to 1 if you have the <siad.h> header file. */
+/* #undef HAVE_SIAD_H */
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* define if you have a working snprintf */
+#define HAVE_SNPRINTF 1
+
+/* Define to 1 if you have the `socket' function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#define HAVE_SOCKLEN_T 1
+
+/* Define if you want support for sqlite in Heimdal. */
+#define HAVE_SQLITE3 1
+
+/* Define to 1 if the system has the type `ssize_t'. */
+#define HAVE_SSIZE_T 1
+
+/* Define to 1 if you have the <standards.h> header file. */
+/* #undef HAVE_STANDARDS_H */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define if you have the function `strcasecmp'. */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the function `strdup'. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the function `strerror'. */
+#define HAVE_STRERROR 1
+
+/* Define if you have the function strerror_r. */
+#define HAVE_STRERROR_R 1
+
+/* Define if you have the function `strftime'. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define if you have the function `strlcat'. */
+#define HAVE_STRLCAT 1
+
+/* Define if you have the function `strlcpy'. */
+#define HAVE_STRLCPY 1
+
+/* Define if you have the function `strlwr'. */
+/* #undef HAVE_STRLWR */
+
+/* Define if you have the function `strncasecmp'. */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the function `strndup'. */
+#define HAVE_STRNDUP 1
+
+/* Define if you have the function `strnlen'. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+/* #undef HAVE_STROPTS_H */
+
+/* Define if you have the function `strptime'. */
+#define HAVE_STRPTIME 1
+
+/* Define if you have the function `strsep'. */
+#define HAVE_STRSEP 1
+
+/* Define if you have the function `strsep_copy'. */
+/* #undef HAVE_STRSEP_COPY */
+
+/* Define to 1 if you have the `strstr' function. */
+#define HAVE_STRSTR 1
+
+/* Define to 1 if you have the `strsvis' function. */
+/* #undef HAVE_STRSVIS */
+
+/* Define to 1 if you have the `strsvisx' function. */
+/* #undef HAVE_STRSVISX */
+
+/* Define if you have the function `strtok_r'. */
+#define HAVE_STRTOK_R 1
+
+/* Define to 1 if the system has the type `struct addrinfo'. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define to 1 if the system has the type `struct ifaddrs'. */
+#define HAVE_STRUCT_IFADDRS 1
+
+/* Define to 1 if the system has the type `struct iovec'. */
+#define HAVE_STRUCT_IOVEC 1
+
+/* Define to 1 if the system has the type `struct msghdr'. */
+#define HAVE_STRUCT_MSGHDR 1
+
+/* Define to 1 if the system has the type `struct sockaddr'. */
+#define HAVE_STRUCT_SOCKADDR 1
+
+/* Define if struct sockaddr has field sa_len. */
+#define HAVE_STRUCT_SOCKADDR_SA_LEN 1
+
+/* Define to 1 if the system has the type `struct sockaddr_storage'. */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* define if you have struct spwd */
+/* #undef HAVE_STRUCT_SPWD */
+
+/* Define if struct tm has field tm_gmtoff. */
+#define HAVE_STRUCT_TM_TM_GMTOFF 1
+
+/* Define if struct tm has field tm_zone. */
+#define HAVE_STRUCT_TM_TM_ZONE 1
+
+/* Define if struct utmpx has field ut_exit. */
+/* #undef HAVE_STRUCT_UTMPX_UT_EXIT */
+
+/* Define if struct utmpx has field ut_host. */
+#define HAVE_STRUCT_UTMPX_UT_HOST 1
+
+/* Define if struct utmpx has field ut_id. */
+#define HAVE_STRUCT_UTMPX_UT_ID 1
+
+/* Define if struct utmpx has field ut_line. */
+#define HAVE_STRUCT_UTMPX_UT_LINE 1
+
+/* Define if struct utmpx has field ut_pid. */
+#define HAVE_STRUCT_UTMPX_UT_PID 1
+
+/* Define if struct utmpx has field ut_syslen. */
+/* #undef HAVE_STRUCT_UTMPX_UT_SYSLEN */
+
+/* Define if struct utmpx has field ut_tv. */
+#define HAVE_STRUCT_UTMPX_UT_TV 1
+
+/* Define if struct utmpx has field ut_type. */
+#define HAVE_STRUCT_UTMPX_UT_TYPE 1
+
+/* Define if struct utmpx has field ut_user. */
+#define HAVE_STRUCT_UTMPX_UT_USER 1
+
+/* Define if struct utmp has field ut_addr. */
+/* #undef HAVE_STRUCT_UTMP_UT_ADDR */
+
+/* Define if struct utmp has field ut_host. */
+/* #undef HAVE_STRUCT_UTMP_UT_HOST */
+
+/* Define if struct utmp has field ut_id. */
+/* #undef HAVE_STRUCT_UTMP_UT_ID */
+
+/* Define if struct utmp has field ut_pid. */
+/* #undef HAVE_STRUCT_UTMP_UT_PID */
+
+/* Define if struct utmp has field ut_type. */
+/* #undef HAVE_STRUCT_UTMP_UT_TYPE */
+
+/* Define if struct utmp has field ut_user. */
+/* #undef HAVE_STRUCT_UTMP_UT_USER */
+
+/* define if struct winsize is declared in sys/termios.h */
+#define HAVE_STRUCT_WINSIZE 1
+
+/* Define to 1 if you have the `strunvis' function. */
+#define HAVE_STRUNVIS 1
+
+/* Define if you have the function `strupr'. */
+/* #undef HAVE_STRUPR */
+
+/* Define to 1 if you have the `strvis' function. */
+#define HAVE_STRVIS 1
+
+/* Define to 1 if you have the `strvisx' function. */
+#define HAVE_STRVISX 1
+
+/* Define to 1 if you have the `svis' function. */
+/* #undef HAVE_SVIS */
+
+/* Define if you have the function `swab'. */
+#define HAVE_SWAB 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the `sysctl' function. */
+#define HAVE_SYSCTL 1
+
+/* Define to 1 if you have the `syslog' function. */
+#define HAVE_SYSLOG 1
+
+/* Define to 1 if you have the <syslog.h> header file. */
+#define HAVE_SYSLOG_H 1
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+/* #undef HAVE_SYS_BITYPES_H */
+
+/* Define to 1 if you have the <sys/bswap.h> header file. */
+/* #undef HAVE_SYS_BSWAP_H */
+
+/* Define to 1 if you have the <sys/capability.h> header file. */
+#define HAVE_SYS_CAPABILITY_H 1
+
+/* Define to 1 if you have the <sys/category.h> header file. */
+/* #undef HAVE_SYS_CATEGORY_H */
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#define HAVE_SYS_FILE_H 1
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+#define HAVE_SYS_FILIO_H 1
+
+/* Define to 1 if you have the <sys/ioccom.h> header file. */
+#define HAVE_SYS_IOCCOM_H 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/proc.h> header file. */
+#define HAVE_SYS_PROC_H 1
+
+/* Define to 1 if you have the <sys/ptyio.h> header file. */
+/* #undef HAVE_SYS_PTYIO_H */
+
+/* Define to 1 if you have the <sys/ptyvar.h> header file. */
+/* #undef HAVE_SYS_PTYVAR_H */
+
+/* Define to 1 if you have the <sys/pty.h> header file. */
+/* #undef HAVE_SYS_PTY_H */
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#define HAVE_SYS_SOCKIO_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/stream.h> header file. */
+/* #undef HAVE_SYS_STREAM_H */
+
+/* Define to 1 if you have the <sys/stropts.h> header file. */
+/* #undef HAVE_SYS_STROPTS_H */
+
+/* Define to 1 if you have the <sys/strtty.h> header file. */
+/* #undef HAVE_SYS_STRTTY_H */
+
+/* Define to 1 if you have the <sys/str_tty.h> header file. */
+/* #undef HAVE_SYS_STR_TTY_H */
+
+/* Define to 1 if you have the <sys/syscall.h> header file. */
+#define HAVE_SYS_SYSCALL_H 1
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#define HAVE_SYS_SYSCTL_H 1
+
+/* Define to 1 if you have the <sys/termio.h> header file. */
+/* #undef HAVE_SYS_TERMIO_H */
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#define HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/tty.h> header file. */
+#define HAVE_SYS_TTY_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/ucred.h> header file. */
+#define HAVE_SYS_UCRED_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <sys/un.h> header file. */
+#define HAVE_SYS_UN_H 1
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#define HAVE_SYS_UTSNAME_H 1
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `tdelete' function. */
+#define HAVE_TDELETE 1
+
+/* Define to 1 if you have the <termcap.h> header file. */
+#define HAVE_TERMCAP_H 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define to 1 if you have the <termio.h> header file. */
+/* #undef HAVE_TERMIO_H */
+
+/* Define to 1 if you have the <term.h> header file. */
+#define HAVE_TERM_H 1
+
+/* Define to 1 if you have the `tfind' function. */
+#define HAVE_TFIND 1
+
+/* Define to 1 if you have the `tgetent' function. */
+#define HAVE_TGETENT 1
+
+/* Define if you have the function `timegm'. */
+#define HAVE_TIMEGM 1
+
+/* Define if you have the `timezone' variable. */
+#define HAVE_TIMEZONE 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <tmpdir.h> header file. */
+/* #undef HAVE_TMPDIR_H */
+
+/* Define if you have the function `tsearch'. */
+#define HAVE_TSEARCH 1
+
+/* Define to 1 if you have the `ttyname' function. */
+#define HAVE_TTYNAME 1
+
+/* Define to 1 if you have the `ttyslot' function. */
+/* #undef HAVE_TTYSLOT */
+
+/* Define to 1 if you have the `twalk' function. */
+#define HAVE_TWALK 1
+
+/* Define to 1 if you have the <udb.h> header file. */
+/* #undef HAVE_UDB_H */
+
+/* Define to 1 if the system has the type `uint16_t'. */
+#define HAVE_UINT16_T 1
+
+/* Define to 1 if the system has the type `uint32_t'. */
+#define HAVE_UINT32_T 1
+
+/* Define to 1 if the system has the type `uint64_t'. */
+#define HAVE_UINT64_T 1
+
+/* Define to 1 if the system has the type `uint8_t'. */
+#define HAVE_UINT8_T 1
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#define HAVE_UINTPTR_T 1
+
+/* Define to 1 if you have the `umask' function. */
+#define HAVE_UMASK 1
+
+/* Define to 1 if you have the `uname' function. */
+#define HAVE_UNAME 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unlockpt' function. */
+#define HAVE_UNLOCKPT 1
+
+/* Define if you have the function `unsetenv'. */
+#define HAVE_UNSETENV 1
+
+/* Define to 1 if you have the `unvis' function. */
+#define HAVE_UNVIS 1
+
+/* Define to 1 if you have the <userconf.h> header file. */
+/* #undef HAVE_USERCONF_H */
+
+/* Define to 1 if you have the <usersec.h> header file. */
+/* #undef HAVE_USERSEC_H */
+
+/* Define to 1 if you have the <util.h> header file. */
+/* #undef HAVE_UTIL_H */
+
+/* Define to 1 if you have the <utmpx.h> header file. */
+#define HAVE_UTMPX_H 1
+
+/* Define to 1 if you have the <utmp.h> header file. */
+/* #undef HAVE_UTMP_H */
+
+/* Define to 1 if the system has the type `u_int16_t'. */
+#define HAVE_U_INT16_T 1
+
+/* Define to 1 if the system has the type `u_int32_t'. */
+#define HAVE_U_INT32_T 1
+
+/* Define to 1 if the system has the type `u_int64_t'. */
+#define HAVE_U_INT64_T 1
+
+/* Define to 1 if the system has the type `u_int8_t'. */
+#define HAVE_U_INT8_T 1
+
+/* Define to 1 if you have the `vasnprintf' function. */
+/* #undef HAVE_VASNPRINTF */
+
+/* Define to 1 if you have the `vasprintf' function. */
+#define HAVE_VASPRINTF 1
+
+/* Define if you have the function `verr'. */
+#define HAVE_VERR 1
+
+/* Define if you have the function `verrx'. */
+#define HAVE_VERRX 1
+
+/* Define to 1 if you have the `vhangup' function. */
+/* #undef HAVE_VHANGUP */
+
+/* Define to 1 if you have the `vis' function. */
+#define HAVE_VIS 1
+
+/* Define to 1 if you have the <vis.h> header file. */
+#define HAVE_VIS_H 1
+
+/* define if you have a working vsnprintf */
+#define HAVE_VSNPRINTF 1
+
+/* Define if you have the function `vsyslog'. */
+#define HAVE_VSYSLOG 1
+
+/* Define if you have the function `vwarn'. */
+#define HAVE_VWARN 1
+
+/* Define if you have the function `vwarnx'. */
+#define HAVE_VWARNX 1
+
+/* Define if you have the function `warn'. */
+#define HAVE_WARN 1
+
+/* Define if you have the function `warnx'. */
+#define HAVE_WARNX 1
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define if you have the function `writev'. */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the <ws2tcpip.h> header file. */
+/* #undef HAVE_WS2TCPIP_H */
+
+/* define if struct winsize has ws_xpixel */
+#define HAVE_WS_XPIXEL 1
+
+/* define if struct winsize has ws_ypixel */
+#define HAVE_WS_YPIXEL 1
+
+/* Define to 1 if you have the `XauFileName' function. */
+/* #undef HAVE_XAUFILENAME */
+
+/* Define to 1 if you have the `XauReadAuth' function. */
+/* #undef HAVE_XAUREADAUTH */
+
+/* Define to 1 if you have the `XauWriteAuth' function. */
+/* #undef HAVE_XAUWRITEAUTH */
+
+/* Define to 1 if you have the `yp_get_default_domain' function. */
+#define HAVE_YP_GET_DEFAULT_DOMAIN 1
+
+/* Define to 1 if you have the `_getpty' function. */
+/* #undef HAVE__GETPTY */
+
+/* Define if you have the `_res' variable. */
+#define HAVE__RES 1
+
+/* Define to 1 if you have the `_scrsize' function. */
+/* #undef HAVE__SCRSIZE */
+
+/* define if your compiler has __attribute__ */
+#define HAVE___ATTRIBUTE__ 1
+
+/* Define if you have the `__progname' variable. */
+#define HAVE___PROGNAME 1
+
+/* have __sync_add_and_fetch */
+#if defined(__FreeBSD__) && (defined(__arm__) || defined(__mips__))
+#undef HAVE___SYNC_ADD_AND_FETCH /* Not supported on FreeBSD/arm */
+#else
+#define HAVE___SYNC_ADD_AND_FETCH 1
+#endif
+
+/* Define if you want support for weak crypto */
+#define HEIM_WEAK_CRYPTO 1
+
+/* Define if you have the hesiod package. */
+/* #undef HESIOD */
+
+/* Enable Kerberos 5 support in applications. */
+#define KRB5 1
+
+/* Define to enable kx509. */
+#define KX509 1
+
+/* path to lib */
+#define LIBDIR "/usr/lib"
+
+/* Define if you have the libedit package. */
+/* #undef LIBEDIT */
+
+/* path to libexec */
+#define LIBEXECDIR "/usr/libexec"
+
+/* Define if you have the libintl package. */
+/* #undef LIBINTL */
+
+/* path to localstate */
+#define LOCALSTATEDIR "/var/heimdal"
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* define if the system is missing a prototype for asnprintf() */
+#define NEED_ASNPRINTF_PROTO 1
+
+/* define if the system is missing a prototype for asprintf() */
+/* #undef NEED_ASPRINTF_PROTO */
+
+/* define if the system is missing a prototype for crypt() */
+/* #undef NEED_CRYPT_PROTO */
+
+/* define if the system is missing a prototype for daemon() */
+#define NEED_DAEMON_PROTO 1
+
+/* define if the system is missing a prototype for gethostname() */
+/* #undef NEED_GETHOSTNAME_PROTO */
+
+/* define if the system is missing a prototype for getusershell() */
+/* #undef NEED_GETUSERSHELL_PROTO */
+
+/* define if the system is missing a prototype for glob() */
+/* #undef NEED_GLOB_PROTO */
+
+/* define if the system is missing a prototype for hstrerror() */
+/* #undef NEED_HSTRERROR_PROTO */
+
+/* define if the system is missing a prototype for inet_aton() */
+/* #undef NEED_INET_ATON_PROTO */
+
+/* define if the system is missing a prototype for iruserok() */
+/* #undef NEED_IRUSEROK_PROTO */
+
+/* define if the system is missing a prototype for mkstemp() */
+/* #undef NEED_MKSTEMP_PROTO */
+
+/* if your qsort is not a stable sort */
+/* #undef NEED_QSORT */
+
+/* define if the system is missing a prototype for SecKeyGetCSPHandle() */
+/* #undef NEED_SECKEYGETCSPHANDLE_PROTO */
+
+/* define if the system is missing a prototype for setenv() */
+/* #undef NEED_SETENV_PROTO */
+
+/* define if the system is missing a prototype for snprintf() */
+/* #undef NEED_SNPRINTF_PROTO */
+
+/* define if the system is missing a prototype for strndup() */
+/* #undef NEED_STRNDUP_PROTO */
+
+/* define if the system is missing a prototype for strsep() */
+/* #undef NEED_STRSEP_PROTO */
+
+/* define if the system is missing a prototype for strsvisx() */
+#define NEED_STRSVISX_PROTO 1
+
+/* define if the system is missing a prototype for strsvis() */
+#define NEED_STRSVIS_PROTO 1
+
+/* define if the system is missing a prototype for strtok_r() */
+/* #undef NEED_STRTOK_R_PROTO */
+
+/* define if the system is missing a prototype for strunvis() */
+/* #undef NEED_STRUNVIS_PROTO */
+
+/* define if the system is missing a prototype for strvisx() */
+/* #undef NEED_STRVISX_PROTO */
+
+/* define if the system is missing a prototype for strvis() */
+/* #undef NEED_STRVIS_PROTO */
+
+/* define if the system is missing a prototype for svis() */
+#define NEED_SVIS_PROTO 1
+
+/* define if the system is missing a prototype for unsetenv() */
+/* #undef NEED_UNSETENV_PROTO */
+
+/* define if the system is missing a prototype for unvis() */
+/* #undef NEED_UNVIS_PROTO */
+
+/* define if the system is missing a prototype for vasnprintf() */
+#define NEED_VASNPRINTF_PROTO 1
+
+/* define if the system is missing a prototype for vasprintf() */
+/* #undef NEED_VASPRINTF_PROTO */
+
+/* define if the system is missing a prototype for vis() */
+/* #undef NEED_VIS_PROTO */
+
+/* define if the system is missing a prototype for vsnprintf() */
+/* #undef NEED_VSNPRINTF_PROTO */
+
+/* Define if you don't wan't support for AFS. */
+/* #undef NO_AFS */
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Define if you don't want to use mmap. */
+/* #undef NO_MMAP */
+
+/* Define this to enable old environment option in telnet. */
+#define OLD_ENVIRON 1
+
+/* Define if you have the openldap package. */
+/* #undef OPENLDAP */
+
+/* Define if you want support for hdb ldap module */
+/* #undef OPENLDAP_MODULE */
+
+/* define if prototype of openlog is compatible with void openlog(const char
+ *, int, int) */
+#define OPENLOG_PROTO_COMPATIBLE 1
+
+/* Define if you want OTP support in applications. */
+#define OTP 1
+
+/* Name of package */
+#define PACKAGE "heimdal"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "heimdal-bugs@h5l.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Heimdal"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Heimdal 1.5.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "heimdal"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.5.1"
+
+/* Define to enable PKINIT. */
+#define PKINIT 1
+
+/* Define if getlogin has POSIX flavour (and not BSD). */
+/* #undef POSIX_GETLOGIN */
+
+/* Define if getpwnam_r has POSIX flavour. */
+#define POSIX_GETPWNAM_R 1
+
+/* Define if you have the readline package. */
+/* #undef READLINE */
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* path to sbin */
+#define SBINDIR "/usr/sbin"
+
+/* Define if you want to use samba socket wrappers. */
+/* #undef SOCKET_WRAPPER_REPLACE */
+
+/* Define if you have the sqlite3 package. */
+/* #undef SQLITE3 */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you have streams ptys. */
+/* #undef STREAMSPTY */
+
+/* define if prototype of strerror_r is compatible with int strerror_r(int,
+ char *, size_t) */
+#define STRERROR_R_PROTO_COMPATIBLE 1
+
+/* Define if os support want to detach is daemonens. */
+#define SUPPORT_DETACH 1
+
+/* Enable use of inetd style startup. */
+#define SUPPORT_INETD 1
+
+/* path to sysconf */
+#define SYSCONFDIR "/etc"
+
+/* Define to what version of SunOS you are running. */
+/* #undef SunOS */
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Version number of package */
+#define VERSION "1.5.1"
+
+/* Define if signal handlers return void. */
+#define VOID_RETSIGTYPE 1
+
+/* define if target is big endian */
+/* #undef WORDS_BIGENDIAN */
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#define X_DISPLAY_MISSING 1
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+ `char[]'. */
+#define YYTEXT_POINTER 1
+
+/* Required for functional/sane headers on AIX */
+/* #undef _ALL_SOURCE */
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define to enable extensions on glibc-based systems such as Linux. */
+#define _GNU_SOURCE 1
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to get POSIX getpwnam_r in some systems. */
+/* #undef _POSIX_PTHREAD_SEMANTICS */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define this to what the type mode_t should be. */
+/* #undef mode_t */
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Path name delimiter */
+#define rk_PATH_DELIM '/'
+
+/* Define this to what the type sig_atomic_t should be. */
+/* #undef sig_atomic_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+#if _AIX
+/* XXX this is gross, but kills about a gazillion warnings */
+struct ether_addr;
+struct sockaddr;
+struct sockaddr_dl;
+struct sockaddr_in;
+#endif
+
+#ifdef __APPLE__
+#include <AvailabilityMacros.h>
+#endif
+
+#ifdef ROKEN_RENAME
+#include "roken_rename.h"
+#endif
+
+#ifdef VOID_RETSIGTYPE
+#define SIGRETURN(x) return
+#else
+#define SIGRETURN(x) return (RETSIGTYPE)(x)
+#endif
+
+#ifdef BROKEN_REALLOC
+#define realloc(X, Y) rk_realloc((X), (Y))
+#endif
+
+
+#ifdef ENDIANESS_IN_SYS_PARAM_H
+# include <sys/types.h>
+# include <sys/param.h>
+# if BYTE_ORDER == BIG_ENDIAN
+# define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+
+
+
+/* Set this to the default system lead string for telnetd
+ * can contain %-escapes: %s=sysname, %m=machine, %r=os-release
+ * %v=os-version, %t=tty, %h=hostname, %d=date and time
+ */
+/* #undef USE_IM */
+
+/* Used with login -p */
+/* #undef LOGIN_ARGS */
+
+/* set this to a sensible login */
+#ifndef LOGIN_PATH
+#define LOGIN_PATH BINDIR "/login"
+#endif
+
diff --git a/kerberos5/include/crypto-headers.h b/kerberos5/include/crypto-headers.h
new file mode 100644
index 0000000..dceebce
--- /dev/null
+++ b/kerberos5/include/crypto-headers.h
@@ -0,0 +1,26 @@
+/* $FreeBSD$ */
+#ifndef __crypto_headers_h__
+#define __crypto_headers_h__
+
+#include <openssl/evp.h>
+#include <openssl/des.h>
+#include <openssl/rc4.h>
+#include <openssl/rc2.h>
+#include <openssl/md4.h>
+#include <openssl/md5.h>
+#include <openssl/sha.h>
+#include <openssl/ui.h>
+#include <openssl/rand.h>
+#include <openssl/engine.h>
+#include <openssl/pkcs12.h>
+#include <openssl/pem.h>
+#include <openssl/hmac.h>
+#include <openssl/ec.h>
+#include <openssl/ecdsa.h>
+#include <openssl/ecdh.h>
+#ifndef BN_is_negative
+#define BN_set_negative(bn, flag) ((bn)->neg=(flag)?1:0)
+#define BN_is_negative(bn) ((bn)->neg != 0)
+#endif
+
+#endif /* __crypto_headers_h__ */
diff --git a/kerberos5/include/krb5-types.h b/kerberos5/include/krb5-types.h
new file mode 100644
index 0000000..32b20fa
--- /dev/null
+++ b/kerberos5/include/krb5-types.h
@@ -0,0 +1,63 @@
+/*
+ * generic krb5-types.h for cross compiling, assume system is posix/sus
+ */
+
+/* $FreeBSD$ */
+
+#ifndef __krb5_types_h__
+#define __krb5_types_h__
+
+#include <inttypes.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+typedef socklen_t krb5_socklen_t;
+#include <unistd.h>
+typedef ssize_t krb5_ssize_t;
+
+#if !defined(__has_extension)
+#define __has_extension(x) 0
+#endif
+
+#define KRB5TYPES_REQUIRE_GNUC(m,n,p) \
+ (((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + __GNUC_PATCHLEVEL__) >= \
+ (((m) * 10000) + ((n) * 100) + (p)))
+
+
+#ifndef HEIMDAL_DEPRECATED
+#if __has_extension(deprecated) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
+#define HEIMDAL_DEPRECATED __attribute__((deprecated))
+#elif defined(_MSC_VER) && (_MSC_VER>1200)
+#define HEIMDAL_DEPRECATED __declspec(deprecated)
+#else
+#define HEIMDAL_DEPRECATED
+#endif
+#endif
+
+#ifndef HEIMDAL_PRINTF_ATTRIBUTE
+#if __has_extension(format) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
+#define HEIMDAL_PRINTF_ATTRIBUTE(x) __attribute__((format x))
+#else
+#define HEIMDAL_PRINTF_ATTRIBUTE(x)
+#endif
+#endif
+
+#ifndef HEIMDAL_NORETURN_ATTRIBUTE
+#if __has_extension(noreturn) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
+#define HEIMDAL_NORETURN_ATTRIBUTE __attribute__((noreturn))
+#else
+#define HEIMDAL_NORETURN_ATTRIBUTE
+#endif
+#endif
+
+#ifndef HEIMDAL_UNUSED_ATTRIBUTE
+#if __has_extension(unused) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
+#define HEIMDAL_UNUSED_ATTRIBUTE __attribute__((unused))
+#else
+#define HEIMDAL_UNUSED_ATTRIBUTE
+#endif
+#endif
+
+typedef int krb5_socket_t;
+
+#endif /* __krb5_types_h__ */
diff --git a/kerberos5/include/version.h b/kerberos5/include/version.h
new file mode 100644
index 0000000..01d45f5
--- /dev/null
+++ b/kerberos5/include/version.h
@@ -0,0 +1,6 @@
+/* $FreeBSD$ */
+#ifndef VERSION_HIDDEN
+#define VERSION_HIDDEN
+#endif
+VERSION_HIDDEN const char *heimdal_long_version = "@(#)$Version: Heimdal 1.5.1 (FreeBSD) $";
+VERSION_HIDDEN const char *heimdal_version = "Heimdal 1.5.1";
diff --git a/kerberos5/lib/Makefile b/kerberos5/lib/Makefile
new file mode 100644
index 0000000..d1d44e0
--- /dev/null
+++ b/kerberos5/lib/Makefile
@@ -0,0 +1,8 @@
+
+# $FreeBSD$
+
+SUBDIR= libasn1 libgssapi_krb5 libgssapi_ntlm libgssapi_spnego libhdb \
+ libheimntlm libhx509 libkadm5clnt libkadm5srv libkafs5 libkrb5 \
+ libroken libsl libvers libkdc libwind libheimsqlite libheimbase libheimipcc libheimipcs
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/lib/Makefile.inc b/kerberos5/lib/Makefile.inc
new file mode 100644
index 0000000..264328e
--- /dev/null
+++ b/kerberos5/lib/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+SHLIB_MAJOR?= 11
+
+.include "../Makefile.inc"
diff --git a/kerberos5/lib/libasn1/Makefile b/kerberos5/lib/libasn1/Makefile
new file mode 100644
index 0000000..46bff18
--- /dev/null
+++ b/kerberos5/lib/libasn1/Makefile
@@ -0,0 +1,117 @@
+# $FreeBSD$
+
+LIB= asn1
+LDFLAGS= -Wl,--no-undefined
+INCS= asn1_err.h asn1-common.h heim_asn1.h der.h der-protos.h der-private.h
+LDADD= -lcom_err -lroken
+DPADD= ${LIBCOM_ERR} ${LIBROKEN}
+VERSION_MAP= ${KRB5DIR}/lib/asn1/version-script.map
+
+SRCS= asn1_err.c \
+ asn1_err.h \
+ der.c \
+ der_copy.c \
+ der_cmp.c \
+ der_free.c \
+ der_format.c \
+ der_get.c \
+ der_length.c \
+ der_put.c \
+ extra.c \
+ template.c \
+ timegm.c \
+ ${GEN:S/.x$/.c/:S/.hx$/.h/}
+
+CFLAGS+=-I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken -I.
+
+GEN_RFC2459= asn1_rfc2459_asn1.x rfc2459_asn1.hx rfc2459_asn1-priv.hx
+GEN_CMS= asn1_cms_asn1.x cms_asn1.hx cms_asn1-priv.hx
+GEN_K5= asn1_krb5_asn1.x krb5_asn1.hx krb5_asn1-priv.hx
+GEN_PKINIT= asn1_pkinit_asn1.x pkinit_asn1.hx pkinit_asn1-priv.hx
+GEN_PKCS8= asn1_pkcs8_asn1.x pkcs8_asn1.hx pkcs8_asn1-priv.hx
+GEN_PKCS9= asn1_pkcs9_asn1.x pkcs9_asn1.hx pkcs9_asn1-priv.hx
+GEN_PKCS12= asn1_pkcs12_asn1.x pkcs12_asn1.hx pkcs12_asn1-priv.hx
+GEN_DIGEST= asn1_digest_asn1.x digest_asn1.hx digest_asn1-priv.hx
+GEN_KX509= asn1_kx509_asn1.x kx509_asn1.hx kx509_asn1-priv.hx
+
+GEN+= ${GEN_RFC2459}
+GEN+= ${GEN_CMS}
+GEN+= ${GEN_K5}
+GEN+= ${GEN_PKINIT}
+GEN+= ${GEN_PKCS8}
+GEN+= ${GEN_PKCS9}
+GEN+= ${GEN_PKCS12}
+GEN+= ${GEN_DIGEST}
+GEN+= ${GEN_KX509}
+
+CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} *_asn1_files
+
+INCS+= krb5_asn1.h \
+ pkinit_asn1.h \
+ cms_asn1.h \
+ rfc2459_asn1.h \
+ pkcs8_asn1.h \
+ pkcs9_asn1.h \
+ pkcs12_asn1.h \
+ digest_asn1.h \
+ kx509_asn1.h
+
+ASN1_COMPILE= asn1_compile
+
+${GEN_CMS}: cms.asn1 cms.opt
+ ${ASN1_COMPILE} --one-code-file \
+ --option-file=${.ALLSRC:M*.opt} ${.ALLSRC:M*.asn1} cms_asn1
+
+${GEN_RFC2459}: rfc2459.asn1
+ ${ASN1_COMPILE} \
+ --one-code-file \
+ --preserve-binary=TBSCertificate \
+ --preserve-binary=TBSCRLCertList \
+ --preserve-binary=Name \
+ --sequence=GeneralNames \
+ --sequence=Extensions \
+ --sequence=CRLDistributionPoints ${.ALLSRC:M*.asn1} rfc2459_asn1
+
+${GEN_K5}: krb5.asn1 krb5.opt
+ ${ASN1_COMPILE} \
+ --one-code-file \
+ --option-file=${.ALLSRC:M*.opt} \
+ ${.ALLSRC:M*.asn1} krb5_asn1
+
+${GEN_PKINIT}: pkinit.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} pkinit_asn1
+
+${GEN_PKCS8}: pkcs8.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} pkcs8_asn1
+
+${GEN_PKCS9}: pkcs9.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} pkcs9_asn1
+
+${GEN_PKCS12}: pkcs12.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} pkcs12_asn1
+
+${GEN_DIGEST}: digest.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} digest_asn1
+
+${GEN_KX509}: kx509.asn1
+ ${ASN1_COMPILE} --one-code-file \
+ ${.ALLSRC:M*.asn1} kx509_asn1
+
+.SUFFIXES: .h .c .x .hx
+
+.x.c:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.hx.h:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .x .hx
+
+.PATH: ${KRB5DIR}/lib/asn1
diff --git a/kerberos5/lib/libgssapi_krb5/Makefile b/kerberos5/lib/libgssapi_krb5/Makefile
new file mode 100644
index 0000000..95a8f20
--- /dev/null
+++ b/kerberos5/lib/libgssapi_krb5/Makefile
@@ -0,0 +1,89 @@
+# $FreeBSD$
+
+LIB= gssapi_krb5
+LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDADD= -lgssapi -lkrb5 -lhx509 -lcrypto -lroken -lasn1 -lcom_err -lcrypt
+DPADD= ${LIBGSSAPI} ${LIBKRB5} ${LIBHX509} ${LIBCRYPTO} ${LIBROKEN} ${LIBASN1} \
+ ${LIBCOM_ERR} ${LIBCRYPT}
+SHLIB_MAJOR= 10
+
+INCS= ${KRB5DIR}/lib/gssapi/gssapi/gssapi_krb5.h
+INCSDIR= ${INCLUDEDIR}/gssapi
+
+SRCS= 8003.c \
+ accept_sec_context.c \
+ acquire_cred.c \
+ add_cred.c \
+ address_to_krb5addr.c \
+ aeap.c \
+ arcfour.c \
+ authorize_localname.c \
+ canonicalize_name.c \
+ ccache_name.c \
+ cfx.c \
+ compare_name.c \
+ compat.c \
+ context_time.c \
+ copy_ccache.c \
+ creds.c \
+ decapsulate.c \
+ delete_sec_context.c \
+ display_name.c \
+ display_status.c \
+ duplicate_name.c \
+ encapsulate.c \
+ export_name.c \
+ export_sec_context.c \
+ external.c \
+ get_mic.c \
+ gkrb5_err.c \
+ gkrb5_err.h \
+ gsskrb5-private.h \
+ gsskrb5_locl.h \
+ import_name.c \
+ import_sec_context.c \
+ indicate_mechs.c \
+ init.c \
+ init_sec_context.c \
+ inquire_context.c \
+ inquire_cred.c \
+ inquire_cred_by_mech.c \
+ inquire_cred_by_oid.c \
+ inquire_mechs_for_name.c \
+ inquire_names_for_mech.c \
+ inquire_sec_context_by_oid.c \
+ pname_to_uid.c \
+ prefix.c \
+ prf.c \
+ process_context_token.c \
+ release_buffer.c \
+ release_cred.c \
+ release_name.c \
+ sequence.c \
+ set_cred_option.c \
+ set_sec_context_option.c \
+ store_cred.c \
+ ticket_flags.c \
+ unwrap.c \
+ verify_mic.c \
+ wrap.c \
+ gss_krb5.c \
+ gss_oid.c
+
+#SRCS+= gss_add_oid_set_member.c \
+# gss_create_empty_oid_set.c \
+# gss_release_buffer.c \
+# gss_release_oid_set.c \
+# gss_test_oid_set_member.c \
+# gss_utils.c
+
+CFLAGS+=-I${KRB5DIR}/lib/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/krb5
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/krb5
+CFLAGS+=-I${KRB5DIR}/lib/asn1
+CFLAGS+=-I${KRB5DIR}/lib/roken -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/gssapi/krb5 ${.CURDIR}/../../../lib/libgssapi
diff --git a/kerberos5/lib/libgssapi_krb5/gss_krb5.c b/kerberos5/lib/libgssapi_krb5/gss_krb5.c
new file mode 100644
index 0000000..36c69cb
--- /dev/null
+++ b/kerberos5/lib/libgssapi_krb5/gss_krb5.c
@@ -0,0 +1,832 @@
+/*-
+ * Copyright (c) 2005 Doug Rabson
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * $FreeBSD$
+ */
+
+#include <gssapi/gssapi.h>
+#include <gssapi/gssapi_krb5.h>
+
+/* RCSID("$Id: gss_krb5.c 21889 2007-08-09 07:43:24Z lha $"); */
+
+#include <krb5.h>
+#include <roken.h>
+#include <der.h>
+
+OM_uint32
+gss_krb5_copy_ccache(OM_uint32 *minor_status,
+ gss_cred_id_t cred,
+ krb5_ccache out)
+{
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+ krb5_context context;
+ krb5_error_code kret;
+ krb5_ccache id;
+ OM_uint32 ret;
+ char *str;
+
+ ret = gss_inquire_cred_by_oid(minor_status,
+ cred,
+ GSS_KRB5_COPY_CCACHE_X,
+ &data_set);
+ if (ret)
+ return ret;
+
+ if (data_set == GSS_C_NO_BUFFER_SET || data_set->count != 1) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ kret = krb5_init_context(&context);
+ if (kret) {
+ *minor_status = kret;
+ gss_release_buffer_set(minor_status, &data_set);
+ return GSS_S_FAILURE;
+ }
+
+ kret = asprintf(&str, "%.*s", (int)data_set->elements[0].length,
+ (char *)data_set->elements[0].value);
+ gss_release_buffer_set(minor_status, &data_set);
+ if (kret == -1) {
+ *minor_status = ENOMEM;
+ return GSS_S_FAILURE;
+ }
+
+ kret = krb5_cc_resolve(context, str, &id);
+ free(str);
+ if (kret) {
+ *minor_status = kret;
+ return GSS_S_FAILURE;
+ }
+
+ kret = krb5_cc_copy_cache(context, id, out);
+ krb5_cc_close(context, id);
+ krb5_free_context(context);
+ if (kret) {
+ *minor_status = kret;
+ return GSS_S_FAILURE;
+ }
+
+ return ret;
+}
+
+OM_uint32
+gss_krb5_import_cred(OM_uint32 *minor_status,
+ krb5_ccache id,
+ krb5_principal keytab_principal,
+ krb5_keytab keytab,
+ gss_cred_id_t *cred)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 major_status;
+ krb5_context context;
+ krb5_error_code ret;
+ krb5_storage *sp;
+ krb5_data data;
+ char *str;
+
+ *cred = GSS_C_NO_CREDENTIAL;
+
+ ret = krb5_init_context(&context);
+ if (ret) {
+ *minor_status = ret;
+ return GSS_S_FAILURE;
+ }
+
+ sp = krb5_storage_emem();
+ if (sp == NULL) {
+ *minor_status = ENOMEM;
+ major_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ if (id) {
+ ret = krb5_cc_get_full_name(context, id, &str);
+ if (ret == 0) {
+ ret = krb5_store_string(sp, str);
+ free(str);
+ }
+ } else
+ ret = krb5_store_string(sp, "");
+ if (ret) {
+ *minor_status = ret;
+ major_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ if (keytab_principal) {
+ ret = krb5_unparse_name(context, keytab_principal, &str);
+ if (ret == 0) {
+ ret = krb5_store_string(sp, str);
+ free(str);
+ }
+ } else
+ krb5_store_string(sp, "");
+ if (ret) {
+ *minor_status = ret;
+ major_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+
+ if (keytab) {
+ ret = krb5_kt_get_full_name(context, keytab, &str);
+ if (ret == 0) {
+ ret = krb5_store_string(sp, str);
+ free(str);
+ }
+ } else
+ krb5_store_string(sp, "");
+ if (ret) {
+ *minor_status = ret;
+ major_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ ret = krb5_storage_to_data(sp, &data);
+ if (ret) {
+ *minor_status = ret;
+ major_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ buffer.value = data.data;
+ buffer.length = data.length;
+
+ major_status = gss_set_cred_option(minor_status,
+ cred,
+ GSS_KRB5_IMPORT_CRED_X,
+ &buffer);
+ krb5_data_free(&data);
+out:
+ if (sp)
+ krb5_storage_free(sp);
+ krb5_free_context(context);
+ return major_status;
+}
+
+OM_uint32
+gsskrb5_register_acceptor_identity(const char *identity)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 junk;
+
+ buffer.value = rk_UNCONST(identity);
+ buffer.length = strlen(identity);
+
+ gss_set_sec_context_option(&junk, NULL,
+ GSS_KRB5_REGISTER_ACCEPTOR_IDENTITY_X, &buffer);
+
+ return (GSS_S_COMPLETE);
+}
+
+OM_uint32
+gsskrb5_set_dns_canonicalize(int flag)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 junk;
+ char b = (flag != 0);
+
+ buffer.value = &b;
+ buffer.length = sizeof(b);
+
+ gss_set_sec_context_option(&junk, NULL,
+ GSS_KRB5_SET_DNS_CANONICALIZE_X, &buffer);
+
+ return (GSS_S_COMPLETE);
+}
+
+
+
+static krb5_error_code
+set_key(krb5_keyblock *keyblock, gss_krb5_lucid_key_t *key)
+{
+ key->type = keyblock->keytype;
+ key->length = keyblock->keyvalue.length;
+ key->data = malloc(key->length);
+ if (key->data == NULL && key->length != 0)
+ return ENOMEM;
+ memcpy(key->data, keyblock->keyvalue.data, key->length);
+ return 0;
+}
+
+static void
+free_key(gss_krb5_lucid_key_t *key)
+{
+ memset(key->data, 0, key->length);
+ free(key->data);
+ memset(key, 0, sizeof(*key));
+}
+
+OM_uint32
+gss_krb5_export_lucid_sec_context(OM_uint32 *minor_status,
+ gss_ctx_id_t *context_handle,
+ OM_uint32 version,
+ void **rctx)
+{
+ krb5_context context = NULL;
+ krb5_error_code ret;
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+ OM_uint32 major_status;
+ gss_krb5_lucid_context_v1_t *ctx = NULL;
+ krb5_storage *sp = NULL;
+ uint32_t num;
+
+ if (context_handle == NULL
+ || *context_handle == GSS_C_NO_CONTEXT
+ || version != 1)
+ {
+ ret = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ major_status =
+ gss_inquire_sec_context_by_oid (minor_status,
+ *context_handle,
+ GSS_KRB5_EXPORT_LUCID_CONTEXT_V1_X,
+ &data_set);
+ if (major_status)
+ return major_status;
+
+ if (data_set == GSS_C_NO_BUFFER_SET || data_set->count != 1) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ ret = krb5_init_context(&context);
+ if (ret)
+ goto out;
+
+ ctx = calloc(1, sizeof(*ctx));
+ if (ctx == NULL) {
+ ret = ENOMEM;
+ goto out;
+ }
+
+ sp = krb5_storage_from_mem(data_set->elements[0].value,
+ data_set->elements[0].length);
+ if (sp == NULL) {
+ ret = ENOMEM;
+ goto out;
+ }
+
+ ret = krb5_ret_uint32(sp, &num);
+ if (ret) goto out;
+ if (num != 1) {
+ ret = EINVAL;
+ goto out;
+ }
+ ctx->version = 1;
+ /* initiator */
+ ret = krb5_ret_uint32(sp, &ctx->initiate);
+ if (ret) goto out;
+ /* endtime */
+ ret = krb5_ret_uint32(sp, &ctx->endtime);
+ if (ret) goto out;
+ /* send_seq */
+ ret = krb5_ret_uint32(sp, &num);
+ if (ret) goto out;
+ ctx->send_seq = ((uint64_t)num) << 32;
+ ret = krb5_ret_uint32(sp, &num);
+ if (ret) goto out;
+ ctx->send_seq |= num;
+ /* recv_seq */
+ ret = krb5_ret_uint32(sp, &num);
+ if (ret) goto out;
+ ctx->recv_seq = ((uint64_t)num) << 32;
+ ret = krb5_ret_uint32(sp, &num);
+ if (ret) goto out;
+ ctx->recv_seq |= num;
+ /* protocol */
+ ret = krb5_ret_uint32(sp, &ctx->protocol);
+ if (ret) goto out;
+ if (ctx->protocol == 0) {
+ krb5_keyblock key;
+
+ /* sign_alg */
+ ret = krb5_ret_uint32(sp, &ctx->rfc1964_kd.sign_alg);
+ if (ret) goto out;
+ /* seal_alg */
+ ret = krb5_ret_uint32(sp, &ctx->rfc1964_kd.seal_alg);
+ if (ret) goto out;
+ /* ctx_key */
+ ret = krb5_ret_keyblock(sp, &key);
+ if (ret) goto out;
+ ret = set_key(&key, &ctx->rfc1964_kd.ctx_key);
+ krb5_free_keyblock_contents(context, &key);
+ if (ret) goto out;
+ } else if (ctx->protocol == 1) {
+ krb5_keyblock key;
+
+ /* acceptor_subkey */
+ ret = krb5_ret_uint32(sp, &ctx->cfx_kd.have_acceptor_subkey);
+ if (ret) goto out;
+ /* ctx_key */
+ ret = krb5_ret_keyblock(sp, &key);
+ if (ret) goto out;
+ ret = set_key(&key, &ctx->cfx_kd.ctx_key);
+ krb5_free_keyblock_contents(context, &key);
+ if (ret) goto out;
+ /* acceptor_subkey */
+ if (ctx->cfx_kd.have_acceptor_subkey) {
+ ret = krb5_ret_keyblock(sp, &key);
+ if (ret) goto out;
+ ret = set_key(&key, &ctx->cfx_kd.acceptor_subkey);
+ krb5_free_keyblock_contents(context, &key);
+ if (ret) goto out;
+ }
+ } else {
+ ret = EINVAL;
+ goto out;
+ }
+
+ *rctx = ctx;
+
+out:
+ gss_release_buffer_set(minor_status, &data_set);
+ if (sp)
+ krb5_storage_free(sp);
+ if (context)
+ krb5_free_context(context);
+
+ if (ret) {
+ if (ctx)
+ gss_krb5_free_lucid_sec_context(NULL, ctx);
+
+ *minor_status = ret;
+ return GSS_S_FAILURE;
+ }
+ *minor_status = 0;
+ return GSS_S_COMPLETE;
+}
+
+OM_uint32
+gss_krb5_free_lucid_sec_context(OM_uint32 *minor_status, void *c)
+{
+ gss_krb5_lucid_context_v1_t *ctx = c;
+
+ if (ctx->version != 1) {
+ if (minor_status)
+ *minor_status = 0;
+ return GSS_S_FAILURE;
+ }
+
+ if (ctx->protocol == 0) {
+ free_key(&ctx->rfc1964_kd.ctx_key);
+ } else if (ctx->protocol == 1) {
+ free_key(&ctx->cfx_kd.ctx_key);
+ if (ctx->cfx_kd.have_acceptor_subkey)
+ free_key(&ctx->cfx_kd.acceptor_subkey);
+ }
+ free(ctx);
+ if (minor_status)
+ *minor_status = 0;
+ return GSS_S_COMPLETE;
+}
+
+/*
+ *
+ */
+
+OM_uint32
+gss_krb5_set_allowable_enctypes(OM_uint32 *minor_status,
+ gss_cred_id_t cred,
+ OM_uint32 num_enctypes,
+ int32_t *enctypes)
+{
+ krb5_error_code ret;
+ OM_uint32 maj_status;
+ gss_buffer_desc buffer;
+ krb5_storage *sp;
+ krb5_data data;
+ int i;
+
+ sp = krb5_storage_emem();
+ if (sp == NULL) {
+ *minor_status = ENOMEM;
+ maj_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ for (i = 0; i < num_enctypes; i++) {
+ ret = krb5_store_int32(sp, enctypes[i]);
+ if (ret) {
+ *minor_status = ret;
+ maj_status = GSS_S_FAILURE;
+ goto out;
+ }
+ }
+
+ ret = krb5_storage_to_data(sp, &data);
+ if (ret) {
+ *minor_status = ret;
+ maj_status = GSS_S_FAILURE;
+ goto out;
+ }
+
+ buffer.value = data.data;
+ buffer.length = data.length;
+
+ maj_status = gss_set_cred_option(minor_status,
+ &cred,
+ GSS_KRB5_SET_ALLOWABLE_ENCTYPES_X,
+ &buffer);
+ krb5_data_free(&data);
+out:
+ if (sp)
+ krb5_storage_free(sp);
+ return maj_status;
+}
+
+/*
+ *
+ */
+
+OM_uint32
+gsskrb5_set_send_to_kdc(struct gsskrb5_send_to_kdc *c)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 junk;
+
+ if (c) {
+ buffer.value = c;
+ buffer.length = sizeof(*c);
+ } else {
+ buffer.value = NULL;
+ buffer.length = 0;
+ }
+
+ gss_set_sec_context_option(&junk, NULL,
+ GSS_KRB5_SEND_TO_KDC_X, &buffer);
+
+ return (GSS_S_COMPLETE);
+}
+
+/*
+ *
+ */
+
+OM_uint32
+gss_krb5_ccache_name(OM_uint32 *minor_status,
+ const char *name,
+ const char **out_name)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 junk;
+
+ if (out_name)
+ *out_name = NULL;
+
+ buffer.value = rk_UNCONST(name);
+ buffer.length = strlen(name);
+
+ gss_set_sec_context_option(&junk, NULL,
+ GSS_KRB5_CCACHE_NAME_X, &buffer);
+
+ return (GSS_S_COMPLETE);
+}
+
+
+/*
+ *
+ */
+
+OM_uint32
+gsskrb5_extract_authtime_from_sec_context(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ time_t *authtime)
+{
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+ OM_uint32 maj_stat;
+
+ if (context_handle == GSS_C_NO_CONTEXT) {
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ maj_stat =
+ gss_inquire_sec_context_by_oid (minor_status,
+ context_handle,
+ GSS_KRB5_GET_AUTHTIME_X,
+ &data_set);
+ if (maj_stat)
+ return maj_stat;
+
+ if (data_set == GSS_C_NO_BUFFER_SET) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ if (data_set->count != 1) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ if (data_set->elements[0].length != 4) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ {
+ unsigned char *buf = data_set->elements[0].value;
+ *authtime = (buf[3] <<24) | (buf[2] << 16) |
+ (buf[1] << 8) | (buf[0] << 0);
+ }
+
+ gss_release_buffer_set(minor_status, &data_set);
+
+ *minor_status = 0;
+ return GSS_S_COMPLETE;
+}
+
+/*
+ *
+ */
+
+OM_uint32
+gsskrb5_extract_authz_data_from_sec_context(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ int ad_type,
+ gss_buffer_t ad_data)
+{
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+ OM_uint32 maj_stat;
+ gss_OID_desc oid_flat;
+ heim_oid baseoid, oid;
+ size_t size;
+
+ if (context_handle == GSS_C_NO_CONTEXT) {
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ /* All this to append an integer to an oid... */
+
+ if (der_get_oid(GSS_KRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT_X->elements,
+ GSS_KRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT_X->length,
+ &baseoid, NULL) != 0) {
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ oid.length = baseoid.length + 1;
+ oid.components = calloc(oid.length, sizeof(*oid.components));
+ if (oid.components == NULL) {
+ der_free_oid(&baseoid);
+
+ *minor_status = ENOMEM;
+ return GSS_S_FAILURE;
+ }
+
+ memcpy(oid.components, baseoid.components,
+ baseoid.length * sizeof(*baseoid.components));
+
+ der_free_oid(&baseoid);
+
+ oid.components[oid.length - 1] = ad_type;
+
+ oid_flat.length = der_length_oid(&oid);
+ oid_flat.elements = malloc(oid_flat.length);
+ if (oid_flat.elements == NULL) {
+ free(oid.components);
+ *minor_status = ENOMEM;
+ return GSS_S_FAILURE;
+ }
+
+ if (der_put_oid((unsigned char *)oid_flat.elements + oid_flat.length - 1,
+ oid_flat.length, &oid, &size) != 0) {
+ free(oid.components);
+ free(oid_flat.elements);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+ if (oid_flat.length != size)
+ abort();
+
+ free(oid.components);
+
+ /* FINALLY, we have the OID */
+
+ maj_stat = gss_inquire_sec_context_by_oid (minor_status,
+ context_handle,
+ &oid_flat,
+ &data_set);
+
+ free(oid_flat.elements);
+
+ if (maj_stat)
+ return maj_stat;
+
+ if (data_set == GSS_C_NO_BUFFER_SET || data_set->count != 1) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ ad_data->value = malloc(data_set->elements[0].length);
+ if (ad_data->value == NULL) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = ENOMEM;
+ return GSS_S_FAILURE;
+ }
+
+ ad_data->length = data_set->elements[0].length;
+ memcpy(ad_data->value, data_set->elements[0].value, ad_data->length);
+ gss_release_buffer_set(minor_status, &data_set);
+
+ *minor_status = 0;
+ return GSS_S_COMPLETE;
+}
+
+/*
+ *
+ */
+
+static OM_uint32
+gsskrb5_extract_key(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ const gss_OID oid,
+ krb5_keyblock **keyblock)
+{
+ krb5_error_code ret;
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+ OM_uint32 major_status;
+ krb5_context context = NULL;
+ krb5_storage *sp = NULL;
+
+ if (context_handle == GSS_C_NO_CONTEXT) {
+ ret = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ ret = krb5_init_context(&context);
+ if(ret) {
+ *minor_status = ret;
+ return GSS_S_FAILURE;
+ }
+
+ major_status =
+ gss_inquire_sec_context_by_oid (minor_status,
+ context_handle,
+ oid,
+ &data_set);
+ if (major_status)
+ return major_status;
+
+ if (data_set == GSS_C_NO_BUFFER_SET || data_set->count != 1) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ sp = krb5_storage_from_mem(data_set->elements[0].value,
+ data_set->elements[0].length);
+ if (sp == NULL) {
+ ret = ENOMEM;
+ goto out;
+ }
+
+ *keyblock = calloc(1, sizeof(**keyblock));
+ if (keyblock == NULL) {
+ ret = ENOMEM;
+ goto out;
+ }
+
+ ret = krb5_ret_keyblock(sp, *keyblock);
+
+out:
+ gss_release_buffer_set(minor_status, &data_set);
+ if (sp)
+ krb5_storage_free(sp);
+ if (ret && keyblock) {
+ krb5_free_keyblock(context, *keyblock);
+ *keyblock = NULL;
+ }
+ if (context)
+ krb5_free_context(context);
+
+ *minor_status = ret;
+ if (ret)
+ return GSS_S_FAILURE;
+
+ return GSS_S_COMPLETE;
+}
+
+/*
+ *
+ */
+
+OM_uint32
+gsskrb5_extract_service_keyblock(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ krb5_keyblock **keyblock)
+{
+ return gsskrb5_extract_key(minor_status,
+ context_handle,
+ GSS_KRB5_GET_SERVICE_KEYBLOCK_X,
+ keyblock);
+}
+
+OM_uint32
+gsskrb5_get_initiator_subkey(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ krb5_keyblock **keyblock)
+{
+ return gsskrb5_extract_key(minor_status,
+ context_handle,
+ GSS_KRB5_GET_INITIATOR_SUBKEY_X,
+ keyblock);
+}
+
+OM_uint32
+gsskrb5_get_subkey(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ krb5_keyblock **keyblock)
+{
+ return gsskrb5_extract_key(minor_status,
+ context_handle,
+ GSS_KRB5_GET_SUBKEY_X,
+ keyblock);
+}
+
+OM_uint32
+gsskrb5_set_default_realm(const char *realm)
+{
+ gss_buffer_desc buffer;
+ OM_uint32 junk;
+
+ buffer.value = rk_UNCONST(realm);
+ buffer.length = strlen(realm);
+
+ gss_set_sec_context_option(&junk, NULL,
+ GSS_KRB5_SET_DEFAULT_REALM_X, &buffer);
+
+ return (GSS_S_COMPLETE);
+}
+
+OM_uint32
+gss_krb5_get_tkt_flags(OM_uint32 *minor_status,
+ gss_ctx_id_t context_handle,
+ OM_uint32 *tkt_flags)
+{
+
+ OM_uint32 major_status;
+ gss_buffer_set_t data_set = GSS_C_NO_BUFFER_SET;
+
+ if (context_handle == GSS_C_NO_CONTEXT) {
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ major_status =
+ gss_inquire_sec_context_by_oid (minor_status,
+ context_handle,
+ GSS_KRB5_GET_TKT_FLAGS_X,
+ &data_set);
+ if (major_status)
+ return major_status;
+
+ if (data_set == GSS_C_NO_BUFFER_SET ||
+ data_set->count != 1 ||
+ data_set->elements[0].length < 4) {
+ gss_release_buffer_set(minor_status, &data_set);
+ *minor_status = EINVAL;
+ return GSS_S_FAILURE;
+ }
+
+ {
+ const u_char *p = data_set->elements[0].value;
+ *tkt_flags = (p[0] << 0) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
+ }
+
+ gss_release_buffer_set(minor_status, &data_set);
+ return GSS_S_COMPLETE;
+}
+
diff --git a/kerberos5/lib/libgssapi_krb5/gss_oid.c b/kerberos5/lib/libgssapi_krb5/gss_oid.c
new file mode 100644
index 0000000..d359afa
--- /dev/null
+++ b/kerberos5/lib/libgssapi_krb5/gss_oid.c
@@ -0,0 +1,227 @@
+/* Generated file */
+/* $FreeBSD$ */
+#include <gssapi/gssapi.h>
+#include <roken.h>
+#include "config.h"
+
+/* GSS_KRB5_COPY_CCACHE_X - 1.2.752.43.13.1 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_copy_ccache_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x01") };
+
+/* GSS_KRB5_GET_TKT_FLAGS_X - 1.2.752.43.13.2 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_tkt_flags_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x02") };
+
+/* GSS_KRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT_X - 1.2.752.43.13.3 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_extract_authz_data_from_sec_context_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x03") };
+
+/* GSS_KRB5_COMPAT_DES3_MIC_X - 1.2.752.43.13.4 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_compat_des3_mic_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x04") };
+
+/* GSS_KRB5_REGISTER_ACCEPTOR_IDENTITY_X - 1.2.752.43.13.5 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_register_acceptor_identity_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x05") };
+
+/* GSS_KRB5_EXPORT_LUCID_CONTEXT_X - 1.2.752.43.13.6 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_export_lucid_context_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x06") };
+
+/* GSS_KRB5_EXPORT_LUCID_CONTEXT_V1_X - 1.2.752.43.13.6.1 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_export_lucid_context_v1_x_oid_desc = { 7, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x06\x01") };
+
+/* GSS_KRB5_SET_DNS_CANONICALIZE_X - 1.2.752.43.13.7 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_set_dns_canonicalize_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x07") };
+
+/* GSS_KRB5_GET_SUBKEY_X - 1.2.752.43.13.8 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_subkey_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x08") };
+
+/* GSS_KRB5_GET_INITIATOR_SUBKEY_X - 1.2.752.43.13.9 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_initiator_subkey_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x09") };
+
+/* GSS_KRB5_GET_ACCEPTOR_SUBKEY_X - 1.2.752.43.13.10 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_acceptor_subkey_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0a") };
+
+/* GSS_KRB5_SEND_TO_KDC_X - 1.2.752.43.13.11 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_send_to_kdc_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0b") };
+
+/* GSS_KRB5_GET_AUTHTIME_X - 1.2.752.43.13.12 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_authtime_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0c") };
+
+/* GSS_KRB5_GET_SERVICE_KEYBLOCK_X - 1.2.752.43.13.13 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_service_keyblock_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0d") };
+
+/* GSS_KRB5_SET_ALLOWABLE_ENCTYPES_X - 1.2.752.43.13.14 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_set_allowable_enctypes_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0e") };
+
+/* GSS_KRB5_SET_DEFAULT_REALM_X - 1.2.752.43.13.15 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_set_default_realm_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x0f") };
+
+/* GSS_KRB5_CCACHE_NAME_X - 1.2.752.43.13.16 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_ccache_name_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x10") };
+
+/* GSS_KRB5_SET_TIME_OFFSET_X - 1.2.752.43.13.17 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_set_time_offset_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x11") };
+
+/* GSS_KRB5_GET_TIME_OFFSET_X - 1.2.752.43.13.18 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_get_time_offset_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x12") };
+
+/* GSS_KRB5_PLUGIN_REGISTER_X - 1.2.752.43.13.19 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_plugin_register_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x13") };
+
+/* GSS_NTLM_GET_SESSION_KEY_X - 1.2.752.43.13.20 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_ntlm_get_session_key_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x14") };
+
+/* GSS_C_NT_NTLM - 1.2.752.43.13.21 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_ntlm_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x15") };
+
+/* GSS_C_NT_DN - 1.2.752.43.13.22 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_nt_dn_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x16") };
+
+/* GSS_KRB5_NT_PRINCIPAL_NAME_REFERRAL - 1.2.752.43.13.23 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_nt_principal_name_referral_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x17") };
+
+/* GSS_C_NTLM_AVGUEST - 1.2.752.43.13.24 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_avguest_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x18") };
+
+/* GSS_C_NTLM_V1 - 1.2.752.43.13.25 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_v1_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x19") };
+
+/* GSS_C_NTLM_V2 - 1.2.752.43.13.26 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_v2_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x1a") };
+
+/* GSS_C_NTLM_SESSION_KEY - 1.2.752.43.13.27 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_session_key_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x1b") };
+
+/* GSS_C_NTLM_FORCE_V1 - 1.2.752.43.13.28 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ntlm_force_v1_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x1c") };
+
+/* GSS_KRB5_CRED_NO_CI_FLAGS_X - 1.2.752.43.13.29 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_cred_no_ci_flags_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x1d") };
+
+/* GSS_KRB5_IMPORT_CRED_X - 1.2.752.43.13.30 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_import_cred_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x1e") };
+
+/* GSS_C_MA_SASL_MECH_NAME - 1.2.752.43.13.100 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_sasl_mech_name_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x64") };
+
+/* GSS_C_MA_MECH_NAME - 1.2.752.43.13.101 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_name_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x65") };
+
+/* GSS_C_MA_MECH_DESCRIPTION - 1.2.752.43.13.102 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_description_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x66") };
+
+/* GSS_C_CRED_PASSWORD - 1.2.752.43.13.200 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_password_oid_desc = { 7, "\x2a\x85\x70\x2b\x0d\x81\x48" };
+
+/* GSS_C_CRED_CERTIFICATE - 1.2.752.43.13.201 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_cred_certificate_oid_desc = { 7, "\x2a\x85\x70\x2b\x0d\x81\x49" };
+
+/* GSS_SASL_DIGEST_MD5_MECHANISM - 1.2.752.43.14.1 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_sasl_digest_md5_mechanism_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0e\x01") };
+
+/* GSS_NETLOGON_MECHANISM - 1.2.752.43.14.2 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_netlogon_mechanism_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0e\x02") };
+
+/* GSS_NETLOGON_SET_SESSION_KEY_X - 1.2.752.43.14.3 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_netlogon_set_session_key_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0e\x03") };
+
+/* GSS_NETLOGON_SET_SIGN_ALGORITHM_X - 1.2.752.43.14.4 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_netlogon_set_sign_algorithm_x_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0e\x04") };
+
+/* GSS_NETLOGON_NT_NETBIOS_DNS_NAME - 1.2.752.43.14.5 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_netlogon_nt_netbios_dns_name_oid_desc = { 6, rk_UNCONST("\x2a\x85\x70\x2b\x0e\x05") };
+
+/* GSS_C_INQ_WIN2K_PAC_X - 1.2.752.43.13.3.128 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_inq_win2k_pac_x_oid_desc = { 8, rk_UNCONST("\x2a\x85\x70\x2b\x0d\x03\x81\x00") };
+
+/* GSS_C_INQ_SSPI_SESSION_KEY - 1.2.840.113554.1.2.2.5.5 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_inq_sspi_session_key_oid_desc = { 11, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x05\x05") };
+
+/* GSS_KRB5_MECHANISM - 1.2.840.113554.1.2.2 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_krb5_mechanism_oid_desc = { 9, rk_UNCONST("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02") };
+
+/* GSS_NTLM_MECHANISM - 1.3.6.1.4.1.311.2.2.10 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_ntlm_mechanism_oid_desc = { 10, rk_UNCONST("\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a") };
+
+/* GSS_SPNEGO_MECHANISM - 1.3.6.1.5.5.2 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_spnego_mechanism_oid_desc = { 6, rk_UNCONST("\x2b\x06\x01\x05\x05\x02") };
+
+/* GSS_C_PEER_HAS_UPDATED_SPNEGO - 1.3.6.1.4.1.9513.19.5 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_peer_has_updated_spnego_oid_desc = { 9, rk_UNCONST("\x2b\x06\x01\x04\x01\xca\x29\x13\x05") };
+
+/* GSS_C_MA_MECH_CONCRETE - 1.3.6.1.5.5.13.1 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_concrete_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x01") };
+
+/* GSS_C_MA_MECH_PSEUDO - 1.3.6.1.5.5.13.2 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_pseudo_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x02") };
+
+/* GSS_C_MA_MECH_COMPOSITE - 1.3.6.1.5.5.13.3 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_composite_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x03") };
+
+/* GSS_C_MA_MECH_NEGO - 1.3.6.1.5.5.13.4 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_nego_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x04") };
+
+/* GSS_C_MA_MECH_GLUE - 1.3.6.1.5.5.13.5 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mech_glue_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x05") };
+
+/* GSS_C_MA_NOT_MECH - 1.3.6.1.5.5.13.6 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_not_mech_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x06") };
+
+/* GSS_C_MA_DEPRECATED - 1.3.6.1.5.5.13.7 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_deprecated_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x07") };
+
+/* GSS_C_MA_NOT_DFLT_MECH - 1.3.6.1.5.5.13.8 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_not_dflt_mech_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x08") };
+
+/* GSS_C_MA_ITOK_FRAMED - 1.3.6.1.5.5.13.9 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_itok_framed_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x09") };
+
+/* GSS_C_MA_AUTH_INIT - 1.3.6.1.5.5.13.10 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_init_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0a") };
+
+/* GSS_C_MA_AUTH_TARG - 1.3.6.1.5.5.13.11 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_targ_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0b") };
+
+/* GSS_C_MA_AUTH_INIT_INIT - 1.3.6.1.5.5.13.12 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_init_init_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0c") };
+
+/* GSS_C_MA_AUTH_TARG_INIT - 1.3.6.1.5.5.13.13 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_targ_init_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0d") };
+
+/* GSS_C_MA_AUTH_INIT_ANON - 1.3.6.1.5.5.13.14 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_init_anon_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0e") };
+
+/* GSS_C_MA_AUTH_TARG_ANON - 1.3.6.1.5.5.13.15 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_auth_targ_anon_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x0f") };
+
+/* GSS_C_MA_DELEG_CRED - 1.3.6.1.5.5.13.16 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_deleg_cred_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x10") };
+
+/* GSS_C_MA_INTEG_PROT - 1.3.6.1.5.5.13.17 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_integ_prot_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x11") };
+
+/* GSS_C_MA_CONF_PROT - 1.3.6.1.5.5.13.18 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_conf_prot_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x12") };
+
+/* GSS_C_MA_MIC - 1.3.6.1.5.5.13.19 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_mic_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x13") };
+
+/* GSS_C_MA_WRAP - 1.3.6.1.5.5.13.20 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_wrap_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x14") };
+
+/* GSS_C_MA_PROT_READY - 1.3.6.1.5.5.13.21 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_prot_ready_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x15") };
+
+/* GSS_C_MA_REPLAY_DET - 1.3.6.1.5.5.13.22 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_replay_det_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x16") };
+
+/* GSS_C_MA_OOS_DET - 1.3.6.1.5.5.13.23 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_oos_det_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x17") };
+
+/* GSS_C_MA_CBINDINGS - 1.3.6.1.5.5.13.24 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_cbindings_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x18") };
+
+/* GSS_C_MA_PFS - 1.3.6.1.5.5.13.25 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_pfs_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x19") };
+
+/* GSS_C_MA_COMPRESS - 1.3.6.1.5.5.13.26 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_compress_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x1a") };
+
+/* GSS_C_MA_CTX_TRANS - 1.3.6.1.5.5.13.27 */
+gss_OID_desc GSSAPI_LIB_VARIABLE __gss_c_ma_ctx_trans_oid_desc = { 7, rk_UNCONST("\x2b\x06\x01\x05\x05\x0d\x1b") };
diff --git a/kerberos5/lib/libgssapi_krb5/pname_to_uid.c b/kerberos5/lib/libgssapi_krb5/pname_to_uid.c
new file mode 100644
index 0000000..52220f6
--- /dev/null
+++ b/kerberos5/lib/libgssapi_krb5/pname_to_uid.c
@@ -0,0 +1,59 @@
+/*-
+ * Copyright (c) 2008 Isilon Inc http://www.isilon.com/
+ * Authors: Doug Rabson <dfr@rabson.org>
+ * Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org>
+ *
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ */
+/* $FreeBSD$ */
+
+#include <pwd.h>
+
+#include "krb5/gsskrb5_locl.h"
+
+OM_uint32
+_gsskrb5_pname_to_uid(OM_uint32 *minor_status, const gss_name_t pname,
+ const gss_OID mech, uid_t *uidp)
+{
+ krb5_context context;
+ krb5_const_principal name = (krb5_const_principal) pname;
+ krb5_error_code kret;
+ char lname[MAXLOGNAME + 1], buf[128];
+ struct passwd pwd, *pw;
+
+ GSSAPI_KRB5_INIT (&context);
+
+ kret = krb5_aname_to_localname(context, name, sizeof(lname), lname);
+ if (kret) {
+ *minor_status = kret;
+ return (GSS_S_FAILURE);
+ }
+
+ *minor_status = 0;
+ getpwnam_r(lname, &pwd, buf, sizeof(buf), &pw);
+ if (pw) {
+ *uidp = pw->pw_uid;
+ return (GSS_S_COMPLETE);
+ } else {
+ return (GSS_S_FAILURE);
+ }
+}
diff --git a/kerberos5/lib/libgssapi_krb5/prefix.c b/kerberos5/lib/libgssapi_krb5/prefix.c
new file mode 100644
index 0000000..086b744
--- /dev/null
+++ b/kerberos5/lib/libgssapi_krb5/prefix.c
@@ -0,0 +1,33 @@
+/*-
+ * Copyright (c) 2008 Doug Rabson
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * $FreeBSD$
+ */
+
+const char *
+_gss_name_prefix(void)
+{
+ return "_gsskrb5";
+}
diff --git a/kerberos5/lib/libgssapi_ntlm/Makefile b/kerberos5/lib/libgssapi_ntlm/Makefile
new file mode 100644
index 0000000..7485cfa
--- /dev/null
+++ b/kerberos5/lib/libgssapi_ntlm/Makefile
@@ -0,0 +1,51 @@
+# $FreeBSD$
+
+LIB= gssapi_ntlm
+LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDADD= -lcrypto -lgssapi -lkrb5 -lhx509 -lheimntlm -lroken
+DPADD= ${LIBCRYPTO} ${LIBGSSAPI} ${LIBKRB5} ${LIBHX509} ${LIBHEIMNTLM} ${LIBROKEN}
+SHLIB_MAJOR= 10
+
+SRCS= accept_sec_context.c \
+ acquire_cred.c \
+ add_cred.c \
+ canonicalize_name.c \
+ compare_name.c \
+ context_time.c \
+ creds.c \
+ crypto.c \
+ delete_sec_context.c \
+ display_name.c \
+ display_status.c \
+ duplicate_name.c \
+ export_name.c \
+ export_sec_context.c \
+ external.c \
+ ntlm.h \
+ ntlm-private.h \
+ import_name.c \
+ import_sec_context.c \
+ indicate_mechs.c \
+ init_sec_context.c \
+ inquire_context.c \
+ inquire_cred_by_mech.c \
+ inquire_mechs_for_name.c \
+ inquire_names_for_mech.c \
+ inquire_sec_context_by_oid.c \
+ iter_cred.c \
+ kdc.c \
+ prefix.c \
+ process_context_token.c \
+ release_cred.c \
+ release_name.c \
+ gss_oid.c
+
+CFLAGS+=-I${KRB5DIR}/lib/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/ntlm
+CFLAGS+=-I${KRB5DIR}/lib/krb5
+CFLAGS+=-I${KRB5DIR}/lib/ntlm
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/gssapi/ntlm ${.CURDIR}/../../../lib/libgssapi ${.CURDIR}/../libgssapi_krb5
diff --git a/kerberos5/lib/libgssapi_ntlm/prefix.c b/kerberos5/lib/libgssapi_ntlm/prefix.c
new file mode 100644
index 0000000..1c497ce
--- /dev/null
+++ b/kerberos5/lib/libgssapi_ntlm/prefix.c
@@ -0,0 +1,40 @@
+/*-
+ * Copyright (c) 2008 Doug Rabson
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * $FreeBSD$
+ */
+
+#include <gssapi/gssapi.h>
+
+gss_OID_desc __gss_c_nt_user_name_oid_desc =
+ {10, (void *)("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x01")};
+gss_OID_desc __gss_c_nt_hostbased_service_oid_desc =
+ {10, (void *)("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x04")};
+
+const char *
+_gss_name_prefix(void)
+{
+ return "_gss_ntlm";
+}
diff --git a/kerberos5/lib/libgssapi_spnego/Makefile b/kerberos5/lib/libgssapi_spnego/Makefile
new file mode 100644
index 0000000..ddaac08
--- /dev/null
+++ b/kerberos5/lib/libgssapi_spnego/Makefile
@@ -0,0 +1,62 @@
+# $FreeBSD$
+
+LIB= gssapi_spnego
+LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDADD= -lgssapi -lheimbase -lasn1 -lroken
+DPADD= ${LIBGSSAPI} ${LIBHEIMBASE} ${LIBASN1} ${LIBROKEN}
+SHLIB_MAJOR= 10
+
+SRCS= accept_sec_context.c \
+ compat.c \
+ context_stubs.c \
+ cred_stubs.c \
+ external.c \
+ init_sec_context.c \
+ freebsd_compat.c \
+ spnego-private.h \
+ spnego_locl.h \
+ spnego_asn1.h \
+ ${GEN:S/.x$/.c/:S/.hx$/.h/} \
+ gss_oid.c
+
+GEN= asn1_ContextFlags.x \
+ asn1_MechType.x \
+ asn1_MechTypeList.x \
+ asn1_NegotiationToken.x \
+ asn1_NegotiationTokenWin.x \
+ asn1_NegHints.x \
+ asn1_NegTokenInit.x \
+ asn1_NegTokenInitWin.x \
+ asn1_NegTokenResp.x \
+ spnego_asn1.hx \
+ spnego_asn1-priv.hx
+
+CFLAGS+=-I${KRB5DIR}/lib/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/gssapi
+CFLAGS+=-I${KRB5DIR}/lib/gssapi/spnego
+CFLAGS+=-I${KRB5DIR}/lib/asn1
+CFLAGS+=-I${.CURDIR}/../../../lib/libgssapi
+CFLAGS+=-I${KRB5DIR}/lib/roken -I.
+
+CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} \
+ spnego_asn1_files spnego_asn1-template.c
+
+ASN1_COMPILE= asn1_compile
+
+${GEN}: spnego.asn1 spnego.opt
+ ${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
+ ${.ALLSRC:M*.asn1} spnego_asn1
+
+.SUFFIXES: .h .c .x .hx
+
+.x.c:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.hx.h:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .x .hx
+
+.PATH: ${KRB5DIR}/lib/gssapi/spnego ${.CURDIR}/../../../lib/libgssapi ${.CURDIR}/../libgssapi_krb5
diff --git a/kerberos5/lib/libgssapi_spnego/freebsd_compat.c b/kerberos5/lib/libgssapi_spnego/freebsd_compat.c
new file mode 100644
index 0000000..d6a9a6e
--- /dev/null
+++ b/kerberos5/lib/libgssapi_spnego/freebsd_compat.c
@@ -0,0 +1,84 @@
+/*-
+ * Copyright (c) 2008 Doug Rabson
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * $FreeBSD$
+ */
+
+#include <gssapi/gssapi.h>
+#include <mech_switch.h>
+
+gss_OID_desc __gss_c_nt_hostbased_service_oid_desc =
+ {10, (void *)("\x2a\x86\x48\x86\xf7\x12" "\x01\x02\x01\x04")};
+
+const char *
+_gss_name_prefix(void)
+{
+ return "_gss_spnego";
+}
+
+void
+gss_mg_collect_error(gss_OID mech, OM_uint32 maj, OM_uint32 min)
+{
+ _gss_mg_collect_error(mech, maj, min);
+}
+
+OM_uint32 _gss_spnego_display_status
+ (OM_uint32 * minor_status,
+ OM_uint32 status_value,
+ int status_type,
+ const gss_OID mech_type,
+ OM_uint32 * message_context,
+ gss_buffer_t status_string
+ )
+{
+ return GSS_S_FAILURE;
+}
+
+OM_uint32 _gss_spnego_add_cred (
+ OM_uint32 * minor_status,
+ const gss_cred_id_t input_cred_handle,
+ const gss_name_t desired_name,
+ const gss_OID desired_mech,
+ gss_cred_usage_t cred_usage,
+ OM_uint32 initiator_time_req,
+ OM_uint32 acceptor_time_req,
+ gss_cred_id_t * output_cred_handle,
+ gss_OID_set * actual_mechs,
+ OM_uint32 * initiator_time_rec,
+ OM_uint32 * acceptor_time_rec
+ )
+{
+ return gss_add_cred(minor_status,
+ input_cred_handle,
+ desired_name,
+ desired_mech,
+ cred_usage,
+ initiator_time_req,
+ acceptor_time_req,
+ output_cred_handle,
+ actual_mechs,
+ initiator_time_rec,
+ acceptor_time_rec);
+}
diff --git a/kerberos5/lib/libhdb/Makefile b/kerberos5/lib/libhdb/Makefile
new file mode 100644
index 0000000..1ee7f88
--- /dev/null
+++ b/kerberos5/lib/libhdb/Makefile
@@ -0,0 +1,106 @@
+# $FreeBSD$
+
+LIB= hdb
+LDFLAGS= -Wl,--no-undefined
+VERSION_MAP= ${KRB5DIR}/lib/hdb/version-script.map
+LDADD= -lasn1 -lcom_err -lkrb5 -lroken -lheimsqlite
+DPADD= ${LIBASN1} ${LIBCOM_ERR} ${LIBKRB5} ${LIBROKEN} ${LIBHEIMSQLITE} ${LDAPDPADD}
+
+MAN= HDB.3 hdb_entry_ex.3
+
+MLINKS= HDB.3 hdb__del.3 \
+ HDB.3 hdb__get.3 \
+ HDB.3 hdb__put.3 \
+ HDB.3 hdb_auth_status.3 \
+ HDB.3 hdb_check_constrained_delegation.3 \
+ HDB.3 hdb_check_pkinit_ms_upn_match.3 \
+ HDB.3 hdb_check_s4u2self.3 \
+ HDB.3 hdb_close.3 \
+ HDB.3 hdb_destroy.3 \
+ HDB.3 hdb_fetch_kvno.3 \
+ HDB.3 hdb_firstkey.3 \
+ HDB.3 hdb_free.3 \
+ HDB.3 hdb_get_realms.3 \
+ HDB.3 hdb_lock.3 \
+ HDB.3 hdb_name.3 \
+ HDB.3 hdb_nextkey.3 \
+ HDB.3 hdb_open.3 \
+ HDB.3 hdb_password.3 \
+ HDB.3 hdb_remove.3 \
+ HDB.3 hdb_rename.3 \
+ HDB.3 hdb_store.3 \
+ HDB.3 hdb_unlock.3
+
+INCS= hdb-protos.h \
+ hdb.h \
+ hdb_asn1.h \
+ hdb_err.h
+
+SRCS= common.c \
+ db.c \
+ db3.c \
+ dbinfo.c \
+ ext.c \
+ hdb-ldap.c \
+ hdb.c \
+ hdb_err.c \
+ hdb_err.h \
+ hdb-sqlite.c \
+ hdb-keytab.c \
+ hdb-mitdb.c \
+ hdb_locl.h \
+ hdb-private.h \
+ keys.c \
+ keytab.c \
+ mkey.c \
+ ndbm.c \
+ print.c \
+ ${GEN:S/.x$/.c/:S/.hx$/.h/}
+
+CFLAGS+=-I${KRB5DIR}/lib/hdb -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/sqlite \
+ -I${KRB5DIR}/lib/krb5 \
+ -I. ${LDAPCFLAGS}
+CFLAGS+=-DHDB_DB_DIR="\"/var/heimdal\""
+
+GEN= asn1_Salt.x \
+ asn1_Key.x \
+ asn1_Event.x \
+ asn1_HDBFlags.x \
+ asn1_GENERATION.x \
+ asn1_HDB_Ext_PKINIT_acl.x \
+ asn1_HDB_Ext_PKINIT_cert.x \
+ asn1_HDB_Ext_PKINIT_hash.x \
+ asn1_HDB_Ext_Constrained_delegation_acl.x \
+ asn1_HDB_Ext_Lan_Manager_OWF.x \
+ asn1_HDB_Ext_Password.x \
+ asn1_HDB_Ext_Aliases.x \
+ asn1_HDB_extension.x \
+ asn1_HDB_extensions.x \
+ asn1_hdb_entry.x \
+ asn1_hdb_entry_alias.x \
+ asn1_hdb_keyset.x \
+ hdb_asn1.hx \
+ hdb_asn1-priv.hx
+
+CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} hdb_asn1_files \
+ hdb_asn1-template.[ch]*
+
+ASN1_COMPILE= asn1_compile
+
+${GEN}: hdb.asn1
+ ${ASN1_COMPILE} ${.ALLSRC:M*.asn1} hdb_asn1
+
+.SUFFIXES: .h .c .x .hx
+
+.x.c:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.hx.h:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .x .hx
+
+.PATH: ${KRB5DIR}/lib/hdb ${KRB5DIR}/doc/doxyout/hdb/man/man3/
diff --git a/kerberos5/lib/libheimbase/Makefile b/kerberos5/lib/libheimbase/Makefile
new file mode 100644
index 0000000..d3aa0ee
--- /dev/null
+++ b/kerberos5/lib/libheimbase/Makefile
@@ -0,0 +1,26 @@
+#$FreeBSD$
+
+LIB= heimbase
+LDFLAGS= -Wl,--no-undefined
+LDADD= -lpthread
+VERSION_MAP= ${KRB5DIR}/base/version-script.map
+
+INCS= heimbase.h
+
+SRCS= \
+ array.c \
+ baselocl.h \
+ bool.c \
+ dict.c \
+ heimbase.c \
+ heimbasepriv.h \
+ heimqueue.h \
+ null.c \
+ number.c \
+ string.c
+
+CFLAGS+= -I${KRB5DIR}/include
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/base
diff --git a/kerberos5/lib/libheimipcc/Makefile b/kerberos5/lib/libheimipcc/Makefile
new file mode 100644
index 0000000..c1ad602
--- /dev/null
+++ b/kerberos5/lib/libheimipcc/Makefile
@@ -0,0 +1,20 @@
+#$FreeBSD$
+
+LIB= heimipcc
+INTERNALLIB=
+LDADD= -lheimbase -lroken -lpthread
+DPADD= ${LIBHEIMBASE} ${LIBROKEN} ${LIBPTHREAD}
+
+SRCS= hi_locl.h \
+ heim_ipc_types.h \
+ client.c \
+ common.c
+
+CFLAGS+= -DPIC ${PICFLAG}
+CFLAGS+= -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/base \
+ -I${KRB5DIR}/lib/ipc
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/ipc
diff --git a/kerberos5/lib/libheimipcs/Makefile b/kerberos5/lib/libheimipcs/Makefile
new file mode 100644
index 0000000..333480d
--- /dev/null
+++ b/kerberos5/lib/libheimipcs/Makefile
@@ -0,0 +1,21 @@
+#$FreeBSD$
+
+LIB= heimipcs
+INTERNALLIB=
+LDADD= -lheimbase -lroken
+LDFLAGS= -pthread
+DPADD= ${LIBHEIMBASE} ${LIBROKEN}
+
+SRCS= hi_locl.h \
+ heim_ipc_types.h \
+ server.c \
+ common.c
+
+CFLAGS+= -DPIC ${PICFLAG}
+CFLAGS+= -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/base \
+ -I${KRB5DIR}/lib/ipc -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/ipc
diff --git a/kerberos5/lib/libheimntlm/Makefile b/kerberos5/lib/libheimntlm/Makefile
new file mode 100644
index 0000000..2f0415d
--- /dev/null
+++ b/kerberos5/lib/libheimntlm/Makefile
@@ -0,0 +1,40 @@
+# $FreeBSD$
+
+LIB= heimntlm
+LDFLAGS= -Wl,--no-undefined
+LDADD= -lcrypto -lcom_err -lkrb5 -lroken
+DPADD= ${LIBCRYPTO} ${LIBCOM_ERR} ${LIBKRB5} ${LIBROKEN}
+SRCS= ntlm.c ntlm_err.c
+INCS= heimntlm.h heimntlm-protos.h ntlm_err.h
+CFLAGS+=-I${KRB5DIR}/lib/ntlm -I${KRB5DIR}/lib/roken
+VERSION_MAP= ${KRB5DIR}/lib/ntlm/version-script.map
+
+MAN= ntlm_buf.3 \
+ ntlm_core.3 \
+ ntlm_type1.3 \
+ ntlm_type2.3 \
+ ntlm_type3.3
+
+MLINKS= ntlm_core.3 heim_ntlm_build_ntlm1_master.3 \
+ ntlm_core.3 heim_ntlm_build_ntlm2_master.3 \
+ ntlm_core.3 heim_ntlm_calculate_lm2.3 \
+ ntlm_core.3 heim_ntlm_calculate_ntlm1.3 \
+ ntlm_core.3 heim_ntlm_calculate_ntlm2.3 \
+ ntlm_core.3 heim_ntlm_decode_targetinfo.3 \
+ ntlm_core.3 heim_ntlm_encode_targetinfo.3 \
+ ntlm_core.3 heim_ntlm_encode_type1.3 \
+ ntlm_core.3 heim_ntlm_encode_type2.3 \
+ ntlm_core.3 heim_ntlm_encode_type3.3 \
+ ntlm_core.3 heim_ntlm_free_buf.3 \
+ ntlm_core.3 heim_ntlm_free_targetinfo.3 \
+ ntlm_core.3 heim_ntlm_free_type1.3 \
+ ntlm_core.3 heim_ntlm_free_type2.3 \
+ ntlm_core.3 heim_ntlm_free_type3.3 \
+ ntlm_core.3 heim_ntlm_keyex_unwrap.3 \
+ ntlm_core.3 heim_ntlm_nt_key.3 \
+ ntlm_core.3 heim_ntlm_ntlmv2_key.3 \
+ ntlm_core.3 heim_ntlm_verify_ntlm2.3
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/ntlm ${KRB5DIR}/doc/doxyout/ntlm/man/man3
diff --git a/kerberos5/lib/libheimsqlite/Makefile b/kerberos5/lib/libheimsqlite/Makefile
new file mode 100644
index 0000000..b98537a
--- /dev/null
+++ b/kerberos5/lib/libheimsqlite/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+LIB= heimsqlite
+SRCS= sqlite3.c
+DPADD= ${LIBPTHREAD}
+LDADD= -lpthread
+CFLAGS+=-I${KRB5DIR}/lib/sqlite
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/sqlite
diff --git a/kerberos5/lib/libhx509/Makefile b/kerberos5/lib/libhx509/Makefile
new file mode 100644
index 0000000..57c9c18
--- /dev/null
+++ b/kerberos5/lib/libhx509/Makefile
@@ -0,0 +1,304 @@
+# $FreeBSD$
+
+LIB= hx509
+LDFLAGS= -Wl,--no-undefined
+VERSION_MAP= ${KRB5DIR}/lib/hx509/version-script.map
+LDADD= -lasn1 -lcom_err -lcrypto -lroken -lwind
+DPADD= ${LIBASN1} ${LIBCOM_ERR} ${LIBCRYPTO} ${LIBROKEN} ${LIBWIND}
+
+MAN= hx509.3 \
+ hx509_ca.3 \
+ hx509_cert.3 \
+ hx509_cms.3 \
+ hx509_crypto.3 \
+ hx509_env.3 \
+ hx509_error.3 \
+ hx509_keyset.3 \
+ hx509_lock.3 \
+ hx509_misc.3 \
+ hx509_name.3 \
+ hx509_peer.3 \
+ hx509_print.3 \
+ hx509_query.3 \
+ hx509_revoke.3 \
+ hx509_verify.3
+
+MLINKS= hx509.3 hx509_context_free.3 \
+ hx509.3 hx509_context_init.3 \
+ hx509_ca.3 hx509_ca_sign.3 \
+ hx509_ca.3 hx509_ca_sign_self.3 \
+ hx509_ca.3 hx509_ca_tbs_add_crl_dp_uri.3 \
+ hx509_ca.3 hx509_ca_tbs_add_eku.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_hostname.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_jid.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_ms_upn.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_otherName.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_pkinit.3 \
+ hx509_ca.3 hx509_ca_tbs_add_san_rfc822name.3 \
+ hx509_ca.3 hx509_ca_tbs_free.3 \
+ hx509_ca.3 hx509_ca_tbs_init.3 \
+ hx509_ca.3 hx509_ca_tbs_set_ca.3 \
+ hx509_ca.3 hx509_ca_tbs_set_domaincontroller.3 \
+ hx509_ca.3 hx509_ca_tbs_set_notAfter.3 \
+ hx509_ca.3 hx509_ca_tbs_set_notAfter_lifetime.3 \
+ hx509_ca.3 hx509_ca_tbs_set_notBefore.3 \
+ hx509_ca.3 hx509_ca_tbs_set_proxy.3 \
+ hx509_ca.3 hx509_ca_tbs_set_serialnumber.3 \
+ hx509_ca.3 hx509_ca_tbs_set_spki.3 \
+ hx509_ca.3 hx509_ca_tbs_set_subject.3 \
+ hx509_ca.3 hx509_ca_tbs_set_template.3 \
+ hx509_ca.3 hx509_ca_tbs_set_unique.3 \
+ hx509_ca.3 hx509_ca_tbs_subject_expand.3 \
+ hx509_ca.3 hx509_ca_tbs_template_units.3 \
+ hx509_cert.3 hx509_cert_binary.3 \
+ hx509_cert.3 hx509_cert_check_eku.3 \
+ hx509_cert.3 hx509_cert_cmp.3 \
+ hx509_cert.3 hx509_cert_find_subjectAltName_otherName.3 \
+ hx509_cert.3 hx509_cert_free.3 \
+ hx509_cert.3 hx509_cert_get_SPKI.3 \
+ hx509_cert.3 hx509_cert_get_SPKI_AlgorithmIdentifier.3 \
+ hx509_cert.3 hx509_cert_get_attribute.3 \
+ hx509_cert.3 hx509_cert_get_base_subject.3 \
+ hx509_cert.3 hx509_cert_get_friendly_name.3 \
+ hx509_cert.3 hx509_cert_get_issuer.3 \
+ hx509_cert.3 hx509_cert_get_issuer_unique_id.3 \
+ hx509_cert.3 hx509_cert_get_notAfter.3 \
+ hx509_cert.3 hx509_cert_get_notBefore.3 \
+ hx509_cert.3 hx509_cert_get_serialnumber.3 \
+ hx509_cert.3 hx509_cert_get_subject.3 \
+ hx509_cert.3 hx509_cert_get_subject_unique_id.3 \
+ hx509_cert.3 hx509_cert_init.3 \
+ hx509_cert.3 hx509_cert_init_data.3 \
+ hx509_cert.3 hx509_cert_ref.3 \
+ hx509_cert.3 hx509_cert_set_friendly_name.3 \
+ hx509_cert.3 hx509_print_cert.3 \
+ hx509_cert.3 hx509_query_alloc.3 \
+ hx509_cert.3 hx509_query_free.3 \
+ hx509_cert.3 hx509_query_match_cmp_func.3 \
+ hx509_cert.3 hx509_query_match_eku.3 \
+ hx509_cert.3 hx509_query_match_friendly_name.3 \
+ hx509_cert.3 hx509_query_match_issuer_serial.3 \
+ hx509_cert.3 hx509_query_match_option.3 \
+ hx509_cert.3 hx509_query_statistic_file.3 \
+ hx509_cert.3 hx509_query_unparse_stats.3 \
+ hx509_cert.3 hx509_verify_ctx_f_allow_default_trustanchors.3 \
+ hx509_cert.3 hx509_verify_hostname.3 \
+ hx509_cms.3 hx509_cms_create_signed_1.3 \
+ hx509_cms.3 hx509_cms_envelope_1.3 \
+ hx509_cms.3 hx509_cms_unenvelope.3 \
+ hx509_cms.3 hx509_cms_unwrap_ContentInfo.3 \
+ hx509_cms.3 hx509_cms_verify_signed.3 \
+ hx509_cms.3 hx509_cms_wrap_ContentInfo.3 \
+ hx509_crypto.3 hx509_verify_signature.3 \
+ hx509_env.3 hx509_env_add.3 \
+ hx509_env.3 hx509_env_add_binding.3 \
+ hx509_env.3 hx509_env_find.3 \
+ hx509_env.3 hx509_env_find_binding.3 \
+ hx509_env.3 hx509_env_free.3 \
+ hx509_env.3 hx509_env_lfind.3 \
+ hx509_error.3 hx509_clear_error_string.3 \
+ hx509_error.3 hx509_err.3 \
+ hx509_error.3 hx509_free_error_string.3 \
+ hx509_error.3 hx509_get_error_string.3 \
+ hx509_error.3 hx509_set_error_string.3 \
+ hx509_error.3 hx509_set_error_stringv.3 \
+ hx509_keyset.3 hx509_certs_add.3 \
+ hx509_keyset.3 hx509_certs_append.3 \
+ hx509_keyset.3 hx509_certs_end_seq.3 \
+ hx509_keyset.3 hx509_certs_filter.3 \
+ hx509_keyset.3 hx509_certs_find.3 \
+ hx509_keyset.3 hx509_certs_free.3 \
+ hx509_keyset.3 hx509_certs_info.3 \
+ hx509_keyset.3 hx509_certs_init.3 \
+ hx509_keyset.3 hx509_certs_iter_f.3 \
+ hx509_keyset.3 hx509_certs_merge.3 \
+ hx509_keyset.3 hx509_certs_next_cert.3 \
+ hx509_keyset.3 hx509_certs_start_seq.3 \
+ hx509_keyset.3 hx509_certs_store.3 \
+ hx509_keyset.3 hx509_ci_print_names.3 \
+ hx509_keyset.3 hx509_get_one_cert.3 \
+ hx509_misc.3 hx509_free_octet_string_list.3 \
+ hx509_misc.3 hx509_xfree.3 \
+ hx509_name.3 hx509_general_name_unparse.3 \
+ hx509_name.3 hx509_name_binary.3 \
+ hx509_name.3 hx509_name_cmp.3 \
+ hx509_name.3 hx509_name_copy.3 \
+ hx509_name.3 hx509_name_expand.3 \
+ hx509_name.3 hx509_name_free.3 \
+ hx509_name.3 hx509_name_is_null_p.3 \
+ hx509_name.3 hx509_name_to_Name.3 \
+ hx509_name.3 hx509_name_to_string.3 \
+ hx509_name.3 hx509_parse_name.3 \
+ hx509_name.3 hx509_unparse_der_name.3 \
+ hx509_peer.3 hx509_peer_info_add_cms_alg.3 \
+ hx509_peer.3 hx509_peer_info_alloc.3 \
+ hx509_peer.3 hx509_peer_info_free.3 \
+ hx509_peer.3 hx509_peer_info_set_cert.3 \
+ hx509_peer.3 hx509_peer_info_set_cms_algs.3 \
+ hx509_print.3 hx509_bitstring_print.3 \
+ hx509_print.3 hx509_cert_keyusage_print.3 \
+ hx509_print.3 hx509_oid_print.3 \
+ hx509_print.3 hx509_oid_sprint.3 \
+ hx509_print.3 hx509_print_stdout.3 \
+ hx509_print.3 hx509_validate_cert.3 \
+ hx509_print.3 hx509_validate_ctx_add_flags.3 \
+ hx509_print.3 hx509_validate_ctx_free.3 \
+ hx509_print.3 hx509_validate_ctx_init.3 \
+ hx509_print.3 hx509_validate_ctx_set_print.3 \
+ hx509_revoke.3 hx509_ocsp_request.3 \
+ hx509_revoke.3 hx509_revoke_add_crl.3 \
+ hx509_revoke.3 hx509_revoke_add_ocsp.3 \
+ hx509_revoke.3 hx509_revoke_free.3 \
+ hx509_revoke.3 hx509_revoke_init.3 \
+ hx509_revoke.3 hx509_revoke_ocsp_print.3 \
+ hx509_revoke.3 hx509_revoke_verify.3 \
+ hx509_verify.3 hx509_context_set_missing_revoke.3 \
+ hx509_verify.3 hx509_crl_add_revoked_certs.3 \
+ hx509_verify.3 hx509_crl_alloc.3 \
+ hx509_verify.3 hx509_crl_free.3 \
+ hx509_verify.3 hx509_crl_lifetime.3 \
+ hx509_verify.3 hx509_crl_sign.3 \
+ hx509_verify.3 hx509_ocsp_verify.3 \
+ hx509_verify.3 hx509_verify_attach_anchors.3 \
+ hx509_verify.3 hx509_verify_attach_revoke.3 \
+ hx509_verify.3 hx509_verify_destroy_ctx.3 \
+ hx509_verify.3 hx509_verify_init_ctx.3 \
+ hx509_verify.3 hx509_verify_path.3 \
+ hx509_verify.3 hx509_verify_set_max_depth.3 \
+ hx509_verify.3 hx509_verify_set_proxy_certificate.3 \
+ hx509_verify.3 hx509_verify_set_strict_rfc3280_verification.3 \
+ hx509_verify.3 hx509_verify_set_time.3
+
+INCS= hx509-private.h \
+ hx509-protos.h \
+ hx509.h \
+ hx509_err.h
+
+SRCS= ca.c \
+ cert.c \
+ char_map.h \
+ cms.c \
+ collector.c \
+ crypto.c \
+ doxygen.c \
+ error.c \
+ env.c \
+ file.c \
+ hx509-private.h \
+ hx509-protos.h \
+ hx509.h \
+ hx_locl.h \
+ sel.c \
+ sel.h \
+ sel-gram.y \
+ sel-lex.l \
+ keyset.c \
+ ks_dir.c \
+ ks_file.c \
+ ks_mem.c \
+ ks_null.c \
+ ks_p11.c \
+ ks_p12.c \
+ ks_keychain.c \
+ lock.c \
+ name.c \
+ peer.c \
+ print.c \
+ softp11.c \
+ ref/pkcs11.h \
+ req.c \
+ revoke.c
+
+SRCS+= hx509_err.c \
+ hx509_err.h
+
+SRCS+= ${GEN_OCSP:S/.x$/.c/:S/.hx$/.h/} \
+ ${GEN_PKCS10:S/.x$/.c/:S/.hx$/.h/}
+
+CFLAGS+=-I${KRB5DIR}/lib/hx509
+CFLAGS+=-I${KRB5DIR}/lib/hx509/ref
+CFLAGS+=-I${KRB5DIR}/lib/asn1
+CFLAGS+=-I${KRB5DIR}/lib/wind
+CFLAGS+=-I${KRB5DIR}/lib/roken -I.
+
+GEN_OCSP= \
+ asn1_OCSPBasicOCSPResponse.x \
+ asn1_OCSPCertID.x \
+ asn1_OCSPCertStatus.x \
+ asn1_OCSPInnerRequest.x \
+ asn1_OCSPKeyHash.x \
+ asn1_OCSPRequest.x \
+ asn1_OCSPResponderID.x \
+ asn1_OCSPResponse.x \
+ asn1_OCSPResponseBytes.x \
+ asn1_OCSPResponseData.x \
+ asn1_OCSPResponseStatus.x \
+ asn1_OCSPSignature.x \
+ asn1_OCSPSingleResponse.x \
+ asn1_OCSPTBSRequest.x \
+ asn1_OCSPVersion.x \
+ asn1_id_pkix_ocsp.x \
+ asn1_id_pkix_ocsp_basic.x \
+ asn1_id_pkix_ocsp_nonce.x \
+ ocsp_asn1.hx \
+ ocsp_asn1-priv.hx
+
+GEN_PKCS10= \
+ asn1_CertificationRequestInfo.x \
+ asn1_CertificationRequest.x \
+ pkcs10_asn1.hx \
+ pkcs10_asn1-priv.hx
+
+GEN_CRMF= \
+ asn1_CRMFRDNSequence.x \
+ asn1_CertReqMessages.x \
+ asn1_CertReqMsg.x \
+ asn1_CertRequest.x \
+ asn1_CertTemplate.x \
+ asn1_Controls.x \
+ asn1_PBMParameter.x \
+ asn1_PKMACValue.x \
+ asn1_POPOPrivKey.x \
+ asn1_POPOSigningKey.x \
+ asn1_POPOSigningKeyInput.x \
+ asn1_ProofOfPossession.x \
+ asn1_SubsequentMessage.x \
+ crmf_asn1.hx \
+ crmf_asn1-priv.hx
+
+GEN+= ${GEN_OCSP}
+GEN+= ${GEN_PKCS10}
+GEN+= ${GEN_CRMF}
+
+CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} ocsp_asn1_files \
+ pkcs10_asn1_files crmf_asn1_files ocsp_asn1-template.[ch]* \
+ pkcs10_asn1-template.[ch]* crmf_asn1-template.[ch]*
+
+INCS+= ocsp_asn1.h pkcs10_asn1.h crmf_asn1.h
+
+ASN1_COMPILE= asn1_compile
+
+${GEN_OCSP}: ocsp.asn1 ocsp.opt
+ ${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
+ ${.ALLSRC:M*.asn1} ocsp_asn1
+
+${GEN_PKCS10}: pkcs10.asn1 pkcs10.opt
+ ${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
+ ${.ALLSRC:M*.asn1} pkcs10_asn1
+
+${GEN_CRMF}: crmf.asn1
+ ${ASN1_COMPILE} ${.ALLSRC:M*.asn1} crmf_asn1
+
+.SUFFIXES: .h .c .x .hx
+
+.x.c:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.hx.h:
+ cmp -s ${.IMPSRC} ${.TARGET} 2> /dev/null || cp ${.IMPSRC} ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .x .hx
+
+.PATH: ${KRB5DIR}/lib/hx509 ${KRB5DIR}/lib/asn1 ${KRB5DIR}/doc/doxyout/hx509/man/man3
diff --git a/kerberos5/lib/libkadm5clnt/Makefile b/kerberos5/lib/libkadm5clnt/Makefile
new file mode 100644
index 0000000..31030be
--- /dev/null
+++ b/kerberos5/lib/libkadm5clnt/Makefile
@@ -0,0 +1,45 @@
+# $FreeBSD$
+
+LIB= kadm5clnt
+LDFLAGS= -Wl,--no-undefined
+LDADD= -lcom_err -lkrb5 -lroken
+DPADD= ${LIBCOM_ERR} ${LIBKRB5} ${LIBROKEN}
+
+INCS= admin.h \
+ kadm5-private.h \
+ kadm5-protos.h \
+ kadm5-pwcheck.h \
+ kadm5_err.h \
+ private.h
+
+INCSDIR=${INCLUDEDIR}/kadm5
+
+SRCS= ad.c \
+ chpass_c.c \
+ client_glue.c \
+ common_glue.c \
+ create_c.c \
+ delete_c.c \
+ destroy_c.c \
+ flush_c.c \
+ free.c \
+ get_c.c \
+ get_princs_c.c \
+ init_c.c \
+ kadm5_locl.h \
+ kadm5_err.c \
+ kadm5_err.h \
+ marshall.c \
+ modify_c.c \
+ private.h \
+ privs_c.c \
+ randkey_c.c \
+ rename_c.c \
+ send_recv.c \
+ admin.h
+
+CFLAGS+=-I${KRB5DIR}/lib/kadm5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/kadm5
diff --git a/kerberos5/lib/libkadm5srv/Makefile b/kerberos5/lib/libkadm5srv/Makefile
new file mode 100644
index 0000000..1632280
--- /dev/null
+++ b/kerberos5/lib/libkadm5srv/Makefile
@@ -0,0 +1,47 @@
+# $FreeBSD$
+
+LIB= kadm5srv
+LDFLAGS= -Wl,--no-undefined
+LDADD= -lcom_err -lhdb -lkrb5 -lroken
+DPADD= ${LIBCOM_ERR} ${LIBHDB} ${LIBKRB5} ${LIBROKEN}
+VERSION_MAP= ${KRB5DIR}/lib/kadm5/version-script.map
+MAN= kadm5_pwcheck.3
+
+SRCS= acl.c \
+ admin.h \
+ admin.h \
+ bump_pw_expire.c \
+ chpass_s.c \
+ common_glue.c \
+ context_s.c \
+ create_s.c \
+ delete_s.c \
+ destroy_s.c \
+ ent_setup.c \
+ error.c \
+ flush_s.c \
+ free.c \
+ get_princs_s.c \
+ get_s.c \
+ init_s.c \
+ kadm5_err.c \
+ kadm5_err.h \
+ kadm5_locl.h \
+ keys.c \
+ log.c \
+ marshall.c \
+ modify_s.c \
+ password_quality.c \
+ private.h \
+ privs_s.c \
+ randkey_s.c \
+ rename_s.c \
+ server_glue.c \
+ set_keys.c \
+ set_modifier.c
+
+CFLAGS+=-I${KRB5DIR}/lib/kadm5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/kadm5
diff --git a/kerberos5/lib/libkafs5/Makefile b/kerberos5/lib/libkafs5/Makefile
new file mode 100644
index 0000000..ded5095
--- /dev/null
+++ b/kerberos5/lib/libkafs5/Makefile
@@ -0,0 +1,52 @@
+# $FreeBSD$
+
+LIB= kafs5
+LDADD= -lasn1 -lroken
+DPADD= ${LIBASN1} ${LIBKRB5} ${LIBROKEN}
+INCS= kafs.h
+MAN= kafs5.3
+
+#
+# Linking with libkrb5 uncovers a bug in binutils.
+# See http://repo.or.cz/w/binutils.git/commit/ee05170bf71819c99cb5a36a44735c231ae03c56 .
+#
+.if ${MACHINE_ARCH} != "mipsn32eb" && ${MACHINE_ARCH} != "mipsel" && ${MACHINE_ARCH} != "mipseb"
+LDADD+= -lkrb5
+LDFLAGS= -Wl,--no-undefined
+.endif
+
+MLINKS= kafs5.3 k_afs_cell_of_file.3 \
+ kafs5.3 k_hasafs.3 \
+ kafs5.3 k_pioctl.3 \
+ kafs5.3 k_setpag.3 \
+ kafs5.3 k_unlog.3 \
+ kafs5.3 kafs.3 \
+ kafs5.3 kafs_set_verbose.3 \
+ kafs5.3 kafs_settoken.3 \
+ kafs5.3 kafs_settoken5.3 \
+ kafs5.3 kafs_settoken_rxkad.3 \
+ kafs5.3 krb5_afslog.3 \
+ kafs5.3 krb5_afslog_uid.3 \
+ kafs5.3 krb_afslog.3 \
+ kafs5.3 krb_afslog_uid.3
+
+SRCS= afssys.c afskrb5.c common.c krb5_err.h
+SRCS= afssys.c \
+ afskrb5.c \
+ common.c \
+ kafs_locl.h \
+ afssysdefs.h \
+ roken_rename.h
+CFLAGS+= -I${KRB5DIR}/lib/kafs \
+ -I${KRB5DIR}/lib/krb5 \
+ -I${.OBJDIR}/../libkrb5/ \
+ -I${KRB5DIR}/lib/roken
+
+CLEANFILES= kafs5.3
+
+kafs5.3: kafs.3
+ sed -e 's/libkafs, -lkafs/libkafs5, -lkafs5/g' ${.ALLSRC} >${.TARGET}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/kafs
diff --git a/kerberos5/lib/libkdc/Makefile b/kerberos5/lib/libkdc/Makefile
new file mode 100644
index 0000000..385f160
--- /dev/null
+++ b/kerberos5/lib/libkdc/Makefile
@@ -0,0 +1,40 @@
+#$FreeBSD$
+
+LIB= kdc
+LDFLAGS= -Wl,--no-undefined
+VERSION_MAP= ${KRB5DIR}/kdc/version-script.map
+LDADD= -lroken -lhdb -lhx509 -lkrb5 -lheimntlm -lasn1 -lcrypt -lcrypto
+DPADD= ${LIBROKEN} ${LIBHDB} ${LIBHX509} ${LIBKRB5} ${LIBHEIMNTLM} \
+ ${LIBASN1} ${LIBCRYPT} ${LIBCRYPTO}
+
+INCS= kdc.h \
+ kdc-protos.h
+
+KRB5INCS= windc_plugin.h
+KRB5INCSDIR= ${INCLUDEDIR}/krb5
+INCSGROUPS= INCS KRB5INCS
+
+SRCS= kdc-private.h \
+ kdc-protos.h \
+ default_config.c \
+ set_dbinfo.c \
+ digest.c \
+ kdc_locl.h\
+ kerberos5.c \
+ krb5tgs.c \
+ pkinit.c \
+ log.c \
+ misc.c \
+ kx509.c \
+ process.c \
+ windc.c \
+ rx.h
+
+CFLAGS+= -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/krb5 \
+ -I${KRB5DIR}/lib/hdb \
+ -I${KRB5DIR}/kdc
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/lib/libkrb5/Makefile b/kerberos5/lib/libkrb5/Makefile
new file mode 100644
index 0000000..f53e4d0
--- /dev/null
+++ b/kerberos5/lib/libkrb5/Makefile
@@ -0,0 +1,640 @@
+# $FreeBSD$
+
+LIB= krb5
+LDFLAGS= -Wl,--no-undefined
+VERSION_MAP= ${KRB5DIR}/lib/krb5/version-script.map
+LDADD= -lasn1 -lcom_err -lcrypt -lcrypto -lhx509 -lroken -lwind -lheimbase ${LIBHEIMIPCC}
+DPADD= ${LIBASN1} ${LIBCOM_ERR} ${LIBCRYPT} ${LIBCRYPTO} ${LIBHX509} ${LIBROKEN} ${LIBWIND} ${LIBHEIMBASE} ${LIBHEIMIPCC}
+
+INCS= heim_err.h \
+ heim_threads.h \
+ k524_err.h \
+ krb5-protos.h \
+ krb5-private.h \
+ krb5-types.h \
+ krb5.h \
+ krb5_err.h \
+ krb5_ccapi.h
+
+KRB5INCS= locate_plugin.h \
+ send_to_kdc_plugin.h \
+ ccache_plugin.h
+KRB5INCSDIR= ${INCLUDEDIR}/krb5
+INCSGROUPS= INCS KRB5INCS
+
+MAN= krb5.3 \
+ krb524_convert_creds_kdc.3 \
+ krb5_425_conv_principal.3 \
+ krb5_acl_match_file.3 \
+ krb5_address.3 \
+ krb5_aname_to_localname.3 \
+ krb5_appdefault.3 \
+ krb5_auth.3 \
+ krb5_auth_context.3 \
+ krb5_c_make_checksum.3 \
+ krb5_ccache.3 \
+ krb5_ccache_intro.3 \
+ krb5_check_transited.3 \
+ krb5_create_checksum.3 \
+ krb5_credential.3 \
+ krb5_creds.3 \
+ krb5_crypto.3 \
+ krb5_crypto_iov.3 \
+ krb5_deprecated.3 \
+ krb5_digest.3 \
+ krb5_eai_to_heim_errno.3 \
+ krb5_encrypt.3 \
+ krb5_error.3 \
+ krb5_fileformats.3 \
+ krb5_find_padata.3 \
+ krb5_generate_random_block.3 \
+ krb5_get_all_client_addrs.3 \
+ krb5_get_credentials.3 \
+ krb5_get_creds.3 \
+ krb5_get_forwarded_creds.3 \
+ krb5_get_in_cred.3 \
+ krb5_get_init_creds.3 \
+ krb5_get_krbhst.3 \
+ krb5_getportbyname.3 \
+ krb5_init_context.3 \
+ krb5_init_creds_intro.3 \
+ krb5_introduction.3 \
+ krb5_is_thread_safe.3 \
+ krb5_keytab.3 \
+ krb5_keytab_intro.3 \
+ krb5_krbhst_init.3 \
+ krb5_mk_req.3 \
+ krb5_mk_safe.3 \
+ krb5_openlog.3 \
+ krb5_pac.3 \
+ krb5_parse_name.3 \
+ krb5_principal.3 \
+ krb5_principal_intro.3 \
+ krb5_rcache.3 \
+ krb5_rd_error.3 \
+ krb5_rd_safe.3 \
+ krb5_set_default_realm.3 \
+ krb5_set_password.3 \
+ krb5_storage.3 \
+ krb5_string_to_key.3 \
+ krb5_support.3 \
+ krb5_ticket.3 \
+ krb5_timeofday.3 \
+ krb5_v4compat.3 \
+ krb5_verify_init_creds.3 \
+ krb5_verify_user.3 \
+ verify_krb5_conf.8
+
+MAN+= krb5.conf.5
+MAN+= kerberos.8
+
+MLINKS= krb5.3 krb5_add_et_list.3 \
+ krb5.3 krb5_add_extra_addresses.3 \
+ krb5.3 krb5_add_ignore_addresses.3 \
+ krb5.3 krb5_compare_creds.3 \
+ krb5.3 krb5_copy_context.3 \
+ krb5.3 krb5_copy_creds.3 \
+ krb5.3 krb5_copy_creds_contents.3 \
+ krb5.3 krb5_copy_data.3 \
+ krb5.3 krb5_copy_host_realm.3 \
+ krb5.3 krb5_copy_ticket.3 \
+ krb5.3 krb5_creds_get_ticket_flags.3 \
+ krb5.3 krb5_data_alloc.3 \
+ krb5.3 krb5_data_cmp.3 \
+ krb5.3 krb5_data_copy.3 \
+ krb5.3 krb5_data_ct_cmp.3 \
+ krb5.3 krb5_data_free.3 \
+ krb5.3 krb5_data_realloc.3 \
+ krb5.3 krb5_data_zero.3 \
+ krb5.3 krb5_free_config_files.3 \
+ krb5.3 krb5_free_context.3 \
+ krb5.3 krb5_free_cred_contents.3 \
+ krb5.3 krb5_free_creds.3 \
+ krb5.3 krb5_free_data.3 \
+ krb5.3 krb5_free_ticket.3 \
+ krb5.3 krb5_get_default_config_files.3 \
+ krb5.3 krb5_get_default_in_tkt_etypes.3 \
+ krb5.3 krb5_get_dns_canonicalize_hostname.3 \
+ krb5.3 krb5_get_extra_addresses.3 \
+ krb5.3 krb5_get_fcache_version.3 \
+ krb5.3 krb5_get_ignore_addresses.3 \
+ krb5.3 krb5_get_kdc_sec_offset.3 \
+ krb5.3 krb5_get_max_time_skew.3 \
+ krb5.3 krb5_get_use_admin_kdc.3 \
+ krb5.3 krb5_init_ets.3 \
+ krb5.3 krb5_kerberos_enctypes.3 \
+ krb5.3 krb5_krbhst_get_addrinfo.3 \
+ krb5.3 krb5_prepend_config_files_default.3 \
+ krb5.3 krb5_set_config_files.3 \
+ krb5.3 krb5_set_default_in_tkt_etypes.3 \
+ krb5.3 krb5_set_dns_canonicalize_hostname.3 \
+ krb5.3 krb5_set_extra_addresses.3 \
+ krb5.3 krb5_set_fcache_version.3 \
+ krb5.3 krb5_set_home_dir_access.3 \
+ krb5.3 krb5_set_ignore_addresses.3 \
+ krb5.3 krb5_set_kdc_sec_offset.3 \
+ krb5.3 krb5_set_max_time_skew.3 \
+ krb5.3 krb5_set_real_time.3 \
+ krb5.3 krb5_set_use_admin_kdc.3 \
+ krb5.3 krb5_ticket_get_authorization_data_type.3 \
+ krb5.3 krb5_ticket_get_client.3 \
+ krb5.3 krb5_ticket_get_endtime.3 \
+ krb5.3 krb5_ticket_get_server.3 \
+ krb5_425_conv_principal.3 krb5_425_conv_principal_ext.3 \
+ krb5_425_conv_principal.3 krb5_524_conv_principal.3 \
+ krb5_address.3 krb5_addr2sockaddr.3 \
+ krb5_address.3 krb5_address_compare.3 \
+ krb5_address.3 krb5_address_order.3 \
+ krb5_address.3 krb5_address_prefixlen_boundary.3 \
+ krb5_address.3 krb5_address_search.3 \
+ krb5_address.3 krb5_anyaddr.3 \
+ krb5_address.3 krb5_append_addresses.3 \
+ krb5_address.3 krb5_copy_address.3 \
+ krb5_address.3 krb5_copy_addresses.3 \
+ krb5_address.3 krb5_free_address.3 \
+ krb5_address.3 krb5_free_addresses.3 \
+ krb5_address.3 krb5_h_addr2addr.3 \
+ krb5_address.3 krb5_h_addr2sockaddr.3 \
+ krb5_address.3 krb5_make_addrport.3 \
+ krb5_address.3 krb5_max_sockaddr_size.3 \
+ krb5_address.3 krb5_parse_address.3 \
+ krb5_address.3 krb5_print_address.3 \
+ krb5_address.3 krb5_sockaddr2address.3 \
+ krb5_address.3 krb5_sockaddr2port.3 \
+ krb5_address.3 krb5_sockaddr_uninteresting.3 \
+ krb5_appdefault.3 krb5_appdefault_boolean.3 \
+ krb5_appdefault.3 krb5_appdefault_string.3 \
+ krb5_appdefault.3 krb5_appdefault_time.3 \
+ krb5_auth.3 krb5_rd_req_ctx.3 \
+ krb5_auth.3 krb5_rd_req_in_ctx_alloc.3 \
+ krb5_auth.3 krb5_rd_req_in_set_keytab.3 \
+ krb5_auth.3 krb5_rd_req_in_set_pac_check.3 \
+ krb5_auth.3 krb5_rd_req_out_ctx_free.3 \
+ krb5_auth.3 krb5_rd_req_out_get_server.3 \
+ krb5_auth_context.3 krb5_auth_con_free.3 \
+ krb5_auth_context.3 krb5_auth_con_genaddrs.3 \
+ krb5_auth_context.3 krb5_auth_con_getaddrs.3 \
+ krb5_auth_context.3 krb5_auth_con_getflags.3 \
+ krb5_auth_context.3 krb5_auth_con_getkey.3 \
+ krb5_auth_context.3 krb5_auth_con_getlocalsubkey.3 \
+ krb5_auth_context.3 krb5_auth_con_getrcache.3 \
+ krb5_auth_context.3 krb5_auth_con_getremotesubkey.3 \
+ krb5_auth_context.3 krb5_auth_con_getuserkey.3 \
+ krb5_auth_context.3 krb5_auth_con_init.3 \
+ krb5_auth_context.3 krb5_auth_con_initivector.3 \
+ krb5_auth_context.3 krb5_auth_con_setaddrs.3 \
+ krb5_auth_context.3 krb5_auth_con_setaddrs_from_fd.3 \
+ krb5_auth_context.3 krb5_auth_con_setflags.3 \
+ krb5_auth_context.3 krb5_auth_con_setivector.3 \
+ krb5_auth_context.3 krb5_auth_con_setkey.3 \
+ krb5_auth_context.3 krb5_auth_con_setlocalsubkey.3 \
+ krb5_auth_context.3 krb5_auth_con_setrcache.3 \
+ krb5_auth_context.3 krb5_auth_con_setremotesubkey.3 \
+ krb5_auth_context.3 krb5_auth_con_setuserkey.3 \
+ krb5_auth_context.3 krb5_auth_getauthenticator.3 \
+ krb5_auth_context.3 krb5_auth_getcksumtype.3 \
+ krb5_auth_context.3 krb5_auth_getkeytype.3 \
+ krb5_auth_context.3 krb5_auth_getlocalseqnumber.3 \
+ krb5_auth_context.3 krb5_auth_getremoteseqnumber.3 \
+ krb5_auth_context.3 krb5_auth_setcksumtype.3 \
+ krb5_auth_context.3 krb5_auth_setkeytype.3 \
+ krb5_auth_context.3 krb5_auth_setlocalseqnumber.3 \
+ krb5_auth_context.3 krb5_auth_setremoteseqnumber.3 \
+ krb5_ccache.3 krb5_acc_ops.3 \
+ krb5_ccache.3 krb5_cc_cache_end_seq_get.3 \
+ krb5_ccache.3 krb5_cc_cache_get_first.3 \
+ krb5_ccache.3 krb5_cc_cache_match.3 \
+ krb5_ccache.3 krb5_cc_cache_next.3 \
+ krb5_ccache.3 krb5_cc_clear_mcred.3 \
+ krb5_ccache.3 krb5_cc_close.3 \
+ krb5_ccache.3 krb5_cc_copy_cache.3 \
+ krb5_ccache.3 krb5_cc_copy_creds.3 \
+ krb5_ccache.3 krb5_cc_copy_match_f.3 \
+ krb5_ccache.3 krb5_cc_default.3 \
+ krb5_ccache.3 krb5_cc_default_name.3 \
+ krb5_ccache.3 krb5_cc_destroy.3 \
+ krb5_ccache.3 krb5_cc_end_seq_get.3 \
+ krb5_ccache.3 krb5_cc_gen_new.3 \
+ krb5_ccache.3 krb5_cc_get_config.3 \
+ krb5_ccache.3 krb5_cc_get_flags.3 \
+ krb5_ccache.3 krb5_cc_get_friendly_name.3 \
+ krb5_ccache.3 krb5_cc_get_full_name.3 \
+ krb5_ccache.3 krb5_cc_get_kdc_offset.3 \
+ krb5_ccache.3 krb5_cc_get_lifetime.3 \
+ krb5_ccache.3 krb5_cc_get_name.3 \
+ krb5_ccache.3 krb5_cc_get_ops.3 \
+ krb5_ccache.3 krb5_cc_get_prefix_ops.3 \
+ krb5_ccache.3 krb5_cc_get_principal.3 \
+ krb5_ccache.3 krb5_cc_get_type.3 \
+ krb5_ccache.3 krb5_cc_get_version.3 \
+ krb5_ccache.3 krb5_cc_initialize.3 \
+ krb5_ccache.3 krb5_cc_last_change_time.3 \
+ krb5_ccache.3 krb5_cc_move.3 \
+ krb5_ccache.3 krb5_cc_new_unique.3 \
+ krb5_ccache.3 krb5_cc_next_cred.3 \
+ krb5_ccache.3 krb5_cc_register.3 \
+ krb5_ccache.3 krb5_cc_remove_cred.3 \
+ krb5_ccache.3 krb5_cc_resolve.3 \
+ krb5_ccache.3 krb5_cc_retrieve_cred.3 \
+ krb5_ccache.3 krb5_cc_set_config.3 \
+ krb5_ccache.3 krb5_cc_set_default_name.3 \
+ krb5_ccache.3 krb5_cc_set_flags.3 \
+ krb5_ccache.3 krb5_cc_set_friendly_name.3 \
+ krb5_ccache.3 krb5_cc_set_kdc_offset.3 \
+ krb5_ccache.3 krb5_cc_start_seq_get.3 \
+ krb5_ccache.3 krb5_cc_store_cred.3 \
+ krb5_ccache.3 krb5_cc_support_switch.3 \
+ krb5_ccache.3 krb5_cc_switch.3 \
+ krb5_ccache.3 krb5_cccol_cursor_free.3 \
+ krb5_ccache.3 krb5_cccol_cursor_new.3 \
+ krb5_ccache.3 krb5_cccol_cursor_next.3 \
+ krb5_ccache.3 krb5_cccol_last_change_time.3 \
+ krb5_ccache.3 krb5_fcc_ops.3 \
+ krb5_ccache.3 krb5_get_validated_creds.3 \
+ krb5_ccache.3 krb5_is_config_principal.3 \
+ krb5_ccache.3 krb5_mcc_ops.3 \
+ krb5_create_checksum.3 krb5_checksum_is_collision_proof.3 \
+ krb5_create_checksum.3 krb5_checksum_is_keyed.3 \
+ krb5_create_checksum.3 krb5_checksumsize.3 \
+ krb5_create_checksum.3 krb5_verify_checksum.3 \
+ krb5_credential.3 krb5_fwd_tgt_creds.3 \
+ krb5_credential.3 krb5_get_init_creds_keyblock.3 \
+ krb5_credential.3 krb5_get_init_creds_keytab.3 \
+ krb5_credential.3 krb5_get_init_creds_opt_alloc.3 \
+ krb5_credential.3 krb5_get_init_creds_opt_free.3 \
+ krb5_credential.3 krb5_get_init_creds_password.3 \
+ krb5_credential.3 krb5_init_creds_free.3 \
+ krb5_credential.3 krb5_init_creds_get.3 \
+ krb5_credential.3 krb5_init_creds_get_error.3 \
+ krb5_credential.3 krb5_init_creds_init.3 \
+ krb5_credential.3 krb5_init_creds_set_keytab.3 \
+ krb5_credential.3 krb5_init_creds_set_password.3 \
+ krb5_credential.3 krb5_init_creds_set_service.3 \
+ krb5_credential.3 krb5_init_creds_step.3 \
+ krb5_crypto.3 krb5_allow_weak_crypto.3 \
+ krb5_crypto.3 krb5_cksumtype_to_enctype.3 \
+ krb5_crypto.3 krb5_copy_keyblock.3 \
+ krb5_crypto.3 krb5_copy_keyblock_contents.3 \
+ krb5_crypto.3 krb5_create_checksum_iov.3 \
+ krb5_crypto.3 krb5_crypto_destroy.3 \
+ krb5_crypto.3 krb5_crypto_fx_cf2.3 \
+ krb5_crypto.3 krb5_crypto_getblocksize.3 \
+ krb5_crypto.3 krb5_crypto_getconfoundersize.3 \
+ krb5_crypto.3 krb5_crypto_getenctype.3 \
+ krb5_crypto.3 krb5_crypto_getpadsize.3 \
+ krb5_crypto.3 krb5_crypto_init.3 \
+ krb5_crypto.3 krb5_decrypt_iov_ivec.3 \
+ krb5_crypto.3 krb5_encrypt_iov_ivec.3 \
+ krb5_crypto.3 krb5_enctype_disable.3 \
+ krb5_crypto.3 krb5_enctype_enable.3 \
+ krb5_crypto.3 krb5_enctype_valid.3 \
+ krb5_crypto.3 krb5_free_keyblock.3 \
+ krb5_crypto.3 krb5_free_keyblock_contents.3 \
+ krb5_crypto.3 krb5_generate_subkey_extended.3 \
+ krb5_crypto.3 krb5_keyblock_get_enctype.3 \
+ krb5_crypto.3 krb5_keyblock_init.3 \
+ krb5_crypto.3 krb5_keyblock_zero.3 \
+ krb5_crypto.3 krb5_random_to_key.3 \
+ krb5_crypto.3 krb5_verify_checksum_iov.3 \
+ krb5_deprecated.3 krb5_auth_getremoteseqnumber.3 \
+ krb5_deprecated.3 krb5_c_enctype_compare.3 \
+ krb5_deprecated.3 krb5_change_password.3 \
+ krb5_deprecated.3 krb5_clear_error_string.3 \
+ krb5_deprecated.3 krb5_config_parse_string_multi.3 \
+ krb5_deprecated.3 krb5_enctypes_compatible_keys.3 \
+ krb5_deprecated.3 krb5_free_creds_contents.3 \
+ krb5_deprecated.3 krb5_free_data_contents.3 \
+ krb5_deprecated.3 krb5_free_error_string.3 \
+ krb5_deprecated.3 krb5_free_unparsed_name.3 \
+ krb5_deprecated.3 krb5_generate_subkey.3 \
+ krb5_deprecated.3 krb5_get_cred_from_kdc.3 \
+ krb5_deprecated.3 krb5_get_cred_from_kdc_opt.3 \
+ krb5_deprecated.3 krb5_get_in_tkt_with_keytab.3 \
+ krb5_deprecated.3 krb5_get_in_tkt_with_password.3 \
+ krb5_deprecated.3 krb5_get_in_tkt_with_skey.3 \
+ krb5_deprecated.3 krb5_get_init_creds_opt_get_error.3 \
+ krb5_deprecated.3 krb5_get_init_creds_opt_init.3 \
+ krb5_deprecated.3 krb5_keytab_key_proc.3 \
+ krb5_deprecated.3 krb5_keytype_to_enctypes.3 \
+ krb5_deprecated.3 krb5_keytype_to_enctypes_default.3 \
+ krb5_deprecated.3 krb5_keytype_to_string.3 \
+ krb5_deprecated.3 krb5_password_key_proc.3 \
+ krb5_deprecated.3 krb5_princ_realm.3 \
+ krb5_deprecated.3 krb5_princ_set_realm.3 \
+ krb5_deprecated.3 krb5_set_error_string.3 \
+ krb5_deprecated.3 krb5_string_to_keytype.3 \
+ krb5_deprecated.3 krb5_vset_error_string.3 \
+ krb5_digest.3 krb5_digest_probe.3 \
+ krb5_encrypt.3 krb5_decrypt.3 \
+ krb5_encrypt.3 krb5_decrypt_EncryptedData.3 \
+ krb5_encrypt.3 krb5_encrypt_EncryptedData.3 \
+ krb5_error.3 krb5_clear_error_message.3 \
+ krb5_error.3 krb5_h_errno_to_heim_errno.3 \
+ krb5_error.3 krb5_set_error_message.3 \
+ krb5_error.3 krb5_vwarn.3 \
+ krb5_get_all_client_addrs.3 krb5_get_all_server_addrs.3 \
+ krb5_get_krbhst.3 krb5_free_krbhst.3 \
+ krb5_get_krbhst.3 krb5_get_krb524hst.3 \
+ krb5_get_krbhst.3 krb5_get_krb_admin_hst.3 \
+ krb5_get_krbhst.3 krb5_get_krb_changepw_hst.3 \
+ krb5_init_context.3 krb5_free_context.3 \
+ krb5_keytab.3 krb5_kt_add_entry.3 \
+ krb5_keytab.3 krb5_kt_close.3 \
+ krb5_keytab.3 krb5_kt_compare.3 \
+ krb5_keytab.3 krb5_kt_copy_entry_contents.3 \
+ krb5_keytab.3 krb5_kt_default.3 \
+ krb5_keytab.3 krb5_kt_default_modify_name.3 \
+ krb5_keytab.3 krb5_kt_default_name.3 \
+ krb5_keytab.3 krb5_kt_destroy.3 \
+ krb5_keytab.3 krb5_kt_end_seq_get.3 \
+ krb5_keytab.3 krb5_kt_free_entry.3 \
+ krb5_keytab.3 krb5_kt_get_entry.3 \
+ krb5_keytab.3 krb5_kt_get_full_name.3 \
+ krb5_keytab.3 krb5_kt_get_name.3 \
+ krb5_keytab.3 krb5_kt_get_type.3 \
+ krb5_keytab.3 krb5_kt_have_content.3 \
+ krb5_keytab.3 krb5_kt_next_entry.3 \
+ krb5_keytab.3 krb5_kt_read_service_key.3 \
+ krb5_keytab.3 krb5_kt_register.3 \
+ krb5_keytab.3 krb5_kt_remove_entry.3 \
+ krb5_keytab.3 krb5_kt_resolve.3 \
+ krb5_keytab.3 krb5_kt_start_seq_get.3 \
+ krb5_krbhst_init.3 krb5_krbhst_format_string.3 \
+ krb5_krbhst_init.3 krb5_krbhst_free.3 \
+ krb5_krbhst_init.3 krb5_krbhst_get_addrinfo.3 \
+ krb5_krbhst_init.3 krb5_krbhst_next.3 \
+ krb5_krbhst_init.3 krb5_krbhst_next_as_string.3 \
+ krb5_krbhst_init.3 krb5_krbhst_reset.3 \
+ krb5_openlog.3 krb5_addlog_dest.3 \
+ krb5_openlog.3 krb5_addlog_func.3 \
+ krb5_openlog.3 krb5_closelog.3 \
+ krb5_openlog.3 krb5_initlog.3 \
+ krb5_openlog.3 krb5_log.3 \
+ krb5_openlog.3 krb5_log_msg.3 \
+ krb5_openlog.3 krb5_vlog.3 \
+ krb5_openlog.3 krb5_vlog_msg.3 \
+ krb5_pac.3 krb5_pac_get_buffer.3 \
+ krb5_pac.3 krb5_pac_verify.3 \
+ krb5_principal.3 krb5_build_principal.3 \
+ krb5_principal.3 krb5_build_principal_ext.3 \
+ krb5_principal.3 krb5_build_principal_va.3 \
+ krb5_principal.3 krb5_build_principal_va_ext.3 \
+ krb5_principal.3 krb5_copy_principal.3 \
+ krb5_principal.3 krb5_free_principal.3 \
+ krb5_principal.3 krb5_get_default_principal.3 \
+ krb5_principal.3 krb5_make_principal.3 \
+ krb5_principal.3 krb5_parse_name.3 \
+ krb5_principal.3 krb5_parse_name_flags.3 \
+ krb5_principal.3 krb5_parse_nametype.3 \
+ krb5_principal.3 krb5_princ_realm.3 \
+ krb5_principal.3 krb5_princ_set_realm.3 \
+ krb5_principal.3 krb5_principal_compare.3 \
+ krb5_principal.3 krb5_principal_compare_any_realm.3 \
+ krb5_principal.3 krb5_principal_get_comp_string.3 \
+ krb5_principal.3 krb5_principal_get_num_comp.3 \
+ krb5_principal.3 krb5_principal_get_realm.3 \
+ krb5_principal.3 krb5_principal_get_type.3 \
+ krb5_principal.3 krb5_principal_is_krbtgt.3 \
+ krb5_principal.3 krb5_principal_match.3 \
+ krb5_principal.3 krb5_principal_set_realm.3 \
+ krb5_principal.3 krb5_principal_set_type.3 \
+ krb5_principal.3 krb5_realm_compare.3 \
+ krb5_principal.3 krb5_sname_to_principal.3 \
+ krb5_principal.3 krb5_sock_to_principal.3 \
+ krb5_principal.3 krb5_unparse_name.3 \
+ krb5_principal.3 krb5_unparse_name_fixed.3 \
+ krb5_principal.3 krb5_unparse_name_fixed_flags.3 \
+ krb5_principal.3 krb5_unparse_name_fixed_short.3 \
+ krb5_principal.3 krb5_unparse_name_flags.3 \
+ krb5_principal.3 krb5_unparse_name_short.3 \
+ krb5_set_default_realm.3 krb5_free_host_realm.3 \
+ krb5_set_default_realm.3 krb5_get_default_realm.3 \
+ krb5_set_default_realm.3 krb5_get_default_realms.3 \
+ krb5_set_default_realm.3 krb5_get_host_realm.3 \
+ krb5_storage.3 krb5_ret_address.3 \
+ krb5_storage.3 krb5_ret_addrs.3 \
+ krb5_storage.3 krb5_ret_authdata.3 \
+ krb5_storage.3 krb5_ret_creds.3 \
+ krb5_storage.3 krb5_ret_creds_tag.3 \
+ krb5_storage.3 krb5_ret_data.3 \
+ krb5_storage.3 krb5_ret_int16.3 \
+ krb5_storage.3 krb5_ret_int32.3 \
+ krb5_storage.3 krb5_ret_int8.3 \
+ krb5_storage.3 krb5_ret_keyblock.3 \
+ krb5_storage.3 krb5_ret_principal.3 \
+ krb5_storage.3 krb5_ret_string.3 \
+ krb5_storage.3 krb5_ret_stringz.3 \
+ krb5_storage.3 krb5_ret_times.3 \
+ krb5_storage.3 krb5_ret_uint16.3 \
+ krb5_storage.3 krb5_ret_uint32.3 \
+ krb5_storage.3 krb5_ret_uint8.3 \
+ krb5_storage.3 krb5_storage_clear_flags.3 \
+ krb5_storage.3 krb5_storage_emem.3 \
+ krb5_storage.3 krb5_storage_free.3 \
+ krb5_storage.3 krb5_storage_from_data.3 \
+ krb5_storage.3 krb5_storage_from_fd.3 \
+ krb5_storage.3 krb5_storage_from_mem.3 \
+ krb5_storage.3 krb5_storage_from_readonly_mem.3 \
+ krb5_storage.3 krb5_storage_get_byteorder.3 \
+ krb5_storage.3 krb5_storage_get_eof_code.3 \
+ krb5_storage.3 krb5_storage_is_flags.3 \
+ krb5_storage.3 krb5_storage_read.3 \
+ krb5_storage.3 krb5_storage_seek.3 \
+ krb5_storage.3 krb5_storage_set_byteorder.3 \
+ krb5_storage.3 krb5_storage_set_eof_code.3 \
+ krb5_storage.3 krb5_storage_set_flags.3 \
+ krb5_storage.3 krb5_storage_set_max_alloc.3 \
+ krb5_storage.3 krb5_storage_to_data.3 \
+ krb5_storage.3 krb5_storage_truncate.3 \
+ krb5_storage.3 krb5_storage_write.3 \
+ krb5_storage.3 krb5_store_address.3 \
+ krb5_storage.3 krb5_store_addrs.3 \
+ krb5_storage.3 krb5_store_authdata.3 \
+ krb5_storage.3 krb5_store_creds.3 \
+ krb5_storage.3 krb5_store_creds_tag.3 \
+ krb5_storage.3 krb5_store_data.3 \
+ krb5_storage.3 krb5_store_int16.3 \
+ krb5_storage.3 krb5_store_int32.3 \
+ krb5_storage.3 krb5_store_int8.3 \
+ krb5_storage.3 krb5_store_keyblock.3 \
+ krb5_storage.3 krb5_store_principal.3 \
+ krb5_storage.3 krb5_store_string.3 \
+ krb5_storage.3 krb5_store_stringz.3 \
+ krb5_storage.3 krb5_store_times.3 \
+ krb5_storage.3 krb5_store_uint16.3 \
+ krb5_storage.3 krb5_store_uint32.3 \
+ krb5_storage.3 krb5_store_uint8.3 \
+ krb5_support.3 krb5_acl_match_string.3 \
+ krb5_support.3 krb5_config_file_free.3 \
+ krb5_support.3 krb5_config_free_strings.3 \
+ krb5_support.3 krb5_config_get_bool.3 \
+ krb5_support.3 krb5_config_get_bool_default.3 \
+ krb5_support.3 krb5_config_get_list.3 \
+ krb5_support.3 krb5_config_get_string.3 \
+ krb5_support.3 krb5_config_get_string_default.3 \
+ krb5_support.3 krb5_config_get_strings.3 \
+ krb5_support.3 krb5_config_get_time.3 \
+ krb5_support.3 krb5_config_get_time_default.3 \
+ krb5_support.3 krb5_config_parse_file_multi.3 \
+ krb5_support.3 krb5_config_vget_bool.3 \
+ krb5_support.3 krb5_config_vget_bool_default.3 \
+ krb5_support.3 krb5_config_vget_list.3 \
+ krb5_support.3 krb5_config_vget_string.3 \
+ krb5_support.3 krb5_config_vget_string_default.3 \
+ krb5_support.3 krb5_config_vget_strings.3 \
+ krb5_support.3 krb5_config_vget_time.3 \
+ krb5_support.3 krb5_config_vget_time_default.3 \
+ krb5_support.3 krb5_expand_hostname.3 \
+ krb5_support.3 krb5_expand_hostname_realms.3 \
+ krb5_support.3 krb5_free_host_realm.3 \
+ krb5_support.3 krb5_kuserok.3 \
+ krb5_support.3 krb5_plugin_register.3 \
+ krb5_ticket.3 krb5_ticket_get_flags.3 \
+ krb5_timeofday.3 krb5_us_timeofday.3 \
+ krb5_v4compat.3 krb524_convert_creds_kdc_ccache.3 \
+ krb5_verify_user.3 krb5_verify_opt_init.3 \
+ krb5_verify_user.3 krb5_verify_opt_set_flags.3 \
+ krb5_verify_user.3 krb5_verify_opt_set_keytab.3 \
+ krb5_verify_user.3 krb5_verify_opt_set_secure.3 \
+ krb5_verify_user.3 krb5_verify_opt_set_service.3 \
+ krb5_verify_user.3 krb5_verify_user_lrealm.3 \
+ krb5_verify_user.3 krb5_verify_user_opt.3
+
+SRCS= acache.c \
+ acl.c \
+ add_et_list.c \
+ addr_families.c \
+ aname_to_localname.c \
+ appdefault.c \
+ asn1_glue.c \
+ auth_context.c \
+ build_ap_req.c \
+ build_auth.c \
+ cache.c \
+ changepw.c \
+ codec.c \
+ config_file.c \
+ constants.c \
+ context.c \
+ convert_creds.c \
+ copy_host_realm.c \
+ crc.c \
+ creds.c \
+ crypto-aes.c \
+ crypto-algs.c \
+ crypto-arcfour.c \
+ crypto-des-common.c \
+ crypto-des.c \
+ crypto-des3.c \
+ crypto-evp.c \
+ crypto-null.c \
+ crypto-pk.c \
+ crypto-rand.c \
+ crypto.c \
+ crypto.h \
+ data.c \
+ deprecated.c \
+ digest.c \
+ doxygen.c \
+ eai_to_heim_errno.c \
+ error_string.c \
+ expand_hostname.c \
+ expand_path.c \
+ fcache.c \
+ free.c \
+ free_host_realm.c \
+ generate_seq_number.c \
+ generate_subkey.c \
+ get_addrs.c \
+ get_cred.c \
+ get_default_principal.c \
+ get_default_realm.c \
+ get_for_creds.c \
+ get_host_realm.c \
+ get_in_tkt.c \
+ get_port.c \
+ init_creds.c \
+ init_creds_pw.c \
+ kcm.c \
+ keyblock.c \
+ keytab.c \
+ keytab_any.c \
+ keytab_file.c \
+ keytab_keyfile.c \
+ keytab_memory.c \
+ krb5-v4compat.h \
+ krb5_locl.h \
+ krbhst.c \
+ kuserok.c \
+ log.c \
+ mcache.c \
+ misc.c \
+ mit_glue.c \
+ mk_error.c \
+ mk_priv.c \
+ mk_rep.c \
+ mk_req.c \
+ mk_req_ext.c \
+ mk_safe.c \
+ n-fold.c \
+ net_read.c \
+ net_write.c \
+ pac.c \
+ padata.c \
+ pcache.c \
+ pkinit.c \
+ plugin.c \
+ principal.c \
+ prog_setup.c \
+ prompter_posix.c \
+ rd_cred.c \
+ rd_error.c \
+ rd_priv.c \
+ rd_rep.c \
+ rd_req.c \
+ rd_safe.c \
+ read_message.c \
+ recvauth.c \
+ replay.c \
+ salt-aes.c \
+ salt-arcfour.c \
+ salt-des.c \
+ salt-des3.c \
+ salt.c \
+ scache.c \
+ send_to_kdc.c \
+ sendauth.c \
+ set_default_realm.c \
+ sock_principal.c \
+ store-int.c \
+ store.c \
+ store_emem.c \
+ store_fd.c \
+ store_mem.c \
+ ticket.c \
+ time.c \
+ transited.c \
+ verify_init.c \
+ verify_user.c \
+ version.c \
+ warn.c \
+ write_message.c
+
+SRCS+= heim_err.c \
+ heim_err.h \
+ k524_err.c \
+ k524_err.h \
+ krb5_err.c \
+ krb5_err.h \
+ krb_err.c \
+ krb_err.h
+
+CFLAGS+= -I${KRB5DIR}/lib/krb5 \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/ipc \
+ -I${KRB5DIR}/base -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/krb5 ${KRB5DIR}/lib/asn1 ${KRB5DIR}/include ${.CURDIR}/../../include ${KRB5DIR}/doc/doxyout/krb5/man/man3/
diff --git a/kerberos5/lib/libroken/Makefile b/kerberos5/lib/libroken/Makefile
new file mode 100644
index 0000000..29e3082
--- /dev/null
+++ b/kerberos5/lib/libroken/Makefile
@@ -0,0 +1,92 @@
+# $FreeBSD$
+
+LIB= roken
+LDADD= -lcrypt
+DPADD= ${LIBCRYPT}
+VERSION_MAP= ${KRB5DIR}/lib/roken/version-script.map
+INCS= roken.h \
+ roken-common.h \
+ base64.h \
+ getarg.h \
+ hex.h \
+ parse_bytes.h \
+ parse_time.h \
+ parse_units.h \
+ resolve.h \
+ rtbl.h \
+ xdbm.h
+
+SRCS= base64.c \
+ copyhostent.c \
+ ecalloc.c \
+ emalloc.c \
+ erealloc.c \
+ estrdup.c \
+ strlwr.c \
+ strsep_copy.c \
+ strupr.c \
+ bswap.c \
+ cloexec.c \
+ concat.c \
+ ct.c \
+ doxygen.c \
+ dumpdata.c \
+ environment.c \
+ eread.c \
+ esetenv.c \
+ ewrite.c \
+ get_default_username.c \
+ get_window_size.c \
+ getaddrinfo_hostspec.c \
+ getarg.c \
+ getnameinfo_verified.c \
+ getprogname.c \
+ h_errno.c \
+ hex.c \
+ hostent_find_fqdn.c \
+ issuid.c \
+ k_getpwnam.c \
+ k_getpwuid.c \
+ mini_inetd.c \
+ net_read.c \
+ net_write.c \
+ parse_bytes.c \
+ parse_time.c \
+ parse_units.c \
+ qsort.c \
+ rand.c \
+ realloc.c \
+ resolve.c \
+ roken.h \
+ roken_gethostby.c \
+ rtbl.c \
+ setprogname.c \
+ signal.c \
+ simple_exec.c \
+ snprintf.c \
+ socket.c \
+ strcollect.c \
+ strerror_r.c \
+ strpool.c \
+ timeval.c \
+ tm2time.c \
+ unvis.c \
+ verify.c \
+ vis.c \
+ warnerr.c \
+ write_pid.c \
+ xfree.c
+
+CPPFLAGS+= -DBUILD_ROKEN_LIB
+CFLAGS+=-I${KRB5DIR}/lib/roken -I.
+
+CLEANFILES= roken.h
+
+MAKE_ROKEN= make-roken
+
+roken.h:
+ ${MAKE_ROKEN} > ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/roken
diff --git a/kerberos5/lib/libsl/Makefile b/kerberos5/lib/libsl/Makefile
new file mode 100644
index 0000000..71a38a5
--- /dev/null
+++ b/kerberos5/lib/libsl/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+LIB= sl
+INTERNALLIB=
+SRCS= sl.c
+CFLAGS+=-I${KRB5DIR}/lib/sl
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/sl
diff --git a/kerberos5/lib/libvers/Makefile b/kerberos5/lib/libvers/Makefile
new file mode 100644
index 0000000..36dff0d
--- /dev/null
+++ b/kerberos5/lib/libvers/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+LIB= vers
+INTERNALLIB=
+SRCS= print_version.c roken.h
+CFLAGS+=-I. -I${KRB5DIR}/lib/roken
+
+CLEANFILES= roken.h print_version.h
+
+MAKE_ROKEN= make-roken
+
+roken.h:
+ ${MAKE_ROKEN} > ${.TARGET}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/vers
diff --git a/kerberos5/lib/libwind/Makefile b/kerberos5/lib/libwind/Makefile
new file mode 100644
index 0000000..6d0b9c0
--- /dev/null
+++ b/kerberos5/lib/libwind/Makefile
@@ -0,0 +1,35 @@
+#$FreeBSD$
+
+LIB= wind
+LDFLAGS= -Wl,--no-undefined
+VERSION_MAP= ${KRB5DIR}/lib/wind/version-script.map
+LDADD= -lcom_err -lroken
+DPADD= ${LIBCOM_ERR} ${LIBROKEN}
+
+INCS= wind.h \
+ wind_err.h
+
+SRCS= bidi.c \
+ bidi_table.c \
+ combining.c \
+ combining_table.c \
+ doxygen.c \
+ errorlist.c \
+ errorlist_table.c \
+ ldap.c \
+ map.c \
+ map_table.c \
+ normalize.c \
+ normalize_table.c \
+ punycode.c \
+ stringprep.c \
+ utf8.c
+
+SRCS+= wind_err.c \
+ wind_err.h
+
+CFLAGS+=-I${KRB5DIR}/lib/roken -I.
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5DIR}/lib/wind
diff --git a/kerberos5/libexec/Makefile b/kerberos5/libexec/Makefile
new file mode 100644
index 0000000..e6735ca
--- /dev/null
+++ b/kerberos5/libexec/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+SUBDIR= digest-service ipropd-master ipropd-slave hprop hpropd kadmind kdc \
+ kdigest kfd kimpersonate kpasswdd kcm
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/libexec/Makefile.inc b/kerberos5/libexec/Makefile.inc
new file mode 100644
index 0000000..535597e
--- /dev/null
+++ b/kerberos5/libexec/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+BINDIR= /usr/libexec
+
+.include "../Makefile.inc"
diff --git a/kerberos5/libexec/digest-service/Makefile b/kerberos5/libexec/digest-service/Makefile
new file mode 100644
index 0000000..5d851b9
--- /dev/null
+++ b/kerberos5/libexec/digest-service/Makefile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+PROG= digest-service
+NO_MAN= 1
+CFLAGS+= -I${KRB5DIR}/kdc \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/krb5 \
+ -I${KRB5DIR}/lib/ipc \
+ -I${KRB5DIR}/lib/wind \
+ -I${KRB5DIR}/lib/roken
+DPADD= ${LIBHDB} ${LIBKDC} ${LIBHEIMIPCS} ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBVERS}
+LDADD= -lhdb -lkdc ${LIBHEIMIPCS} -lkrb5 -lroken -lasn1 -lcrypto -lcrypt \
+ ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/libexec/hprop/Makefile b/kerberos5/libexec/hprop/Makefile
new file mode 100644
index 0000000..421d5a2
--- /dev/null
+++ b/kerberos5/libexec/hprop/Makefile
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+PROG= hprop
+MAN= hprop.8
+SRCS= hprop.c mit_dump.c hprop.h
+CFLAGS+=-I${KRB5DIR}/lib/roken
+CFLAGS+=-I${KRB5DIR}/lib/krb5
+CFLAGS+=-I${KRB5DIR}/lib/asn1
+CFLAGS+=-I${KRB5DIR}/lib/hx509
+CFLAGS+=-I${KRB5DIR}/lib/ntlm
+CFLAGS+=-I${KRB5DIR}/kdc
+CFLAGS+=-I${.OBJDIR}/../../lib/libkrb5
+DPADD= ${LIBHDB} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} ${LDAPDPADD}
+LDADD= -lhdb -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/libexec/hpropd/Makefile b/kerberos5/libexec/hpropd/Makefile
new file mode 100644
index 0000000..e0722bd
--- /dev/null
+++ b/kerberos5/libexec/hpropd/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+PROG= hpropd
+MAN= hpropd.8
+CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/kdc ${LDAPCFLAGS}
+DPADD= ${LIBHDB} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} ${LDAPDPADD}
+LDADD= -lhdb -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/libexec/ipropd-master/Makefile b/kerberos5/libexec/ipropd-master/Makefile
new file mode 100644
index 0000000..99a4f9c
--- /dev/null
+++ b/kerberos5/libexec/ipropd-master/Makefile
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+PROG= ipropd-master
+MAN= iprop.8
+SRCS= ipropd_common.c ipropd_master.c kadm5_err.h
+CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \
+ -I. ${LDAPCFLAGS}
+DPADD= ${LIBKADM5SRV} ${LIBHDB} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} ${LDAPDPADD}
+LDADD= -lkadm5srv -lhdb -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+foo::
+ echo ${LIBHX509}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/kadm5
diff --git a/kerberos5/libexec/ipropd-slave/Makefile b/kerberos5/libexec/ipropd-slave/Makefile
new file mode 100644
index 0000000..e2141e7
--- /dev/null
+++ b/kerberos5/libexec/ipropd-slave/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+PROG= ipropd-slave
+NO_MAN=
+SRCS= ipropd_common.c ipropd_slave.c kadm5_err.h
+CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \
+ -I. ${LDAPCFLAGS}
+DPADD= ${LIBKADM5SRV} ${LIBHDB} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} ${LDAPDPADD}
+LDADD= -lkadm5srv -lhdb -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/kadm5
diff --git a/kerberos5/libexec/kadmind/Makefile b/kerberos5/libexec/kadmind/Makefile
new file mode 100644
index 0000000..418fbdd
--- /dev/null
+++ b/kerberos5/libexec/kadmind/Makefile
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+PROG= kadmind
+MAN= kadmind.8
+SRCS= rpc.c \
+ server.c \
+ kadmind.c \
+ kadmin_locl.h \
+ kadm_conn.c
+
+CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \
+ ${LDAPCFLAGS}
+DPADD= ${LIBKADM5SRV} ${LIBGSSAPI} ${LIBHDB} ${LIBKRB5} ${LIBROKEN} \
+ ${LIBASN1} ${LIBVERS} ${LIBCRYPTO} ${LIBCRYPT} ${LDAPDPADD}
+LDADD= -lkadm5srv -lgssapi -lhdb -lkrb5 -lroken \
+ -lasn1 ${LIBVERS} -lcrypto -lcrypt ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kadmin
diff --git a/kerberos5/libexec/kcm/Makefile b/kerberos5/libexec/kcm/Makefile
new file mode 100644
index 0000000..233cf8a
--- /dev/null
+++ b/kerberos5/libexec/kcm/Makefile
@@ -0,0 +1,33 @@
+# $FreeBSD$
+
+PROG= kcm
+MAN= kcm.8
+
+SRCS= acl.c \
+ acquire.c \
+ cache.c \
+ client.c \
+ config.c \
+ connect.c \
+ events.c \
+ glue.c \
+ headers.h \
+ kcm_locl.h \
+ kcm-protos.h \
+ log.c \
+ main.c \
+ protocol.c \
+ sessions.c \
+ renew.c
+
+CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/kcm -I${KRB5DIR}/lib/ipc ${LDAPCFLAGS}
+DPADD= ${LIBHDB} ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBHEIMNTLM} \
+ ${LIBHEIMIPCS} ${LIBCRYPTO} ${LIBCRYPT} ${LIBVERS} ${LDAPDPADD}
+LDADD= -lhdb -lkrb5 -lroken -lasn1 -lheimntlm ${LIBHEIMIPCS} \
+ -lcrypto -lcrypt ${LIBVERS} ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kcm
diff --git a/kerberos5/libexec/kdc/Makefile b/kerberos5/libexec/kdc/Makefile
new file mode 100644
index 0000000..4ca5c3a
--- /dev/null
+++ b/kerberos5/libexec/kdc/Makefile
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+PROG= kdc
+MAN= kdc.8
+
+SRCS= config.c \
+ connect.c \
+ announce.c \
+ main.c
+
+CFLAGS+=-I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/kdc ${LDAPCFLAGS}
+DPADD= ${LIBKDC} ${LIBHDB} ${LIBKRB5} ${LIBROKEN} ${LIBASN1} \
+ ${LIBCRYPTO} ${LIBCRYPT} ${LIBVERS}
+LDADD= -lkdc -lhdb -lkrb5 -lroken -lasn1 -lcrypto -lcrypt ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/libexec/kdigest/Makefile b/kerberos5/libexec/kdigest/Makefile
new file mode 100644
index 0000000..208b021
--- /dev/null
+++ b/kerberos5/libexec/kdigest/Makefile
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+PROG= kdigest
+MAN= kdigest.8
+CFLAGS+= -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl -I.
+DPADD= ${LIBKRB5} ${LIBHEIMNTLM} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBSL} ${LIBVERS} ${LIBEDIT}
+LDADD= -lkrb5 -lheimntlm -lroken -lasn1 -lcrypto -lcrypt ${LIBSL} \
+ ${LIBVERS} -ledit
+SRCS= kdigest.c \
+ kdigest-commands.c \
+ kdigest-commands.h
+
+kdigest-commands.c kdigest-commands.h: kdigest-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/libexec/kfd/Makefile b/kerberos5/libexec/kfd/Makefile
new file mode 100644
index 0000000..da9c709
--- /dev/null
+++ b/kerberos5/libexec/kfd/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+PROG= kfd
+MAN= kfd.8
+SRCS= kfd.c kf_locl.h
+CFLAGS+= -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken
+DPADD= ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBVERS}
+LDADD= -lkrb5 -lroken -lasn1 -lcrypto -lcrypt \
+ ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/appl/kf
diff --git a/kerberos5/libexec/kimpersonate/Makefile b/kerberos5/libexec/kimpersonate/Makefile
new file mode 100644
index 0000000..32f9777
--- /dev/null
+++ b/kerberos5/libexec/kimpersonate/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+PROG= kimpersonate
+MAN= kimpersonate.8
+CFLAGS+= -I${KRB5DIR}/lib/hx509 \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl -I.
+DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHEIMNTLM} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBVERS}
+LDADD= -lkafs5 -lkrb5 -lheimntlm -lroken -lasn1 -lcrypto -lcrypt \
+ ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/libexec/kpasswdd/Makefile b/kerberos5/libexec/kpasswdd/Makefile
new file mode 100644
index 0000000..2287686
--- /dev/null
+++ b/kerberos5/libexec/kpasswdd/Makefile
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+PROG= kpasswdd
+MAN= kpasswdd.8
+CFLAGS+=-I${KRB5DIR}/lib/roken -I../../lib/libhdb ${LDAPCFLAGS}
+DPADD= ${LIBKADM5SRV} ${LIBHDB} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} ${LDAPDPADD}
+LDADD= -lkadm5srv -lhdb -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kpasswd
diff --git a/kerberos5/tools/Makefile b/kerberos5/tools/Makefile
new file mode 100644
index 0000000..0bbf2d4
--- /dev/null
+++ b/kerberos5/tools/Makefile
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+SUBDIR= make-roken asn1_compile slc
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/tools/Makefile.inc b/kerberos5/tools/Makefile.inc
new file mode 100644
index 0000000..4cec6fe
--- /dev/null
+++ b/kerberos5/tools/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+BINDIR?= /usr/bin
+
+.include "../Makefile.inc"
diff --git a/kerberos5/tools/asn1_compile/Makefile b/kerberos5/tools/asn1_compile/Makefile
new file mode 100644
index 0000000..fa325c1
--- /dev/null
+++ b/kerberos5/tools/asn1_compile/Makefile
@@ -0,0 +1,41 @@
+# $FreeBSD$
+
+PROG= asn1_compile
+NO_MAN=
+LIBROKEN_A= ${.OBJDIR}/../../lib/libroken/libroken.a
+LDADD= ${LIBROKEN_A} ${LIBVERS}
+DPADD= ${LIBROKEN_A} ${LIBVERS}
+
+SRCS= asn1_queue.h \
+ asn1parse.y \
+ der.h \
+ gen.c \
+ gen_copy.c \
+ gen_decode.c \
+ gen_encode.c \
+ gen_free.c \
+ gen_glue.c \
+ gen_length.c \
+ gen_locl.h \
+ gen_seq.c \
+ gen_template.c \
+ hash.c \
+ hash.h \
+ lex.l \
+ lex.h \
+ main.c \
+ asn1-template.h \
+ roken.h \
+ symbol.c \
+ symbol.h
+
+CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/asn1 -I.
+
+CLEANFILES= roken.h
+
+roken.h:
+ make-roken > ${.TARGET}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/asn1
diff --git a/kerberos5/tools/make-roken/Makefile b/kerberos5/tools/make-roken/Makefile
new file mode 100644
index 0000000..a039943
--- /dev/null
+++ b/kerberos5/tools/make-roken/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+PROG= make-roken
+NO_MAN=
+
+CLEANFILES= make-roken.c
+
+.include "../Makefile.inc"
+
+make-roken.c: ${KRB5DIR}/lib/roken/roken.awk ${KRB5DIR}/lib/roken/roken.h.in
+ awk -f ${.ALLSRC} > ${.TARGET}
+
+.include <bsd.prog.mk>
diff --git a/kerberos5/tools/slc/Makefile b/kerberos5/tools/slc/Makefile
new file mode 100644
index 0000000..c6f0d35
--- /dev/null
+++ b/kerberos5/tools/slc/Makefile
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+PROG= slc
+LIBROKEN_A= ${.OBJDIR}/../../lib/libroken/libroken.a
+LDADD= ${LIBROKEN_A} ${LIBVERS}
+DPADD= ${LIBROKEN_A} ${LIBVERS}
+NO_MAN=
+
+SRCS= roken.h \
+ slc-gram.y \
+ slc-lex.l
+
+CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/sl -I${KRB5DIR}/lib/vers -I.
+
+CLEANFILES= roken.h
+
+roken.h:
+ make-roken > ${.TARGET}
+
+# ${.OBJDIR}/../make-roken/make-roken > ${.TARGET}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/roken ${KRB5DIR}/lib/sl
diff --git a/kerberos5/usr.bin/Makefile b/kerberos5/usr.bin/Makefile
new file mode 100644
index 0000000..da141e5
--- /dev/null
+++ b/kerberos5/usr.bin/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+SUBDIR= hxtool kadmin kcc kdestroy kgetcred kf kinit kpasswd krb5-config ksu \
+ string2key verify_krb5_conf
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/usr.bin/Makefile.inc b/kerberos5/usr.bin/Makefile.inc
new file mode 100644
index 0000000..abd146b
--- /dev/null
+++ b/kerberos5/usr.bin/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+BINDIR= /usr/bin
+
+.include "../Makefile.inc"
diff --git a/kerberos5/usr.bin/hxtool/Makefile b/kerberos5/usr.bin/hxtool/Makefile
new file mode 100644
index 0000000..c40f009
--- /dev/null
+++ b/kerberos5/usr.bin/hxtool/Makefile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+PROG= hxtool
+NO_MAN= 1
+CFLAGS+= -I${KRB5DIR}/lib/hx509 \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl -I.
+DPADD= ${LIBHX509} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBSL} ${LIBVERS} ${LIBEDIT}
+LDADD= -lhx509 -lroken -lasn1 -lcrypto -lcrypt ${LIBSL} ${LIBVERS} -ledit
+SRCS= hxtool.c hxtool-commands.c hxtool-commands.h
+
+hxtool-commands.c hxtool-commands.h: hxtool-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/hx509
diff --git a/kerberos5/usr.bin/kadmin/Makefile b/kerberos5/usr.bin/kadmin/Makefile
new file mode 100644
index 0000000..d0f8ed1
--- /dev/null
+++ b/kerberos5/usr.bin/kadmin/Makefile
@@ -0,0 +1,45 @@
+# $FreeBSD$
+
+PROG= kadmin
+MAN= kadmin.8
+
+SRCS= add_enctype.c \
+ ank.c \
+ check.c \
+ cpw.c \
+ del.c \
+ del_enctype.c \
+ dump.c \
+ ext.c \
+ get.c \
+ init.c \
+ kadmin.c \
+ kadmin-commands.c \
+ kadmin-commands.h \
+ load.c \
+ mod.c \
+ pw_quality.c \
+ random_password.c \
+ rename.c \
+ stash.c \
+ util.c
+
+CFLAGS+=-I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl -I. ${LDAPCFLAGS}
+DPADD= ${LIBKADM5CLNT} ${LIBKADM5SRV} ${LIBHDB} ${LIBKRB5} ${LIBHX509} \
+ ${LIBSL} ${LIBROKEN} ${LIBVERS} ${LIBASN1} \
+ ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} \
+ ${LIBEDIT} ${LIBNCURSES} ${LDAPDPADD}
+LDADD= -lkadm5clnt -lkadm5srv -lhdb -lkrb5 -lhx509 \
+ ${LIBSL} -lroken ${LIBVERS} -lasn1 \
+ -lcrypto -lcrypt -lcom_err \
+ -ledit -lncurses ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+kadmin-commands.c kadmin-commands.h: ${KRB5DIR}/kadmin/kadmin-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.PATH: ${KRB5DIR}/kadmin
+
diff --git a/kerberos5/usr.bin/kcc/Makefile b/kerberos5/usr.bin/kcc/Makefile
new file mode 100644
index 0000000..d690b32
--- /dev/null
+++ b/kerberos5/usr.bin/kcc/Makefile
@@ -0,0 +1,27 @@
+# $FreeBSD$
+
+PROG= kcc
+MAN= klist.1 kswitch.1
+LINKS= ${BINDIR}/kcc ${BINDIR}/klist \
+ ${BINDIR}/kcc ${BINDIR}/kswitch
+CFLAGS+= -I${KRB5DIR}/lib/hx509 \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl -I.
+DPADD= ${LIBKRB5} ${LIBHEIMNTLM} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBKAFS5} ${LIBSL} ${LIBVERS} ${LIBEDIT}
+LDADD= -lkrb5 -lheimntlm -lroken -lasn1 -lcrypto -lcrypt -lkafs5 ${LIBSL} \
+ ${LIBVERS} -ledit
+SRCS= kcc.c \
+ kcc-commands.c \
+ kcc-commands.h \
+ klist.c \
+ kswitch.c \
+ copy_cred_cache.c
+
+kcc-commands.c kcc-commands.h: kcc-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/usr.bin/kdestroy/Makefile b/kerberos5/usr.bin/kdestroy/Makefile
new file mode 100644
index 0000000..b3946e4
--- /dev/null
+++ b/kerberos5/usr.bin/kdestroy/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+PROG= kdestroy
+CFLAGS+=-I${KRB5DIR}/lib/roken
+DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHEIMNTLM} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT}
+LDADD= -lkafs5 -lkrb5 -lheimntlm -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt
+MAN= kdestroy.1
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/usr.bin/kf/Makefile b/kerberos5/usr.bin/kf/Makefile
new file mode 100644
index 0000000..0a1ccec
--- /dev/null
+++ b/kerberos5/usr.bin/kf/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+PROG= kf
+MAN= kf.1
+SRCS= kf.c kf_locl.h
+CFLAGS+= -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken
+DPADD= ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBVERS}
+LDADD= -lkrb5 -lroken -lasn1 -lcrypto -lcrypt \
+ ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/appl/kf
diff --git a/kerberos5/usr.bin/kgetcred/Makefile b/kerberos5/usr.bin/kgetcred/Makefile
new file mode 100644
index 0000000..dac38ad
--- /dev/null
+++ b/kerberos5/usr.bin/kgetcred/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+PROG= kgetcred
+CFLAGS+= -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/roken
+DPADD= ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBVERS}
+LDADD= -lkrb5 -lroken -lasn1 -lcrypto -lcrypt ${LIBVERS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/usr.bin/kinit/Makefile b/kerberos5/usr.bin/kinit/Makefile
new file mode 100644
index 0000000..e0229f9
--- /dev/null
+++ b/kerberos5/usr.bin/kinit/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+PROG= kinit
+CFLAGS+=-I${KRB5DIR}/lib/roken
+DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHEIMNTLM} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT}
+LDADD= -lkafs5 -lkrb5 -lheimntlm -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kuser
diff --git a/kerberos5/usr.bin/kpasswd/Makefile b/kerberos5/usr.bin/kpasswd/Makefile
new file mode 100644
index 0000000..a9ab1c9
--- /dev/null
+++ b/kerberos5/usr.bin/kpasswd/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+PROG= kpasswd
+CFLAGS+=-I${KRB5DIR}/lib/roken
+DPADD= ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR}
+LDADD= -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kpasswd
diff --git a/kerberos5/usr.bin/krb5-config/Makefile b/kerberos5/usr.bin/krb5-config/Makefile
new file mode 100644
index 0000000..202d1de
--- /dev/null
+++ b/kerberos5/usr.bin/krb5-config/Makefile
@@ -0,0 +1,28 @@
+# $FreeBSD$
+
+SCRIPTS=krb5-config
+MAN= krb5-config.1
+
+CLEANFILES= krb5-config
+
+krb5-config: krb5-config.in
+ sed -e "s,@PACKAGE\@,FreeBSD heimdal,g" \
+ -e "s,@VERSION\@,1.1.0,g" \
+ -e "s,@prefix\@,/usr,g" \
+ -e "s,@exec_prefix\@,/usr,g" \
+ -e "s,@libdir\@,${LIBDIR},g" \
+ -e "s,@includedir\@,${INCLUDEDIR},g" \
+ -e "s,@LIB_crypt\@,-lcrypt,g" \
+ -e "s,@LIB_dbopen\@,,g" \
+ -e "s,@LIB_hcrypto_appl\@,-lcrypto,g" \
+ -e "s,@LIB_pkinit\@,-lhx509,g" \
+ -e "s,@LIB_dlopen\@,,g" \
+ -e "s,@LIB_door_create\@,,g" \
+ -e "s,@PTHREAD_LIBADD\@,-pthread,g" \
+ -e "s,@LIBS\@,,g" \
+ -e "s,@INCLUDE_hcrypto@,,g" \
+ ${.ALLSRC} > ${.TARGET}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/tools
diff --git a/kerberos5/usr.bin/ksu/Makefile b/kerberos5/usr.bin/ksu/Makefile
new file mode 100644
index 0000000..c6a0290
--- /dev/null
+++ b/kerberos5/usr.bin/ksu/Makefile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+
+PROG= ksu
+.if defined(ENABLE_SUID_K5SU)
+BINMODE=4555
+PRECIOUSPROG=
+.endif
+NO_MAN=
+SRCS= su.c
+CFLAGS+=-I${KRB5DIR}/lib/roken
+DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR}
+LDADD= -lkafs5 -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/appl/su
diff --git a/kerberos5/usr.bin/string2key/Makefile b/kerberos5/usr.bin/string2key/Makefile
new file mode 100644
index 0000000..25204fd
--- /dev/null
+++ b/kerberos5/usr.bin/string2key/Makefile
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+PROG= string2key
+MAN= string2key.8
+CFLAGS+= -I${KRB5DIR}/kdc \
+ -I${KRB5DIR}/lib/asn1 \
+ -I${KRB5DIR}/lib/krb5 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/windc
+DPADD= ${LIBHDB} ${LIBKRB5} ${LIBROKEN} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBVERS}
+LDADD= -lhdb -lkrb5 -lroken -lasn1 -lcrypto -lcrypt ${LIBVERS}
+SRCS= string2key.c headers.h
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/usr.bin/verify_krb5_conf/Makefile b/kerberos5/usr.bin/verify_krb5_conf/Makefile
new file mode 100644
index 0000000..830e66a
--- /dev/null
+++ b/kerberos5/usr.bin/verify_krb5_conf/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+PROG= verify_krb5_conf
+MAN= verify_krb5_conf.8
+CFLAGS+=-I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/roken
+DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBHX509} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR}
+LDADD= -lkafs5 -lkrb5 -lhx509 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -lcom_err
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/krb5
diff --git a/kerberos5/usr.sbin/Makefile b/kerberos5/usr.sbin/Makefile
new file mode 100644
index 0000000..5e8d58e
--- /dev/null
+++ b/kerberos5/usr.sbin/Makefile
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+SUBDIR= iprop-log kstash ktutil
+
+.include <bsd.subdir.mk>
diff --git a/kerberos5/usr.sbin/Makefile.inc b/kerberos5/usr.sbin/Makefile.inc
new file mode 100644
index 0000000..dab729d
--- /dev/null
+++ b/kerberos5/usr.sbin/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+BINDIR= /usr/sbin
+
+.include "../Makefile.inc"
diff --git a/kerberos5/usr.sbin/iprop-log/Makefile b/kerberos5/usr.sbin/iprop-log/Makefile
new file mode 100644
index 0000000..dbe269a
--- /dev/null
+++ b/kerberos5/usr.sbin/iprop-log/Makefile
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+PROG= iprop-log
+MAN= iprop-log.8
+SRCS= iprop-log.c iprop-commands.c iprop-commands.h kadm5_err.h
+CFLAGS+= -I${KRB5DIR}/lib/kadm5 \
+ -I${KRB5DIR}/lib/krb5 \
+ -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/lib/sl \
+ -I.
+DPADD= ${LIBKADM5SRV} ${LIBHDB} ${LIBKRB5} ${LIBASN1} ${LIBCRYPTO} \
+ ${LIBCRYPT} ${LIBSL} ${LIBROKEN} ${LIBVERS} ${LIBEDIT}
+LDADD= -lkadm5srv -lhdb -lkrb5 -lasn1 -lcrypto -lcrypt ${LIBSL} -lroken \
+ ${LIBVERS} -ledit
+
+iprop-commands.c iprop-commands.h: iprop-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/lib/kadm5
diff --git a/kerberos5/usr.sbin/kstash/Makefile b/kerberos5/usr.sbin/kstash/Makefile
new file mode 100644
index 0000000..024e45d
--- /dev/null
+++ b/kerberos5/usr.sbin/kstash/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+PROG= kstash
+MAN= kstash.8
+CFLAGS+=-I${KRB5DIR}/lib/asn1 -I${KRB5DIR}/lib/krb5 -I${KRB5DIR}/lib/roken \
+ -I${KRB5DIR}/kdc ${LDAPCFLAGS}
+DPADD= ${LIBHDB} ${LIBKRB5} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LDAPDPADD}
+LDADD= -lhdb -lkrb5 -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt ${LDAPLDADD}
+LDFLAGS=${LDAPLDFLAGS}
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5DIR}/kdc
diff --git a/kerberos5/usr.sbin/ktutil/Makefile b/kerberos5/usr.sbin/ktutil/Makefile
new file mode 100644
index 0000000..900d921
--- /dev/null
+++ b/kerberos5/usr.sbin/ktutil/Makefile
@@ -0,0 +1,31 @@
+# $FreeBSD$
+
+PROG= ktutil
+MAN= ktutil.8
+
+SRCS= add.c \
+ change.c \
+ copy.c \
+ destroy.c \
+ get.c \
+ ktutil.c \
+ ktutil_locl.h \
+ ktutil-commands.c \
+ ktutil-commands.h \
+ list.c \
+ purge.c \
+ remove.c \
+ rename.c
+
+CFLAGS+=-I${KRB5DIR}/lib/roken -I${KRB5DIR}/lib/sl -I.
+DPADD= ${LIBKADM5CLNT} ${LIBKRB5} ${LIBSL} ${LIBROKEN} ${LIBVERS} \
+ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBEDIT}
+LDADD= -lkadm5clnt -lkrb5 ${LIBSL} -lroken ${LIBVERS} \
+ -lasn1 -lcrypto -lcrypt -ledit
+
+.include <bsd.prog.mk>
+
+ktutil-commands.c ktutil-commands.h: ${KRB5DIR}/admin/ktutil-commands.in
+ slc ${.ALLSRC:M*.in}
+
+.PATH: ${KRB5DIR}/admin
OpenPOWER on IntegriCloud