Page MenuHomeFreeBSD

D50695.diff
No OneTemporary

D50695.diff

diff --git a/krb5/Makefile b/krb5/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/Makefile
@@ -0,0 +1,7 @@
+SUBDIR= util .WAIT \
+ include .WAIT \
+ lib .WAIT\
+ plugins libexec usr.bin usr.sbin
+# SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/Makefile.et b/krb5/Makefile.et
new file mode 100644
--- /dev/null
+++ b/krb5/Makefile.et
@@ -0,0 +1,22 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.et.h:
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+.et.c:
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c
diff --git a/krb5/Makefile.inc b/krb5/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/Makefile.inc
@@ -0,0 +1,45 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include <src.opts.mk>
+
+# MIT KRB5 uses KRB5_DIR. Heimdal uses KRB5DIR.
+KRB5_SRCTOP= ${SRCTOP}/krb5
+KRB5_DIR= ${SRCTOP}/crypto/krb5/src
+KRB5_ETDIR?= ${DESTDIR}/usr/share/et
+KRB5_SRCLIBDIR= ${KRB5_DIR}/lib
+
+KRB5_OBJTOP= ${OBJTOP}/krb5
+KRB5_OBJHDR= ${OBJTOP}/include
+COMPILE_ET= compile_et -d ${KRB5_DIR}/util/et --textdomain mit-krb5
+MAKE_COMMANDS= ${KRB5_OBJTOP}/util/ss/mk_cmds
+
+# There are no WARNS levels for this.
+CFLAGS+= -Wno-deprecated-non-prototype \
+ -Wno-macro-redefined \
+ -Wno-unused-parameter
+
+WARNS?= 1
+
+KRB5RCTMPDIR= /var/tmp
+KRB5PREFIX= /usr
+KRB5_EXEC_PREFIX= /usr
+KRB5_BINDIR= /usr/bin
+KRB5_LIBDIR= /usr/lib
+KRB5_SBINDIR= /usr/sbin
+KRB5_MODULEDIR= /usr/lib/krb5/plugins
+KRB5_GSSMODULEDIR= /usr/lib/gss
+KRB5_LOCALEDIR= /usr/share/locale
+KRB5_DOCSDIR= ${SHAREDIR}/doc/krb5
+KRB5_HTMLDOCSDIR= ${KRB5_DOCSDIR}/html
+KRB5_LOCALSTATEDIR= /var
+KRB5_RUNSTATEDIR= /var/run
+KRB5_SYSCONFDIR= /etc
+KRB5_DYNOBJEXT= .so
+KRB5_SYSCONFCONF= /etc/krb5.conf
diff --git a/krb5/README b/krb5/README
new file mode 100644
--- /dev/null
+++ b/krb5/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!
+
+Cy Schubert
+cy@freebsd.org
+2023-08-09
diff --git a/krb5/include/Makefile b/krb5/include/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/include/Makefile
@@ -0,0 +1,73 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+SUBDIR= krb5_private krb5 gssrpc gssapi
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
+
+INCSGROUPS= INCS COM_ERR VERTO GSSAPI_KRB5
+
+INCSDIR= ${INCLUDEDIR}
+
+.PATH: ${KRB5_DIR}/include
+
+INCS= kdb.h \
+ krad.h \
+ krb5.h
+
+GSSAPI_KRB5DIR= ${INCLUDEDIR}/gssapi_krb5/gssapi
+GSSAPI_KRB5= gssapi.h
+
+CLEANFILES= osconf.new
+
+# XXX The output of this needs to be verified against the osconf.h I created
+# It is only used to verify osconf.h has not changed
+osconf.h:
+ cat ./osconf.hin | sed -e "s\"@KRB5RCTMPDIR\"${KRB5RCTMPDIR}\"" -e "s\"@PREFIX\"${KRB5PREFIX}\"" -e "s\"@EXEC_PREFIX\"${KRB5_EXEC_PREFIX}\"" -e "s\"@BINDIR\"${KRB5_BINDIR}\"" -e "s\"@LIBDIR\"${KRB5_LIBDIR}\"" -e "s\"@SBINDIR\"${KRB5_SBINDIR}\"" -e "s\"@MODULEDIR\"${KRB5_MODULEDIR}\"" -e "s\"@GSSMODULEDIR\"${KRB5_GSSMODULEDIR}\"" -e "s\"@LOCALSTATEDIR\"${KRB5_LOCALSTATEDIR}\"" -e "s\"@RUNSTATEDIR\"${KRB5_RUNSTATEDIR}\"" -e "s\"@SYSCONFDIR\"${KRB5_SYSCONFDIR}\"" -e "s\"@DYNOBJEXT\"${KRB5_DYNOBJEXT}\"" -e "s\"@SYSCONFCONF\":${KRB5_SYSCONFCONF}\"" > osconf.new
+ sh ${MOVEIFCHANGED} osconf.new osconf.h
+
+rebuild-error-tables: ${K5_ET_HEADERS}
+
+force:
+
+stage_includes: copies
+installincludes: copies
+SDESTDIR?= ${SYSROOT:U${DESTDIR}}
+
+.PHONY: force rebuild-error-tables osconf.h
+
+.PATH: ${KRB5_DIR}/util/et
+COM_ERRDIR= ${INCLUDEDIR}
+COM_ERR= com_err.h
+
+.PATH: ${KRB5_DIR}/util/verto
+VERTODIR= ${INCLUDEDIR}
+VERTO= verto-module.h \
+ verto.h
+
+.PATH: ${KRB5_DIR}/include/krb5
+
+copies:
+ cd ${KRB5_DIR}/include; \
+ ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${INCS} ${SDESTDIR}${INCLUDEDIR}
+ cd ${KRB5_DIR}/util/et; \
+ ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${COM_ERR} ${SDESTDIR}${INCLUDEDIR}
+ cd ${KRB5_DIR}/util/verto; \
+ ${INSTALL} -C ${TAG_ARGS:D${TAG_ARGS},dev} -o ${BINOWN} -g ${BINGRP} -m444 ${VERTO} ${SDESTDIR}${INCLUDEDIR}
+
+
+.include <bsd.prog.mk>
diff --git a/krb5/include/Makefile.inc b/krb5/include/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/include/Makefile.inc
@@ -0,0 +1,10 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
diff --git a/krb5/include/autoconf.h b/krb5/include/autoconf.h
new file mode 100644
--- /dev/null
+++ b/krb5/include/autoconf.h
@@ -0,0 +1,768 @@
+/* include/autoconf.h. Generated from autoconf.h.in by configure. */
+/* include/autoconf.h.in. Generated from configure.ac by autoheader. */
+
+
+#ifndef KRB5_AUTOCONF_H
+#define KRB5_AUTOCONF_H
+
+#include <sys/types.h>
+#include <machine/param.h>
+
+
+/* Define if AES-NI support is enabled */
+/* #undef AESNI */
+
+/* Define if socket can't be bound to 0.0.0.0 */
+/* #undef BROKEN_STREAMS_SOCKETS */
+
+/* Define if va_list objects can be simply copied by assignment. */
+/* #undef CAN_COPY_VA_LIST */
+
+/* Define to reduce code size even if it means more cpu usage */
+/* #undef CONFIG_SMALL */
+
+/* Define if __attribute__((constructor)) works */
+#define CONSTRUCTOR_ATTR_WORKS 1
+
+/* Define to use OpenSSL crypto library */
+#define CRYPTO_OPENSSL 1
+
+/* Define to default ccache name */
+#define DEFCCNAME "FILE:/tmp/krb5cc_%{uid}"
+
+/* Define to default client keytab name */
+#define DEFCKTNAME "FILE:/var/krb5/user/%{euid}/client.keytab"
+
+/* Define to default keytab name */
+#define DEFKTNAME "FILE:/etc/krb5.keytab"
+
+/* Define if library initialization should be delayed until first use */
+#define DELAY_INITIALIZER 1
+
+/* Define if __attribute__((destructor)) works */
+#define DESTRUCTOR_ATTR_WORKS 1
+
+/* Define to disable PKINIT plugin support */
+/* #undef DISABLE_PKINIT */
+
+/* Define if LDAP KDB support within the Kerberos library (mainly ASN.1 code)
+ should be enabled. */
+/* #undef ENABLE_LDAP */
+
+/* Define if translation functions should be used. */
+/* #undef ENABLE_NLS */
+
+/* Define if thread support enabled */
+#define ENABLE_THREADS 1
+
+/* Define as return type of endrpcent */
+#define ENDRPCENT_TYPE void
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+ this is either `int' or `gid_t'. */
+#define GETGROUPS_T gid_t
+
+/* Define if gethostbyname_r returns int rather than struct hostent * */
+#define GETHOSTBYNAME_R_RETURNS_INT 1
+
+/* Type of getpeername second argument. */
+#define GETPEERNAME_ARG3_TYPE GETSOCKNAME_ARG3_TYPE
+
+/* Define if getpwnam_r exists but takes only 4 arguments (e.g., POSIX draft 6
+ implementations like some Solaris releases). */
+/* #undef GETPWNAM_R_4_ARGS */
+
+/* Define if getpwnam_r returns an int */
+#define GETPWNAM_R_RETURNS_INT 1
+
+/* Define if getpwuid_r exists but takes only 4 arguments (e.g., POSIX draft 6
+ implementations like some Solaris releases). */
+/* #undef GETPWUID_R_4_ARGS */
+
+/* Define if getservbyname_r returns int rather than struct servent * */
+#define GETSERVBYNAME_R_RETURNS_INT 1
+
+/* Type of pointer target for argument 3 to getsockname */
+#define GETSOCKNAME_ARG3_TYPE socklen_t
+
+/* Define if gmtime_r returns int instead of struct tm pointer, as on old
+ HP-UX systems. */
+/* #undef GMTIME_R_RETURNS_INT */
+
+/* Define if va_copy macro or function is available. */
+#define HAS_VA_COPY 1
+
+/* Define to 1 if you have the `access' function. */
+#define HAVE_ACCESS 1
+
+/* Define to 1 if you have the <alloca.h> header file. */
+/* #undef HAVE_ALLOCA_H */
+
+/* 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 `bswap16' function. */
+/* #undef HAVE_BSWAP16 */
+
+/* Define to 1 if you have the `bswap64' function. */
+/* #undef HAVE_BSWAP64 */
+
+/* Define to 1 if bswap_16 is available via byteswap.h */
+/* #undef HAVE_BSWAP_16 */
+
+/* Define to 1 if bswap_64 is available via byteswap.h */
+/* #undef HAVE_BSWAP_64 */
+
+/* Define if bt_rseq is available, for recursive btree traversal. */
+#define HAVE_BT_RSEQ 1
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `chmod' function. */
+#define HAVE_CHMOD 1
+
+/* Define if cmocka library is available. */
+/* #undef HAVE_CMOCKA */
+
+/* Define to 1 if you have the `compile' function. */
+/* #undef HAVE_COMPILE */
+
+/* Define if com_err has compatible gettext support */
+#define HAVE_COM_ERR_INTL 1
+
+/* Define to 1 if you have the <cpuid.h> header file. */
+/* #undef HAVE_CPUID_H */
+
+/* Define to 1 if you have the `daemon' function. */
+#define HAVE_DAEMON 1
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+ don't. */
+#define HAVE_DECL_STRERROR_R 1
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dn_skipname' function. */
+#define HAVE_DN_SKIPNAME 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define HAVE_ENDIAN_H 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the `EVP_PKEY_get_bn_param' function. */
+#define HAVE_EVP_PKEY_GET_BN_PARAM 1
+
+/* Define to 1 if you have the `explicit_bzero' function. */
+#define HAVE_EXPLICIT_BZERO 1
+
+/* Define to 1 if you have the `explicit_memset' function. */
+/* #undef HAVE_EXPLICIT_MEMSET */
+
+/* Define to 1 if you have the `fchmod' function. */
+#define HAVE_FCHMOD 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `flock' function. */
+#define HAVE_FLOCK 1
+
+/* Define to 1 if you have the `fnmatch' function. */
+#define HAVE_FNMATCH 1
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#define HAVE_FNMATCH_H 1
+
+/* Define if you have the getaddrinfo function */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if you have the `getenv' function. */
+#define HAVE_GETENV 1
+
+/* Define to 1 if you have the `geteuid' function. */
+#define HAVE_GETEUID 1
+
+/* Define if gethostbyname_r exists and its return type is known */
+#define HAVE_GETHOSTBYNAME_R 1
+
+/* Define to 1 if you have the `getnameinfo' function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define if system getopt should be used. */
+#define HAVE_GETOPT 1
+
+/* Define if system getopt_long should be used. */
+#define HAVE_GETOPT_LONG 1
+
+/* Define if getpwnam_r is available and useful. */
+#define HAVE_GETPWNAM_R 1
+
+/* Define if getpwuid_r is available and useful. */
+#define HAVE_GETPWUID_R 1
+
+/* Define to 1 if you have the `getresgid' function. */
+#define HAVE_GETRESGID 1
+
+/* Define to 1 if you have the `getresuid' function. */
+#define HAVE_GETRESUID 1
+
+/* Define if getservbyname_r exists and its return type is known */
+#define HAVE_GETSERVBYNAME_R 1
+
+/* Have the gettimeofday function */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `getusershell' function. */
+#define HAVE_GETUSERSHELL 1
+
+/* Define to 1 if you have the `gmtime_r' function. */
+#define HAVE_GMTIME_R 1
+
+/* Define to 1 if you have the <ifaddrs.h> header file. */
+#define HAVE_IFADDRS_H 1
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have the `inet_pton' function. */
+#define HAVE_INET_PTON 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 `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 <keyutils.h> header file. */
+/* #undef HAVE_KEYUTILS_H */
+
+/* Define to 1 if you have the <lber.h> header file. */
+/* #undef HAVE_LBER_H */
+
+/* Define to 1 if you have the <ldap.h> header file. */
+/* #undef HAVE_LDAP_H */
+
+/* Define to 1 if you have the `crypto' library (-lcrypto). */
+#define HAVE_LIBCRYPTO 1
+
+/* Define if building with libedit. */
+#define HAVE_LIBEDIT 1
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+/* #undef HAVE_LIBNSL */
+
+/* Define to 1 if you have the `resolv' library (-lresolv). */
+/* #undef HAVE_LIBRESOLV */
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+/* #undef HAVE_LIBSOCKET */
+
+/* Define if the util library is available */
+#define HAVE_LIBUTIL 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `localtime_r' function. */
+#define HAVE_LOCALTIME_R 1
+
+/* Define to 1 if you have the <machine/byte_order.h> header file. */
+/* #undef HAVE_MACHINE_BYTE_ORDER_H */
+
+/* Define to 1 if you have the <machine/endian.h> header file. */
+#define HAVE_MACHINE_ENDIAN_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mkstemp' function. */
+#define HAVE_MKSTEMP 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define if netdb.h declares h_errno */
+#define HAVE_NETDB_H_H_ERRNO 1
+
+/* 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 `ns_initparse' function. */
+#define HAVE_NS_INITPARSE 1
+
+/* Define to 1 if you have the `ns_name_uncompress' function. */
+#define HAVE_NS_NAME_UNCOMPRESS 1
+
+/* Define to 1 if you have the <paths.h> header file. */
+#define HAVE_PATHS_H 1
+
+/* Define if persistent keyrings are supported */
+/* #undef HAVE_PERSISTENT_KEYRING */
+
+/* Define to 1 if you have the <poll.h> header file. */
+#define HAVE_POLL_H 1
+
+/* Define if #pragma weak references work */
+#define HAVE_PRAGMA_WEAK_REF 1
+
+/* Define if you have POSIX threads libraries and header files. */
+#define HAVE_PTHREAD 1
+
+/* Define to 1 if you have the `pthread_once' function. */
+#define HAVE_PTHREAD_ONCE 1
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#define HAVE_PTHREAD_PRIO_INHERIT 1
+
+/* Define to 1 if you have the `pthread_rwlock_init' function. */
+#define HAVE_PTHREAD_RWLOCK_INIT 1
+
+/* Define if pthread_rwlock_init is provided in the thread library. */
+#define HAVE_PTHREAD_RWLOCK_INIT_IN_THREAD_LIB 1
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#define HAVE_PWD_H 1
+
+/* Define if building with GNU Readline. */
+/* #undef HAVE_READLINE */
+
+/* Define if regcomp exists and functions */
+#define HAVE_REGCOMP 1
+
+/* Define to 1 if you have the `regexec' function. */
+#define HAVE_REGEXEC 1
+
+/* Define to 1 if you have the <regexpr.h> header file. */
+/* #undef HAVE_REGEXPR_H */
+
+/* Define to 1 if you have the <regex.h> header file. */
+#define HAVE_REGEX_H 1
+
+/* Define to 1 if you have the `res_nclose' function. */
+#define HAVE_RES_NCLOSE 1
+
+/* Define to 1 if you have the `res_ndestroy' function. */
+#define HAVE_RES_NDESTROY 1
+
+/* Define to 1 if you have the `res_ninit' function. */
+#define HAVE_RES_NINIT 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 `re_comp' function. */
+/* #undef HAVE_RE_COMP */
+
+/* Define to 1 if you have the `re_exec' function. */
+/* #undef HAVE_RE_EXEC */
+
+/* Define to 1 if you have the <sasl/sasl.h> header file. */
+/* #undef HAVE_SASL_SASL_H */
+
+/* Define if struct sockaddr contains sa_len */
+#define HAVE_SA_LEN 1
+
+/* Define to 1 if you have the `secure_getenv' function. */
+#define HAVE_SECURE_GETENV 1
+
+/* Define to 1 if you have the `setegid' function. */
+#define HAVE_SETEGID 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `seteuid' function. */
+#define HAVE_SETEUID 1
+
+/* Define if setluid provided in OSF/1 security library */
+/* #undef HAVE_SETLUID */
+
+/* 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 `setvbuf' function. */
+#define HAVE_SETVBUF 1
+
+/* Define if there is a socklen_t type. If not, probably use size_t */
+#define HAVE_SOCKLEN_T 1
+
+/* Define to 1 if you have the `srand' function. */
+#define HAVE_SRAND 1
+
+/* Define to 1 if you have the `srand48' function. */
+#define HAVE_SRAND48 1
+
+/* Define to 1 if you have the `srandom' function. */
+#define HAVE_SRANDOM 1
+
+/* Define to 1 if the system has the type `ssize_t'. */
+#define HAVE_SSIZE_T 1
+
+/* Define to 1 if you have the `stat' function. */
+#define HAVE_STAT 1
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#define HAVE_STDDEF_H 1
+
+/* 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 to 1 if you have the `step' function. */
+/* #undef HAVE_STEP */
+
+/* Define to 1 if you have the `strchr' function. */
+#define HAVE_STRCHR 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 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 to 1 if you have the `strlcpy' function. */
+#define HAVE_STRLCPY 1
+
+/* Define to 1 if you have the `strptime' function. */
+#define HAVE_STRPTIME 1
+
+/* Define to 1 if the system has the type `struct cmsghdr'. */
+#define HAVE_STRUCT_CMSGHDR 1
+
+/* Define if there is a struct if_laddrconf. */
+/* #undef HAVE_STRUCT_IF_LADDRCONF */
+
+/* Define to 1 if the system has the type `struct in6_pktinfo'. */
+#define HAVE_STRUCT_IN6_PKTINFO 1
+
+/* Define to 1 if the system has the type `struct in_pktinfo'. */
+/* #undef HAVE_STRUCT_IN_PKTINFO */
+
+/* Define if there is a struct lifconf. */
+/* #undef HAVE_STRUCT_LIFCONF */
+
+/* Define to 1 if the system has the type `struct rt_msghdr'. */
+#define HAVE_STRUCT_RT_MSGHDR 1
+
+/* Define to 1 if the system has the type `struct sockaddr_storage'. */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if `st_mtimensec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1
+
+/* Define to 1 if `st_mtimespec.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
+
+/* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
+
+/* 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/dir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define if sys_errlist in libc */
+#define HAVE_SYS_ERRLIST 1
+
+/* 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/ndir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* 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/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/time.h> header file. */
+#define HAVE_SYS_TIME_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/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the `timegm' function. */
+#define HAVE_TIMEGM 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unsetenv' function. */
+#define HAVE_UNSETENV 1
+
+/* Define to 1 if the system has the type `u_char'. */
+#define HAVE_U_CHAR 1
+
+/* Define to 1 if the system has the type `u_int'. */
+#define HAVE_U_INT 1
+
+/* 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_int8_t'. */
+#define HAVE_U_INT8_T 1
+
+/* Define to 1 if the system has the type `u_long'. */
+#define HAVE_U_LONG 1
+
+/* Define to 1 if you have the `vasprintf' function. */
+#define HAVE_VASPRINTF 1
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `vsprintf' function. */
+#define HAVE_VSPRINTF 1
+
+/* Define to 1 if the system has the type `__int128_t'. */
+#define HAVE___INT128_T 1
+
+/* Define to 1 if the system has the type `__uint128_t'. */
+#define HAVE___UINT128_T 1
+
+/* Define if errno.h declares perror */
+/* #undef HDR_HAS_PERROR */
+
+/* May need to be defined to enable IPv6 support, for example on IRIX */
+/* #undef INET6 */
+
+/* Define if MIT Project Athena default configuration should be used */
+/* #undef KRB5_ATHENA_COMPAT */
+
+/* Define for DNS support of locating realms and KDCs */
+#define KRB5_DNS_LOOKUP 1
+
+/* Define to enable DNS lookups of Kerberos realm names */
+/* #undef KRB5_DNS_LOOKUP_REALM */
+
+/* Define if the KDC should return only vague error codes to clients */
+/* #undef KRBCONF_VAGUE_ERRORS */
+
+/* define if the system header files are missing prototype for daemon() */
+#define NEED_DAEMON_PROTO 1
+
+/* Define if in6addr_any is not defined in libc */
+/* #undef NEED_INSIXADDR_ANY */
+
+/* define if the system header files are missing prototype for
+ ss_execute_command() */
+/* #undef NEED_SS_EXECUTE_COMMAND_PROTO */
+
+/* define if the system header files are missing prototype for strptime() */
+/* #undef NEED_STRPTIME_PROTO */
+
+/* define if the system header files are missing prototype for swab() */
+/* #undef NEED_SWAB_PROTO */
+
+/* Define if need to declare sys_errlist */
+/* #undef NEED_SYS_ERRLIST */
+
+/* define if the system header files are missing prototype for vasprintf() */
+/* #undef NEED_VASPRINTF_PROTO */
+
+/* Define if the KDC should use no lookaside cache */
+/* #undef NOCACHE */
+
+/* Define if references to pthread routines should be non-weak. */
+/* #undef NO_WEAK_PTHREADS */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "krb5-bugs@mit.edu"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "Kerberos 5"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "Kerberos 5 1.21.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "krb5"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.21.1"
+
+/* Default PKCS11 module name */
+#define PKCS11_MODNAME "opensc-pkcs11.so"
+
+/* Define if setjmp indicates POSIX interface */
+#define POSIX_SETJMP 1
+
+/* Define if POSIX signal handling is used */
+#define POSIX_SIGNALS 1
+
+/* Define if termios.h exists and tcsetattr exists */
+#define POSIX_TERMIOS 1
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+ your system. */
+/* #undef PTHREAD_CREATE_JOINABLE */
+
+/* Define as return type of setrpcent */
+#define SETRPCENT_TYPE void
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T __SIZEOF_SIZE_T__
+
+/* The size of `time_t', as computed by sizeof. */
+#ifdef __i386__
+#define SIZEOF_TIME_T 4
+#else
+#define SIZEOF_TIME_T 8
+#endif
+
+/* Define to use OpenSSL for SPAKE preauth */
+#define SPAKE_OPENSSL 1
+
+/* Define for static plugin linkage */
+/* #undef STATIC_PLUGINS */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if strerror_r returns char *. */
+/* #undef STRERROR_R_CHAR_P */
+
+/* Define if sys_errlist is defined in errno.h */
+#define SYS_ERRLIST_DECLARED 1
+
+/* Define if no TLS implementation is selected */
+/* #undef TLS_IMPL_NONE */
+
+/* Define if TLS implementation is OpenSSL */
+#define TLS_IMPL_OPENSSL 1
+
+/* Define to build macOS CCAPI client */
+/* #undef USE_CCAPI_MACOS */
+
+/* Define if you have dirent.h functionality */
+#define USE_DIRENT_H 1
+
+/* Define if dlopen should be used */
+#define USE_DLOPEN 1
+
+/* Define if the keyring ccache should be enabled */
+/* #undef USE_KEYRING_CCACHE */
+
+/* Define if link-time options for library finalization will be used */
+/* #undef USE_LINKER_FINI_OPTION */
+
+/* Define if link-time options for library initialization will be used */
+/* #undef USE_LINKER_INIT_OPTION */
+
+/* Define if sigprocmask should be used */
+#define USE_SIGPROCMASK 1
+
+/* Define if wait takes int as a argument */
+#define WAIT_USES_INT 1
+
+/* Define to enable extensions in glibc */
+#define _GNU_SOURCE 1
+
+/* Define to enable C11 extensions */
+#define __STDC_WANT_LIB_EXT1__ 1
+
+/* 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 to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to `long' if <sys/types.h> does not define. */
+/* #undef time_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+
+#if defined(__GNUC__) && !defined(inline)
+/* Silence gcc pedantic warnings about ANSI C. */
+# define inline __inline__
+#endif
+#endif /* KRB5_AUTOCONF_H */
+
diff --git a/krb5/include/gssapi/Makefile b/krb5/include/gssapi/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/include/gssapi/Makefile
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+.PATH: ${KRB5_DIR}/lib/gssapi/krb5 \
+ ${KRB5_DIR}/lib/gssapi/generic \
+ ${KRB5_DIR}/include
+
+INCSGROUPS= INCS GSSAPI_KRB5
+INCSDIR= ${INCLUDEDIR}/gssapi
+GSSAPI_KRB5DIR= ${INCLUDEDIR}/gssapi_krb5
+
+INCS= gssapi_alloc.h \
+ gssapi_ext.h \
+ gssapi_generic.h \
+ gssapi_krb5.h
+
+# This gssapi header file is only needed should an app need
+# to build using the MIT KRB5 GSSAPI library.
+
+GSSAPI_KRB5= gssapi.h
+
+.include <bsd.prog.mk>
diff --git a/krb5/include/gssrpc/Makefile b/krb5/include/gssrpc/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/include/gssrpc/Makefile
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+INCSGROUPS= INCS
+.include "../Makefile.inc"
+
+.PATH: ${KRB5_DIR}/include/gssrpc
+
+INCSDIR= ${INCLUDEDIR}/gssrpc
+INCS= \
+ auth.h \
+ auth_gss.h \
+ auth_gssapi.h \
+ auth_unix.h \
+ clnt.h \
+ netdb.h \
+ pmap_clnt.h \
+ pmap_prot.h \
+ pmap_rmt.h \
+ rpc_msg.h \
+ rpc.h \
+ svc_auth.h \
+ svc.h \
+ types.h \
+ xdr.h
+
+.include <bsd.prog.mk>
diff --git a/krb5/include/gssrpc/types.h b/krb5/include/gssrpc/types.h
new file mode 100644
--- /dev/null
+++ b/krb5/include/gssrpc/types.h
@@ -0,0 +1,130 @@
+/* @(#)types.h 2.3 88/08/15 4.0 RPCSRC */
+/*
+ * Copyright (c) 2010, Oracle America, Inc.
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * 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.
+ *
+ * * Neither the name of the “Oracle America, Inc.” nor the names of
+ * its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
+ * HOLDER 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.
+ */
+/* @(#)types.h 1.18 87/07/24 SMI */
+
+/*
+ * Rpc additions to <sys/types.h>
+ */
+#ifndef GSSRPC_TYPES_H
+#define GSSRPC_TYPES_H
+
+#include <sys/types.h>
+
+#include <sys/select.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+/*
+ * Try to get MAXHOSTNAMELEN from somewhere.
+ */
+#include <sys/param.h>
+/* #include <netdb.h> */
+
+/* Get htonl(), ntohl(), etc. */
+#include <netinet/in.h>
+
+#include <stdlib.h>
+#include <stdint.h>
+#include <limits.h>
+
+#ifndef GSSRPC__BEGIN_DECLS
+#ifdef __cplusplus
+#define GSSRPC__BEGIN_DECLS extern "C" {
+#define GSSRPC__END_DECLS }
+#else
+#define GSSRPC__BEGIN_DECLS
+#define GSSRPC__END_DECLS
+#endif
+#endif
+
+GSSRPC__BEGIN_DECLS
+
+#if defined(CHAR_BIT) && CHAR_BIT != 8
+#error "Bytes must be exactly 8 bits."
+#endif
+
+/* Define if we need to fake up some BSD type aliases. */
+#ifndef GSSRPC__BSD_TYPEALIASES /* Allow application to override. */
+/* #undef GSSRPC__BSD_TYPEALIASES */
+#endif
+#if GSSRPC__BSD_TYPEALIASES
+typedef unsigned char u_char;
+typedef unsigned short u_short;
+typedef unsigned int u_int;
+typedef unsigned long u_long;
+#endif
+
+typedef uint32_t rpcprog_t;
+typedef uint32_t rpcvers_t;
+typedef uint32_t rpcprot_t;
+typedef uint32_t rpcproc_t;
+typedef uint32_t rpcport_t;
+typedef int32_t rpc_inline_t;
+
+/* This is for rpc/netdb.h */
+#define STRUCT_RPCENT_IN_RPC_NETDB_H
+
+typedef int bool_t;
+typedef int enum_t;
+#ifndef FALSE
+# define FALSE (0)
+#endif
+#ifndef TRUE
+# define TRUE (1)
+#endif
+/* XXX namespace */
+#define __dontcare__ -1
+#ifndef NULL
+# define NULL 0
+#endif
+
+/*
+ * The below should probably be internal-only, but seem to be
+ * traditionally exported in RPC implementations.
+ */
+#define mem_alloc(bsize) malloc(bsize)
+#define mem_free(ptr, bsize) free(ptr)
+
+#ifndef INADDR_LOOPBACK
+#define INADDR_LOOPBACK (uint32_t)0x7F000001
+#endif
+#ifndef MAXHOSTNAMELEN
+#define MAXHOSTNAMELEN 64
+#endif
+
+GSSRPC__END_DECLS
+
+#include <gssrpc/rename.h>
+
+#endif /* !defined(GSSRPC_TYPES_H) */
diff --git a/krb5/include/krb5/Makefile b/krb5/include/krb5/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/include/krb5/Makefile
@@ -0,0 +1,29 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+.PATH: ${KRB5_DIR}/include/krb5
+
+INCSDIR= ${INCLUDEDIR}/krb5
+INCS= ccselect_plugin.h \
+ certauth_plugin.h \
+ clpreauth_plugin.h \
+ hostrealm_plugin.h \
+ kadm5_auth_plugin.h \
+ kadm5_hook_plugin.h \
+ kdcpolicy_plugin.h \
+ kdcpreauth_plugin.h \
+ localauth_plugin.h \
+ locate_plugin.h \
+ plugin.h \
+ preauth_plugin.h \
+ pwqual_plugin.h
+
+.include <bsd.prog.mk>
diff --git a/krb5/include/krb5_private/Makefile b/krb5/include/krb5_private/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/include/krb5_private/Makefile
@@ -0,0 +1,43 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+# This is a bit of a hack but the reason we have to do this is
+# ${KRB5_DIR}/include/krb5/krb5.h is installed in /usr/include
+# while ${KRB5_DIR}/include/krb5/krb5.hin (generates to krb5.h)
+# installs to /usr/include/krb5/krb5.h. The conflicting files
+# makes it impossible to generate krb5.h when it already exists.
+# The MIT Makefile creates a krb5.h.new file, comparing it and
+# replacing it if different. Then regenerating the original source
+# to install it. Look at the MIT Makefile yourself to fully understand.
+
+.PATH: ${KRB5_DIR}/include/krb5 \
+ ${KRB5_DIR}/lib/gssapi/krb5 \
+ ${KRB5_DIR}/lib/gssapi/generic \
+ ${KRB5_DIR}/include
+
+INCSDIR= ${INCLUDEDIR}/krb5
+INCS= krb5.h ${GGENI} ${K5GENI}
+
+.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc"
+PFX= include
+.include "${KRB5_SRCTOP}/lib/gssapi/krb5/Makefile.et"
+.include "${KRB5_SRCTOP}/lib/gssapi/generic/Makefile.et"
+
+CLEANFILES+= krb5.h
+
+krb5.h: krb5.hin ${GENI_ET}
+ @echo "/* This file is generated, please don't edit it directly. */" > ${.TARGET}
+ @echo "#ifndef KRB5_KRB5_H_INCLUDED" >> ${.TARGET}
+ @echo "#define KRB5_KRB5_H_INCLUDED" >> ${.TARGET}
+ @cat ${.ALLSRC} >> ${.TARGET}
+ @echo "#endif /* KRB5_KRB5_H_INCLUDED */" >> ${.TARGET}
+
+.include <bsd.prog.mk>
diff --git a/krb5/include/osconf.h b/krb5/include/osconf.h
new file mode 100644
--- /dev/null
+++ b/krb5/include/osconf.h
@@ -0,0 +1,141 @@
+/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
+/*
+ * Copyright 1990,1991,2008 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * Export of this software from the United States of America may
+ * require a specific license from the United States Government.
+ * It is the responsibility of any person or organization contemplating
+ * export to obtain such a license before exporting.
+ *
+ * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ * distribute this software and its documentation for any purpose and
+ * without fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright notice and
+ * this permission notice appear in supporting documentation, and that
+ * the name of M.I.T. not be used in advertising or publicity pertaining
+ * to distribution of the software without specific, written prior
+ * permission. Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is" without express
+ * or implied warranty.
+ */
+
+/* Site- and OS- dependent configuration */
+
+#ifndef KRB5_OSCONF__
+#define KRB5_OSCONF__
+
+#if !defined(_WIN32)
+/* Don't try to pull in autoconf.h for Windows, since it's not used */
+#ifndef KRB5_AUTOCONF__
+#define KRB5_AUTOCONF__
+#include "autoconf.h"
+#endif
+#endif
+
+#if defined(__MACH__) && defined(__APPLE__)
+# include <TargetConditionals.h>
+#endif
+
+#if defined(_WIN32)
+#define DEFAULT_PROFILE_FILENAME "krb5.ini"
+#else /* !_WINDOWS */
+#if TARGET_OS_MAC
+#define DEFAULT_SECURE_PROFILE_PATH "/Library/Preferences/edu.mit.Kerberos:/etc/krb5.conf:/usr/local/etc/krb5.conf"
+#define DEFAULT_PROFILE_PATH ("~/Library/Preferences/edu.mit.Kerberos" ":" DEFAULT_SECURE_PROFILE_PATH)
+#define KRB5_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosFrameworkPlugins"
+#define KDB5_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosDatabasePlugins"
+#define KRB5_AUTHDATA_PLUGIN_BUNDLE_DIR "/System/Library/KerberosPlugins/KerberosAuthDataPlugins"
+#else
+#define DEFAULT_SECURE_PROFILE_PATH "/etc/krb5.conf"
+#define DEFAULT_PROFILE_PATH DEFAULT_SECURE_PROFILE_PATH
+#endif
+#endif /* _WINDOWS */
+
+#ifdef _WIN32
+#define DEFAULT_PLUGIN_BASE_DIR "%{LIBDIR}\\plugins"
+#else
+#define DEFAULT_PLUGIN_BASE_DIR "/usr/local/lib/krb5/plugins"
+#endif
+
+#if defined(_WIN64)
+#define PLUGIN_EXT "64.dll"
+#elif defined(_WIN32)
+#define PLUGIN_EXT "32.dll"
+#else
+#define PLUGIN_EXT ".so"
+#endif
+
+#define KDC_DIR "/var/db/krb5kdc"
+#define KDC_RUN_DIR "/var/run/krb5kdc"
+#define DEFAULT_KDB_FILE KDC_DIR "/principal"
+#define DEFAULT_KEYFILE_STUB KDC_DIR "/.k5."
+#define KRB5_DEFAULT_ADMIN_ACL KDC_DIR "/krb5_adm.acl"
+/* Used by old admin server */
+#define DEFAULT_ADMIN_ACL KDC_DIR "/kadm_old.acl"
+
+/* Location of KDC profile */
+#define DEFAULT_KDC_PROFILE KDC_DIR "/kdc.conf"
+#define KDC_PROFILE_ENV "KRB5_KDC_PROFILE"
+
+#if TARGET_OS_MAC
+#define DEFAULT_KDB_LIB_PATH { KDB5_PLUGIN_BUNDLE_DIR, "/usr/lib/krb5/plugins/kdb", NULL }
+#else
+#define DEFAULT_KDB_LIB_PATH { "/usr/lib/krb5/plugins/kdb", NULL }
+#endif
+
+#define DEFAULT_KDC_ENCTYPE ENCTYPE_AES256_CTS_HMAC_SHA1_96
+#define KDCRCACHE "dfl:krb5kdc_rcache"
+
+#define KDC_PORTNAME "kerberos" /* for /etc/services or equiv. */
+
+#define KRB5_DEFAULT_PORT 88
+
+#define DEFAULT_KPASSWD_PORT 464
+
+#define DEFAULT_KDC_UDP_PORTLIST "88"
+#define DEFAULT_KDC_TCP_PORTLIST "88"
+#define DEFAULT_TCP_LISTEN_BACKLOG 5
+
+/*
+ * Defaults for the KADM5 admin system.
+ */
+#define DEFAULT_KADM5_KEYTAB KDC_DIR "/kadm5.keytab"
+#define DEFAULT_KADM5_ACL_FILE KDC_DIR "/kadm5.acl"
+#define DEFAULT_KADM5_PORT 749 /* assigned by IANA */
+
+#define KRB5_DEFAULT_SUPPORTED_ENCTYPES \
+ "aes256-cts-hmac-sha1-96:normal " \
+ "aes128-cts-hmac-sha1-96:normal"
+
+#define MAX_DGRAM_SIZE 65536
+
+#define RCTMPDIR "/var/tmp" /* directory to store replay caches */
+
+#define KRB5_PATH_TTY "/dev/tty"
+#define KRB5_PATH_LOGIN "/usr/sbin/login.krb5"
+#define KRB5_PATH_RLOGIN "/usr/bin/rlogin"
+
+#define KRB5_ENV_CCNAME "KRB5CCNAME"
+
+/*
+ * krb5 replica support follows
+ */
+
+#define KPROP_DEFAULT_FILE KDC_DIR "/replica_datatrans"
+#define KPROPD_DEFAULT_FILE KDC_DIR "/from_master"
+#define KPROPD_DEFAULT_KDB5_UTIL "/usr/sbin/kdb5_util"
+#define KPROPD_DEFAULT_KPROP "/usr/sbin/kprop"
+#define KPROPD_DEFAULT_KRB_DB DEFAULT_KDB_FILE
+#define KPROPD_ACL_FILE KDC_DIR "/kpropd.acl"
+
+/*
+ * GSS mechglue
+ */
+#define MECH_CONF "/usr/etc/gss/mech"
+#define MECH_LIB_PREFIX "/usr/lib/gss/"
+
+#endif /* KRB5_OSCONF__ */
diff --git a/krb5/lib/Makefile b/krb5/lib/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/Makefile
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+SUBDIR= crypto krb5 gssapi rpc kdb kadm5clnt kadm5srv apputils krad kadmin_common kprop_util
+
+# SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/lib/Makefile.inc b/krb5/lib/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/Makefile.inc
@@ -0,0 +1,16 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+KRB5_KRB5LIBDIR= ${KRB5_SRCLIBDIR}/krb5
+KRB5_K5CRYPTODIR= ${KRB5_SRCLIBDIR}/crypto
+
+SHLIBDIR?= /usr/lib
+SHLIB_MAJOR?= 121
diff --git a/krb5/lib/apputils/Makefile b/krb5/lib/apputils/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/apputils/Makefile
@@ -0,0 +1,31 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5-lib
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= apputils
+INTERNALLIB=
+LDFLAGS=-Wl,--no-undefined
+
+SRCS= net-server.c \
+ udppktinfo.c \
+ udppktinfo.h
+
+CFLAGS+=-I${KRB5_DIR}/lib/apputils \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${.OBJDIR}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5_DIR}/lib/apputils
diff --git a/krb5/lib/crypto/Makefile b/krb5/lib/crypto/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/Makefile
@@ -0,0 +1,51 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= k5crypto
+# SHLIB_MAJOR= 3
+LDFLAGS=-Wl,--no-undefined
+LIBADD= com_err krb5support crypto
+
+# XXX The following doesn't work. Even though the pathnames are the same
+# XXX we need to use the alternative .include statements.
+# .include "${KRB5_CRYPTOLIBDIR}/krb/Makefile.inc"
+# .include "${KRB5_CRYPTOLIBDIR}/builtin/Makefile.inc"
+# .include "${KRB5_CRYPTOLIBDIR}/openssl/Makefile.inc"
+
+.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc"
+
+SRCS+= ${GEN_ET}
+
+.include "${KRB5_SRCTOP}/lib/crypto/krb/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/openssl/Makefile.inc"
+
+# Not normally configured to use the openssl provider
+# .include "${KRB5_SRCTOP}/lib/crypto/openssl/Makefile.inc"
+
+CFLAGS+=-I${.CURDIR:H:H}/include \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_DIR}/lib/crypto \
+ -I${KRB5_DIR}/lib/crypto/krb \
+ -I${KRB5_DIR}/lib/crypto/builtin/aes \
+ -I${KRB5_DIR}/lib/crypto/builtin/camellia \
+ -I${KRB5_DIR}/lib/crypto/builtin/des \
+ -I${KRB5_DIR}/lib/crypto/builtin/md4 \
+ -I${KRB5_DIR}/lib/crypto/builtin/md5 \
+ -I${KRB5_DIR}/lib/crypto/builtin/sha1 \
+ -I${KRB5_DIR}/lib/crypto/builtin/sha2 \
+ -I${SRCTOP}/crypto/openssl/include
+
+.include <bsd.lib.mk>
diff --git a/krb5/lib/crypto/builtin/Makefile.inc b/krb5/lib/crypto/builtin/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/Makefile.inc
@@ -0,0 +1,25 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+# .PATH: ${KRB5_DIR}/lib/crypto/builtin
+
+# SRCS+=cmac.c \
+# hmac.c \
+# kdf.c \
+# pbkdf2.c
+
+# .include "${KRB5_SRCTOP}/lib/crypto/builtin/camellia/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/aes/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/des/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/md4/Makefile.inc"
+# .include "${KRB5_SRCTOP}/lib/crypto/builtin/md5/Makefile.inc"
+# .include "${KRB5_SRCTOP}/lib/crypto/builtin/sha1/Makefile.inc"
+# .include "${KRB5_SRCTOP}/lib/crypto/builtin/sha2/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/enc_provider/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/builtin/hash_provider/Makefile.inc"
diff --git a/krb5/lib/crypto/builtin/aes/Makefile.inc b/krb5/lib/crypto/builtin/aes/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/aes/Makefile.inc
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/aes
+
+SRCS+= aescrypt.c \
+ aeskey.c \
+ aestab.c
diff --git a/krb5/lib/crypto/builtin/camellia/Makefile.inc b/krb5/lib/crypto/builtin/camellia/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/camellia/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/camellia
+
+SRCS+= camellia.c
diff --git a/krb5/lib/crypto/builtin/des/Makefile.inc b/krb5/lib/crypto/builtin/des/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/des/Makefile.inc
@@ -0,0 +1,22 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/des
+
+SRCS+= d3_aead.c \
+ d3_kysched.c \
+ f_aead.c \
+ f_cksum.c \
+ f_parity.c \
+ f_sched.c \
+ f_tables.c \
+ key_sched.c \
+ weak_key.c
+
+# des_keys.c
diff --git a/krb5/lib/crypto/builtin/enc_provider/Makefile.inc b/krb5/lib/crypto/builtin/enc_provider/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/enc_provider/Makefile.inc
@@ -0,0 +1,17 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/enc_provider
+
+SRCS+= builtin_rc4.c
+
+CLEANFILES+= builtin_rc4.c
+
+builtin_rc4.c: ${KRB5_DIR}/lib/crypto/builtin/enc_provider/rc4.c
+ @cp ${.ALLSRC} ${.TARGET}
diff --git a/krb5/lib/crypto/builtin/hash_provider/Makefile.inc b/krb5/lib/crypto/builtin/hash_provider/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/hash_provider/Makefile.inc
@@ -0,0 +1,15 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/hash_provider
+
+SRCS+= hash_md4.c \
+ hash_md5.c \
+ hash_sha1.c \
+ hash_sha2.c
diff --git a/krb5/lib/crypto/builtin/md4/Makefile.inc b/krb5/lib/crypto/builtin/md4/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/md4/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/md4
+
+SRCS+= md4.c
diff --git a/krb5/lib/crypto/builtin/md5/Makefile.inc b/krb5/lib/crypto/builtin/md5/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/md5/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/md5
+
+SRCS+= md5.c
diff --git a/krb5/lib/crypto/builtin/sha1/Makefile.inc b/krb5/lib/crypto/builtin/sha1/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/sha1/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/sha1
+
+SRCS+= shs.c
diff --git a/krb5/lib/crypto/builtin/sha2/Makefile.inc b/krb5/lib/crypto/builtin/sha2/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/builtin/sha2/Makefile.inc
@@ -0,0 +1,13 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/builtin/sha2
+
+SRCS+= sha256.c \
+ sha512.c
diff --git a/krb5/lib/crypto/krb/Makefile.inc b/krb5/lib/crypto/krb/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/krb/Makefile.inc
@@ -0,0 +1,65 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/krb
+
+SRCS+= aead.c \
+ block_size.c \
+ cf2.c \
+ checksum_dk_cmac.c \
+ checksum_dk_hmac.c \
+ checksum_etm.c \
+ checksum_hmac_md5.c \
+ checksum_length.c \
+ checksum_unkeyed.c \
+ cksumtype_to_string.c \
+ cksumtypes.c \
+ coll_proof_cksum.c \
+ crypto_length.c \
+ decrypt.c \
+ decrypt_iov.c \
+ default_state.c \
+ derive.c \
+ enc_dk_cmac.c \
+ enc_dk_hmac.c \
+ enc_etm.c \
+ enc_raw.c \
+ enc_rc4.c \
+ encrypt.c \
+ encrypt_iov.c \
+ encrypt_length.c \
+ enctype_util.c \
+ etypes.c \
+ key.c \
+ keyblocks.c \
+ keyed_checksum_types.c \
+ keyed_cksum.c \
+ keylengths.c \
+ make_checksum.c \
+ make_checksum_iov.c \
+ make_random_key.c \
+ mandatory_sumtype.c \
+ nfold.c \
+ old_api_glue.c \
+ prf.c \
+ prf_aes2.c \
+ prf_cmac.c \
+ prf_des.c \
+ prf_dk.c \
+ prf_rc4.c \
+ prng.c \
+ random_to_key.c \
+ s2k_pbkdf2.c \
+ s2k_rc4.c \
+ state.c \
+ string_to_cksumtype.c \
+ string_to_key.c \
+ valid_cksumtype.c \
+ verify_checksum.c \
+ verify_checksum_iov.c
diff --git a/krb5/lib/crypto/openssl/Makefile.inc b/krb5/lib/crypto/openssl/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/openssl/Makefile.inc
@@ -0,0 +1,21 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/openssl
+
+SRCS+= cmac.c \
+ hmac.c \
+ kdf.c \
+ pbkdf2.c \
+ sha256.c
+
+
+.include "${KRB5_SRCTOP}/lib/crypto/openssl/des/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/openssl/enc_provider/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/crypto/openssl/hash_provider/Makefile.inc"
diff --git a/krb5/lib/crypto/openssl/des/Makefile.inc b/krb5/lib/crypto/openssl/des/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/openssl/des/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/openssl/des
+
+SRCS+= des_keys.c
diff --git a/krb5/lib/crypto/openssl/enc_provider/Makefile.inc b/krb5/lib/crypto/openssl/enc_provider/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/openssl/enc_provider/Makefile.inc
@@ -0,0 +1,25 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/openssl/enc_provider
+
+SRCS+= openssl_aes.c \
+ openssl_camellia.c \
+ openssl_des3.c
+
+CLEANFILES= openssl_aes.c openssl_camellia.c openssl_des3.c
+
+openssl_aes.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/aes.c
+ @cp ${.ALLSRC} ${.TARGET}
+
+openssl_camellia.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/camellia.c
+ @cp ${.ALLSRC} ${.TARGET}
+
+openssl_des3.c: ${KRB5_DIR}/lib/crypto/openssl/enc_provider/des3.c
+ @cp ${.ALLSRC} ${.TARGET}
diff --git a/krb5/lib/crypto/openssl/hash_provider/Makefile.inc b/krb5/lib/crypto/openssl/hash_provider/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/crypto/openssl/hash_provider/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/crypto/openssl/hash_provider
+
+SRCS+= hash_evp.c
diff --git a/krb5/lib/gssapi/Makefile b/krb5/lib/gssapi/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/Makefile
@@ -0,0 +1,48 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= gssapi_krb5
+# SHLIB_MAJOR= 2
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5 k5crypto com_err krb5profile krb5support
+
+# This is a contcatonation of:
+# crypto/krb5/src/lib/gssapi/libgssapi_krb5.exports
+# crypto/krb5/src/lib/gssapi/spnego/mech_spnego.exports
+
+.include "${KRB5_SRCTOP}/lib/gssapi/generic/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/gssapi/krb5/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/gssapi/spnego/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/gssapi/mechglue/Makefile.inc"
+
+DEFINES=-D_GSS_STATIC_LINK=1
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/lib/gssapi/generic \
+ -I${KRB5_DIR}/lib/gssapi/krb5 \
+ -I${KRB5_DIR}/lib/gssapi/spnego \
+ -I${KRB5_DIR}/lib/gssapi/mechglue \
+ -I${KRB5_DIR}/lib/gssapi \
+ -I${KRB5_DIR}/lib \
+ -I${KRB5_SRCTOP}/lib \
+ -I${KRB5_SRCTOP}/lib/gssapi \
+ -I${KRB5_OBJTOP}/lib/gssapi \
+ -I${KRB5_OBJTOP}/lib \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .et
diff --git a/krb5/lib/gssapi/errmap.h b/krb5/lib/gssapi/errmap.h
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/errmap.h
@@ -0,0 +1,274 @@
+/*
+ * This file is generated, please don't edit it.
+ * script: ../../../util/gen.pl
+ * args: bimap errmap.h NAME=mecherrmap LEFT=OM_uint32 RIGHT=struct mecherror LEFTPRINT=print_OM_uint32 RIGHTPRINT=mecherror_print LEFTCMP=cmp_OM_uint32 RIGHTCMP=mecherror_cmp
+ * The rest of this file is copied from a template, with
+ * substitutions. See the template for copyright info.
+ */
+/* start of t_bimap header template */
+/*
+ * bidirectional mapping table, add-only
+ *
+ * Parameters:
+ * NAME
+ * LEFT, RIGHT - types
+ * LEFTCMP, RIGHTCMP - comparison functions
+ *
+ * Methods:
+ * int init() - nonzero is error code, if any possible
+ * long size()
+ * void foreach(int (*)(LEFT, RIGHT, void*), void*)
+ * int add(LEFT, RIGHT) - 0 = success, -1 = allocation failure
+ * const struct mecherror *findleft(OM_uint32) - null iff not found
+ * const OM_uint32 *findright(struct mecherror)
+ * void destroy() - destroys container, doesn't delete elements
+ *
+ * initial implementation: flat array of (left,right) pairs
+ */
+
+struct mecherrmap__pair {
+ OM_uint32 l;
+ struct mecherror r;
+};
+/* end of t_bimap header template */
+/* start of t_array template */
+
+/*
+ * array type, derived from template
+ *
+ * parameters:
+ * NAME: mecherrmap__pairarray
+ * TYPE: struct mecherrmap__pair
+ *
+ * methods:
+ * int init() -> nonzero if fail initial allocation
+ * unsigned long size() -> nonnegative number of values stored
+ * int grow(newsize) -> negative if fail allocation, memset(,0,) new space
+ * struct mecherrmap__pair *getaddr(idx) -> aborts if out of range
+ * void set(idx, value) -> aborts if out of range
+ * struct mecherrmap__pair get(idx) -> value, or aborts if out of range
+ */
+
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+#include <string.h>
+#include <stdint.h>
+
+struct mecherrmap__pairarray__header {
+ size_t allocated;
+ struct mecherrmap__pair *elts;
+};
+typedef struct mecherrmap__pairarray__header mecherrmap__pairarray;
+
+static inline int
+mecherrmap__pairarray_init(mecherrmap__pairarray *arr)
+{
+ arr->elts = calloc(10, sizeof(struct mecherrmap__pair));
+ if (arr->elts == NULL)
+ return ENOMEM;
+ arr->allocated = 10;
+ return 0;
+}
+
+static inline long
+mecherrmap__pairarray_size(mecherrmap__pairarray *arr)
+{
+ return arr->allocated;
+}
+
+static inline unsigned long
+mecherrmap__pairarray_max_size(mecherrmap__pairarray *arr)
+{
+ size_t upper_bound;
+
+ upper_bound = SIZE_MAX / sizeof(*arr->elts);
+ if (upper_bound > ULONG_MAX)
+ upper_bound = ULONG_MAX;
+ return (unsigned long) upper_bound;
+}
+
+static inline int
+mecherrmap__pairarray_grow(mecherrmap__pairarray *arr, unsigned long newcount)
+{
+ size_t oldsize = sizeof(*arr->elts) * arr->allocated;
+ size_t newsize;
+ void *ptr;
+
+ if (newcount > LONG_MAX)
+ return -1;
+ if (newcount < arr->allocated)
+ return 0;
+ if (newcount > mecherrmap__pairarray_max_size(arr))
+ return -1;
+
+ newsize = sizeof(*arr->elts) * newcount;
+ ptr = realloc(arr->elts, newsize);
+ if (ptr == NULL)
+ return -1;
+ memset((char *)ptr + oldsize, 0, newsize - oldsize);
+ arr->elts = ptr;
+ arr->allocated = newcount;
+ return 0;
+}
+
+static inline struct mecherrmap__pair *
+mecherrmap__pairarray_getaddr (mecherrmap__pairarray *arr, long idx)
+{
+ if (idx < 0 || (unsigned long) idx >= arr->allocated)
+ abort();
+ return arr->elts + idx;
+}
+
+static inline void
+mecherrmap__pairarray_set (mecherrmap__pairarray *arr, long idx, struct mecherrmap__pair value)
+{
+ struct mecherrmap__pair *newvalp;
+ newvalp = mecherrmap__pairarray_getaddr(arr, idx);
+ *newvalp = value;
+}
+
+static inline struct mecherrmap__pair
+mecherrmap__pairarray_get (mecherrmap__pairarray *arr, long idx)
+{
+ return *mecherrmap__pairarray_getaddr(arr, idx);
+}
+
+static inline void
+mecherrmap__pairarray_destroy (mecherrmap__pairarray *arr)
+{
+ free(arr->elts);
+ arr->elts = 0;
+}
+/* end of t_array template */
+/* start of t_bimap body template */
+
+/* for use in cases where text substitutions may not work, like putting
+ "const" before a type that turns out to be "char *" */
+typedef OM_uint32 mecherrmap__left_t;
+typedef struct mecherror mecherrmap__right_t;
+
+typedef struct {
+ mecherrmap__pairarray a;
+ long nextidx;
+} mecherrmap;
+
+static inline int
+mecherrmap_init (mecherrmap *m)
+{
+ m->nextidx = 0;
+ return mecherrmap__pairarray_init (&m->a);
+}
+
+static inline long
+mecherrmap_size (mecherrmap *m)
+{
+ return mecherrmap__pairarray_size (&m->a);
+}
+
+static inline void
+mecherrmap_foreach (mecherrmap *m, int (*fn)(OM_uint32, struct mecherror, void *), void *p)
+{
+ long i, sz;
+ sz = m->nextidx;
+ for (i = 0; i < sz; i++) {
+ struct mecherrmap__pair *pair;
+ pair = mecherrmap__pairarray_getaddr (&m->a, i);
+ if ((*fn)(pair->l, pair->r, p) != 0)
+ break;
+ }
+}
+
+static inline int
+mecherrmap_add (mecherrmap *m, OM_uint32 l, struct mecherror r)
+{
+ long i, sz;
+ struct mecherrmap__pair newpair;
+ int err;
+
+ sz = m->nextidx;
+ /* Make sure we're not duplicating. */
+ for (i = 0; i < sz; i++) {
+ struct mecherrmap__pair *pair;
+ pair = mecherrmap__pairarray_getaddr (&m->a, i);
+ assert ((*cmp_OM_uint32)(l, pair->l) != 0);
+ if ((*cmp_OM_uint32)(l, pair->l) == 0)
+ abort();
+ assert ((*mecherror_cmp)(r, pair->r) != 0);
+ if ((*mecherror_cmp)(r, pair->r) == 0)
+ abort();
+ }
+ newpair.l = l;
+ newpair.r = r;
+ if (sz >= LONG_MAX - 1)
+ return ENOMEM;
+ err = mecherrmap__pairarray_grow (&m->a, sz+1);
+ if (err)
+ return err;
+ mecherrmap__pairarray_set (&m->a, sz, newpair);
+ m->nextidx++;
+ return 0;
+}
+
+static inline const mecherrmap__right_t *
+mecherrmap_findleft (mecherrmap *m, OM_uint32 l)
+{
+ long i, sz;
+ sz = mecherrmap_size (m);
+ for (i = 0; i < sz; i++) {
+ struct mecherrmap__pair *pair;
+ pair = mecherrmap__pairarray_getaddr (&m->a, i);
+ if ((*cmp_OM_uint32)(l, pair->l) == 0)
+ return &pair->r;
+ }
+ return 0;
+}
+
+static inline const mecherrmap__left_t *
+mecherrmap_findright (mecherrmap *m, struct mecherror r)
+{
+ long i, sz;
+ sz = mecherrmap_size (m);
+ for (i = 0; i < sz; i++) {
+ struct mecherrmap__pair *pair;
+ pair = mecherrmap__pairarray_getaddr (&m->a, i);
+ if ((*mecherror_cmp)(r, pair->r) == 0)
+ return &pair->l;
+ }
+ return 0;
+}
+
+struct mecherrmap__printstat {
+ FILE *f;
+ int comma;
+};
+static inline int
+mecherrmap__printone (OM_uint32 l, struct mecherror r, void *p)
+{
+ struct mecherrmap__printstat *ps = p;
+ fprintf(ps->f, ps->comma ? ", (" : "(");
+ ps->comma = 1;
+ (*print_OM_uint32)(l, ps->f);
+ fprintf(ps->f, ",");
+ (*mecherror_print)(r, ps->f);
+ fprintf(ps->f, ")");
+ return 0;
+}
+
+static inline void
+mecherrmap_printmap (mecherrmap *m, FILE *f)
+{
+ struct mecherrmap__printstat ps;
+ ps.comma = 0;
+ ps.f = f;
+ fprintf(f, "(");
+ mecherrmap_foreach (m, mecherrmap__printone, &ps);
+ fprintf(f, ")");
+}
+
+static inline void
+mecherrmap_destroy (mecherrmap *m)
+{
+ mecherrmap__pairarray_destroy (&m->a);
+}
+/* end of t_bimap body template */
diff --git a/krb5/lib/gssapi/error_map.h b/krb5/lib/gssapi/error_map.h
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/error_map.h
@@ -0,0 +1,112 @@
+/*
+ * This file is generated, please don't edit it.
+ * script: ../../../util/gen-map.pl
+ * args:
+ * -oerror_map.new
+ * NAME=gsserrmap
+ * KEY=OM_uint32
+ * VALUE=char *
+ * COMPARE=compare_OM_uint32
+ * FREEVALUE=free_string
+ * The rest of this file is copied from a template, with
+ * substitutions. See the template for copyright info.
+ */
+/*
+ * map, generated from template
+ * map name: gsserrmap
+ * key: OM_uint32
+ * value: char *
+ * compare: compare_OM_uint32
+ * copy_key: 0
+ * free_key: 0
+ * free_value: free_string
+ */
+struct gsserrmap__element {
+ OM_uint32 key;
+ char * value;
+ struct gsserrmap__element *next;
+};
+struct gsserrmap__head {
+ struct gsserrmap__element *first;
+};
+typedef struct gsserrmap__head gsserrmap;
+static inline int gsserrmap_init (struct gsserrmap__head *head)
+{
+ head->first = NULL;
+ return 0;
+}
+static inline void gsserrmap_destroy (struct gsserrmap__head *head)
+{
+ struct gsserrmap__element *e, *e_next;
+ void (*free_key)(OM_uint32) = 0;
+ void (*free_value)(char *) = free_string;
+ for (e = head->first; e; e = e_next) {
+ e_next = e->next;
+ if (free_key)
+ (*free_key)(e->key);
+ if (free_value)
+ (*free_value)(e->value);
+ free(e);
+ }
+ head->first = NULL;
+}
+/* Returns pointer to linked-list entry, or null if key not found. */
+static inline struct gsserrmap__element *
+gsserrmap__find_node (struct gsserrmap__head *head, OM_uint32 key)
+{
+ struct gsserrmap__element *e;
+ for (e = head->first; e; e = e->next)
+ if (compare_OM_uint32 (key, e->key) == 0)
+ return e;
+ return 0;
+}
+/* Returns pointer to value, or null if key not found. */
+static inline char * *
+gsserrmap_find (struct gsserrmap__head *head, OM_uint32 key)
+{
+ struct gsserrmap__element *e = gsserrmap__find_node(head, key);
+ if (e)
+ return &e->value;
+ return 0;
+}
+/* Returns 0 or error code. */
+static inline int
+gsserrmap__copy_key (OM_uint32 *out, OM_uint32 in)
+{
+ int (*copykey)(OM_uint32 *, OM_uint32) = 0;
+ if (copykey == 0) {
+ *out = in;
+ return 0;
+ } else
+ return (*copykey)(out, in);
+}
+/* Returns 0 or error code. */
+static inline int
+gsserrmap_replace_or_insert (struct gsserrmap__head *head,
+ OM_uint32 key, char * new_value)
+{
+ struct gsserrmap__element *e = gsserrmap__find_node(head, key);
+ int ret;
+
+ if (e) {
+ /* replace */
+ void (*free_value)(char *) = free_string;
+ if (free_value)
+ (*free_value)(e->value);
+ e->value = new_value;
+ } else {
+ /* insert */
+ e = malloc(sizeof(*e));
+ if (e == NULL)
+ return ENOMEM;
+ ret = gsserrmap__copy_key (&e->key, key);
+ if (ret) {
+ free(e);
+ return ret;
+ }
+ e->value = new_value;
+ e->next = head->first;
+ head->first = e;
+ }
+ return 0;
+}
diff --git a/krb5/lib/gssapi/generic/Makefile.et b/krb5/lib/gssapi/generic/Makefile.et
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/generic/Makefile.et
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+GEN_GSSAPI_ERR_GENERIC= gssapi_err_generic.et
+GEN_GSSAPI_ERR_GENERIC_C= ${GEN_GSSAPI_ERR_GENERIC:S/.et$/.c/}
+GEN_GSSAPI_ERR_GENERIC_H= ${GEN_GSSAPI_ERR_GENERIC:S/.et$/.h/}
+CLEANFILES+= ${GEN_GSSAPI_ERR_GENERIC_C} ${GEN_GSSAPI_ERR_GENERIC_H}
+GGEN+= ${GEN_GSSAPI_ERR_GENERIC_C}
+GGENI+= ${GEN_GSSAPI_ERR_GENERIC_H}
+
+${GEN_GSSAPI_ERR_GENERIC:[2..-1]}: .NOMETA
+${GEN_GSSAPI_ERR_GENERIC_H}: ${GEN_GSSAPI_ERR_GENERIC}
+ rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.c ${PFX}-et-h-${.PREFIX}.h
+ cp ${.ALLSRC} ${PFX}-et-h-${.PREFIX}.et
+ ${COMPILE_ET} ${PFX}-et-h-${.PREFIX}.et
+ mv ${PFX}-et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.h
+
+${GEN_GSSAPI_ERR_GENERIC_C}: ${GEN_GSSAPI_ERR_GENERIC}
+ rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c ${PFX}-et-c-${.PREFIX}.h
+ cp ${.ALLSRC} ${PFX}-et-c-${.PREFIX}.et
+ ${COMPILE_ET} ${PFX}-et-c-${.PREFIX}.et
+ mv ${PFX}-et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c
diff --git a/krb5/lib/gssapi/generic/Makefile.inc b/krb5/lib/gssapi/generic/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/generic/Makefile.inc
@@ -0,0 +1,55 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/gssapi/generic \
+ ${KRB5_SRCTOP}/lib/gssapi/generic \
+ ${KRB5_SRCTOP}/include
+
+SRCS+= disp_com_err_status.c \
+ disp_major_status.c \
+ errmap.h \
+ gssapi.h \
+ gssapi_generic.c \
+ oid_ops.c \
+ rel_buffer.c \
+ rel_oid_set.c \
+ util_buffer.c \
+ util_buffer_set.c \
+ util_errmap.c \
+ util_seqstate.c \
+ util_set.c \
+ util_token.c \
+ ${GGEN} \
+ ${GGENI}
+
+# The gssapi subdir is only needed should we want an app to be able to
+# build using the MIT KRB5 GSSAPI library.
+# XXX We may wish to either comment this out or use a knob to enable/disable
+# XXX it.
+
+INCSGROUPS= GSSAPI_INCS
+GSSAPI_INCS= gssapi.h
+INCS+= ${GENI}
+GSSAPI_INCSDIR= ${INCLUDEDIR}/gssapi_krb5/gssapi
+
+CLEANFILES+= gssapi.h ${GGEN} ${GGENI}
+
+INCLUDE_XOM= echo "/* no xom.h */"
+
+gssapi.h: gssapi.hin
+ echo "Creating gssapi.h" ; \
+ h=gss$$$$; rm -f $$h; \
+ (echo "/* This is the gssapi.h prologue. */"; \
+ ${INCLUDE_XOM} && \
+ echo "/* End of gssapi.h prologue. */"&& \
+ cat ${KRB5_DIR}/lib/gssapi/generic/gssapi.hin )> $$h && \
+ (set -x; mv $$h ${.TARGET}) ; e=$$?; rm -f $$h; exit $$e
+
+PFX= generic
+.include "Makefile.et"
diff --git a/krb5/lib/gssapi/krb5/Makefile.et b/krb5/lib/gssapi/krb5/Makefile.et
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/krb5/Makefile.et
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+GEN_GSSAPI_ERR_KRB5= gssapi_err_krb5.et
+GEN_GSSAPI_ERR_KRB5_C= ${GEN_GSSAPI_ERR_KRB5:S/.et$/.c/}
+GEN_GSSAPI_ERR_KRB5_H= ${GEN_GSSAPI_ERR_KRB5:S/.et$/.h/}
+CLEANFILES= ${GEN_GSSAPI_ERR_KRB5_C} ${GEN_GSSAPI_ERR_KRB5_H}
+K5GEN+= ${GEN_GSSAPI_ERR_KRB5_C}
+K5GENI+= ${GEN_GSSAPI_ERR_KRB5_H}
+
+${GEN_GSSAPI_ERR_KRB5:[2..-1]}: .NOMETA
+${GEN_GSSAPI_ERR_KRB5_H}: ${GEN_GSSAPI_ERR_KRB5}
+ rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.c ${PFX}-et-h-${.PREFIX}.h
+ cp ${.ALLSRC} ${PFX}-et-h-${.PREFIX}.et
+ ${COMPILE_ET} ${PFX}-et-h-${.PREFIX}.et
+ mv ${PFX}-et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f ${PFX}-et-h-${.PREFIX}.et ${PFX}-et-h-${.PREFIX}.h
+
+${GEN_GSSAPI_ERR_KRB5_C}: ${GEN_GSSAPI_ERR_KRB5}
+ rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c ${PFX}-et-c-${.PREFIX}.h
+ cp ${.ALLSRC} ${PFX}-et-c-${.PREFIX}.et
+ ${COMPILE_ET} ${PFX}-et-c-${.PREFIX}.et
+ mv ${PFX}-et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f ${PFX}-et-c-${.PREFIX}.et ${PFX}-et-c-${.PREFIX}.c
diff --git a/krb5/lib/gssapi/krb5/Makefile.inc b/krb5/lib/gssapi/krb5/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/krb5/Makefile.inc
@@ -0,0 +1,72 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/gssapi/krb5 \
+ ${KRB5_SRCTOP}/lib/gssapi/krb5 \
+
+SRCS+= accept_sec_context.c \
+ acquire_cred.c \
+ canon_name.c \
+ compare_name.c \
+ context_time.c \
+ copy_ccache.c \
+ cred_store.c \
+ delete_sec_context.c \
+ disp_name.c \
+ disp_status.c \
+ duplicate_name.c \
+ export_cred.c \
+ export_name.c \
+ export_sec_context.c \
+ get_tkt_flags.c \
+ gssapi_krb5.c \
+ iakerb.c \
+ import_cred.c \
+ import_name.c \
+ import_sec_context.c \
+ indicate_mechs.c \
+ init_sec_context.c \
+ inq_context.c \
+ inq_cred.c \
+ inq_names.c \
+ k5seal.c \
+ k5sealiov.c \
+ k5sealv3.c \
+ k5sealv3iov.c \
+ k5unseal.c \
+ k5unsealiov.c \
+ krb5_gss_glue.c \
+ lucid_context.c \
+ naming_exts.c \
+ prf.c \
+ process_context_token.c \
+ rel_cred.c \
+ rel_name.c \
+ rel_oid.c \
+ s4u_gss_glue.c \
+ ser_sctx.c \
+ set_allowable_enctypes.c \
+ set_ccache.c \
+ store_cred.c \
+ util_cksum.c \
+ util_crypt.c \
+ util_seed.c \
+ util_seqnum.c \
+ val_cred.c \
+ wrap_size_limit.c \
+ ${K5GEN} \
+ ${K5GENI}
+
+CFLAGS+=-I${KRB5_DIR}/lib/krb5 \
+ -I${KRB5_OBJTOP}/lib/krb5 \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+PFX= krb5
+.include "Makefile.et"
diff --git a/krb5/lib/gssapi/mechglue/Makefile.inc b/krb5/lib/gssapi/mechglue/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/mechglue/Makefile.inc
@@ -0,0 +1,74 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/gssapi/mechglue
+
+SRCS+= g_accept_sec_context.c \
+ g_acquire_cred.c \
+ g_acquire_cred_imp_name.c \
+ g_acquire_cred_with_pw.c \
+ g_authorize_localname.c \
+ g_buffer_set.c \
+ g_canon_name.c \
+ g_compare_name.c \
+ g_complete_auth_token.c \
+ g_context_time.c \
+ g_decapsulate_token.c \
+ g_del_name_attr.c \
+ g_delete_sec_context.c \
+ g_dsp_name.c \
+ g_dsp_name_ext.c \
+ g_dsp_status.c \
+ g_dup_name.c \
+ g_encapsulate_token.c \
+ g_exp_sec_context.c \
+ g_export_cred.c \
+ g_export_name.c \
+ g_export_name_comp.c \
+ g_get_name_attr.c \
+ g_glue.c \
+ g_imp_cred.c \
+ g_imp_name.c \
+ g_imp_sec_context.c \
+ g_init_sec_context.c \
+ g_initialize.c \
+ g_inq_context.c \
+ g_inq_context_oid.c \
+ g_inq_cred.c \
+ g_inq_cred_oid.c \
+ g_inq_name.c \
+ g_inq_names.c \
+ g_map_name_to_any.c \
+ g_mech_invoke.c \
+ g_mechattr.c \
+ g_mechname.c \
+ g_negoex.c \
+ g_oid_ops.c \
+ g_prf.c \
+ g_process_context.c \
+ g_rel_buffer.c \
+ g_rel_cred.c \
+ g_rel_name.c \
+ g_rel_name_mapping.c \
+ g_rel_oid_set.c \
+ g_saslname.c \
+ g_seal.c \
+ g_set_context_option.c \
+ g_set_cred_option.c \
+ g_set_name_attr.c \
+ g_set_neg_mechs.c \
+ g_sign.c \
+ g_store_cred.c \
+ g_unseal.c \
+ g_unwrap_aead.c \
+ g_unwrap_iov.c \
+ g_verify.c \
+ g_wrap_aead.c \
+ g_wrap_iov.c \
+ gssd_pname_to_uid.c
diff --git a/krb5/lib/gssapi/spnego/Makefile.inc b/krb5/lib/gssapi/spnego/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/gssapi/spnego/Makefile.inc
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/gssapi/spnego
+
+SRCS+= negoex_ctx.c \
+ negoex_util.c \
+ spnego_mech.c
diff --git a/krb5/lib/kadm5clnt/Makefile b/krb5/lib/kadm5clnt/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kadm5clnt/Makefile
@@ -0,0 +1,97 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kadm5clnt_mit
+# SHLIB_MAJOR= 12
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile gssrpc gssapi_krb5 krb5 k5crypto krb5support com_err
+
+SRCS= alt_prof.c \
+ chpass_util.c \
+ logger.c \
+ kadm_rpc_xdr.c \
+ misc_free.c \
+ str_conv.c \
+ ${GEN} \
+ ${GENI}
+
+.include "${KRB5_SRCTOP}/lib/kadm5clnt/clnt/Makefile.inc"
+
+CFLAGS+=-I${KRB5_DIR}/lib/kadm5 \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_OBJTOP}/include/krb5_private \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib
+
+INCSDIR=${INCLUDEDIR}/kadm5
+INCS= admin.h \
+ admin_internal.h \
+ admin_xdr.h \
+ kadm_rpc.h \
+ server_internal.h \
+ ${GENI}
+
+KADM_ERR= kadm_err.et
+KADM_ERR_C= ${KADM_ERR:S/.et$/.c/}
+KADM_ERR_H= ${KADM_ERR:S/.et$/.h/}
+CLEANFILES+= ${KADM_ERR_C} ${KADM_ERR_H}
+GEN+= ${KADM_ERR_C}
+GENI+= ${KADM_ERR_H}
+
+${KADM_ERR:[2..-1]}: .NOMETA
+${KADM_ERR_H}: ${KADM_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${KADM_ERR_C}: ${KADM_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+CHPASS_UTIL_STRINGS_ERR= chpass_util_strings.et
+CHPASS_UTIL_STRINGS_ERR_C= ${CHPASS_UTIL_STRINGS_ERR:S/.et$/.c/}
+CHPASS_UTIL_STRINGS_ERR_H= ${CHPASS_UTIL_STRINGS_ERR:S/.et$/.h/}
+CLEANFILES+= ${CHPASS_UTIL_STRINGS_ERR_C} ${CHPASS_UTIL_STRINGS_ERR_H}
+GEN+= ${CHPASS_UTIL_STRINGS_ERR_C}
+GENI+= ${CHPASS_UTIL_STRINGS_ERR_H}
+
+${CHPASS_UTIL_STRINGS_ERR:[2..-1]}: .NOMETA
+${CHPASS_UTIL_STRINGS_ERR_H}: ${CHPASS_UTIL_STRINGS_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${CHPASS_UTIL_STRINGS_ERR_C}: ${CHPASS_UTIL_STRINGS_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+afterinstall:
+ ${INSTALL_LIBSYMLINK} ${SHLIB} ${DESTDIR}${LIBDIR}/libkadm5clnt
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c
+
+.PATH: ${KRB5_DIR}/lib/kadm5
diff --git a/krb5/lib/kadm5clnt/clnt/Makefile.inc b/krb5/lib/kadm5clnt/clnt/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kadm5clnt/clnt/Makefile.inc
@@ -0,0 +1,17 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/kadm5/clnt
+
+SRCS+= client_init.c \
+ client_principal.c \
+ client_rpc.c \
+ clnt_chpass_util.c \
+ clnt_policy.c \
+ clnt_privs.c
diff --git a/krb5/lib/kadm5srv/Makefile b/krb5/lib/kadm5srv/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kadm5srv/Makefile
@@ -0,0 +1,107 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kadm5srv_mit
+# SHLIB_MAJOR= 12
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile gssrpc gssapi_krb5 kdb5 krb5 k5crypto krb5support com_err
+
+INCSDIR= ${INCLUDEDIR}/kadm5
+
+SRCS= alt_prof.c \
+ chpass_util.c \
+ logger.c \
+ kadm_rpc_xdr.c \
+ misc_free.c \
+ str_conv.c \
+ ${SRCS_SRV} \
+ ${GEN}
+
+.include "${KRB5_SRCTOP}/lib/kadm5srv/srv/Makefile.inc"
+
+INCS= admin.h \
+ chpass_util_strings.h \
+ kadm_err.h
+
+GEN= kadm_err.c kadm_err.h chpass_util_strings.c chpass_util_strings.h
+CLEANFILES= ${GEN} ${GENI}
+
+CFLAGS+=-I${KRB5_DIR}/lib/kadm5 \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_OBJTOP}/include/krb5_private \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib \
+ -I${KRB5_OBJTOP}/lib/gssapi \
+ -I${KRB5_DIR}/lib/gssapi/krb5 \
+ -I${KRB5_DIR}/lib/gssapi/generic
+
+HDRDIR= ${KRB5_OBJHDR}/kadm5
+HDRS= ${HDRDIR}/admin.h \
+ ${HDRDIR}/admin_internal.h \
+ ${HDRDIR}/admin_xdr.h \
+ ${HDRDIR}/kadm_rpc.h \
+ ${HDRDIR}/server_internal.h \
+ ${HDRDIR}/chpass_util_strings.h \
+ ${HDRDIR}/kadm_err.h
+
+GEN_KADM_ERR= kadm_err.et
+GEN_KADM_ERR_C= ${GEN_KADM_ERR:S/.et$/.c/}
+GEN_KADM_ERR_H= ${GEN_KADM_ERR:S/.et$/.h/}
+CLEANFILES= ${GEN_KADM_ERR_C} ${GEN_KADM_ERR_H}
+GEN_ET= ${GEN_KADM_ERR_C}
+GENI_ET= ${GEN_KADM_ERR_H}
+
+${GEN_KADM_ERR:[2..-1]}: .NOMETA
+${GEN_KADM_ERR_H}: ${GEN_KADM_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KADM_ERR_C}: ${GEN_KADM_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_CHPASS_UTIL_STRINGS= chpass_util_strings.et
+GEN_CHPASS_UTIL_STRINGS_C= ${GEN_CHPASS_UTIL_STRINGS:S/.et$/.c/}
+GEN_CHPASS_UTIL_STRINGS_H= ${GEN_CHPASS_UTIL_STRINGS:S/.et$/.h/}
+CLEANFILES+= ${GEN_CHPASS_UTIL_STRINGS_C} ${GEN_CHPASS_UTIL_STRINGS_H}
+GEN_ET+= ${GEN_CHPASS_UTIL_STRINGS_C}
+GENI_ET+= ${GEN_CHPASS_UTIL_STRINGS_H}
+
+${GEN_CHPASS_UTIL_STRINGS:[2..-1]}: .NOMETA
+${GEN_CHPASS_UTIL_STRINGS_H}: ${GEN_CHPASS_UTIL_STRINGS}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_CHPASS_UTIL_STRINGS_C}: ${GEN_CHPASS_UTIL_STRINGS}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .et
+
+.PATH: ${KRB5_DIR}/lib/kadm5
diff --git a/krb5/lib/kadm5srv/srv/Makefile.inc b/krb5/lib/kadm5srv/srv/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kadm5srv/srv/Makefile.inc
@@ -0,0 +1,25 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/kadm5/srv
+
+SRCS+= adb_xdr.c \
+ kadm5_hook.c \
+ pwqual.c \
+ pwqual_dict.c \
+ pwqual_empty.c \
+ pwqual_hesiod.c \
+ pwqual_princ.c \
+ server_init.c \
+ server_kdb.c \
+ server_misc.c \
+ svr_chpass_util.c \
+ svr_iters.c \
+ svr_policy.c \
+ svr_principal.c
diff --git a/krb5/lib/kadmin_common/Makefile b/krb5/lib/kadmin_common/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kadmin_common/Makefile
@@ -0,0 +1,47 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kadmin_common
+INTERNALLIB=
+LDFLAGS=-Wl,--no-undefined
+INCS=
+
+SRCS= kadmin.c \
+ kadmin_ct.c \
+ ktutil_ct.c \
+ ss_wrapper.c \
+ getdate.y
+
+CFLAGS+=-I${KRB5_DIR}/lib/krad \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/util \
+ -I${KRB5_OBJTOP}/util \
+ -I${.OBJDIR}
+
+CLEANFILES= kadmin_ct.c ktutil_ct.c
+
+kadmin_ct.c: kadmin_ct.ct ss_err.h
+ ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/cli/kadmin_ct.ct
+
+ktutil_ct.c: ktutil_ct.ct ss_err.h
+ ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/ktutil/ktutil_ct.ct
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .ct
+
+.PATH: ${KRB5_DIR}/kadmin/cli \
+ ${KRB5_DIR}/kadmin/ktutil \
+ ${KRB5_DIR}/util/ss \
+ ${KRB5_OBJTOP}/util/ss
diff --git a/krb5/lib/kdb/Makefile b/krb5/lib/kdb/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kdb/Makefile
@@ -0,0 +1,66 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kdb5
+# SHLIB_MAJOR= 10
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile gssrpc krb5 k5crypto com_err krb5support gssapi_krb5
+
+SRCS= decrypt_key.c \
+ encrypt_key.c \
+ iprop_xdr.c \
+ kdb5.c \
+ kdb_convert.c \
+ kdb_cpw.c \
+ kdb_default.c \
+ kdb_log.c \
+ keytab.c \
+ ${GEN} \
+ ${GENI}
+
+DEFINES=-DKDB5_USE_LIB_KDB_DB2
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/lib/kdb \
+ -I${KRB5_OBJTOP}/lib/kdb \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+ADB_ERR= adb_err.et
+ADB_ERR_C= ${ADB_ERR:S/.et$/.c/}
+ADB_ERR_H= ${ADB_ERR:S/.et$/.h/}
+CLEANFILES= ${ADB_ERR_C} ${ADB_ERR_H}
+GEN+= ${ADB_ERR_C}
+GENI+= ${ADB_ERR_H}
+
+${ADB_ERR_H}: ${ADB_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${ADB_ERR_C}: ${ADB_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c
+
+.PATH: ${KRB5_DIR}/lib/kdb
diff --git a/krb5/lib/kprop_util/Makefile b/krb5/lib/kprop_util/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/kprop_util/Makefile
@@ -0,0 +1,28 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kprop_util
+INTERNALLIB=
+LDFLAGS=-Wl,--no-undefined
+INCS=
+
+SRCS= kprop_util.c
+
+CFLAGS+=-I${KRB5_DIR}/lib/krad \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${.OBJDIR}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5_DIR}/kprop
diff --git a/krb5/lib/krad/Makefile b/krb5/lib/krad/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krad/Makefile
@@ -0,0 +1,39 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5-lib
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= krad
+# SHLIB_MAJOR= 0
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5 k5crypto com_err krb5profile krb5support verto
+
+SRCS= attr.c \
+ attrset.c \
+ client.c \
+ code.c \
+ packet.c \
+ remote.c
+
+INCS= internal.h \
+ t_daemon.h \
+ t_test.h
+
+CFLAGS+=-I${KRB5_DIR}/lib/krad \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${.OBJDIR}
+
+.include <bsd.lib.mk>
+
+.PATH: ${KRB5_DIR}/lib/krad
diff --git a/krb5/lib/krb5/Makefile b/krb5/lib/krb5/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/Makefile
@@ -0,0 +1,75 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= krb5
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile k5crypto com_err krb5support
+# SHLIB_MAJOR= 3
+
+SRCS= krb5_libinit.c
+
+.include "${KRB5_SRCTOP}/lib/krb5/error_tables/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/asn.1/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/ccache/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/keytab/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/krb/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/os/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/rcache/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/unicode/Makefile.inc"
+.include "${KRB5_SRCTOP}/lib/krb5/docs/Makefile.inc"
+
+DEFINES=-DHAS_STDARG \
+ -DLIBDIR=\"${KRB5_LIBDIR}\" \
+ -DBINDIR=\"${KRB5_BINDIR}\" \
+ -DSBINDIR=\"${KRB5_SBINDIR}\" \
+ -DLOCALEDIR=\"${KRB5_LOCALEDIR}\"
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/lib/krb5/error_tables \
+ -I${KRB5_DIR}/lib/krb5/ccache \
+ -I${KRB5_DIR}/lib/krb5/keytab \
+ -I${KRB5_DIR}/lib/krb5/krb \
+ -I${KRB5_DIR}/lib/krb5/os \
+ -I${KRB5_DIR}/lib/krb5/rcache \
+ -I${KRB5_DIR}/lib/krb5/unicode \
+ -I${KRB5_DIR}/lib/krb5/unicode/ucdata \
+ -I${KRB5_DIR}/lib/krb5 \
+ -I${KRB5_DIR}/util/profile \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}
+
+MAN= k5identity.5 \
+ k5login.5 \
+ kadm5.acl.5 \
+ kdc.conf.5 \
+ krb5.conf.5 \
+ kerberos.7
+
+MLINKS= k5identity.5 .k5identity.5
+MLINKS+=k5login.5 .k5login.5
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .et .man .5 .7
+
+.man.5:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.man.7:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/lib/krb5 \
+ ${KRB5_DIR}/man
diff --git a/krb5/lib/krb5/asn.1/Makefile.inc b/krb5/lib/krb5/asn.1/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/asn.1/Makefile.inc
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/asn.1
+
+SRCS+= asn1_encode.c \
+ asn1_k_encode.c \
+ ldap_key_seq.c
diff --git a/krb5/lib/krb5/ccache/Makefile.inc b/krb5/lib/krb5/ccache/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/ccache/Makefile.inc
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/ccache
+
+SRCS+= cc_api_macos.c \
+ cc_dir.c \
+ cc_file.c \
+ cc_kcm.c \
+ cc_keyring.c \
+ cc_memory.c \
+ cc_retr.c \
+ ccapi_util.c \
+ ccbase.c \
+ cccopy.c \
+ cccursor.c \
+ ccdefault.c \
+ ccdefops.c \
+ ccfns.c \
+ ccmarshal.c \
+ ccselect.c \
+ ccselect_hostname.c \
+ ccselect_k5identity.c \
+ ccselect_realm.c
diff --git a/krb5/lib/krb5/docs/Makefile.inc b/krb5/lib/krb5/docs/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/docs/Makefile.inc
@@ -0,0 +1,1069 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+FILESGROPS= DOCS_HTML \
+ DOCS_HTML___STATIC \
+ DOCS_HTML_ADMIN \
+ DOCS_HTML_ADMIN_ADMIN__COMMANDS \
+ DOCS_HTML_ADMIN_ADVANCED \
+ DOCS_HTML_ADMIN_CONF__FILES \
+ DOCS_HTML_APPDEV \
+ DOCS_HTML_APPDEV_REFS \
+ DOCS_HTML_APPDEV_REFS_API \
+ DOCS_HTML_APPDEV_REFS_MACROS \
+ DOCS_HTML_APPDEV_REFS_TYPES \
+ DOCS_HTML_BASIC \
+ DOCS_HTML_BUILD \
+ DOCS_HTML_FORMATS \
+ DOCS_HTML_PLUGINDEV \
+ DOCS_HTML_USER \
+ DOCS_HTML_USER_USER__COMMANDS \
+ DOCS_HTML_USER_USER__CONFIG
+
+DOCS_HTMLDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML___STATICDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_ADMINDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_ADMIN_ADMIN__COMMANDSDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_ADMIN_ADVANCEDDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_ADMIN_CONF__FILESDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_APPDEVDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_APPDEV_REFSDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_APPDEV_REFS_APIDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_APPDEV_REFS_MACROSDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_APPDEV_REFS_TYPESDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_BASICDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_BUILDDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_FORMATSDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_PLUGINDEVDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_USERDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_USER_USER__COMMANDSDIR= ${KRB5_HTMLDOCSDIR}
+DOCS_HTML_USER_USER__CONFIGDIR= ${KRB5_HTMLDOCSDIR}
+
+DOCS_HTML= \
+ about.html \
+ build_this.html \
+ copyright.html \
+ genindex-A.html \
+ genindex-C.html \
+ genindex-E.html \
+ genindex-K.html \
+ genindex-L.html \
+ genindex-M.html \
+ genindex-P.html \
+ genindex-R.html \
+ genindex-S.html \
+ genindex-T.html \
+ genindex-V.html \
+ genindex-all.html \
+ genindex.html \
+ index.html \
+ mitK5defaults.html \
+ mitK5features.html \
+ mitK5license.html \
+ objects.inv \
+ resources.html \
+ search.html \
+ searchindex.js
+
+DOCS_HTML___STATIC= \
+ agogo.css \
+ basic.css \
+ bgfooter.png \
+ bgtop.png \
+ doctools.js \
+ documentation_options.js \
+ file.png \
+ jquery.js \
+ kerb.css \
+ language_data.js \
+ minus.png \
+ plus.png \
+ pygments.css \
+ searchtools.js \
+ underscore.js
+
+DOCS_HTML_ADMIN= \
+ appl_servers.html \
+ auth_indicator.html \
+ backup_host.html \
+ conf_ldap.html \
+ database.html \
+ dbtypes.html \
+ dictionary.html \
+ enctypes.html \
+ env_variables.html \
+ host_config.html \
+ https.html \
+ index.html \
+ install.html \
+ install_appl_srv.html \
+ install_clients.html \
+ install_kdc.html \
+ lockout.html \
+ otp.html \
+ pkinit.html \
+ princ_dns.html \
+ realm_config.html \
+ spake.html \
+ troubleshoot.html \
+ various_envs.html
+
+DOCS_HTML_ADMIN_ADMIN__COMMANDS= \
+ index.html \
+ k5srvutil.html \
+ kadmin_local.html \
+ kadmind.html \
+ kdb5_ldap_util.html \
+ kdb5_util.html \
+ kprop.html \
+ kpropd.html \
+ kproplog.html \
+ krb5kdc.html \
+ ktutil.html \
+ sserver.html
+
+DOCS_HTML_ADMIN_ADVANCED= \
+ index.html \
+ retiring-des.html
+
+DOCS_HTML_ADMIN_CONF__FILES= \
+ index.html \
+ kadm5_acl.html \
+ kdc_conf.html \
+ krb5_conf.html
+
+DOCS_HTML_APPDEV= \
+ gssapi.html \
+ h5l_mit_apidiff.html \
+ index.html \
+ init_creds.html \
+ princ_handle.html \
+ y2038.html
+
+DOCS_HTML_APPDEV_REFS= \
+ index.html
+
+DOCS_HTML_APPDEV_REFS_API= \
+ index.html \
+ krb5_425_conv_principal.html \
+ krb5_524_conv_principal.html \
+ krb5_524_convert_creds.html \
+ krb5_address_compare.html \
+ krb5_address_order.html \
+ krb5_address_search.html \
+ krb5_allow_weak_crypto.html \
+ krb5_aname_to_localname.html \
+ krb5_anonymous_principal.html \
+ krb5_anonymous_realm.html \
+ krb5_appdefault_boolean.html \
+ krb5_appdefault_string.html \
+ krb5_auth_con_free.html \
+ krb5_auth_con_genaddrs.html \
+ krb5_auth_con_get_checksum_func.html \
+ krb5_auth_con_getaddrs.html \
+ krb5_auth_con_getauthenticator.html \
+ krb5_auth_con_getflags.html \
+ krb5_auth_con_getkey.html \
+ krb5_auth_con_getkey_k.html \
+ krb5_auth_con_getlocalseqnumber.html \
+ krb5_auth_con_getlocalsubkey.html \
+ krb5_auth_con_getrcache.html \
+ krb5_auth_con_getrecvsubkey.html \
+ krb5_auth_con_getrecvsubkey_k.html \
+ krb5_auth_con_getremoteseqnumber.html \
+ krb5_auth_con_getremotesubkey.html \
+ krb5_auth_con_getsendsubkey.html \
+ krb5_auth_con_getsendsubkey_k.html \
+ krb5_auth_con_init.html \
+ krb5_auth_con_initivector.html \
+ krb5_auth_con_set_checksum_func.html \
+ krb5_auth_con_set_req_cksumtype.html \
+ krb5_auth_con_setaddrs.html \
+ krb5_auth_con_setflags.html \
+ krb5_auth_con_setports.html \
+ krb5_auth_con_setrcache.html \
+ krb5_auth_con_setrecvsubkey.html \
+ krb5_auth_con_setrecvsubkey_k.html \
+ krb5_auth_con_setsendsubkey.html \
+ krb5_auth_con_setsendsubkey_k.html \
+ krb5_auth_con_setuseruserkey.html \
+ krb5_build_principal.html \
+ krb5_build_principal_alloc_va.html \
+ krb5_build_principal_ext.html \
+ krb5_build_principal_va.html \
+ krb5_c_block_size.html \
+ krb5_c_checksum_length.html \
+ krb5_c_crypto_length.html \
+ krb5_c_crypto_length_iov.html \
+ krb5_c_decrypt.html \
+ krb5_c_decrypt_iov.html \
+ krb5_c_derive_prfplus.html \
+ krb5_c_encrypt.html \
+ krb5_c_encrypt_iov.html \
+ krb5_c_encrypt_length.html \
+ krb5_c_enctype_compare.html \
+ krb5_c_free_state.html \
+ krb5_c_fx_cf2_simple.html \
+ krb5_c_init_state.html \
+ krb5_c_is_coll_proof_cksum.html \
+ krb5_c_is_keyed_cksum.html \
+ krb5_c_keyed_checksum_types.html \
+ krb5_c_keylengths.html \
+ krb5_c_make_checksum.html \
+ krb5_c_make_checksum_iov.html \
+ krb5_c_make_random_key.html \
+ krb5_c_padding_length.html \
+ krb5_c_prf.html \
+ krb5_c_prf_length.html \
+ krb5_c_prfplus.html \
+ krb5_c_random_add_entropy.html \
+ krb5_c_random_make_octets.html \
+ krb5_c_random_os_entropy.html \
+ krb5_c_random_seed.html \
+ krb5_c_random_to_key.html \
+ krb5_c_string_to_key.html \
+ krb5_c_string_to_key_with_params.html \
+ krb5_c_valid_cksumtype.html \
+ krb5_c_valid_enctype.html \
+ krb5_c_verify_checksum.html \
+ krb5_c_verify_checksum_iov.html \
+ krb5_calculate_checksum.html \
+ krb5_cc_cache_match.html \
+ krb5_cc_close.html \
+ krb5_cc_copy_creds.html \
+ krb5_cc_default.html \
+ krb5_cc_default_name.html \
+ krb5_cc_destroy.html \
+ krb5_cc_dup.html \
+ krb5_cc_end_seq_get.html \
+ krb5_cc_gen_new.html \
+ krb5_cc_get_config.html \
+ krb5_cc_get_flags.html \
+ krb5_cc_get_full_name.html \
+ krb5_cc_get_name.html \
+ krb5_cc_get_principal.html \
+ krb5_cc_get_type.html \
+ krb5_cc_initialize.html \
+ krb5_cc_move.html \
+ krb5_cc_new_unique.html \
+ krb5_cc_next_cred.html \
+ krb5_cc_remove_cred.html \
+ krb5_cc_resolve.html \
+ krb5_cc_retrieve_cred.html \
+ krb5_cc_select.html \
+ krb5_cc_set_config.html \
+ krb5_cc_set_default_name.html \
+ krb5_cc_set_flags.html \
+ krb5_cc_start_seq_get.html \
+ krb5_cc_store_cred.html \
+ krb5_cc_support_switch.html \
+ krb5_cc_switch.html \
+ krb5_cccol_cursor_free.html \
+ krb5_cccol_cursor_new.html \
+ krb5_cccol_cursor_next.html \
+ krb5_cccol_have_content.html \
+ krb5_change_password.html \
+ krb5_check_clockskew.html \
+ krb5_checksum_size.html \
+ krb5_chpw_message.html \
+ krb5_cksumtype_to_string.html \
+ krb5_clear_error_message.html \
+ krb5_copy_addresses.html \
+ krb5_copy_authdata.html \
+ krb5_copy_authenticator.html \
+ krb5_copy_checksum.html \
+ krb5_copy_context.html \
+ krb5_copy_creds.html \
+ krb5_copy_data.html \
+ krb5_copy_error_message.html \
+ krb5_copy_keyblock.html \
+ krb5_copy_keyblock_contents.html \
+ krb5_copy_principal.html \
+ krb5_copy_ticket.html \
+ krb5_decode_authdata_container.html \
+ krb5_decode_ticket.html \
+ krb5_decrypt.html \
+ krb5_deltat_to_string.html \
+ krb5_eblock_enctype.html \
+ krb5_encode_authdata_container.html \
+ krb5_encrypt.html \
+ krb5_encrypt_size.html \
+ krb5_enctype_to_name.html \
+ krb5_enctype_to_string.html \
+ krb5_expand_hostname.html \
+ krb5_find_authdata.html \
+ krb5_finish_key.html \
+ krb5_finish_random_key.html \
+ krb5_free_addresses.html \
+ krb5_free_ap_rep_enc_part.html \
+ krb5_free_authdata.html \
+ krb5_free_authenticator.html \
+ krb5_free_checksum.html \
+ krb5_free_checksum_contents.html \
+ krb5_free_cksumtypes.html \
+ krb5_free_context.html \
+ krb5_free_cred_contents.html \
+ krb5_free_creds.html \
+ krb5_free_data.html \
+ krb5_free_data_contents.html \
+ krb5_free_default_realm.html \
+ krb5_free_enctypes.html \
+ krb5_free_error.html \
+ krb5_free_error_message.html \
+ krb5_free_host_realm.html \
+ krb5_free_keyblock.html \
+ krb5_free_keyblock_contents.html \
+ krb5_free_keytab_entry_contents.html \
+ krb5_free_principal.html \
+ krb5_free_string.html \
+ krb5_free_tgt_creds.html \
+ krb5_free_ticket.html \
+ krb5_free_unparsed_name.html \
+ krb5_fwd_tgt_creds.html \
+ krb5_get_credentials.html \
+ krb5_get_credentials_renew.html \
+ krb5_get_credentials_validate.html \
+ krb5_get_default_realm.html \
+ krb5_get_error_message.html \
+ krb5_get_etype_info.html \
+ krb5_get_fallback_host_realm.html \
+ krb5_get_host_realm.html \
+ krb5_get_in_tkt_with_keytab.html \
+ krb5_get_in_tkt_with_password.html \
+ krb5_get_in_tkt_with_skey.html \
+ krb5_get_init_creds_keytab.html \
+ krb5_get_init_creds_opt_alloc.html \
+ krb5_get_init_creds_opt_free.html \
+ krb5_get_init_creds_opt_get_fast_flags.html \
+ krb5_get_init_creds_opt_init.html \
+ krb5_get_init_creds_opt_set_address_list.html \
+ krb5_get_init_creds_opt_set_anonymous.html \
+ krb5_get_init_creds_opt_set_canonicalize.html \
+ krb5_get_init_creds_opt_set_change_password_prompt.html \
+ krb5_get_init_creds_opt_set_etype_list.html \
+ krb5_get_init_creds_opt_set_expire_callback.html \
+ krb5_get_init_creds_opt_set_fast_ccache.html \
+ krb5_get_init_creds_opt_set_fast_ccache_name.html \
+ krb5_get_init_creds_opt_set_fast_flags.html \
+ krb5_get_init_creds_opt_set_forwardable.html \
+ krb5_get_init_creds_opt_set_in_ccache.html \
+ krb5_get_init_creds_opt_set_out_ccache.html \
+ krb5_get_init_creds_opt_set_pa.html \
+ krb5_get_init_creds_opt_set_pac_request.html \
+ krb5_get_init_creds_opt_set_preauth_list.html \
+ krb5_get_init_creds_opt_set_proxiable.html \
+ krb5_get_init_creds_opt_set_renew_life.html \
+ krb5_get_init_creds_opt_set_responder.html \
+ krb5_get_init_creds_opt_set_salt.html \
+ krb5_get_init_creds_opt_set_tkt_life.html \
+ krb5_get_init_creds_password.html \
+ krb5_get_permitted_enctypes.html \
+ krb5_get_profile.html \
+ krb5_get_prompt_types.html \
+ krb5_get_renewed_creds.html \
+ krb5_get_server_rcache.html \
+ krb5_get_time_offsets.html \
+ krb5_get_validated_creds.html \
+ krb5_init_context.html \
+ krb5_init_context_profile.html \
+ krb5_init_creds_free.html \
+ krb5_init_creds_get.html \
+ krb5_init_creds_get_creds.html \
+ krb5_init_creds_get_error.html \
+ krb5_init_creds_get_times.html \
+ krb5_init_creds_init.html \
+ krb5_init_creds_set_keytab.html \
+ krb5_init_creds_set_password.html \
+ krb5_init_creds_set_service.html \
+ krb5_init_creds_step.html \
+ krb5_init_keyblock.html \
+ krb5_init_random_key.html \
+ krb5_init_secure_context.html \
+ krb5_is_config_principal.html \
+ krb5_is_referral_realm.html \
+ krb5_is_thread_safe.html \
+ krb5_k_create_key.html \
+ krb5_k_decrypt.html \
+ krb5_k_decrypt_iov.html \
+ krb5_k_encrypt.html \
+ krb5_k_encrypt_iov.html \
+ krb5_k_free_key.html \
+ krb5_k_key_enctype.html \
+ krb5_k_key_keyblock.html \
+ krb5_k_make_checksum.html \
+ krb5_k_make_checksum_iov.html \
+ krb5_k_prf.html \
+ krb5_k_reference_key.html \
+ krb5_k_verify_checksum.html \
+ krb5_k_verify_checksum_iov.html \
+ krb5_kdc_sign_ticket.html \
+ krb5_kdc_verify_ticket.html \
+ krb5_kt_add_entry.html \
+ krb5_kt_client_default.html \
+ krb5_kt_close.html \
+ krb5_kt_default.html \
+ krb5_kt_default_name.html \
+ krb5_kt_dup.html \
+ krb5_kt_end_seq_get.html \
+ krb5_kt_free_entry.html \
+ krb5_kt_get_entry.html \
+ krb5_kt_get_name.html \
+ krb5_kt_get_type.html \
+ krb5_kt_have_content.html \
+ krb5_kt_next_entry.html \
+ krb5_kt_read_service_key.html \
+ krb5_kt_remove_entry.html \
+ krb5_kt_resolve.html \
+ krb5_kt_start_seq_get.html \
+ krb5_kuserok.html \
+ krb5_make_authdata_kdc_issued.html \
+ krb5_marshal_credentials.html \
+ krb5_merge_authdata.html \
+ krb5_mk_1cred.html \
+ krb5_mk_error.html \
+ krb5_mk_ncred.html \
+ krb5_mk_priv.html \
+ krb5_mk_rep.html \
+ krb5_mk_rep_dce.html \
+ krb5_mk_req.html \
+ krb5_mk_req_extended.html \
+ krb5_mk_safe.html \
+ krb5_os_localaddr.html \
+ krb5_pac_add_buffer.html \
+ krb5_pac_free.html \
+ krb5_pac_get_buffer.html \
+ krb5_pac_get_client_info.html \
+ krb5_pac_get_types.html \
+ krb5_pac_init.html \
+ krb5_pac_parse.html \
+ krb5_pac_sign.html \
+ krb5_pac_sign_ext.html \
+ krb5_pac_verify.html \
+ krb5_pac_verify_ext.html \
+ krb5_parse_name.html \
+ krb5_parse_name_flags.html \
+ krb5_prepend_error_message.html \
+ krb5_principal2salt.html \
+ krb5_principal_compare.html \
+ krb5_principal_compare_any_realm.html \
+ krb5_principal_compare_flags.html \
+ krb5_process_key.html \
+ krb5_prompter_posix.html \
+ krb5_random_key.html \
+ krb5_rd_cred.html \
+ krb5_rd_error.html \
+ krb5_rd_priv.html \
+ krb5_rd_rep.html \
+ krb5_rd_rep_dce.html \
+ krb5_rd_req.html \
+ krb5_rd_safe.html \
+ krb5_read_password.html \
+ krb5_realm_compare.html \
+ krb5_recvauth.html \
+ krb5_recvauth_version.html \
+ krb5_responder_get_challenge.html \
+ krb5_responder_list_questions.html \
+ krb5_responder_otp_challenge_free.html \
+ krb5_responder_otp_get_challenge.html \
+ krb5_responder_otp_set_answer.html \
+ krb5_responder_pkinit_challenge_free.html \
+ krb5_responder_pkinit_get_challenge.html \
+ krb5_responder_pkinit_set_answer.html \
+ krb5_responder_set_answer.html \
+ krb5_salttype_to_string.html \
+ krb5_sendauth.html \
+ krb5_server_decrypt_ticket_keytab.html \
+ krb5_set_default_realm.html \
+ krb5_set_default_tgs_enctypes.html \
+ krb5_set_error_message.html \
+ krb5_set_kdc_recv_hook.html \
+ krb5_set_kdc_send_hook.html \
+ krb5_set_password.html \
+ krb5_set_password_using_ccache.html \
+ krb5_set_principal_realm.html \
+ krb5_set_real_time.html \
+ krb5_set_trace_callback.html \
+ krb5_set_trace_filename.html \
+ krb5_sname_match.html \
+ krb5_sname_to_principal.html \
+ krb5_string_to_cksumtype.html \
+ krb5_string_to_deltat.html \
+ krb5_string_to_enctype.html \
+ krb5_string_to_key.html \
+ krb5_string_to_salttype.html \
+ krb5_string_to_timestamp.html \
+ krb5_timeofday.html \
+ krb5_timestamp_to_sfstring.html \
+ krb5_timestamp_to_string.html \
+ krb5_tkt_creds_free.html \
+ krb5_tkt_creds_get.html \
+ krb5_tkt_creds_get_creds.html \
+ krb5_tkt_creds_get_times.html \
+ krb5_tkt_creds_init.html \
+ krb5_tkt_creds_step.html \
+ krb5_unmarshal_credentials.html \
+ krb5_unparse_name.html \
+ krb5_unparse_name_ext.html \
+ krb5_unparse_name_flags.html \
+ krb5_unparse_name_flags_ext.html \
+ krb5_us_timeofday.html \
+ krb5_use_enctype.html \
+ krb5_verify_authdata_kdc_issued.html \
+ krb5_verify_checksum.html \
+ krb5_verify_init_creds.html \
+ krb5_verify_init_creds_opt_init.html \
+ krb5_verify_init_creds_opt_set_ap_req_nofail.html \
+ krb5_vprepend_error_message.html \
+ krb5_vset_error_message.html \
+ krb5_vwrap_error_message.html \
+ krb5_wrap_error_message.html
+
+DOCS_HTML_APPDEV_REFS_MACROS= \
+ ADDRTYPE_ADDRPORT.html \
+ ADDRTYPE_CHAOS.html \
+ ADDRTYPE_DDP.html \
+ ADDRTYPE_INET.html \
+ ADDRTYPE_INET6.html \
+ ADDRTYPE_IPPORT.html \
+ ADDRTYPE_ISO.html \
+ ADDRTYPE_IS_LOCAL.html \
+ ADDRTYPE_NETBIOS.html \
+ ADDRTYPE_XNS.html \
+ AD_TYPE_EXTERNAL.html \
+ AD_TYPE_FIELD_TYPE_MASK.html \
+ AD_TYPE_REGISTERED.html \
+ AD_TYPE_RESERVED.html \
+ AP_OPTS_ETYPE_NEGOTIATION.html \
+ AP_OPTS_MUTUAL_REQUIRED.html \
+ AP_OPTS_RESERVED.html \
+ AP_OPTS_USE_SESSION_KEY.html \
+ AP_OPTS_USE_SUBKEY.html \
+ AP_OPTS_WIRE_MASK.html \
+ CKSUMTYPE_CMAC_CAMELLIA128.html \
+ CKSUMTYPE_CMAC_CAMELLIA256.html \
+ CKSUMTYPE_CRC32.html \
+ CKSUMTYPE_DESCBC.html \
+ CKSUMTYPE_HMAC_MD5_ARCFOUR.html \
+ CKSUMTYPE_HMAC_SHA1_96_AES128.html \
+ CKSUMTYPE_HMAC_SHA1_96_AES256.html \
+ CKSUMTYPE_HMAC_SHA1_DES3.html \
+ CKSUMTYPE_HMAC_SHA256_128_AES128.html \
+ CKSUMTYPE_HMAC_SHA384_192_AES256.html \
+ CKSUMTYPE_MD5_HMAC_ARCFOUR.html \
+ CKSUMTYPE_NIST_SHA.html \
+ CKSUMTYPE_RSA_MD4.html \
+ CKSUMTYPE_RSA_MD4_DES.html \
+ CKSUMTYPE_RSA_MD5.html \
+ CKSUMTYPE_RSA_MD5_DES.html \
+ CKSUMTYPE_SHA1.html \
+ ENCTYPE_AES128_CTS_HMAC_SHA1_96.html \
+ ENCTYPE_AES128_CTS_HMAC_SHA256_128.html \
+ ENCTYPE_AES256_CTS_HMAC_SHA1_96.html \
+ ENCTYPE_AES256_CTS_HMAC_SHA384_192.html \
+ ENCTYPE_ARCFOUR_HMAC.html \
+ ENCTYPE_ARCFOUR_HMAC_EXP.html \
+ ENCTYPE_CAMELLIA128_CTS_CMAC.html \
+ ENCTYPE_CAMELLIA256_CTS_CMAC.html \
+ ENCTYPE_DES3_CBC_ENV.html \
+ ENCTYPE_DES3_CBC_RAW.html \
+ ENCTYPE_DES3_CBC_SHA.html \
+ ENCTYPE_DES3_CBC_SHA1.html \
+ ENCTYPE_DES_CBC_CRC.html \
+ ENCTYPE_DES_CBC_MD4.html \
+ ENCTYPE_DES_CBC_MD5.html \
+ ENCTYPE_DES_CBC_RAW.html \
+ ENCTYPE_DES_HMAC_SHA1.html \
+ ENCTYPE_DSA_SHA1_CMS.html \
+ ENCTYPE_MD5_RSA_CMS.html \
+ ENCTYPE_NULL.html \
+ ENCTYPE_RC2_CBC_ENV.html \
+ ENCTYPE_RSA_ENV.html \
+ ENCTYPE_RSA_ES_OAEP_ENV.html \
+ ENCTYPE_SHA1_RSA_CMS.html \
+ ENCTYPE_UNKNOWN.html \
+ KDC_OPT_ALLOW_POSTDATE.html \
+ KDC_OPT_CANONICALIZE.html \
+ KDC_OPT_CNAME_IN_ADDL_TKT.html \
+ KDC_OPT_DISABLE_TRANSITED_CHECK.html \
+ KDC_OPT_ENC_TKT_IN_SKEY.html \
+ KDC_OPT_FORWARDABLE.html \
+ KDC_OPT_FORWARDED.html \
+ KDC_OPT_POSTDATED.html \
+ KDC_OPT_PROXIABLE.html \
+ KDC_OPT_PROXY.html \
+ KDC_OPT_RENEW.html \
+ KDC_OPT_RENEWABLE.html \
+ KDC_OPT_RENEWABLE_OK.html \
+ KDC_OPT_REQUEST_ANONYMOUS.html \
+ KDC_OPT_VALIDATE.html \
+ KDC_TKT_COMMON_MASK.html \
+ KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE.html \
+ KRB5_ANONYMOUS_PRINCSTR.html \
+ KRB5_ANONYMOUS_REALMSTR.html \
+ KRB5_AP_REP.html \
+ KRB5_AP_REQ.html \
+ KRB5_AS_REP.html \
+ KRB5_AS_REQ.html \
+ KRB5_AUTHDATA_AND_OR.html \
+ KRB5_AUTHDATA_AP_OPTIONS.html \
+ KRB5_AUTHDATA_AUTH_INDICATOR.html \
+ KRB5_AUTHDATA_CAMMAC.html \
+ KRB5_AUTHDATA_ETYPE_NEGOTIATION.html \
+ KRB5_AUTHDATA_FX_ARMOR.html \
+ KRB5_AUTHDATA_IF_RELEVANT.html \
+ KRB5_AUTHDATA_INITIAL_VERIFIED_CAS.html \
+ KRB5_AUTHDATA_KDC_ISSUED.html \
+ KRB5_AUTHDATA_MANDATORY_FOR_KDC.html \
+ KRB5_AUTHDATA_OSF_DCE.html \
+ KRB5_AUTHDATA_SESAME.html \
+ KRB5_AUTHDATA_SIGNTICKET.html \
+ KRB5_AUTHDATA_WIN2K_PAC.html \
+ KRB5_AUTH_CONTEXT_DO_SEQUENCE.html \
+ KRB5_AUTH_CONTEXT_DO_TIME.html \
+ KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR.html \
+ KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR.html \
+ KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR.html \
+ KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR.html \
+ KRB5_AUTH_CONTEXT_PERMIT_ALL.html \
+ KRB5_AUTH_CONTEXT_RET_SEQUENCE.html \
+ KRB5_AUTH_CONTEXT_RET_TIME.html \
+ KRB5_AUTH_CONTEXT_USE_SUBKEY.html \
+ KRB5_CRED.html \
+ KRB5_CRYPTO_TYPE_CHECKSUM.html \
+ KRB5_CRYPTO_TYPE_DATA.html \
+ KRB5_CRYPTO_TYPE_EMPTY.html \
+ KRB5_CRYPTO_TYPE_HEADER.html \
+ KRB5_CRYPTO_TYPE_PADDING.html \
+ KRB5_CRYPTO_TYPE_SIGN_ONLY.html \
+ KRB5_CRYPTO_TYPE_STREAM.html \
+ KRB5_CRYPTO_TYPE_TRAILER.html \
+ KRB5_CYBERSAFE_SECUREID.html \
+ KRB5_DOMAIN_X500_COMPRESS.html \
+ KRB5_ENCPADATA_REQ_ENC_PA_REP.html \
+ KRB5_ERROR.html \
+ KRB5_FAST_REQUIRED.html \
+ KRB5_GC_CACHED.html \
+ KRB5_GC_CANONICALIZE.html \
+ KRB5_GC_CONSTRAINED_DELEGATION.html \
+ KRB5_GC_FORWARDABLE.html \
+ KRB5_GC_NO_STORE.html \
+ KRB5_GC_NO_TRANSIT_CHECK.html \
+ KRB5_GC_USER_USER.html \
+ KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST.html \
+ KRB5_GET_INIT_CREDS_OPT_ANONYMOUS.html \
+ KRB5_GET_INIT_CREDS_OPT_CANONICALIZE.html \
+ KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT.html \
+ KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST.html \
+ KRB5_GET_INIT_CREDS_OPT_FORWARDABLE.html \
+ KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST.html \
+ KRB5_GET_INIT_CREDS_OPT_PROXIABLE.html \
+ KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE.html \
+ KRB5_GET_INIT_CREDS_OPT_SALT.html \
+ KRB5_GET_INIT_CREDS_OPT_TKT_LIFE.html \
+ KRB5_INIT_CONTEXT_KDC.html \
+ KRB5_INIT_CONTEXT_SECURE.html \
+ KRB5_INIT_CREDS_STEP_FLAG_CONTINUE.html \
+ KRB5_INT16_MAX.html \
+ KRB5_INT16_MIN.html \
+ KRB5_INT32_MAX.html \
+ KRB5_INT32_MIN.html \
+ KRB5_KEYUSAGE_AD_ITE.html \
+ KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM.html \
+ KRB5_KEYUSAGE_AD_MTE.html \
+ KRB5_KEYUSAGE_AD_SIGNEDPATH.html \
+ KRB5_KEYUSAGE_APP_DATA_CKSUM.html \
+ KRB5_KEYUSAGE_APP_DATA_ENCRYPT.html \
+ KRB5_KEYUSAGE_AP_REP_ENCPART.html \
+ KRB5_KEYUSAGE_AP_REQ_AUTH.html \
+ KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM.html \
+ KRB5_KEYUSAGE_AS_REP_ENCPART.html \
+ KRB5_KEYUSAGE_AS_REQ.html \
+ KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS.html \
+ KRB5_KEYUSAGE_CAMMAC.html \
+ KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT.html \
+ KRB5_KEYUSAGE_ENC_CHALLENGE_KDC.html \
+ KRB5_KEYUSAGE_FAST_ENC.html \
+ KRB5_KEYUSAGE_FAST_FINISHED.html \
+ KRB5_KEYUSAGE_FAST_REP.html \
+ KRB5_KEYUSAGE_FAST_REQ_CHKSUM.html \
+ KRB5_KEYUSAGE_GSS_TOK_MIC.html \
+ KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG.html \
+ KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV.html \
+ KRB5_KEYUSAGE_IAKERB_FINISHED.html \
+ KRB5_KEYUSAGE_KDC_REP_TICKET.html \
+ KRB5_KEYUSAGE_KRB_CRED_ENCPART.html \
+ KRB5_KEYUSAGE_KRB_ERROR_CKSUM.html \
+ KRB5_KEYUSAGE_KRB_PRIV_ENCPART.html \
+ KRB5_KEYUSAGE_KRB_SAFE_CKSUM.html \
+ KRB5_KEYUSAGE_PA_AS_FRESHNESS.html \
+ KRB5_KEYUSAGE_PA_FX_COOKIE.html \
+ KRB5_KEYUSAGE_PA_OTP_REQUEST.html \
+ KRB5_KEYUSAGE_PA_PKINIT_KX.html \
+ KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY.html \
+ KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST.html \
+ KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM.html \
+ KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID.html \
+ KRB5_KEYUSAGE_PA_SAM_RESPONSE.html \
+ KRB5_KEYUSAGE_SPAKE.html \
+ KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY.html \
+ KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY.html \
+ KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY.html \
+ KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY.html \
+ KRB5_KEYUSAGE_TGS_REQ_AUTH.html \
+ KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM.html \
+ KRB5_KPASSWD_ACCESSDENIED.html \
+ KRB5_KPASSWD_AUTHERROR.html \
+ KRB5_KPASSWD_BAD_VERSION.html \
+ KRB5_KPASSWD_HARDERROR.html \
+ KRB5_KPASSWD_INITIAL_FLAG_NEEDED.html \
+ KRB5_KPASSWD_MALFORMED.html \
+ KRB5_KPASSWD_SOFTERROR.html \
+ KRB5_KPASSWD_SUCCESS.html \
+ KRB5_LRQ_ALL_ACCT_EXPTIME.html \
+ KRB5_LRQ_ALL_LAST_INITIAL.html \
+ KRB5_LRQ_ALL_LAST_RENEWAL.html \
+ KRB5_LRQ_ALL_LAST_REQ.html \
+ KRB5_LRQ_ALL_LAST_TGT.html \
+ KRB5_LRQ_ALL_LAST_TGT_ISSUED.html \
+ KRB5_LRQ_ALL_PW_EXPTIME.html \
+ KRB5_LRQ_NONE.html \
+ KRB5_LRQ_ONE_ACCT_EXPTIME.html \
+ KRB5_LRQ_ONE_LAST_INITIAL.html \
+ KRB5_LRQ_ONE_LAST_RENEWAL.html \
+ KRB5_LRQ_ONE_LAST_REQ.html \
+ KRB5_LRQ_ONE_LAST_TGT.html \
+ KRB5_LRQ_ONE_LAST_TGT_ISSUED.html \
+ KRB5_LRQ_ONE_PW_EXPTIME.html \
+ KRB5_NT_ENTERPRISE_PRINCIPAL.html \
+ KRB5_NT_ENT_PRINCIPAL_AND_ID.html \
+ KRB5_NT_MS_PRINCIPAL.html \
+ KRB5_NT_MS_PRINCIPAL_AND_ID.html \
+ KRB5_NT_PRINCIPAL.html \
+ KRB5_NT_SMTP_NAME.html \
+ KRB5_NT_SRV_HST.html \
+ KRB5_NT_SRV_INST.html \
+ KRB5_NT_SRV_XHST.html \
+ KRB5_NT_UID.html \
+ KRB5_NT_UNKNOWN.html \
+ KRB5_NT_WELLKNOWN.html \
+ KRB5_NT_X500_PRINCIPAL.html \
+ KRB5_PAC_ATTRIBUTES_INFO.html \
+ KRB5_PAC_CLIENT_CLAIMS.html \
+ KRB5_PAC_CLIENT_INFO.html \
+ KRB5_PAC_CREDENTIALS_INFO.html \
+ KRB5_PAC_DELEGATION_INFO.html \
+ KRB5_PAC_DEVICE_CLAIMS.html \
+ KRB5_PAC_DEVICE_INFO.html \
+ KRB5_PAC_FULL_CHECKSUM.html \
+ KRB5_PAC_LOGON_INFO.html \
+ KRB5_PAC_PRIVSVR_CHECKSUM.html \
+ KRB5_PAC_REQUESTOR.html \
+ KRB5_PAC_SERVER_CHECKSUM.html \
+ KRB5_PAC_TICKET_CHECKSUM.html \
+ KRB5_PAC_UPN_DNS_INFO.html \
+ KRB5_PADATA_AFS3_SALT.html \
+ KRB5_PADATA_AP_REQ.html \
+ KRB5_PADATA_AS_CHECKSUM.html \
+ KRB5_PADATA_AS_FRESHNESS.html \
+ KRB5_PADATA_ENCRYPTED_CHALLENGE.html \
+ KRB5_PADATA_ENC_SANDIA_SECURID.html \
+ KRB5_PADATA_ENC_TIMESTAMP.html \
+ KRB5_PADATA_ENC_UNIX_TIME.html \
+ KRB5_PADATA_ETYPE_INFO.html \
+ KRB5_PADATA_ETYPE_INFO2.html \
+ KRB5_PADATA_FOR_USER.html \
+ KRB5_PADATA_FX_COOKIE.html \
+ KRB5_PADATA_FX_ERROR.html \
+ KRB5_PADATA_FX_FAST.html \
+ KRB5_PADATA_GET_FROM_TYPED_DATA.html \
+ KRB5_PADATA_NONE.html \
+ KRB5_PADATA_OSF_DCE.html \
+ KRB5_PADATA_OTP_CHALLENGE.html \
+ KRB5_PADATA_OTP_PIN_CHANGE.html \
+ KRB5_PADATA_OTP_REQUEST.html \
+ KRB5_PADATA_PAC_OPTIONS.html \
+ KRB5_PADATA_PAC_REQUEST.html \
+ KRB5_PADATA_PKINIT_KX.html \
+ KRB5_PADATA_PK_AS_REP.html \
+ KRB5_PADATA_PK_AS_REP_OLD.html \
+ KRB5_PADATA_PK_AS_REQ.html \
+ KRB5_PADATA_PK_AS_REQ_OLD.html \
+ KRB5_PADATA_PW_SALT.html \
+ KRB5_PADATA_REDHAT_IDP_OAUTH2.html \
+ KRB5_PADATA_REDHAT_PASSKEY.html \
+ KRB5_PADATA_REFERRAL.html \
+ KRB5_PADATA_S4U_X509_USER.html \
+ KRB5_PADATA_SAM_CHALLENGE.html \
+ KRB5_PADATA_SAM_CHALLENGE_2.html \
+ KRB5_PADATA_SAM_REDIRECT.html \
+ KRB5_PADATA_SAM_RESPONSE.html \
+ KRB5_PADATA_SAM_RESPONSE_2.html \
+ KRB5_PADATA_SESAME.html \
+ KRB5_PADATA_SPAKE.html \
+ KRB5_PADATA_SVR_REFERRAL_INFO.html \
+ KRB5_PADATA_TGS_REQ.html \
+ KRB5_PADATA_USE_SPECIFIED_KVNO.html \
+ KRB5_PRINCIPAL_COMPARE_CASEFOLD.html \
+ KRB5_PRINCIPAL_COMPARE_ENTERPRISE.html \
+ KRB5_PRINCIPAL_COMPARE_IGNORE_REALM.html \
+ KRB5_PRINCIPAL_COMPARE_UTF8.html \
+ KRB5_PRINCIPAL_PARSE_ENTERPRISE.html \
+ KRB5_PRINCIPAL_PARSE_IGNORE_REALM.html \
+ KRB5_PRINCIPAL_PARSE_NO_DEF_REALM.html \
+ KRB5_PRINCIPAL_PARSE_NO_REALM.html \
+ KRB5_PRINCIPAL_PARSE_REQUIRE_REALM.html \
+ KRB5_PRINCIPAL_UNPARSE_DISPLAY.html \
+ KRB5_PRINCIPAL_UNPARSE_NO_REALM.html \
+ KRB5_PRINCIPAL_UNPARSE_SHORT.html \
+ KRB5_PRIV.html \
+ KRB5_PROMPT_TYPE_NEW_PASSWORD.html \
+ KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN.html \
+ KRB5_PROMPT_TYPE_PASSWORD.html \
+ KRB5_PROMPT_TYPE_PREAUTH.html \
+ KRB5_PVNO.html \
+ KRB5_REALM_BRANCH_CHAR.html \
+ KRB5_RECVAUTH_BADAUTHVERS.html \
+ KRB5_RECVAUTH_SKIP_VERSION.html \
+ KRB5_REFERRAL_REALM.html \
+ KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN.html \
+ KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN.html \
+ KRB5_RESPONDER_OTP_FLAGS_NEXTOTP.html \
+ KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN.html \
+ KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC.html \
+ KRB5_RESPONDER_OTP_FORMAT_DECIMAL.html \
+ KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL.html \
+ KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW.html \
+ KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY.html \
+ KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED.html \
+ KRB5_RESPONDER_QUESTION_OTP.html \
+ KRB5_RESPONDER_QUESTION_PASSWORD.html \
+ KRB5_RESPONDER_QUESTION_PKINIT.html \
+ KRB5_SAFE.html \
+ KRB5_SAM_MUST_PK_ENCRYPT_SAD.html \
+ KRB5_SAM_SEND_ENCRYPTED_SAD.html \
+ KRB5_SAM_USE_SAD_AS_KEY.html \
+ KRB5_TC_MATCH_2ND_TKT.html \
+ KRB5_TC_MATCH_AUTHDATA.html \
+ KRB5_TC_MATCH_FLAGS.html \
+ KRB5_TC_MATCH_FLAGS_EXACT.html \
+ KRB5_TC_MATCH_IS_SKEY.html \
+ KRB5_TC_MATCH_KTYPE.html \
+ KRB5_TC_MATCH_SRV_NAMEONLY.html \
+ KRB5_TC_MATCH_TIMES.html \
+ KRB5_TC_MATCH_TIMES_EXACT.html \
+ KRB5_TC_NOTICKET.html \
+ KRB5_TC_OPENCLOSE.html \
+ KRB5_TC_SUPPORTED_KTYPES.html \
+ KRB5_TGS_NAME.html \
+ KRB5_TGS_NAME_SIZE.html \
+ KRB5_TGS_REP.html \
+ KRB5_TGS_REQ.html \
+ KRB5_TKT_CREDS_STEP_FLAG_CONTINUE.html \
+ KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL.html \
+ KRB5_WELLKNOWN_NAMESTR.html \
+ LR_TYPE_INTERPRETATION_MASK.html \
+ LR_TYPE_THIS_SERVER_ONLY.html \
+ MAX_KEYTAB_NAME_LEN.html \
+ MSEC_DIRBIT.html \
+ MSEC_VAL_MASK.html \
+ SALT_TYPE_AFS_LENGTH.html \
+ SALT_TYPE_NO_LENGTH.html \
+ THREEPARAMOPEN.html \
+ TKT_FLG_ANONYMOUS.html \
+ TKT_FLG_ENC_PA_REP.html \
+ TKT_FLG_FORWARDABLE.html \
+ TKT_FLG_FORWARDED.html \
+ TKT_FLG_HW_AUTH.html \
+ TKT_FLG_INITIAL.html \
+ TKT_FLG_INVALID.html \
+ TKT_FLG_MAY_POSTDATE.html \
+ TKT_FLG_OK_AS_DELEGATE.html \
+ TKT_FLG_POSTDATED.html \
+ TKT_FLG_PRE_AUTH.html \
+ TKT_FLG_PROXIABLE.html \
+ TKT_FLG_PROXY.html \
+ TKT_FLG_RENEWABLE.html \
+ TKT_FLG_TRANSIT_POLICY_CHECKED.html \
+ VALID_INT_BITS.html \
+ VALID_UINT_BITS.html \
+ index.html \
+ krb524_convert_creds_kdc.html \
+ krb524_init_ets.html \
+ krb5_const.html \
+ krb5_princ_component.html \
+ krb5_princ_name.html \
+ krb5_princ_realm.html \
+ krb5_princ_set_realm.html \
+ krb5_princ_set_realm_data.html \
+ krb5_princ_set_realm_length.html \
+ krb5_princ_size.html \
+ krb5_princ_type.html \
+ krb5_roundup.html \
+ krb5_x.html \
+ krb5_xc.html
+
+DOCS_HTML_APPDEV_REFS_TYPES= \
+ index.html \
+ krb5_address.html \
+ krb5_addrtype.html \
+ krb5_ap_rep.html \
+ krb5_ap_rep_enc_part.html \
+ krb5_ap_req.html \
+ krb5_auth_context.html \
+ krb5_authdata.html \
+ krb5_authdatatype.html \
+ krb5_authenticator.html \
+ krb5_boolean.html \
+ krb5_cc_cursor.html \
+ krb5_ccache.html \
+ krb5_cccol_cursor.html \
+ krb5_checksum.html \
+ krb5_cksumtype.html \
+ krb5_const_pointer.html \
+ krb5_const_principal.html \
+ krb5_context.html \
+ krb5_cred.html \
+ krb5_cred_enc_part.html \
+ krb5_cred_info.html \
+ krb5_creds.html \
+ krb5_crypto_iov.html \
+ krb5_cryptotype.html \
+ krb5_data.html \
+ krb5_deltat.html \
+ krb5_enc_data.html \
+ krb5_enc_kdc_rep_part.html \
+ krb5_enc_tkt_part.html \
+ krb5_encrypt_block.html \
+ krb5_enctype.html \
+ krb5_error.html \
+ krb5_error_code.html \
+ krb5_expire_callback_func.html \
+ krb5_flags.html \
+ krb5_get_init_creds_opt.html \
+ krb5_gic_opt_pa_data.html \
+ krb5_init_creds_context.html \
+ krb5_int16.html \
+ krb5_int32.html \
+ krb5_kdc_rep.html \
+ krb5_kdc_req.html \
+ krb5_key.html \
+ krb5_keyblock.html \
+ krb5_keytab.html \
+ krb5_keytab_entry.html \
+ krb5_keyusage.html \
+ krb5_kt_cursor.html \
+ krb5_kvno.html \
+ krb5_last_req_entry.html \
+ krb5_magic.html \
+ krb5_mk_req_checksum_func.html \
+ krb5_msgtype.html \
+ krb5_octet.html \
+ krb5_pa_data.html \
+ krb5_pa_pac_req.html \
+ krb5_pa_server_referral_data.html \
+ krb5_pa_svr_referral_data.html \
+ krb5_pac.html \
+ krb5_pointer.html \
+ krb5_post_recv_fn.html \
+ krb5_pre_send_fn.html \
+ krb5_preauthtype.html \
+ krb5_principal.html \
+ krb5_principal_data.html \
+ krb5_prompt.html \
+ krb5_prompt_type.html \
+ krb5_prompter_fct.html \
+ krb5_pwd_data.html \
+ krb5_rcache.html \
+ krb5_replay_data.html \
+ krb5_responder_context.html \
+ krb5_responder_fn.html \
+ krb5_responder_otp_challenge.html \
+ krb5_responder_otp_tokeninfo.html \
+ krb5_responder_pkinit_challenge.html \
+ krb5_responder_pkinit_identity.html \
+ krb5_response.html \
+ krb5_ticket.html \
+ krb5_ticket_times.html \
+ krb5_timestamp.html \
+ krb5_tkt_authent.html \
+ krb5_tkt_creds_context.html \
+ krb5_trace_callback.html \
+ krb5_trace_info.html \
+ krb5_transited.html \
+ krb5_typed_data.html \
+ krb5_ui_2.html \
+ krb5_ui_4.html \
+ krb5_verify_init_creds_opt.html \
+ passwd_phrase_element.html
+
+DOCS_HTML_BASIC= \
+ ccache_def.html \
+ date_format.html \
+ index.html \
+ keytab_def.html \
+ rcache_def.html \
+ stash_file_def.html
+
+DOCS_HTML_BUILD= \
+ directory_org.html \
+ doing_build.html \
+ index.html \
+ options2configure.html \
+ osconf.html
+
+DOCS_HTML_FORMATS= \
+ ccache_file_format.html \
+ cookie.html \
+ freshness_token.html \
+ index.html \
+ keytab_file_format.html \
+ rcache_file_format.html
+
+DOCS_HTML_PLUGINDEV= \
+ ccselect.html \
+ certauth.html \
+ clpreauth.html \
+ general.html \
+ gssapi.html \
+ hostrealm.html \
+ index.html \
+ internal.html \
+ kadm5_auth.html \
+ kadm5_hook.html \
+ kdcpolicy.html \
+ kdcpreauth.html \
+ localauth.html \
+ locate.html \
+ profile.html \
+ pwqual.html
+
+DOCS_HTML_USER= \
+ index.html \
+ pwd_mgmt.html \
+ tkt_mgmt.html
+
+DOCS_HTML_USER_USER__COMMANDS= \
+ index.html \
+ kdestroy.html \
+ kinit.html \
+ klist.html \
+ kpasswd.html \
+ krb5-config.html \
+ ksu.html \
+ kswitch.html \
+ kvno.html \
+ sclient.html
+
+DOCS_HTML_USER_USER__CONFIG= \
+ index.html \
+ k5identity.html \
+ k5login.html \
+ kerberos.html
diff --git a/krb5/lib/krb5/error_tables/Makefile.inc b/krb5/lib/krb5/error_tables/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/error_tables/Makefile.inc
@@ -0,0 +1,146 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/error_tables
+
+# CLEANFILES+= ${GEN_ET} ${GENI_ET}
+
+# The order of these matters. See upstream src/include/Makefile.in
+
+GEN_KRB5_ERR= krb5_err.et
+GEN_KRB5_ERR_C= ${GEN_KRB5_ERR:S/.et$/.c/}
+GEN_KRB5_ERR_H= ${GEN_KRB5_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_KRB5_ERR_C} ${GEN_KRB5_ERR_H}
+GEN_ET= ${GEN_KRB5_ERR_C}
+GENI_ET= ${GEN_KRB5_ERR_H}
+
+${GEN_KRB5_ERR:[2..-1]}: .NOMETA
+${GEN_KRB5_ERR_H}: ${GEN_KRB5_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KRB5_ERR_C}: ${GEN_KRB5_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_K5E1_ERR= k5e1_err.et
+GEN_K5E1_ERR_C= ${GEN_K5E1_ERR:S/.et$/.c/}
+GEN_K5E1_ERR_H= ${GEN_K5E1_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_K5E1_ERR_C} ${GEN_K5E1_ERR_H}
+GEN_ET+= ${GEN_K5E1_ERR_C}
+GENI_ET+= ${GEN_K5E1_ERR_H}
+
+${GEN_K5E1_ERR:[2..-1]}: .NOMETA
+${GEN_K5E1_ERR_H}: ${GEN_K5E1_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_K5E1_ERR_C}: ${GEN_K5E1_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_KDB5_ERR= kdb5_err.et
+GEN_KDB5_ERR_C= ${GEN_KDB5_ERR:S/.et$/.c/}
+GEN_KDB5_ERR_H= ${GEN_KDB5_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_KDB5_ERR_C} ${GEN_KDB5_ERR_H}
+GEN_ET+= ${GEN_KDB5_ERR_C}
+GENI_ET+= ${GEN_KDB5_ERR_H}
+
+${GEN_KDB5_ERR:[2..-1]}: .NOMETA
+${GEN_KDB5_ERR_H}: ${GEN_KDB5_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KDB5_ERR_C}: ${GEN_KDB5_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_KRB5M_ERR= kv5m_err.et
+GEN_KRB5M_ERR_C= ${GEN_KRB5M_ERR:S/.et$/.c/}
+GEN_KRB5M_ERR_H= ${GEN_KRB5M_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_KRB5M_ERR_C} ${GEN_KRB5M_ERR_H}
+GEN_ET+= ${GEN_KRB5M_ERR_C}
+GENI_ET+= ${GEN_KRB5M_ERR_H}
+
+${GEN_KRB5M_ERR:[2..-1]}: .NOMETA
+${GEN_KRB5M_ERR_H}: ${GEN_KRB5M_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KRB5M_ERR_C}: ${GEN_KRB5M_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_KRB524_ERR= krb524_err.et
+GEN_KRB524_ERR_C= ${GEN_KRB524_ERR:S/.et$/.c/}
+GEN_KRB524_ERR_H= ${GEN_KRB524_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_KRB524_ERR_C} ${GEN_KRB524_ERR_H}
+GEN_ET+= ${GEN_KRB524_ERR_C}
+GENI_ET+= ${GEN_KRB524_ERR_H}
+
+${GEN_KRB524_ERR:[2..-1]}: .NOMETA
+${GEN_KRB524_ERR_H}: ${GEN_KRB524_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KRB524_ERR_C}: ${GEN_KRB524_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+GEN_ASN1_ERR= asn1_err.et
+GEN_ASN1_ERR_C= ${GEN_ASN1_ERR:S/.et$/.c/}
+GEN_ASN1_ERR_H= ${GEN_ASN1_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_ASN1_ERR_C} ${GEN_ASN1_ERR_H}
+GEN_ET+= ${GEN_ASN1_ERR_C}
+GENI_ET+= ${GEN_ASN1_ERR_H}
+
+${GEN_ASN1_ERR:[2..-1]}: .NOMETA
+${GEN_ASN1_ERR_H}: ${GEN_ASN1_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_ASN1_ERR_C}: ${GEN_ASN1_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
diff --git a/krb5/lib/krb5/keytab/Makefile.inc b/krb5/lib/krb5/keytab/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/keytab/Makefile.inc
@@ -0,0 +1,20 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/keytab
+
+SRCS+= kt_file.c \
+ kt_memory.c \
+ ktadd.c \
+ ktbase.c \
+ ktdefault.c \
+ ktfns.c \
+ ktfr_entry.c \
+ ktremove.c \
+ read_servi.c
diff --git a/krb5/lib/krb5/krb/Makefile.inc b/krb5/lib/krb5/krb/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/krb/Makefile.inc
@@ -0,0 +1,123 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/krb
+
+SRCS+= addr_comp.c \
+ addr_order.c \
+ addr_srch.c \
+ ai_authdata.c \
+ allow_weak.c \
+ appdefault.c \
+ auth_con.c \
+ authdata.c \
+ authdata_dec.c \
+ authdata_enc.c \
+ authdata_exp.c \
+ bld_pr_ext.c \
+ bld_princ.c \
+ cammac_util.c \
+ chk_trans.c \
+ chpw.c \
+ conv_creds.c \
+ conv_princ.c \
+ copy_addrs.c \
+ copy_athctr.c \
+ copy_auth.c \
+ copy_cksum.c \
+ copy_creds.c \
+ copy_ctx.c \
+ copy_data.c \
+ copy_key.c \
+ copy_princ.c \
+ copy_tick.c \
+ cp_key_cnt.c \
+ decode_kdc.c \
+ decrypt_tk.c \
+ deltat.c \
+ enc_helper.c \
+ enc_keyhelper.c \
+ encode_kdc.c \
+ encrypt_tk.c \
+ etype_list.c \
+ fast.c \
+ fwd_tgt.c \
+ gc_via_tkt.c \
+ gen_save_subkey.c \
+ gen_seqnum.c \
+ gen_subkey.c \
+ get_creds.c \
+ get_etype_info.c \
+ get_in_tkt.c \
+ gic_keytab.c \
+ gic_opt.c \
+ gic_pwd.c \
+ in_tkt_sky.c \
+ init_ctx.c \
+ init_keyblock.c \
+ kdc_rep_dc.c \
+ kerrs.c \
+ kfree.c \
+ libdef_parse.c \
+ mk_cred.c \
+ mk_error.c \
+ mk_priv.c \
+ mk_rep.c \
+ mk_req.c \
+ mk_req_ext.c \
+ mk_safe.c \
+ pac.c \
+ pac_sign.c \
+ padata.c \
+ parse.c \
+ parse_host_string.c \
+ plugin.c \
+ pr_to_salt.c \
+ preauth2.c \
+ preauth_ec.c \
+ preauth_encts.c \
+ preauth_otp.c \
+ preauth_pkinit.c \
+ preauth_sam2.c \
+ princ_comp.c \
+ privsafe.c \
+ random_str.c \
+ rd_cred.c \
+ rd_error.c \
+ rd_priv.c \
+ rd_rep.c \
+ rd_req.c \
+ rd_req_dec.c \
+ rd_safe.c \
+ recvauth.c \
+ response_items.c \
+ s4u_creds.c \
+ send_tgs.c \
+ sendauth.c \
+ ser_actx.c \
+ ser_adata.c \
+ ser_addr.c \
+ ser_auth.c \
+ ser_cksum.c \
+ ser_ctx.c \
+ ser_key.c \
+ ser_princ.c \
+ serialize.c \
+ set_realm.c \
+ sname_match.c \
+ srv_dec_tkt.c \
+ srv_rcache.c \
+ str_conv.c \
+ tgtname.c \
+ unparse.c \
+ val_renew.c \
+ valid_times.c \
+ vfy_increds.c \
+ vic_opt.c \
+ walk_rtree.c
diff --git a/krb5/lib/krb5/os/Makefile.inc b/krb5/lib/krb5/os/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/os/Makefile.inc
@@ -0,0 +1,56 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/os
+
+SRCS+= accessor.c \
+ c_ustime.c \
+ ccdefname.c \
+ changepw.c \
+ dnsglue.c \
+ dnssrv.c \
+ expand_path.c \
+ full_ipadr.c \
+ gen_port.c \
+ gen_rname.c \
+ genaddrs.c \
+ hostaddr.c \
+ hostrealm.c \
+ hostrealm_dns.c \
+ hostrealm_domain.c \
+ hostrealm_profile.c \
+ hostrealm_registry.c \
+ init_os_ctx.c \
+ krbfileio.c \
+ ktdefname.c \
+ localaddr.c \
+ localauth.c \
+ localauth_an2ln.c \
+ localauth_k5login.c \
+ localauth_names.c \
+ localauth_rule.c \
+ locate_kdc.c \
+ lock_file.c \
+ mk_faddr.c \
+ net_read.c \
+ net_write.c \
+ port2ip.c \
+ prompter.c \
+ read_msg.c \
+ read_pwd.c \
+ realm_dom.c \
+ sendto_kdc.c \
+ sn2princ.c \
+ thread_safe.c \
+ timeofday.c \
+ toffset.c \
+ trace.c \
+ unlck_file.c \
+ ustime.c \
+ write_msg.c
diff --git a/krb5/lib/krb5/rcache/Makefile.inc b/krb5/lib/krb5/rcache/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/rcache/Makefile.inc
@@ -0,0 +1,17 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/rcache
+
+SRCS+= \
+ memrcache.c \
+ rc_base.c \
+ rc_dfl.c \
+ rc_file2.c \
+ rc_none.c
diff --git a/krb5/lib/krb5/unicode/Makefile.inc b/krb5/lib/krb5/unicode/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/lib/krb5/unicode/Makefile.inc
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/lib/krb5/unicode \
+ ${KRB5_DIR}/lib/krb5/unicode/ucdata
+
+SRCS+= ucdata.c \
+ ucstr.c
diff --git a/krb5/lib/rpc/Makefile b/krb5/lib/rpc/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/lib/rpc/Makefile
@@ -0,0 +1,85 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= gssrpc
+# SHLIB_MAJOR= 4
+LDFLAGS=-Wl,--no-undefined
+LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5support
+
+SRCS= auth_gss.c \
+ auth_gssapi.c \
+ auth_gssapi_misc.c \
+ auth_none.c \
+ auth_unix.c \
+ authgss_prot.c \
+ authunix_prot.c \
+ bindresvport.c \
+ clnt_generic.c \
+ clnt_perror.c \
+ clnt_raw.c \
+ clnt_simple.c \
+ clnt_tcp.c \
+ clnt_udp.c \
+ dyn.c \
+ get_myaddress.c \
+ getrpcport.c \
+ pmap_clnt.c \
+ pmap_getmaps.c \
+ pmap_getport.c \
+ pmap_prot.c \
+ pmap_prot2.c \
+ pmap_rmt.c \
+ rpc_callmsg.c \
+ rpc_commondata.c \
+ rpc_dtablesize.c \
+ rpc_prot.c \
+ svc.c \
+ svc_auth.c \
+ svc_auth_gss.c \
+ svc_auth_gssapi.c \
+ svc_auth_none.c \
+ svc_auth_unix.c \
+ svc_raw.c \
+ svc_run.c \
+ svc_simple.c \
+ svc_tcp.c \
+ svc_udp.c \
+ xdr.c \
+ xdr_alloc.c \
+ xdr_array.c \
+ xdr_float.c \
+ xdr_mem.c \
+ xdr_rec.c \
+ xdr_reference.c \
+ xdr_sizeof.c \
+ xdr_stdio.c
+
+INCS= dyn.h \
+ dynP.h \
+ gssrpcint.h
+
+CFLAGS+=-I${KRB5_DIR}/lib/rpc \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib \
+ -DGSSAPI_KRB5 \
+ -DDEBUG_GSSAPI=0 \
+ -DGSSRPC__IMPL
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c
+
+.PATH: ${KRB5_DIR}/lib/rpc
diff --git a/krb5/libexec/Makefile b/krb5/libexec/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/Makefile
@@ -0,0 +1,16 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+#DIR $FreeBSD$
+
+SUBDIR= kdc kadmind kpropd kprop kproplog
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/libexec/Makefile.inc b/krb5/libexec/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+BINDIR?= /usr/libexec
diff --git a/krb5/libexec/kadmind/Makefile b/krb5/libexec/kadmind/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/kadmind/Makefile
@@ -0,0 +1,49 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include "../Makefile.inc"
+
+PROG= kadmind
+LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \
+ krb5support apputils verto sys m
+
+SRCS= auth.c \
+ auth_acl.c \
+ auth_self.c \
+ ipropd_svc.c \
+ kadm_rpc_svc.c \
+ misc.c \
+ ovsec_kadmd.c \
+ schpw.c \
+ server_stubs.c
+
+MAN= kadmind.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib/gssapi \
+ -I${KRB5_OBJTOP}/lib \
+ -I${KRB5_DIR}/lib/gssapi/krb5 \
+ -I${KRB5_DIR}/lib/gssapi/generic
+
+kadmind.8: kadmind.man
+
+CLEANFILES+= kadmind.8
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.man.8:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kadmin/server \
+ ${KRB5_DIR}/man
diff --git a/krb5/libexec/kdc/Makefile b/krb5/libexec/kdc/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/kdc/Makefile
@@ -0,0 +1,84 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include "../Makefile.inc"
+
+PROG= krb5kdc
+LIBADD= kadm5srv_mit gssrpc gssapi_krb5 krb5 kdb5 k5crypto com_err krb5support \
+ apputils verto krb5profile m sys
+
+SRCS= authind.c \
+ cammac.c \
+ dispatch.c \
+ do_as_req.c \
+ do_tgs_req.c \
+ extern.c \
+ fast_util.c \
+ kdc_audit.c \
+ kdc_authdata.c \
+ kdc_log.c \
+ kdc_preauth.c \
+ kdc_preauth_ec.c \
+ kdc_preauth_encts.c \
+ kdc_transit.c \
+ kdc_util.c \
+ main.c \
+ ndr.c \
+ policy.c \
+ replay.c \
+ tgs_policy.c \
+ ${GEN} \
+ ${GENI}
+
+MAN= krb5kdc.8
+
+DEFINES=-DLIBDIR=\"${KRB5_LIBDIR}\"
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${.OBJDIR}
+
+GEN_KDC5_ERR= kdc5_err.et
+GEN_KDC5_ERR_C= ${GEN_KDC5_ERR:S/.et$/.c/}
+GEN_KDC5_ERR_H= ${GEN_KDC5_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_KDC5_ERR_C} ${GEN_KDC5_ERR_H}
+GEN+= ${GEN_KDC5_ERR_C}
+GENI+= ${GEN_KDC5_ERR_H}
+
+${GEN_KDC5_ERR:[2..-1]}: .NOMETA
+${GEN_KDC5_ERR_H}: ${GEN_KDC5_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_KDC5_ERR_C}: ${GEN_KDC5_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+CLEANFILES+= krb5kdc.8
+
+krb5kdc.8: krb5kdc.man
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .1
+
+.man.8:
+ cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kdc \
+ ${KRB5_DIR}/man
diff --git a/krb5/libexec/kprop/Makefile b/krb5/libexec/kprop/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/kprop/Makefile
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include "../Makefile.inc"
+
+PROG= kprop
+
+LIBADD= kprop_util krb5 k5crypto com_err krb5profile krb5support util sys
+
+SRCS= kprop.c
+
+MAN= kprop.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.man.8:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kprop \
+ ${KRB5_DIR}/man
diff --git a/krb5/libexec/kpropd/Makefile b/krb5/libexec/kpropd/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/kpropd/Makefile
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kpropd
+
+LIBADD= kprop_util kdb5 kadm5clnt_mit gssrpc gssapi_krb5 krb5 k5crypto \
+ com_err krb5profile krb5support util sys
+
+SRCS= kpropd.c \
+ kpropd_rpc.c
+
+MAN= kpropd.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.man.8:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kprop \
+ ${KRB5_DIR}/man
diff --git a/krb5/libexec/kproplog/Makefile b/krb5/libexec/kproplog/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/libexec/kproplog/Makefile
@@ -0,0 +1,31 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kproplog
+LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \
+ krb5support sys
+
+SRCS= kproplog.c
+
+MAN= kproplog.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.man.8:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kprop \
+ ${KRB5_DIR}/man
diff --git a/krb5/plugins/Makefile b/krb5/plugins/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/Makefile
@@ -0,0 +1,19 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include <src.opts.mk>
+
+PLUGINS= kdb preauth k5tls
+# PLUGINS+= audit - We don't build this because the port doesn't
+# use it.
+
+SUBDIR= ${PLUGINS}
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/plugins/Makefile.inc b/krb5/plugins/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/Makefile.inc
@@ -0,0 +1,16 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+MK_INSTALLLIB= no
+SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR}
+PLUGINSDIR= ${LIBDIR_BASE}/krb5/plugins
+SHLIBDIR= ${LIBDIR}
+SHLIB_MAJOR= 121
+
+.include "../Makefile.inc"
diff --git a/krb5/plugins/audit/Makefile b/krb5/plugins/audit/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/audit/Makefile
@@ -0,0 +1,28 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= kdc_j_encode
+LIBDIR= ${PLUGINSDIR}/audit
+LDFLAGS=-Wl,--no-undefined
+
+.PATH: ${KRB5_DIR}/plugins/audit
+
+SRCS= kdc_j_encode.c
+
+CFLAGS+=-I${KRB5_DIR}/plugins/audit
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c
diff --git a/krb5/plugins/k5tls/Makefile b/krb5/plugins/k5tls/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/k5tls/Makefile
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIBDIR= ${PLUGINSDIR}/tls
+SHLIBDIR= ${LIBDIR}
+LIB= k5tls
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5 krb5profile krb5support ssl crypto k5crypto com_err sys
+
+SRCS= notls.c \
+ openssl.c
+
+CFLAGS+=-I${KRB5_DIR}/plugins/tls/k5tls \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c
+
+.PATH: ${KRB5_DIR}/plugins/tls/k5tls
diff --git a/krb5/plugins/kdb/Makefile b/krb5/plugins/kdb/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/Makefile
@@ -0,0 +1,15 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+SUBDIR= db2
+
+# XXX If in the future we want to support ldap or lmdb.
+# SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/plugins/kdb/Makefile.inc b/krb5/plugins/kdb/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/Makefile.inc
@@ -0,0 +1,10 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
diff --git a/krb5/plugins/kdb/db2/Makefile b/krb5/plugins/kdb/db2/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/Makefile
@@ -0,0 +1,65 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIBDIR= ${PLUGINSDIR}/kdb
+SHLIBDIR= ${LIBDIR}
+LIB= db2
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile krb5 com_err k5crypto kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5support
+
+SRCS= \
+ adb_openclose.c \
+ adb_policy.c \
+ db2_exp.c \
+ kdb_db2.c \
+ kdb_xdr.c \
+ lockout.c \
+ pol_xdr.c
+
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/Makefile.inc"
+
+MAN= db_btree.3 \
+ db_hash.3 \
+ db_lock.3 \
+ db_log.3 \
+ db_mpool.3 \
+ db_open.3 \
+ db_recno.3 \
+ db_txn.3
+
+CFLAGS+=-I${KRB5_DIR}/plugins/kdb/db2 \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2 \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/include \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/btree \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/db \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/hash \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/mpool \
+ -I${KRB5_DIR}/plugins/kdb/db2/libdb2/recno \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/lib/kdb \
+ -I${KRB5_OBJTOP}/plugins/kdb/db2 \
+ -I${KRB5_OBJTOP}/lib/kdb
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .man .3
+
+.man.3:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2 \
+ ${KRB5_DIR}/plugins/kdb/db2/libdb2 \
+ ${KRB5_DIR}/plugins/kdb/db2/libdb2/man
diff --git a/krb5/plugins/kdb/db2/libdb2/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/Makefile.inc
@@ -0,0 +1,15 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/include/Makefile.inc"
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/btree/Makefile.inc"
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/db/Makefile.inc"
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/hash/Makefile.inc"
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/mpool/Makefile.inc"
+.include "${KRB5_SRCTOP}/plugins/kdb/db2/libdb2/recno/Makefile.inc"
diff --git a/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/btree/Makefile.inc
@@ -0,0 +1,24 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/btree
+
+SRCS+= bt_close.c \
+ bt_conv.c \
+ bt_debug.c \
+ bt_delete.c \
+ bt_get.c \
+ bt_open.c \
+ bt_overflow.c \
+ bt_page.c \
+ bt_put.c \
+ bt_search.c \
+ bt_seq.c \
+ bt_split.c \
+ bt_utils.c
diff --git a/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/db/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/db
+
+SRCS+= db.c
diff --git a/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/hash/Makefile.inc
@@ -0,0 +1,19 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/hash
+
+SRCS+= dbm.c \
+ hash.c \
+ hash_bigkey.c \
+ hash_debug.c \
+ hash_func.c \
+ hash_log2.c \
+ hash_page.c \
+ hsearch.c
diff --git a/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/include/Makefile.inc
@@ -0,0 +1,21 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/include
+
+SRCS+= db-config.h \
+ db.h
+
+CLEANFILES+= db-config.h db.h
+
+db-config.h: db-config.hin
+ @cp ${.ALLSRC} ${.TARGET}
+
+db.h: db.hin
+ @cp ${.ALLSRC} ${.TARGET}
diff --git a/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/mpool/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/mpool
+
+SRCS+= mpool.c
diff --git a/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc b/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/kdb/db2/libdb2/recno/Makefile.inc
@@ -0,0 +1,19 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.PATH: ${KRB5_DIR}/plugins/kdb/db2/libdb2/recno
+
+SRCS+= rec_close.c \
+ rec_delete.c \
+ rec_get.c \
+ rec_open.c \
+ rec_put.c \
+ rec_search.c \
+ rec_seq.c \
+ rec_utils.c
diff --git a/krb5/plugins/preauth/Makefile b/krb5/plugins/preauth/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/Makefile
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+SUBDIR= otp pkinit spake test
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/plugins/preauth/Makefile.inc b/krb5/plugins/preauth/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/Makefile.inc
@@ -0,0 +1,13 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+LIBDIR= ${PLUGINSDIR}/preauth
+SHLIBDIR= ${LIBDIR}
+
+.include "../Makefile.inc"
diff --git a/krb5/plugins/preauth/otp/Makefile b/krb5/plugins/preauth/otp/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/otp/Makefile
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= otp
+LIBDIR= ${PLUGINSDIR}/preauth
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile krad verto krb5 k5crypto com_err krb5support m
+
+.PATH: ${KRB5_DIR}/plugins/preauth/otp
+
+SRCS= main.c \
+ otp_state.c
+
+CFLAGS+=-I${KRB5_DIR}/plugins/preauth/otp \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
diff --git a/krb5/plugins/preauth/pkinit/Makefile b/krb5/plugins/preauth/pkinit/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/pkinit/Makefile
@@ -0,0 +1,38 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= pkinit
+LIBDIR= ${PLUGINSDIR}/preauth
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile krb5 com_err k5crypto crypto krb5support
+
+.PATH: ${KRB5_DIR}/plugins/preauth/pkinit
+
+SRCS= pkinit_accessor.c \
+ pkinit_clnt.c \
+ pkinit_constants.c \
+ pkinit_crypto_openssl.c \
+ pkinit_identity.c \
+ pkinit_kdf_test.c \
+ pkinit_lib.c \
+ pkinit_matching.c \
+ pkinit_profile.c \
+ pkinit_srv.c
+
+CFLAGS+=-I${KRB5_DIR}/plugins/preauth/pkinit \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
diff --git a/krb5/plugins/preauth/spake/Makefile b/krb5/plugins/preauth/spake/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/spake/Makefile
@@ -0,0 +1,42 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= spake
+LIBDIR= ${PLUGINSDIR}/preauth
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5profile krb5 k5crypto com_err krb5support crypto sys
+
+.PATH: ${KRB5_DIR}/plugins/preauth/spake
+
+SRCS= edwards25519.c \
+ groups.c \
+ iana.c \
+ openssl.c \
+ spake_client.c \
+ spake_kdc.c \
+ util.c
+
+INCS= edwards25519_fiat.h \
+ edwards25519_tables.h \
+ groups.h \
+ iana.h \
+ trace.h \
+ util.h
+
+CFLAGS+=-I${KRB5_DIR}/plugins/preauth/spake \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
diff --git a/krb5/plugins/preauth/test/Makefile b/krb5/plugins/preauth/test/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/plugins/preauth/test/Makefile
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= test
+LIBDIR= ${PLUGINSDIR}/preauth
+LDFLAGS=-Wl,--no-undefined
+LIBADD= krb5 k5crypto com_err krb5support
+
+.PATH: ${KRB5_DIR}/plugins/preauth/test
+
+SRCS= cltest.c \
+ common.c \
+ kdctest.c
+
+INCS= common.h
+
+CFLAGS+=-I${KRB5_DIR}/plugins/preauth/test \
+ -I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+.include <bsd.lib.mk>
diff --git a/krb5/usr.bin/Makefile b/krb5/usr.bin/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/Makefile
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+SUBDIR= kadmin kdestroy kinit klist kpasswd ksu kswitch ktutil kvno sclient gss-client
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/usr.bin/Makefile.inc b/krb5/usr.bin/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+BINDIR?= /usr/bin
diff --git a/krb5/usr.bin/gss-client/Makefile b/krb5/usr.bin/gss-client/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/gss-client/Makefile
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= gss-client
+
+LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= gss-client.c \
+ gss-misc.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib \
+ -I${KRB5_DIR}/lib/gssapi/generic \
+ -I${KRB5_DIR}/lib/gssapi/krb5 \
+ -I${KRB5_DIR}/lib/gssapi/mechglue
+
+MAN=
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5_DIR}/appl/gss-sample
diff --git a/krb5/usr.bin/kadmin/Makefile b/krb5/usr.bin/kadmin/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kadmin/Makefile
@@ -0,0 +1,43 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kadmin
+
+LIBADD= kadmin_common edit kadm5clnt_mit gssrpc gssapi_krb5 krb5 k5crypto \
+ com_err krb5ss krb5profile krb5support tinfow sys
+
+SRCS= keytab.c
+
+SCRIPTS= k5srvutil.sh
+
+MAN= kadmin.1 \
+ k5srvutil.1
+
+MLINKS= kadmin.1 kamdin.local.8
+
+CLEANFILES= kadmin.1 k5srvutil.1
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+kadmin.1: kadmin.man
+
+k5srvutil.1: k5srvutil.man
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kadmin/cli \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/kdestroy/Makefile b/krb5/usr.bin/kdestroy/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kdestroy/Makefile
@@ -0,0 +1,35 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kdestroy
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= kdestroy.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kdestroy.1
+
+kdestroy.1: kdestroy.man
+
+CLEANFILES+= kdestroy.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/kdestroy \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/kinit/Makefile b/krb5/usr.bin/kinit/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kinit/Makefile
@@ -0,0 +1,37 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kinit
+
+LIBADD= kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 k5crypto com_err \
+ krb5profile krb5support sys
+
+SRCS= kinit.c \
+ kinit_kdb.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kinit.1
+
+kinit.1: kinit.man
+
+CLEANFILES+= kinit.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/kinit \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/klist/Makefile b/krb5/usr.bin/klist/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/klist/Makefile
@@ -0,0 +1,35 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= klist
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= klist.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= klist.1
+
+klist.1: klist.man
+
+CLEANFILES+= klist.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/klist \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/kpasswd/Makefile b/krb5/usr.bin/kpasswd/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kpasswd/Makefile
@@ -0,0 +1,37 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kpasswd
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= kpasswd.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kpasswd.1
+
+CLEANFILES+= kpasswd.1
+
+MAN= kpasswd.1
+
+kpasswd.1: kpasswd.man
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/kpasswd \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/ksu/Makefile b/krb5/usr.bin/ksu/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/ksu/Makefile
@@ -0,0 +1,44 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= ksu
+.if defined(ENABLE_SUID_K5SU)
+BINMODE=4555
+PRECIOUSPROG=
+.endif
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= authorization.c \
+ ccache.c \
+ heuristic.c \
+ krb_auth_su.c \
+ main.c \
+ xmalloc.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= ksu.1
+
+ksu.1: ksu.man
+
+CLEANFILES+= ksu.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/ksu \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/kswitch/Makefile b/krb5/usr.bin/kswitch/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kswitch/Makefile
@@ -0,0 +1,35 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kswitch
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= kswitch.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kswitch.1
+
+kswitch.1: kswitch.man
+
+CLEANFILES+= kswitch.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/kswitch \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/ktutil/Makefile b/krb5/usr.bin/ktutil/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/ktutil/Makefile
@@ -0,0 +1,43 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= ktutil
+
+LIBADD= edit krb5 k5crypto com_err krb5profile krb5support krb5ss tinfow sys
+
+SRCS= ktutil.c \
+ ktutil_ct.c \
+ ktutil_funcs.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/util \
+ -I${KRB5_OBJTOP}/util
+
+MAN= ktutil.1
+
+ktutil.1: ktutil.man
+
+CLEANFILES+= ktutil.1
+
+ktutil_ct.c: ktutil_ct.ct ss_err.h
+ ${MAKE_COMMANDS} ${KRB5_DIR}/kadmin/ktutil/ktutil_ct.ct
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1 .ct
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kadmin/ktutil \
+ ${KRB5_DIR}/man \
+ ${KRB5_OBJTOP}/util/ss
diff --git a/krb5/usr.bin/kvno/Makefile b/krb5/usr.bin/kvno/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/kvno/Makefile
@@ -0,0 +1,35 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kvno
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= kvno.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kvno.1
+
+kvno.1: kvno.man
+
+CLEANFILES+= kvno.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/clients/kvno \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/sclient/Makefile b/krb5/usr.bin/sclient/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/sclient/Makefile
@@ -0,0 +1,35 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= sclient
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= sclient.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= sclient.1
+
+sclient.1: sclient.man
+
+CLEANFILES+= sclient.1
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/appl/sample/sclient \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.bin/sim_client/Makefile b/krb5/usr.bin/sim_client/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.bin/sim_client/Makefile
@@ -0,0 +1,25 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= sim_client
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= sim_client.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN=
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5_DIR}/appl/simple
diff --git a/krb5/usr.sbin/Makefile b/krb5/usr.sbin/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/Makefile
@@ -0,0 +1,16 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+# $FreeBSD$
+
+SUBDIR= kadmin.local kdb5_util sim_server gss-server
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/usr.sbin/Makefile.inc b/krb5/usr.sbin/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/Makefile.inc
@@ -0,0 +1,12 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+BINDIR?= /usr/sbin
diff --git a/krb5/usr.sbin/gss-server/Makefile b/krb5/usr.sbin/gss-server/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/gss-server/Makefile
@@ -0,0 +1,30 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= gss-server
+
+LIBADD= gssapi_krb5 krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= gss-server.c \
+ gss-misc.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_OBJTOP}/lib \
+ -I${KRB5_DIR}/lib/gssapi/generic \
+ -I${KRB5_DIR}/lib/gssapi/krb5 \
+ -I${KRB5_DIR}/lib/gssapi/mechglue
+
+MAN=
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5_DIR}/appl/gss-sample
diff --git a/krb5/usr.sbin/kadmin.local/Makefile b/krb5/usr.sbin/kadmin.local/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/kadmin.local/Makefile
@@ -0,0 +1,31 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kadmin.local
+
+LIBADD= kadmin_common edit kadm5srv_mit kdb5 gssrpc gssapi_krb5 krb5 \
+ k5crypto com_err krb5profile krb5support krb5ss tinfow sys
+
+SRCS= keytab_local.c
+
+MAN= kadmin.local.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN=
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.PATH: ${KRB5_DIR}/kadmin/cli \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.sbin/kdb5_util/Makefile b/krb5/usr.sbin/kdb5_util/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/kdb5_util/Makefile
@@ -0,0 +1,75 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= kdb5_util
+
+LIBADD= kadmin_common kadm5srv_mit gssrpc gssapi_krb5 krb5 k5crypto \
+ kdb5 com_err krb5profile krb5support sys
+
+SRCS= dump.c \
+ kadm5_create.c \
+ kdb5_create.c \
+ kdb5_destroy.c \
+ kdb5_mkey.c \
+ kdb5_stash.c \
+ kdb5_util.c \
+ ovload.c \
+ strtok.c \
+ tabdump.c \
+ tdumputil.c \
+ ${GEN}
+
+INCS= ${GENI}
+
+MAN= kdb5_util.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= kdb5_util.8
+
+kdb5_util.8: kdb5_util.man
+
+GEN_INPUT_ERR= import_err.et
+GEN_INPUT_ERR_C= ${GEN_INPUT_ERR:S/.et$/.c/}
+GEN_INPUT_ERR_H= ${GEN_INPUT_ERR:S/.et$/.h/}
+CLEANFILES+= ${GEN_INPUT_ERR_C} ${GEN_INPUT_ERR_H}
+GEN+= ${GEN_INPUT_ERR_C}
+GENI+= ${GEN_INPUT_ERR_H}
+
+${GEN_INPUT_ERR:[2..-1]}: .NOMETA
+${GEN_INPUT_ERR_H}: ${GEN_INPUT_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_INPUT_ERR_C}: ${GEN_INPUT_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+
+CLEANFILES+= kdb5_util.8
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .8
+
+.man.8:
+ cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/kadmin/cli \
+ ${KRB5_DIR}/kadmin/dbutil \
+ ${KRB5_DIR}/man
diff --git a/krb5/usr.sbin/sim_server/Makefile b/krb5/usr.sbin/sim_server/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/sim_server/Makefile
@@ -0,0 +1,26 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= sim_server
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= sim_server.c
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/appl/simple
+
+MAN=
+
+.include <bsd.prog.mk>
+
+.PATH: ${KRB5_DIR}/appl/simple/server
diff --git a/krb5/usr.sbin/sserver/Makefile b/krb5/usr.sbin/sserver/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/usr.sbin/sserver/Makefile
@@ -0,0 +1,37 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+PROG= sserver
+
+LIBADD= krb5 k5crypto com_err krb5profile krb5support sys
+
+SRCS= sserver.c
+
+MAN= sserver.8
+
+CFLAGS+=-I${KRB5_DIR}/include \
+ -I${KRB5_SRCTOP}/include
+
+MAN= sserver.8
+
+sserver.8: sserver.man
+
+CLEANFILES+= sserver.8
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c. .man .8
+
+.man.8:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/appl/simple \
+ ${KRB5_DIR}/man
diff --git a/krb5/util/Makefile b/krb5/util/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/Makefile
@@ -0,0 +1,17 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+SUBDIR= build-tools compile_et .WAIT \
+ support .WAIT \
+ et .WAIT \
+ ss profile verto
+
+# SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/krb5/util/Makefile.inc b/krb5/util/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/krb5/util/Makefile.inc
@@ -0,0 +1,13 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+.include "../Makefile.inc"
+
+SHLIBDIR?= /usr/lib
+SHLIB_MAJOR?= 121
diff --git a/krb5/util/build-tools/Makefile b/krb5/util/build-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/build-tools/Makefile
@@ -0,0 +1,32 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include "../Makefile.inc"
+
+SCRIPTS= krb5-config.sh
+BINDIR?= /usr/bin
+
+MAN= krb5-config.1
+
+CLEANFILES= krb5-config.1
+
+krb5-config.1: krb5-config.man
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .sh .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/build-tools \
+ ${KRB5_DIR}/man \
+ ${KRB5_OBJTOP}/build-tools
diff --git a/krb5/util/build-tools/krb5-config.sh b/krb5/util/build-tools/krb5-config.sh
new file mode 100755
--- /dev/null
+++ b/krb5/util/build-tools/krb5-config.sh
@@ -0,0 +1,263 @@
+#!/bin/sh
+
+# Copyright 2001, 2002, 2003 by the Massachusetts Institute of Technology.
+# All Rights Reserved.
+#
+# Export of this software from the United States of America may
+# require a specific license from the United States Government.
+# It is the responsibility of any person or organization contemplating
+# export to obtain such a license before exporting.
+#
+# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+# distribute this software and its documentation for any purpose and
+# without fee is hereby granted, provided that the above copyright
+# notice appear in all copies and that both that copyright notice and
+# this permission notice appear in supporting documentation, and that
+# the name of M.I.T. not be used in advertising or publicity pertaining
+# to distribution of the software without specific, written prior
+# permission. Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# M.I.T. makes no representations about the suitability of
+# this software for any purpose. It is provided "as is" without express
+# or implied warranty.
+#
+#
+
+# Configurable parameters set by autoconf
+# Disreagard the above. Edit this by hand in the bespoke FreeBSD build.
+version_string="Kerberos 5 release 1.21.3"
+
+prefix=/usr
+exec_prefix=${prefix}
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+CC_LINK='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
+KDB5_DB_LIB=
+RPATH_FLAG=''
+PROG_RPATH_FLAGS=''
+PTHREAD_CFLAGS='-pthread'
+DL_LIB=''
+DEFCCNAME='FILE:/tmp/krb5cc_%{uid}'
+DEFKTNAME='FILE:/etc/krb5.keytab'
+DEFCKTNAME='FILE:/var/krb5/user/%{euid}/client.keytab'
+
+LIBS='-lintl -L/usr/local/lib'
+GEN_LIB=
+
+# Defaults for program
+library=krb5
+
+# Some constants
+vendor_string="Massachusetts Institute of Technology"
+
+# Process arguments
+# Yes, we are sloppy, library specifications can come before options
+while test $# != 0; do
+ case $1 in
+ --all)
+ do_all=1
+ ;;
+ --cflags)
+ do_cflags=1
+ ;;
+ --defccname)
+ do_defccname=1
+ ;;
+ --defcktname)
+ do_defcktname=1
+ ;;
+ --defktname)
+ do_defktname=1
+ ;;
+ --deps) # historically a no-op
+ ;;
+ --exec-prefix)
+ do_exec_prefix=1
+ ;;
+ --help)
+ do_help=1
+ ;;
+ --libs)
+ do_libs=1
+ ;;
+ --prefix)
+ do_prefix=1
+ ;;
+ --vendor)
+ do_vendor=1
+ ;;
+ --version)
+ do_version=1
+ ;;
+ krb5)
+ library=krb5
+ ;;
+ gssapi)
+ library=gssapi
+ ;;
+ gssrpc)
+ library=gssrpc
+ ;;
+ kadm-client)
+ library=kadm_client
+ ;;
+ kadm-server)
+ library=kadm_server
+ ;;
+ kdb)
+ library=kdb
+ ;;
+ *)
+ echo "$0: Unknown option \`$1' -- use \`--help' for usage"
+ exit 1
+ esac
+ shift
+done
+
+# If required options - provide help
+if test -z "$do_all" -a -z "$do_version" -a -z "$do_vendor" -a \
+ -z "$do_prefix" -a -z "$do_vendor" -a -z "$do_exec_prefix" -a \
+ -z "$do_defccname" -a -z "$do_defktname" -a -z "$do_defcktname" -a \
+ -z "$do_cflags" -a -z "$do_libs"; then
+ do_help=1
+fi
+
+
+if test -n "$do_help"; then
+ echo "Usage: $0 [OPTIONS] [LIBRARIES]"
+ echo "Options:"
+ echo " [--help] Help"
+ echo " [--all] Display version, vendor, and various values"
+ echo " [--version] Version information"
+ echo " [--vendor] Vendor information"
+ echo " [--prefix] Kerberos installed prefix"
+ echo " [--exec-prefix] Kerberos installed exec_prefix"
+ echo " [--defccname] Show built-in default ccache name"
+ echo " [--defktname] Show built-in default keytab name"
+ echo " [--defcktname] Show built-in default client keytab name"
+ echo " [--cflags] Compile time CFLAGS"
+ echo " [--libs] List libraries required to link [LIBRARIES]"
+ echo "Libraries:"
+ echo " krb5 Kerberos 5 application"
+ echo " gssapi GSSAPI application with Kerberos 5 bindings"
+ echo " gssrpc GSSAPI RPC application"
+ echo " kadm-client Kadmin client"
+ echo " kadm-server Kadmin server"
+ echo " kdb Application that accesses the kerberos database"
+ exit 0
+fi
+
+if test -n "$do_all"; then
+ all_exit=
+ do_version=1
+ do_prefix=1
+ do_exec_prefix=1
+ do_vendor=1
+ title_version="Version: "
+ title_prefix="Prefix: "
+ title_exec_prefix="Exec_prefix: "
+ title_vendor="Vendor: "
+else
+ all_exit="exit 0"
+fi
+
+if test -n "$do_version"; then
+ echo "$title_version$version_string"
+ $all_exit
+fi
+
+if test -n "$do_vendor"; then
+ echo "$title_vendor$vendor_string"
+ $all_exit
+fi
+
+if test -n "$do_prefix"; then
+ echo "$title_prefix$prefix"
+ $all_exit
+fi
+
+if test -n "$do_exec_prefix"; then
+ echo "$title_exec_prefix$exec_prefix"
+ $all_exit
+fi
+
+if test -n "$do_defccname"; then
+ echo "$DEFCCNAME"
+ $all_exit
+fi
+
+if test -n "$do_defktname"; then
+ echo "$DEFKTNAME"
+ $all_exit
+fi
+
+if test -n "$do_defcktname"; then
+ echo "$DEFCKTNAME"
+ $all_exit
+fi
+
+if test -n "$do_cflags"; then
+ if test x"$includedir" != x"/usr/include" ; then
+ echo "-I${includedir}"
+ else
+ echo ''
+ fi
+fi
+
+
+if test -n "$do_libs"; then
+ # Assumes /usr/lib is the standard library directory everywhere...
+ if test "$libdir" = /usr/lib; then
+ libdirarg=
+ else
+ libdirarg="-L$libdir"
+ fi
+ # Ugly gross hack for our build tree
+ lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
+ -e 's/\$(PURE)//' \
+ -e 's#\$(PROG_RPATH_FLAGS)#'"$PROG_RPATH_FLAGS"'#' \
+ -e 's#\$(PROG_RPATH)#'$libdir'#' \
+ -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \
+ -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \
+ -e 's#\$(LDFLAGS)##' \
+ -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
+ -e 's#\$(CFLAGS)##'`
+
+ if test $library = 'kdb'; then
+ lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
+ library=krb5
+ fi
+
+ if test $library = 'kadm_server'; then
+ lib_flags="$lib_flags -lkadm5srv_mit -lkdb5 $KDB5_DB_LIB"
+ library=gssrpc
+ fi
+
+ if test $library = 'kadm_client'; then
+ lib_flags="$lib_flags -lkadm5clnt_mit"
+ library=gssrpc
+ fi
+
+ if test $library = 'gssrpc'; then
+ lib_flags="$lib_flags -lgssrpc"
+ library=gssapi
+ fi
+
+ if test $library = 'gssapi'; then
+ lib_flags="$lib_flags -lgssapi_krb5"
+ library=krb5
+ fi
+
+ if test $library = 'krb5'; then
+ lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err"
+ fi
+
+ # If we ever support a flag to generate output suitable for static
+ # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB"
+ # here.
+
+ echo $lib_flags
+fi
+
+exit 0
diff --git a/krb5/util/compile_et/Makefile b/krb5/util/compile_et/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/compile_et/Makefile
@@ -0,0 +1,38 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include "../Makefile.inc"
+
+SRC_ETDIR= ${KRB5_DIR}/util/et
+
+SCRIPTNAME= compile_et
+SCRIPTS= compile_et
+BINDIR?= /usr/bin
+MAN= compile_et.1
+CLEANFILES= compile_et
+
+.if !defined(BOOTSTRAPPING)
+SCRIPTSDIR= ${SHAREDIR}/et
+.endif
+
+compile_et: compile_et.sh
+ sh ${SRC_ETDIR}/config_script ${SRC_ETDIR}/compile_et.sh \
+ "${KRB5_ETDIR}" /usr/bin/awk /usr/bin/sed > ${.TARGET}
+ chmod 0755 ${.TARGET}
+
+.include <bsd.prog.mk>
+
+.SUFFIXES: .h .c .man .1
+
+.man.1:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/util/et
diff --git a/krb5/util/et/Makefile b/krb5/util/et/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/et/Makefile
@@ -0,0 +1,47 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5-lib
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= com_err
+# SHLIB_MAJOR= 3
+LDFLAGS=-Wl,--no-undefined
+INCSDIR=${INCLUDEDIR}
+LIBADD= krb5support
+
+
+SRCS= com_err.c \
+ error_message.c \
+ et_name.c \
+ error_table.h \
+ mit-sipb-copyright.h
+
+INCS= com_err.h
+
+MAN= com_err.3
+
+# NOTES: com_err.h is copied to ../include
+
+CFLAGS+=-I${KRB5_DIR}/util/et \
+ -I${KRB5_DIR}/include \
+ -I${.CURDIR:H:H}/include \
+ -I${.OBJDIR}
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .et .ct .man .3
+
+.man.3:
+ @cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/util/et
diff --git a/krb5/util/profile/Makefile b/krb5/util/profile/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/profile/Makefile
@@ -0,0 +1,78 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= krb5profile
+LIBADD= com_err krb5support
+
+SRCS= prof_file.c \
+ prof_get.c \
+ prof_init.c \
+ prof_parse.c \
+ prof_set.c \
+ prof_tree.c \
+ argv_parse.h \
+ prof_int.h \
+ ${GEN}
+
+INCS= profile.h
+
+DEFINES=-DHAS_STDARG -DLIBDIR=\"${KRB5_LIBDIR}\"
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/util/profile \
+ -I${KRB5_DIR}/util/et \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/include \
+ -I${.OBJDIR}
+
+GEN= profile.h ${GEN_PROF_ERR_C} ${GEN_PROF_ERR_H}
+GEN_PROF_ERR= prof_err.et
+GEN_PROF_ERR_C= ${GEN_PROF_ERR:S/.et$/.c/}
+GEN_PROF_ERR_H= ${GEN_PROF_ERR:S/.et$/.h/}
+${GEN_PROF_ERR:[2..-1]}: .NOMETA
+CLEANFILES= et-h-prof_err.et et-h-prof_err.c et-h-prof_err.h \
+ ${GEN}
+
+.include "${KRB5_SRCTOP}/Makefile.et"
+
+${GEN_PROF_ERR_H}: ${GEN_PROF_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_PROF_ERR_C}: ${GEN_PROF_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+profile.h: profile.hin prof_err.h
+ cat ${.ALLSRC} > ${.TARGET}
+
+prof_file.c: profile.h
+
+MAN= profile.5
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .man .1 .et
+
+.man.5:
+ cp ${.ALLSRC} ${.TARGET}
+
+.PATH: ${KRB5_DIR}/util/profile
diff --git a/krb5/util/ss/Makefile b/krb5/util/ss/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/ss/Makefile
@@ -0,0 +1,89 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+# .include "${KRB5_SRCTOP}/Makefile.et"
+
+LIB= krb5ss
+INTERNALLIB=
+
+.PATH: ${KRB5_DIR}/util/ss
+
+SRCS= data.c \
+ error.c \
+ execute_cmd.c \
+ help.c \
+ invocation.c \
+ list_rqs.c \
+ listen.c \
+ pager.c \
+ parse.c \
+ prompt.c \
+ request_tbl.c \
+ requests.c \
+ copyright.h \
+ mit-sipb-copyright.h \
+ ss.h \
+ ss_internal.h \
+ ${GEN}
+
+SCRIPTS=${GEN_SCRIPTS}
+
+CFLAGS+=-I${KRB5_DIR}/util/ss \
+ -I${KRB5_DIR}/util/et \
+ -I${KRB5_DIR}/util \
+ -I${KRB5_SRCTOP}/include \
+ -I${KRB5_DIR}/include \
+ -I${.OBJDIR:H} \
+ -I${.OBJDIR}
+
+GEN= std_rqs.c ${GEN_SS_ERR_C} ${GEN_SS_ERR_H}
+GEN_SCRIPTS= ct_c.awk ct_c.sed mk_cmds
+GEN_SS_ERR_C= ${GEN_SS_ERR:S/.et$/.c/}
+GEN_SS_ERR_H= ${GEN_SS_ERR:S/.et$/.h/}
+CLEANFILES= ${GEN} ${GEN_SCRIPTS}
+
+mk_cmds: config_script mk_cmds.sh ct_c.awk ct_c.sed
+ sh ${KRB5_DIR}/util/ss/config_script ${KRB5_DIR}/util/ss/mk_cmds.sh \
+ ${.OBJDIR} awk sed > ${.TARGET}
+ chmod 755 ${.TARGET}
+
+ct_c.awk: ct_c_awk.in
+ rm -f ${.TARGET}
+ cp ${.ALLSRC} ${.TARGET}
+
+ct_c.sed: ct_c_sed.in
+ sed -e '/^#/d' ${.ALLSRC} > ${.TARGET}
+
+GEN_SS_ERR= ss_err.et
+${GEN_SS_ERR:[2..-1]}: .NOMETA
+${GEN_SS_ERR_H}: ${GEN_SS_ERR}
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.c et-h-${.PREFIX}.h
+ cp ${.ALLSRC} et-h-${.PREFIX}.et
+ ${COMPILE_ET} et-h-${.PREFIX}.et
+ mv et-h-${.PREFIX}.h ${.PREFIX}.h
+ rm -f et-h-${.PREFIX}.et et-h-${.PREFIX}.h
+
+${GEN_SS_ERR_C}: ${GEN_SS_ERR}
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c et-c-${.PREFIX}.h
+ cp ${.ALLSRC} et-c-${.PREFIX}.et
+ ${COMPILE_ET} et-c-${.PREFIX}.et
+ mv et-c-${.PREFIX}.c ${.PREFIX}.c
+ rm -f et-c-${.PREFIX}.et et-c-${.PREFIX}.c
+
+std_rqs.c: mk_cmds std_rqs.ct ss_err.h
+ ./mk_cmds ${KRB5_DIR}/util/ss/std_rqs.ct
+
+.include <bsd.lib.mk>
+
+.SUFFIXES: .h .c .ct .et .awk .sed
diff --git a/krb5/util/support/Makefile b/krb5/util/support/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/support/Makefile
@@ -0,0 +1,48 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5-lib
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= krb5support
+# SHLIB_MAJOR= 0
+LDFLAGS=-Wl,--no-undefined
+
+.PATH: ${KRB5_DIR}/util/support
+
+SRCS= base64.c \
+ bcmp.c \
+ dir_filenames.c \
+ errors.c \
+ fake-addrinfo.c \
+ gmt_mktime.c \
+ hashtab.c \
+ hex.c \
+ init-addrinfo.c \
+ json.c \
+ k5buf.c \
+ path.c \
+ plugins.c \
+ strerror_r.c \
+ threads.c \
+ utf8.c \
+ utf8_conv.c \
+ zap.c \
+ cache-addrinfo.h \
+ supp-int.h
+
+CFLAGS+=-I${KRB5_DIR}/util/support \
+ -I${KRB5_DIR}/include \
+ -I${.CURDIR:H:H}/include \
+ -I${.OBJDIR}
+
+.include <bsd.lib.mk>
diff --git a/krb5/util/verto/Makefile b/krb5/util/verto/Makefile
new file mode 100644
--- /dev/null
+++ b/krb5/util/verto/Makefile
@@ -0,0 +1,49 @@
+#
+# SPDX-License-Idendifier: BSD-2-Clause
+#
+# Copyright (c) 2025 FreeBSD Foundation
+#
+# This sofware was developed by Cy Schubert <cy@FreeBSD.org>
+# under sponsorship from the FreeBSD Foundation.
+#
+
+PACKAGE= krb5
+
+.include <src.opts.mk>
+
+.include "../Makefile.inc"
+
+LIB= verto
+# SHLIB_MAJOR= 0
+
+.PATH: ${KRB5_DIR}/util/verto
+
+SRCS= module.c \
+ verto-k5ev.c \
+ verto.c \
+ ev.h \
+ ev_vars.h \
+ ev_wrap.h \
+ module.h \
+ ${GEN}
+
+INCS= verto-module.h \
+ verto.h \
+
+# See util/verto/Makefile.in and util/verto/Makefile
+
+DEFINES=-DDEFAULT_LIBRARY=\"k5ev\" -DBUILTIN_MODULE=k5ev
+
+CFLAGS+=${DEFINES} \
+ -I${KRB5_DIR}/util/verto \
+ -I${KRB5_DIR}/include \
+ -I${.CURDIR:H:H}/include \
+ -I${.OBJDIR}
+
+GEN= rename.h
+CLEANFILES= ${GEN}
+
+rename.h: Symbols.ev
+ @sed -e 's/.*/#define & k5&/' < ${.ALLSRC} > ${.TARGET}
+
+.include <bsd.lib.mk>
diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk
--- a/share/mk/bsd.libnames.mk
+++ b/share/mk/bsd.libnames.mk
@@ -18,6 +18,7 @@
LIB80211?= ${LIBDESTDIR}${LIBDIR_BASE}/lib80211.a
LIB9P?= ${LIBDESTDIR}${LIBDIR_BASE}/lib9p.a
LIBALIAS?= ${LIBDESTDIR}${LIBDIR_BASE}/libalias.a
+LIBAPPUTILS?= ${LIBDESTDIR}${LIBDIR_BASE}/libapputils.a
LIBARCHIVE?= ${LIBDESTDIR}${LIBDIR_BASE}/libarchive.a
LIBASN1?= ${LIBDESTDIR}${LIBDIR_BASE}/libasn1.a
LIBATM?= ${LIBDESTDIR}${LIBDIR_BASE}/libatm.a
@@ -70,6 +71,7 @@
LIBGPIO?= ${LIBDESTDIR}${LIBDIR_BASE}/libgpio.a
LIBGSSAPI?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssapi.a
LIBGSSAPI_KRB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssapi_krb5.a
+LIBGSSRPC?= ${LIBDESTDIR}${LIBDIR_BASE}/libgssrpc.a
LIBHDB?= ${LIBDESTDIR}${LIBDIR_BASE}/libhdb.a
LIBHEIMBASE?= ${LIBDESTDIR}${LIBDIR_BASE}/libheimbase.a
LIBHEIMNTLM?= ${LIBDESTDIR}${LIBDIR_BASE}/libheimntlm.a
@@ -88,11 +90,21 @@
LIBJAIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libjail.a
LIBKADM5CLNT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5clnt.a
LIBKADM5SRV?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5srv.a
+LIBK5CRYPTO?= ${LIBDESTDIR}${LIBDIR_BASE}/libk5crypto.a
+LIBKADMIN_COMMON?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadmin_common.a
+LIBKADM5CLNT_MIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5clnt_mit.a
+LIBKADM5SRV_MIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkadm5srv_mit.a
LIBKAFS5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkafs5.a
+LIBKDB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkdb5.a
LIBKDC?= ${LIBDESTDIR}${LIBDIR_BASE}/libkdc.a
LIBKEYCAP?= ${LIBDESTDIR}${LIBDIR_BASE}/libkeycap.a
LIBKICONV?= ${LIBDESTDIR}${LIBDIR_BASE}/libkiconv.a
+LIBKPROP_UTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libkprop_util.a
+LIBKRAD?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrad.a
LIBKRB5?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5.a
+LIBKRB5PROFILE?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5profile.a
+LIBKRB5SS?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5ss.a
+LIBKRB5SUPPORT?= ${LIBDESTDIR}${LIBDIR_BASE}/libkrb5support.a
LIBKVM?= ${LIBDESTDIR}${LIBDIR_BASE}/libkvm.a
LIBL?= ${LIBDESTDIR}${LIBDIR_BASE}/libl.a
LIBLN?= "don't use LIBLN, use LIBL"
@@ -158,6 +170,7 @@
LIBUSBHID?= ${LIBDESTDIR}${LIBDIR_BASE}/libusbhid.a
LIBUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libutil.a
LIBUUTIL?= ${LIBDESTDIR}${LIBDIR_BASE}/libuutil.a
+LIBVERTO?= ${LIBDESTDIR}${LIBDIR_BASE}/libverto.a
LIBVGL?= ${LIBDESTDIR}${LIBDIR_BASE}/libvgl.a
LIBVMMAPI?= ${LIBDESTDIR}${LIBDIR_BASE}/libvmmapi.a
LIBWIND?= ${LIBDESTDIR}${LIBDIR_BASE}/libwind.a
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -41,6 +41,7 @@
_INTERNALLIBS= \
amu \
+ apputils \
bsnmptools \
c_nossp_pic \
cron \
@@ -52,6 +53,10 @@
ifconfig \
ipf \
iscsiutil \
+ kadmin_common \
+ kprop_util \
+ krb5apputils \
+ krb5ss \
lpr \
lua \
lutok \
@@ -151,6 +156,7 @@
gpio \
gssapi \
gssapi_krb5 \
+ gssrpc \
hdb \
heimbase \
heimntlm \
@@ -160,12 +166,17 @@
ipsec \
ipt \
jail \
- kadm5clnt \
- kadm5srv \
+ k5crypto \
+ kadm5 \
+ kadmin_common \
kafs5 \
+ kdb5 \
kdc \
kiconv \
+ krad \
krb5 \
+ krb5profile \
+ krb5support \
kvm \
l \
lzma \
@@ -223,6 +234,7 @@
usbhid \
util \
uutil \
+ verto \
vmmapi \
wind \
wrap \
@@ -237,6 +249,16 @@
zpool \
zutil
+.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} != "no"
+_LIBRARIES+= \
+ kadm5clnt_mit \
+ kadm5srv_mit
+.else
+_LIBRARIES+= \
+ kadm5clnt \
+ kadm5srv
+.endif
+
.if ${MK_BLACKLIST} != "no"
_LIBRARIES+= \
blacklist \
@@ -369,7 +391,7 @@
_DP_gtest_main= gtest
_DP_devstat= kvm
_DP_pam= radius tacplus md util
-.if ${MK_KERBEROS} != "no"
+.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} != "no"
_DP_pam+= krb5
.endif
.if ${MK_OPENSSH} != "no"
@@ -379,6 +401,22 @@
.if ${MK_NIS} != "no"
_DP_pam+= ypclnt
.endif
+.if ${MK_KERBEROS} != "no"
+.if ${MK_MITKRB5} != "no"
+# _DP_krb5support= no dependencies except for libc
+# _DP_verto= no dependencies except for libc
+# _DP_apputils= no dependencies except for libc
+_DP_com_err= krb5support
+_DP_k5crypto= com_err krb5support crypto
+_DP_krb5profile= com_err krb5support
+_DP_gssapi_krb5= krb5 k5crypto com_err krb5profile krb5support
+_DP_kadm5clnt_mit= gssrpc gssapi_krb5 krb5 k5crypto krb5support com_err krb5profile
+_DP_kadm5srv_mit= krb5profile gssrpc gssapi_krb5 kdb5 krb5 k5crypto krb5support com_err
+_DP_kdb5= gssrpc krb5 k5crypto com_err krb5support gssapi_krb5 krb5profile
+_DP_krad= krb5 k5crypto com_err krb5profile krb5support verto
+_DP_krb5= krb5profile k5crypto com_err krb5support
+_DP_gssrpc= gssapi_krb5 krb5 k5crypto com_err krb5support
+.else
_DP_roken= crypt
_DP_kadm5clnt= com_err krb5 roken
_DP_kadm5srv= com_err hdb krb5 roken
@@ -394,6 +432,8 @@
_DP_kafs5= asn1 krb5 roken
_DP_krb5= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc
_DP_gssapi_krb5= gssapi krb5 crypto roken asn1 com_err
+.endif
+.endif
_DP_lzma= md pthread
_DP_ucl= m
_DP_vmmapi= util
@@ -751,6 +791,40 @@
LIBDIALOGDIR= ${_LIB_OBJTOP}/gnu/lib/libdialog
LIBSSPDIR= ${_LIB_OBJTOP}/lib/libssp
LIBSSP_NONSHAREDDIR= ${_LIB_OBJTOP}/lib/libssp_nonshared
+.if ${MK_MITKRB5} != "no"
+LIBAPPUTILSDIR= ${_LIB_OBJTOP}/krb5/lib/apputils
+LIBAPPUTILS?= ${LIBAPPUTILSDIR}/libapputils${PIE_SUFFIX}.a
+LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/krb5/lib/gssapi
+LIBGSSAPI_KRB5?= ${LIBGSSAPI_KRB5DIR}/libgssapi_krb5${PIE_SUFFIX}.a
+LIBGSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc
+LIBGSSRPC?= ${LIBGSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a
+LIBK5CRYPTODIR= ${_LIB_OBJTOP}/krb5/lib/crypto
+LIBK5CRYPTO?= ${LIBK5CRYPTODIR}/libk5crypto${PIE_SUFFIX}.a
+LIBK5GSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc
+LIBK5GSSRPC?= ${LIBK5GSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a
+LIBKADM5CLNT_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5clnt
+LIBKADM5CLNT_MIT?= ${LIBKADM5CLNT_MITDIR}/libkadm5clnt_mit${PIE_SUFFIX}.a
+LIBKADM5SRV_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5srv
+LIBKADM5SRV_MIT?= ${LIBKADM5SRV_MITDIR}/libkadm5srv_mit${PIE_SUFFIX}.a
+LIBKADMIN_COMMONDIR= ${_LIB_OBJTOP}/krb5/lib/kadmin_common
+LIBKADMIN_COMMON?= ${LIBKADMIN_COMMONDIR}/libkadmin_common${PIE_SUFFIX}.a
+LIBKDB5DIR= ${_LIB_OBJTOP}/krb5/lib/kdb
+LIBKDB5?= ${LIBKDB5DIR}/libkdb5${PIE_SUFFIX}.a
+LIBKPROP_UTILDIR= ${_LIB_OBJTOP}/krb5/lib/kprop_util
+LIBKPROP_UTIL?= ${LIBKPROP_UTILDIR}/libkprop_util${PIE_SUFFIX}.a
+LIBKRADDIR= ${_LIB_OBJTOP}/krb5/lib/krad
+LIBKRAD?= ${LIBKRADDIR}/libkrad${PIE_SUFFIX}.a
+LIBKRB5DIR= ${_LIB_OBJTOP}/krb5/lib/krb5
+LIBKRB5?= ${LIBKRB5DIR}/libkrb5${PIE_SUFFIX}.a
+LIBKRB5SSDIR= ${_LIB_OBJTOP}/krb5/util/ss
+LIBKRB5SS?= ${LIBKRB5SUPPORTDIR}/libkrb5ss${PIE_SUFFIX}.a
+LIBKRB5SUPPORTDIR= ${_LIB_OBJTOP}/krb5/util/support
+LIBKRB5SUPPORT?= ${LIBKRB5SUPPORTDIR}/libkrb5support${PIE_SUFFIX}.a
+LIBKRB5PROFILEDIR= ${_LIB_OBJTOP}/krb5/util/profile
+LIBKRB5PROFILE?= ${LIBPROFILEDIR}/libkrb5profile${PIE_SUFFIX}.a
+LIBVERTODIR= ${_LIB_OBJTOP}/krb5/util/verto
+LIBVERTO?= ${LIBVERTODIR}/libverto${PIE_SUFFIX}.a
+.else
LIBASN1DIR= ${_LIB_OBJTOP}/kerberos5/lib/libasn1
LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_krb5
LIBGSSAPI_NTLMDIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_ntlm
@@ -768,6 +842,7 @@
LIBKRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libkrb5
LIBROKENDIR= ${_LIB_OBJTOP}/kerberos5/lib/libroken
LIBWINDDIR= ${_LIB_OBJTOP}/kerberos5/lib/libwind
+.endif
LIBATF_CDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c
LIBATF_CXXDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c++
LIBGMOCKDIR= ${_LIB_OBJTOP}/lib/googletest/gmock

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 3:23 PM (10 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27711142
Default Alt Text
D50695.diff (188 KB)

Event Timeline