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 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +.include + +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.include "../Makefile.inc" + +SUBDIR= krb5_private krb5 gssrpc gssapi + +SUBDIR_PARALLEL= + +.include + +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 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 +# 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 +#include + + +/* 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 header file. */ +/* #undef HAVE_ALLOCA_H */ + +/* Define to 1 if you have the 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 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 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 header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define to 1 if you have the 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 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 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 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 header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KEYUTILS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LBER_H */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_MACHINE_BYTE_ORDER_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MACHINE_ENDIAN_H 1 + +/* Define to 1 if you have the 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 header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the 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 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 header file. */ +#define HAVE_PATHS_H 1 + +/* Define if persistent keyrings are supported */ +/* #undef HAVE_PERSISTENT_KEYRING */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_REGEXPR_H */ + +/* Define to 1 if you have the 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 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 header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the 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 header file. */ +/* #undef HAVE_SYS_BSWAP_H */ + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILIO_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the 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 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 does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `long' if does not define. */ +/* #undef time_t */ + +/* Define to `int' if 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 +# 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 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 +# 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 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 + */ +#ifndef GSSRPC_TYPES_H +#define GSSRPC_TYPES_H + +#include + +#include +#include +#include + +/* + * Try to get MAXHOSTNAMELEN from somewhere. + */ +#include +/* #include */ + +/* Get htonl(), ntohl(), etc. */ +#include + +#include +#include +#include + +#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 + +#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 +# 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 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 +# 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 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 +#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 +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= crypto krb5 gssapi rpc kdb kadm5clnt kadm5srv apputils krad kadmin_common kprop_util + +# SUBDIR_PARALLEL= + +.include 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +#include +#include +#include +#include + +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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +#DIR $FreeBSD$ + +SUBDIR= kdc kadmind kpropd kprop kproplog + +SUBDIR_PARALLEL= + +.include 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 +# 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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +.include + +PLUGINS= kdb preauth k5tls +# PLUGINS+= audit - We don't build this because the port doesn't +# use it. + +SUBDIR= ${PLUGINS} +SUBDIR_PARALLEL= + +.include 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= db2 + +# XXX If in the future we want to support ldap or lmdb. +# SUBDIR_PARALLEL= + +.include 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= otp pkinit spake test + +SUBDIR_PARALLEL= + +.include 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 +# 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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 +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= kadmin kdestroy kinit klist kpasswd ksu kswitch ktutil kvno sclient gss-client + +SUBDIR_PARALLEL= + +.include 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 +# 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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +# $FreeBSD$ + +SUBDIR= kadmin.local kdb5_util sim_server gss-server + +SUBDIR_PARALLEL= + +.include 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 +# 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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# 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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +SUBDIR= build-tools compile_et .WAIT \ + support .WAIT \ + et .WAIT \ + ss profile verto + +# SUBDIR_PARALLEL= + +.include 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 +# 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 +# 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 + +.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 +# 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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 \ + ${.CURDIR} 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 + +.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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5-lib + +.include + +.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 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 +# under sponsorship from the FreeBSD Foundation. +# + +PACKAGE= krb5 + +.include + +.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 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} == "yes" +# _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} == "yes" +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