Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142234348
D50695.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
188 KB
Referenced Files
None
Subscribers
None
D50695.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D50695: krb5: Add build plumbing
Attached
Detach File
Event Timeline
Log In to Comment