summaryrefslogtreecommitdiff
path: root/crypto/heimdal/appl/gssmask
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/appl/gssmask')
-rw-r--r--crypto/heimdal/appl/gssmask/Makefile.am12
-rw-r--r--crypto/heimdal/appl/gssmask/Makefile.in760
-rw-r--r--crypto/heimdal/appl/gssmask/common.c97
-rw-r--r--crypto/heimdal/appl/gssmask/common.h112
-rw-r--r--crypto/heimdal/appl/gssmask/gssmaestro.c851
-rw-r--r--crypto/heimdal/appl/gssmask/gssmask.c1092
-rw-r--r--crypto/heimdal/appl/gssmask/protocol.h286
7 files changed, 0 insertions, 3210 deletions
diff --git a/crypto/heimdal/appl/gssmask/Makefile.am b/crypto/heimdal/appl/gssmask/Makefile.am
deleted file mode 100644
index 347a27ec9290..000000000000
--- a/crypto/heimdal/appl/gssmask/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-# $Id: Makefile.am 18468 2006-10-14 13:50:51Z lha $
-
-include $(top_srcdir)/Makefile.am.common
-
-noinst_PROGRAMS = gssmask gssmaestro
-
-gssmask_SOURCES = gssmask.c common.c common.h protocol.h
-
-gssmaestro_SOURCES = gssmaestro.c common.c common.h protocol.h
-
-LDADD = $(top_builddir)/lib/gssapi/libgssapi.la $(LIB_roken)
-
diff --git a/crypto/heimdal/appl/gssmask/Makefile.in b/crypto/heimdal/appl/gssmask/Makefile.in
deleted file mode 100644
index a51092274cfe..000000000000
--- a/crypto/heimdal/appl/gssmask/Makefile.in
+++ /dev/null
@@ -1,760 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# $Id: Makefile.am 18468 2006-10-14 13:50:51Z lha $
-
-# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
-
-# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/Makefile.am.common \
- $(top_srcdir)/cf/Makefile.am.common
-noinst_PROGRAMS = gssmask$(EXEEXT) gssmaestro$(EXEEXT)
-subdir = appl/gssmask
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
- $(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
- $(top_srcdir)/cf/broken-getaddrinfo.m4 \
- $(top_srcdir)/cf/broken-glob.m4 \
- $(top_srcdir)/cf/broken-realloc.m4 \
- $(top_srcdir)/cf/broken-snprintf.m4 $(top_srcdir)/cf/broken.m4 \
- $(top_srcdir)/cf/broken2.m4 $(top_srcdir)/cf/c-attribute.m4 \
- $(top_srcdir)/cf/capabilities.m4 \
- $(top_srcdir)/cf/check-compile-et.m4 \
- $(top_srcdir)/cf/check-getpwnam_r-posix.m4 \
- $(top_srcdir)/cf/check-man.m4 \
- $(top_srcdir)/cf/check-netinet-ip-and-tcp.m4 \
- $(top_srcdir)/cf/check-type-extra.m4 \
- $(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
- $(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
- $(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
- $(top_srcdir)/cf/dlopen.m4 \
- $(top_srcdir)/cf/find-func-no-libs.m4 \
- $(top_srcdir)/cf/find-func-no-libs2.m4 \
- $(top_srcdir)/cf/find-func.m4 \
- $(top_srcdir)/cf/find-if-not-broken.m4 \
- $(top_srcdir)/cf/framework-security.m4 \
- $(top_srcdir)/cf/have-struct-field.m4 \
- $(top_srcdir)/cf/have-type.m4 $(top_srcdir)/cf/irix.m4 \
- $(top_srcdir)/cf/krb-bigendian.m4 \
- $(top_srcdir)/cf/krb-func-getlogin.m4 \
- $(top_srcdir)/cf/krb-ipv6.m4 $(top_srcdir)/cf/krb-prog-ln-s.m4 \
- $(top_srcdir)/cf/krb-readline.m4 \
- $(top_srcdir)/cf/krb-struct-spwd.m4 \
- $(top_srcdir)/cf/krb-struct-winsize.m4 \
- $(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
- $(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
- $(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
- $(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
- $(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
- $(top_srcdir)/cf/roken-frag.m4 \
- $(top_srcdir)/cf/socket-wrapper.m4 $(top_srcdir)/cf/sunos.m4 \
- $(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
- $(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
- $(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-am_gssmaestro_OBJECTS = gssmaestro.$(OBJEXT) common.$(OBJEXT)
-gssmaestro_OBJECTS = $(am_gssmaestro_OBJECTS)
-gssmaestro_LDADD = $(LDADD)
-am__DEPENDENCIES_1 =
-gssmaestro_DEPENDENCIES = $(top_builddir)/lib/gssapi/libgssapi.la \
- $(am__DEPENDENCIES_1)
-am_gssmask_OBJECTS = gssmask.$(OBJEXT) common.$(OBJEXT)
-gssmask_OBJECTS = $(am_gssmask_OBJECTS)
-gssmask_LDADD = $(LDADD)
-gssmask_DEPENDENCIES = $(top_builddir)/lib/gssapi/libgssapi.la \
- $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(gssmaestro_SOURCES) $(gssmask_SOURCES)
-DIST_SOURCES = $(gssmaestro_SOURCES) $(gssmask_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CANONICAL_HOST = @CANONICAL_HOST@
-CATMAN = @CATMAN@
-CATMANEXT = @CATMANEXT@
-CC = @CC@
-CFLAGS = @CFLAGS@
-COMPILE_ET = @COMPILE_ET@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DBLIB = @DBLIB@
-DEFS = @DEFS@
-DIR_com_err = @DIR_com_err@
-DIR_hcrypto = @DIR_hcrypto@
-DIR_hdbdir = @DIR_hdbdir@
-DIR_roken = @DIR_roken@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-GROFF = @GROFF@
-INCLUDES_roken = @INCLUDES_roken@
-INCLUDE_hcrypto = @INCLUDE_hcrypto@
-INCLUDE_hesiod = @INCLUDE_hesiod@
-INCLUDE_krb4 = @INCLUDE_krb4@
-INCLUDE_openldap = @INCLUDE_openldap@
-INCLUDE_readline = @INCLUDE_readline@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBADD_roken = @LIBADD_roken@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
-LIB_NDBM = @LIB_NDBM@
-LIB_XauFileName = @LIB_XauFileName@
-LIB_XauReadAuth = @LIB_XauReadAuth@
-LIB_XauWriteAuth = @LIB_XauWriteAuth@
-LIB_bswap16 = @LIB_bswap16@
-LIB_bswap32 = @LIB_bswap32@
-LIB_com_err = @LIB_com_err@
-LIB_com_err_a = @LIB_com_err_a@
-LIB_com_err_so = @LIB_com_err_so@
-LIB_crypt = @LIB_crypt@
-LIB_db_create = @LIB_db_create@
-LIB_dbm_firstkey = @LIB_dbm_firstkey@
-LIB_dbopen = @LIB_dbopen@
-LIB_dlopen = @LIB_dlopen@
-LIB_dn_expand = @LIB_dn_expand@
-LIB_door_create = @LIB_door_create@
-LIB_el_init = @LIB_el_init@
-LIB_freeaddrinfo = @LIB_freeaddrinfo@
-LIB_gai_strerror = @LIB_gai_strerror@
-LIB_getaddrinfo = @LIB_getaddrinfo@
-LIB_gethostbyname = @LIB_gethostbyname@
-LIB_gethostbyname2 = @LIB_gethostbyname2@
-LIB_getnameinfo = @LIB_getnameinfo@
-LIB_getpwnam_r = @LIB_getpwnam_r@
-LIB_getsockopt = @LIB_getsockopt@
-LIB_hcrypto = @LIB_hcrypto@
-LIB_hcrypto_a = @LIB_hcrypto_a@
-LIB_hcrypto_appl = @LIB_hcrypto_appl@
-LIB_hcrypto_so = @LIB_hcrypto_so@
-LIB_hesiod = @LIB_hesiod@
-LIB_hstrerror = @LIB_hstrerror@
-LIB_kdb = @LIB_kdb@
-LIB_krb4 = @LIB_krb4@
-LIB_loadquery = @LIB_loadquery@
-LIB_logout = @LIB_logout@
-LIB_logwtmp = @LIB_logwtmp@
-LIB_openldap = @LIB_openldap@
-LIB_openpty = @LIB_openpty@
-LIB_otp = @LIB_otp@
-LIB_pidfile = @LIB_pidfile@
-LIB_readline = @LIB_readline@
-LIB_res_ndestroy = @LIB_res_ndestroy@
-LIB_res_nsearch = @LIB_res_nsearch@
-LIB_res_search = @LIB_res_search@
-LIB_roken = @LIB_roken@
-LIB_security = @LIB_security@
-LIB_setsockopt = @LIB_setsockopt@
-LIB_socket = @LIB_socket@
-LIB_syslog = @LIB_syslog@
-LIB_tgetent = @LIB_tgetent@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NROFF = @NROFF@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
-PTHREADS_LIBS = @PTHREADS_LIBS@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VERSIONING = @VERSIONING@
-VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
-WFLAGS = @WFLAGS@
-WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
-WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
-XMKMF = @XMKMF@
-X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-YACC = @YACC@
-YFLAGS = @YFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dpagaix_cflags = @dpagaix_cflags@
-dpagaix_ldadd = @dpagaix_ldadd@
-dpagaix_ldflags = @dpagaix_ldflags@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
-AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken)
-@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
-AM_CFLAGS = $(WFLAGS)
-CP = cp
-buildinclude = $(top_builddir)/include
-LIB_getattr = @LIB_getattr@
-LIB_getpwent_r = @LIB_getpwent_r@
-LIB_odm_initialize = @LIB_odm_initialize@
-LIB_setpcred = @LIB_setpcred@
-HESIODLIB = @HESIODLIB@
-HESIODINCLUDE = @HESIODINCLUDE@
-NROFF_MAN = groff -mandoc -Tascii
-LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
-@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
-@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
-
-@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
-@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
-@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
-gssmask_SOURCES = gssmask.c common.c common.h protocol.h
-gssmaestro_SOURCES = gssmaestro.c common.c common.h protocol.h
-LDADD = $(top_builddir)/lib/gssapi/libgssapi.la $(LIB_roken)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/gssmask/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps appl/gssmask/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-gssmaestro$(EXEEXT): $(gssmaestro_OBJECTS) $(gssmaestro_DEPENDENCIES)
- @rm -f gssmaestro$(EXEEXT)
- $(LINK) $(gssmaestro_OBJECTS) $(gssmaestro_LDADD) $(LIBS)
-gssmask$(EXEEXT): $(gssmask_OBJECTS) $(gssmask_DEPENDENCIES)
- @rm -f gssmask$(EXEEXT)
- $(LINK) $(gssmask_OBJECTS) $(gssmask_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-local
-check: check-am
-all-am: Makefile $(PROGRAMS) all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
-
-install-dvi: install-dvi-am
-
-install-exec-am:
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-
-.MAKE: install-am install-data-am install-exec-am install-strip \
- uninstall-am
-
-.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
- clean clean-generic clean-libtool clean-noinstPROGRAMS ctags \
- dist-hook distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-hook install-dvi install-dvi-am \
- install-exec install-exec-am install-exec-hook install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am uninstall-hook
-
-
-install-suid-programs:
- @foo='$(bin_SUIDS)'; \
- for file in $$foo; do \
- x=$(DESTDIR)$(bindir)/$$file; \
- if chown 0:0 $$x && chmod u+s $$x; then :; else \
- echo "*"; \
- echo "* Failed to install $$x setuid root"; \
- echo "*"; \
- fi; done
-
-install-exec-hook: install-suid-programs
-
-install-build-headers:: $(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ) $(nobase_include_HEADERS)
- @foo='$(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ)'; \
- for f in $$foo; do \
- f=`basename $$f`; \
- if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
- else file="$$f"; fi; \
- if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
- : ; else \
- echo " $(CP) $$file $(buildinclude)/$$f"; \
- $(CP) $$file $(buildinclude)/$$f; \
- fi ; \
- done ; \
- foo='$(nobase_include_HEADERS)'; \
- for f in $$foo; do \
- if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
- else file="$$f"; fi; \
- $(mkdir_p) $(buildinclude)/`dirname $$f` ; \
- if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
- : ; else \
- echo " $(CP) $$file $(buildinclude)/$$f"; \
- $(CP) $$file $(buildinclude)/$$f; \
- fi ; \
- done
-
-all-local: install-build-headers
-
-check-local::
- @if test '$(CHECK_LOCAL)' = "no-check-local"; then \
- foo=''; elif test '$(CHECK_LOCAL)'; then \
- foo='$(CHECK_LOCAL)'; else \
- foo='$(PROGRAMS)'; fi; \
- if test "$$foo"; then \
- failed=0; all=0; \
- for i in $$foo; do \
- all=`expr $$all + 1`; \
- if (./$$i --version && ./$$i --help) > /dev/null 2>&1; then \
- echo "PASS: $$i"; \
- else \
- echo "FAIL: $$i"; \
- failed=`expr $$failed + 1`; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0 || exit 1; \
- fi
-
-.x.c:
- @cmp -s $< $@ 2> /dev/null || cp $< $@
-#NROFF_MAN = nroff -man
-.1.cat1:
- $(NROFF_MAN) $< > $@
-.3.cat3:
- $(NROFF_MAN) $< > $@
-.5.cat5:
- $(NROFF_MAN) $< > $@
-.8.cat8:
- $(NROFF_MAN) $< > $@
-
-dist-cat1-mans:
- @foo='$(man1_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.1) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat3-mans:
- @foo='$(man3_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.3) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat5-mans:
- @foo='$(man5_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.5) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat8-mans:
- @foo='$(man8_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.8) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
-
-install-cat-mans:
- $(SHELL) $(top_srcdir)/cf/install-catman.sh install "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
-
-uninstall-cat-mans:
- $(SHELL) $(top_srcdir)/cf/install-catman.sh uninstall "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
-
-install-data-hook: install-cat-mans
-uninstall-hook: uninstall-cat-mans
-
-.et.h:
- $(COMPILE_ET) $<
-.et.c:
- $(COMPILE_ET) $<
-
-#
-# Useful target for debugging
-#
-
-check-valgrind:
- tobjdir=`cd $(top_builddir) && pwd` ; \
- tsrcdir=`cd $(top_srcdir) && pwd` ; \
- env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
-
-#
-# Target to please samba build farm, builds distfiles in-tree.
-# Will break when automake changes...
-#
-
-distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" != .; then \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
- fi ; \
- done
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/crypto/heimdal/appl/gssmask/common.c b/crypto/heimdal/appl/gssmask/common.c
deleted file mode 100644
index a57b803abafb..000000000000
--- a/crypto/heimdal/appl/gssmask/common.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS 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.
- */
-
-#include <common.h>
-RCSID("$Id: common.c 18900 2006-11-03 05:21:01Z lha $");
-
-krb5_error_code
-store_string(krb5_storage *sp, const char *str)
-{
- size_t len = strlen(str) + 1;
- krb5_error_code ret;
-
- ret = krb5_store_int32(sp, len);
- if (ret)
- return ret;
- ret = krb5_storage_write(sp, str, len);
- if (ret != len)
- return EINVAL;
- return 0;
-}
-
-static void
-add_list(char ****list, size_t *listlen, char **str, size_t len)
-{
- size_t i;
- *list = erealloc(*list, sizeof(**list) * (*listlen + 1));
-
- (*list)[*listlen] = ecalloc(len, sizeof(**list));
- for (i = 0; i < len; i++)
- (*list)[*listlen][i] = str[i];
- (*listlen)++;
-}
-
-static void
-permute(char ****list, size_t *listlen,
- char **str, const int start, const int len)
-{
- int i, j;
-
-#define SWAP(s,i,j) { char *t = str[i]; str[i] = str[j]; str[j] = t; }
-
- for (i = start; i < len - 1; i++) {
- for (j = i+1; j < len; j++) {
- SWAP(str,i,j);
- permute(list, listlen, str, i+1, len);
- SWAP(str,i,j);
- }
- }
- add_list(list, listlen, str, len);
-}
-
-char ***
-permutate_all(struct getarg_strings *strings, size_t *size)
-{
- char **list, ***all = NULL;
- int i;
-
- *size = 0;
-
- list = ecalloc(strings->num_strings, sizeof(*list));
- for (i = 0; i < strings->num_strings; i++)
- list[i] = strings->strings[i];
-
- permute(&all, size, list, 0, strings->num_strings);
- free(list);
- return all;
-}
diff --git a/crypto/heimdal/appl/gssmask/common.h b/crypto/heimdal/appl/gssmask/common.h
deleted file mode 100644
index a44339e4596c..000000000000
--- a/crypto/heimdal/appl/gssmask/common.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* $Id: common.h 18250 2006-10-06 07:22:00Z lha $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/*
- * pthread support is disable because the pthread
- * test have no "application pthread libflags" variable,
- * when this is fixed pthread support can be enabled again.
- */
-#undef ENABLE_PTHREAD_SUPPORT
-
-#include <sys/param.h>
-#ifdef HAVE_SYS_UTSNAME_H
-#include <sys/utsname.h>
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-#include <assert.h>
-#include <krb5.h>
-#include <gssapi.h>
-#include <unistd.h>
-
-#include <roken.h>
-#include <getarg.h>
-
-#include "protocol.h"
-
-krb5_error_code store_string(krb5_storage *, const char *);
-
-
-#define ret16(_client, num) \
- do { \
- if (krb5_ret_int16((_client)->sock, &(num)) != 0) \
- errx(1, "krb5_ret_int16 " #num); \
- } while(0)
-
-#define ret32(_client, num) \
- do { \
- if (krb5_ret_int32((_client)->sock, &(num)) != 0) \
- errx(1, "krb5_ret_int32 " #num); \
- } while(0)
-
-#define retdata(_client, data) \
- do { \
- if (krb5_ret_data((_client)->sock, &(data)) != 0) \
- errx(1, "krb5_ret_data " #data); \
- } while(0)
-
-#define retstring(_client, data) \
- do { \
- if (krb5_ret_string((_client)->sock, &(data)) != 0) \
- errx(1, "krb5_ret_data " #data); \
- } while(0)
-
-
-#define put32(_client, num) \
- do { \
- if (krb5_store_int32((_client)->sock, num) != 0) \
- errx(1, "krb5_store_int32 " #num); \
- } while(0)
-
-#define putdata(_client, data) \
- do { \
- if (krb5_store_data((_client)->sock, data) != 0) \
- errx(1, "krb5_store_data " #data); \
- } while(0)
-
-#define putstring(_client, str) \
- do { \
- if (store_string((_client)->sock, str) != 0) \
- errx(1, "krb5_store_str " #str); \
- } while(0)
-
-char *** permutate_all(struct getarg_strings *, size_t *);
diff --git a/crypto/heimdal/appl/gssmask/gssmaestro.c b/crypto/heimdal/appl/gssmask/gssmaestro.c
deleted file mode 100644
index 610c53f5f59b..000000000000
--- a/crypto/heimdal/appl/gssmask/gssmaestro.c
+++ /dev/null
@@ -1,851 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS 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.
- */
-
-#include <common.h>
-RCSID("$Id: gssmaestro.c 21605 2007-07-17 06:51:57Z lha $");
-
-static FILE *logfile;
-
-/*
- *
- */
-
-struct client {
- char *name;
- struct sockaddr *sa;
- socklen_t salen;
- krb5_storage *sock;
- int32_t capabilities;
- char *target_name;
- char *moniker;
- krb5_storage *logsock;
- int have_log;
-#ifdef ENABLE_PTHREAD_SUPPORT
- pthread_t thr;
-#else
- pid_t child;
-#endif
-};
-
-static struct client **clients;
-static int num_clients;
-
-static int
-init_sec_context(struct client *client,
- int32_t *hContext, int32_t *hCred,
- int32_t flags,
- const char *targetname,
- const krb5_data *itoken, krb5_data *otoken)
-{
- int32_t val;
- krb5_data_zero(otoken);
- put32(client, eInitContext);
- put32(client, *hContext);
- put32(client, *hCred);
- put32(client, flags);
- putstring(client, targetname);
- putdata(client, *itoken);
- ret32(client, *hContext);
- ret32(client, val);
- retdata(client, *otoken);
- return val;
-}
-
-static int
-accept_sec_context(struct client *client,
- int32_t *hContext,
- int32_t flags,
- const krb5_data *itoken,
- krb5_data *otoken,
- int32_t *hDelegCred)
-{
- int32_t val;
- krb5_data_zero(otoken);
- put32(client, eAcceptContext);
- put32(client, *hContext);
- put32(client, flags);
- putdata(client, *itoken);
- ret32(client, *hContext);
- ret32(client, val);
- retdata(client, *otoken);
- ret32(client, *hDelegCred);
- return val;
-}
-
-static int
-acquire_cred(struct client *client,
- const char *username,
- const char *password,
- int32_t flags,
- int32_t *hCred)
-{
- int32_t val;
- put32(client, eAcquireCreds);
- putstring(client, username);
- putstring(client, password);
- put32(client, flags);
- ret32(client, val);
- ret32(client, *hCred);
- return val;
-}
-
-static int
-toast_resource(struct client *client,
- int32_t hCred)
-{
- int32_t val;
- put32(client, eToastResource);
- put32(client, hCred);
- ret32(client, val);
- return val;
-}
-
-static int
-goodbye(struct client *client)
-{
- put32(client, eGoodBye);
- return GSMERR_OK;
-}
-
-static int
-get_targetname(struct client *client,
- char **target)
-{
- put32(client, eGetTargetName);
- retstring(client, *target);
- return GSMERR_OK;
-}
-
-static int32_t
-encrypt_token(struct client *client, int32_t hContext, int32_t flags,
- krb5_data *in, krb5_data *out)
-{
- int32_t val;
- put32(client, eEncrypt);
- put32(client, hContext);
- put32(client, flags);
- put32(client, 0);
- putdata(client, *in);
- ret32(client, val);
- retdata(client, *out);
- return val;
-}
-
-static int32_t
-decrypt_token(struct client *client, int32_t hContext, int flags,
- krb5_data *in, krb5_data *out)
-{
- int32_t val;
- put32(client, eDecrypt);
- put32(client, hContext);
- put32(client, flags);
- put32(client, 0);
- putdata(client, *in);
- ret32(client, val);
- retdata(client, *out);
- return val;
-}
-
-static int32_t
-get_mic(struct client *client, int32_t hContext,
- krb5_data *in, krb5_data *mic)
-{
- int32_t val;
- put32(client, eSign);
- put32(client, hContext);
- put32(client, 0);
- put32(client, 0);
- putdata(client, *in);
- ret32(client, val);
- retdata(client, *mic);
- return val;
-}
-
-static int32_t
-verify_mic(struct client *client, int32_t hContext,
- krb5_data *in, krb5_data *mic)
-{
- int32_t val;
- put32(client, eVerify);
- put32(client, hContext);
- put32(client, 0);
- put32(client, 0);
- putdata(client, *in);
- putdata(client, *mic);
- ret32(client, val);
- return val;
-}
-
-
-static int32_t
-get_version_capa(struct client *client,
- int32_t *version, int32_t *capa,
- char **version_str)
-{
- put32(client, eGetVersionAndCapabilities);
- ret32(client, *version);
- ret32(client, *capa);
- retstring(client, *version_str);
- return GSMERR_OK;
-}
-
-static int32_t
-get_moniker(struct client *client,
- char **moniker)
-{
- put32(client, eGetMoniker);
- retstring(client, *moniker);
- return GSMERR_OK;
-}
-
-static int
-wait_log(struct client *c)
-{
- int32_t port;
- struct sockaddr_storage sast;
- socklen_t salen = sizeof(sast);
- int fd, fd2, ret;
-
- memset(&sast, 0, sizeof(sast));
-
- assert(sizeof(sast) >= c->salen);
-
- fd = socket(c->sa->sa_family, SOCK_STREAM, 0);
- if (fd < 0)
- err(1, "failed to build socket for %s's logging port", c->moniker);
-
- ((struct sockaddr *)&sast)->sa_family = c->sa->sa_family;
- ret = bind(fd, (struct sockaddr *)&sast, c->salen);
- if (ret < 0)
- err(1, "failed to bind %s's logging port", c->moniker);
-
- if (listen(fd, SOMAXCONN) < 0)
- err(1, "failed to listen %s's logging port", c->moniker);
-
- salen = sizeof(sast);
- ret = getsockname(fd, (struct sockaddr *)&sast, &salen);
- if (ret < 0)
- err(1, "failed to get address of local socket for %s", c->moniker);
-
- port = socket_get_port((struct sockaddr *)&sast);
-
- put32(c, eSetLoggingSocket);
- put32(c, ntohs(port));
-
- salen = sizeof(sast);
- fd2 = accept(fd, (struct sockaddr *)&sast, &salen);
- if (fd2 < 0)
- err(1, "failed to accept local socket for %s", c->moniker);
- close(fd);
-
- return fd2;
-}
-
-
-
-
-static int
-build_context(struct client *ipeer, struct client *apeer,
- int32_t flags, int32_t hCred,
- int32_t *iContext, int32_t *aContext, int32_t *hDelegCred)
-{
- int32_t val = GSMERR_ERROR, ic = 0, ac = 0, deleg = 0;
- krb5_data itoken, otoken;
- int iDone = 0, aDone = 0;
- int step = 0;
- int first_call = 0x80;
-
- if (apeer->target_name == NULL)
- errx(1, "apeer %s have no target name", apeer->name);
-
- krb5_data_zero(&itoken);
-
- while (!iDone || !aDone) {
-
- if (iDone) {
- warnx("iPeer already done, aPeer want extra rtt");
- val = GSMERR_ERROR;
- goto out;
- }
-
- val = init_sec_context(ipeer, &ic, &hCred, flags|first_call,
- apeer->target_name, &itoken, &otoken);
- step++;
- switch(val) {
- case GSMERR_OK:
- iDone = 1;
- if (aDone)
- continue;
- break;
- case GSMERR_CONTINUE_NEEDED:
- break;
- default:
- warnx("iPeer %s failed with %d (step %d)",
- ipeer->name, (int)val, step);
- goto out;
- }
-
- if (aDone) {
- warnx("aPeer already done, iPeer want extra rtt");
- val = GSMERR_ERROR;
- goto out;
- }
-
- val = accept_sec_context(apeer, &ac, flags|first_call,
- &otoken, &itoken, &deleg);
- step++;
- switch(val) {
- case GSMERR_OK:
- aDone = 1;
- if (iDone)
- continue;
- break;
- case GSMERR_CONTINUE_NEEDED:
- break;
- default:
- warnx("aPeer %s failed with %d (step %d)",
- apeer->name, (int)val, step);
- val = GSMERR_ERROR;
- goto out;
- }
- first_call = 0;
- val = GSMERR_OK;
- }
-
- if (iContext == NULL || val != GSMERR_OK) {
- if (ic)
- toast_resource(ipeer, ic);
- if (iContext)
- *iContext = 0;
- } else
- *iContext = ic;
-
- if (aContext == NULL || val != GSMERR_OK) {
- if (ac)
- toast_resource(apeer, ac);
- if (aContext)
- *aContext = 0;
- } else
- *aContext = ac;
-
- if (hDelegCred == NULL || val != GSMERR_OK) {
- if (deleg)
- toast_resource(apeer, deleg);
- if (hDelegCred)
- *hDelegCred = 0;
- } else
- *hDelegCred = deleg;
-
-out:
- return val;
-}
-
-static void
-test_mic(struct client *c1, int32_t hc1, struct client *c2, int32_t hc2)
-{
- krb5_data msg, mic;
- int32_t val;
-
- msg.data = "foo";
- msg.length = 3;
-
- krb5_data_zero(&mic);
-
- val = get_mic(c1, hc1, &msg, &mic);
- if (val)
- errx(1, "get_mic failed to host: %s", c1->moniker);
- val = verify_mic(c2, hc2, &msg, &mic);
- if (val)
- errx(1, "verify_mic failed to host: %s", c2->moniker);
-
- krb5_data_free(&mic);
-}
-
-static int32_t
-test_wrap(struct client *c1, int32_t hc1, struct client *c2, int32_t hc2,
- int conf)
-{
- krb5_data msg, wrapped, out;
- int32_t val;
-
- msg.data = "foo";
- msg.length = 3;
-
- krb5_data_zero(&wrapped);
- krb5_data_zero(&out);
-
- val = encrypt_token(c1, hc1, conf, &msg, &wrapped);
- if (val) {
- warnx("encrypt_token failed to host: %s", c1->moniker);
- return val;
- }
- val = decrypt_token(c2, hc2, conf, &wrapped, &out);
- if (val) {
- krb5_data_free(&wrapped);
- warnx("decrypt_token failed to host: %s", c2->moniker);
- return val;
- }
-
- if (msg.length != out.length) {
- warnx("decrypted'ed token have wrong length (%lu != %lu)",
- (unsigned long)msg.length, (unsigned long)out.length);
- val = GSMERR_ERROR;
- } else if (memcmp(msg.data, out.data, msg.length) != 0) {
- warnx("decryptd'ed token have wrong data");
- val = GSMERR_ERROR;
- }
-
- krb5_data_free(&wrapped);
- krb5_data_free(&out);
- return val;
-}
-
-static int32_t
-test_token(struct client *c1, int32_t hc1, struct client *c2, int32_t hc2)
-{
- int32_t val;
- int i;
-
- for (i = 0; i < 10; i++) {
- test_mic(c1, hc1, c2, hc2);
- test_mic(c2, hc2, c1, hc1);
- val = test_wrap(c1, hc1, c2, hc2, 0);
- if (val) return val;
- val = test_wrap(c2, hc2, c1, hc1, 0);
- if (val) return val;
- val = test_wrap(c1, hc1, c2, hc2, 1);
- if (val) return val;
- val = test_wrap(c2, hc2, c1, hc1, 1);
- if (val) return val;
- }
- return GSMERR_OK;
-}
-
-static int
-log_function(void *ptr)
-{
- struct client *c = ptr;
- int32_t cmd, line;
- char *file, *string;
-
- while (1) {
- if (krb5_ret_int32(c->logsock, &cmd))
- goto out;
-
- switch (cmd) {
- case eLogSetMoniker:
- if (krb5_ret_string(c->logsock, &file))
- goto out;
- free(file);
- break;
- case eLogInfo:
- case eLogFailure:
- if (krb5_ret_string(c->logsock, &file))
- goto out;
- if (krb5_ret_int32(c->logsock, &line))
- goto out;
- if (krb5_ret_string(c->logsock, &string))
- goto out;
- printf("%s:%lu: %s\n",
- file, (unsigned long)line, string);
- fprintf(logfile, "%s:%lu: %s\n",
- file, (unsigned long)line, string);
- fflush(logfile);
- free(file);
- free(string);
- if (krb5_store_int32(c->logsock, 0))
- goto out;
- break;
- default:
- errx(1, "client send bad log command: %d", (int)cmd);
- }
- }
-out:
-
- return 0;
-}
-
-static void
-connect_client(const char *slave)
-{
- char *name, *port;
- struct client *c = ecalloc(1, sizeof(*c));
- struct addrinfo hints, *res0, *res;
- int ret, fd;
-
- name = estrdup(slave);
- port = strchr(name, ':');
- if (port == NULL)
- errx(1, "port missing from %s", name);
- *port++ = 0;
-
- c->name = estrdup(slave);
-
- memset(&hints, 0, sizeof(hints));
- hints.ai_family = PF_UNSPEC;
- hints.ai_socktype = SOCK_STREAM;
-
- ret = getaddrinfo(name, port, &hints, &res0);
- if (ret)
- errx(1, "error resolving %s", name);
-
- for (res = res0, fd = -1; res; res = res->ai_next) {
- fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
- if (fd < 0)
- continue;
- if (connect(fd, res->ai_addr, res->ai_addrlen) < 0) {
- close(fd);
- fd = -1;
- continue;
- }
- c->sa = ecalloc(1, res->ai_addrlen);
- memcpy(c->sa, res->ai_addr, res->ai_addrlen);
- c->salen = res->ai_addrlen;
- break; /* okay we got one */
- }
- if (fd < 0)
- err(1, "connect to host: %s", name);
- freeaddrinfo(res);
-
- c->sock = krb5_storage_from_fd(fd);
- close(fd);
- if (c->sock == NULL)
- errx(1, "krb5_storage_from_fd");
-
- {
- int32_t version;
- char *str = NULL;
- get_version_capa(c, &version, &c->capabilities, &str);
- if (str) {
- free(str);
- }
- if (c->capabilities & HAS_MONIKER)
- get_moniker(c, &c->moniker);
- else
- c->moniker = c->name;
- if (c->capabilities & ISSERVER)
- get_targetname(c, &c->target_name);
- }
-
- if (logfile) {
- int fd;
-
- printf("starting log socket to client %s\n", c->moniker);
-
- fd = wait_log(c);
-
- c->logsock = krb5_storage_from_fd(fd);
- close(fd);
- if (c->logsock == NULL)
- errx(1, "failed to create log krb5_storage");
-#ifdef ENABLE_PTHREAD_SUPPORT
- pthread_create(&c->thr, NULL, log_function, c);
-#else
- c->child = fork();
- if (c->child == -1)
- errx(1, "failed to fork");
- else if (c->child == 0) {
- log_function(c);
- fclose(logfile);
- exit(0);
- }
-#endif
- }
-
-
- clients = erealloc(clients, (num_clients + 1) * sizeof(*clients));
-
- clients[num_clients] = c;
- num_clients++;
-
- free(name);
-}
-
-static struct client *
-get_client(const char *slave)
-{
- size_t i;
- for (i = 0; i < num_clients; i++)
- if (strcmp(slave, clients[i]->name) == 0)
- return clients[i];
- errx(1, "failed to find client %s", slave);
-}
-
-/*
- *
- */
-
-static int version_flag;
-static int help_flag;
-static char *logfile_str;
-static getarg_strings principals;
-static getarg_strings slaves;
-
-struct getargs args[] = {
- { "principals", 0, arg_strings, &principals, "Test principal",
- NULL },
- { "slaves", 0, arg_strings, &slaves, "Slaves",
- NULL },
- { "log-file", 0, arg_string, &logfile_str, "Logfile",
- NULL },
- { "version", 0, arg_flag, &version_flag, "Print version",
- NULL },
- { "help", 0, arg_flag, &help_flag, NULL,
- NULL }
-};
-
-static void
-usage(int ret)
-{
- arg_printusage (args,
- sizeof(args) / sizeof(args[0]),
- NULL,
- "");
- exit (ret);
-}
-
-int
-main(int argc, char **argv)
-{
- int optidx= 0;
- char *user;
- char *password;
- char ***list, **p;
- size_t num_list, i, j, k;
- int failed = 0;
-
- setprogname (argv[0]);
-
- if (getarg (args, sizeof(args) / sizeof(args[0]), argc, argv, &optidx))
- usage (1);
-
- if (help_flag)
- usage (0);
-
- if (version_flag) {
- print_version (NULL);
- return 0;
- }
-
- if (optidx != argc)
- usage (1);
-
- if (principals.num_strings == 0)
- errx(1, "no principals");
-
- user = estrdup(principals.strings[0]);
- password = strchr(user, ':');
- if (password == NULL)
- errx(1, "password missing from %s", user);
- *password++ = 0;
-
- if (slaves.num_strings == 0)
- errx(1, "no principals");
-
- if (logfile_str) {
- printf("open logfile %s\n", logfile_str);
- logfile = fopen(logfile_str, "w+");
- if (logfile == NULL)
- err(1, "failed to open: %s", logfile_str);
- }
-
- /*
- *
- */
-
- list = permutate_all(&slaves, &num_list);
-
- /*
- * Set up connection to all clients
- */
-
- printf("Connecting to slaves\n");
- for (i = 0; i < slaves.num_strings; i++)
- connect_client(slaves.strings[i]);
-
- /*
- * Test acquire credentials
- */
-
- printf("Test acquire credentials\n");
- for (i = 0; i < slaves.num_strings; i++) {
- int32_t hCred, val;
-
- val = acquire_cred(clients[i], user, password, 1, &hCred);
- if (val != GSMERR_OK) {
- warnx("Failed to acquire_cred on host %s: %d",
- clients[i]->moniker, (int)val);
- failed = 1;
- } else
- toast_resource(clients[i], hCred);
- }
-
- if (failed)
- goto out;
-
- /*
- * First test if all slaves can build context to them-self.
- */
-
- printf("Self context tests\n");
- for (i = 0; i < num_clients; i++) {
- int32_t hCred, val, delegCred;
- int32_t clientC, serverC;
- struct client *c = clients[i];
-
- if (c->target_name == NULL)
- continue;
-
- printf("%s connects to self using %s\n",
- c->moniker, c->target_name);
-
- val = acquire_cred(c, user, password, 1, &hCred);
- if (val != GSMERR_OK)
- errx(1, "failed to acquire_cred: %d", (int)val);
-
- val = build_context(c, c,
- GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG|
- GSS_C_INTEG_FLAG|GSS_C_CONF_FLAG|
- GSS_C_DELEG_FLAG|GSS_C_MUTUAL_FLAG,
- hCred, &clientC, &serverC, &delegCred);
- if (val == GSMERR_OK) {
- test_token(c, clientC, c, serverC);
- toast_resource(c, clientC);
- toast_resource(c, serverC);
- if (delegCred)
- toast_resource(c, delegCred);
- } else {
- warnx("build_context failed: %d", (int)val);
- }
- /*
- *
- */
-
- val = build_context(c, c,
- GSS_C_INTEG_FLAG|GSS_C_CONF_FLAG,
- hCred, &clientC, &serverC, &delegCred);
- if (val == GSMERR_OK) {
- test_token(c, clientC, c, serverC);
- toast_resource(c, clientC);
- toast_resource(c, serverC);
- if (delegCred)
- toast_resource(c, delegCred);
- } else {
- warnx("build_context failed: %d", (int)val);
- }
-
- toast_resource(c, hCred);
- }
- /*
- * Build contexts though all entries in each lists, including the
- * step from the last entry to the first, ie treat the list as a
- * circle.
- *
- * Only follow the delegated credential, but test "all"
- * flags. (XXX only do deleg|mutual right now.
- */
-
- printf("\"All\" permutation tests\n");
-
- for (i = 0; i < num_list; i++) {
- int32_t hCred, val, delegCred = 0;
- int32_t clientC = 0, serverC = 0;
- struct client *client, *server;
-
- p = list[i];
-
- client = get_client(p[0]);
-
- val = acquire_cred(client, user, password, 1, &hCred);
- if (val != GSMERR_OK)
- errx(1, "failed to acquire_cred: %d", (int)val);
-
- for (j = 1; j < num_clients + 1; j++) {
- server = get_client(p[j % num_clients]);
-
- if (server->target_name == NULL)
- break;
-
- for (k = 1; k < j; k++)
- printf("\t");
- printf("%s -> %s\n", client->moniker, server->moniker);
-
- val = build_context(client, server,
- GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG|
- GSS_C_INTEG_FLAG|GSS_C_CONF_FLAG|
- GSS_C_DELEG_FLAG|GSS_C_MUTUAL_FLAG,
- hCred, &clientC, &serverC, &delegCred);
- if (val != GSMERR_OK) {
- warnx("build_context failed: %d", (int)val);
- break;
- }
-
- val = test_token(client, clientC, server, serverC);
- if (val)
- break;
-
- toast_resource(client, clientC);
- toast_resource(server, serverC);
- if (!delegCred) {
- warnx("no delegated cred on %s", server->moniker);
- break;
- }
- toast_resource(client, hCred);
- hCred = delegCred;
- client = server;
- }
- if (hCred)
- toast_resource(client, hCred);
- }
-
- /*
- * Close all connections to clients
- */
-
-out:
- printf("sending goodbye and waiting for log sockets\n");
- for (i = 0; i < num_clients; i++) {
- goodbye(clients[i]);
- if (clients[i]->logsock) {
-#ifdef ENABLE_PTHREAD_SUPPORT
- pthread_join(&clients[i]->thr, NULL);
-#else
- waitpid(clients[i]->child, NULL, 0);
-#endif
- }
- }
-
- printf("done\n");
-
- return 0;
-}
diff --git a/crypto/heimdal/appl/gssmask/gssmask.c b/crypto/heimdal/appl/gssmask/gssmask.c
deleted file mode 100644
index 46b532b61f5a..000000000000
--- a/crypto/heimdal/appl/gssmask/gssmask.c
+++ /dev/null
@@ -1,1092 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS 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.
- */
-
-#include "common.h"
-RCSID("$Id: gssmask.c 21229 2007-06-20 10:19:19Z lha $");
-
-/*
- *
- */
-
-enum handle_type { handle_context, handle_cred };
-
-struct handle {
- int32_t idx;
- enum handle_type type;
- void *ptr;
- struct handle *next;
-};
-
-struct client {
- krb5_storage *sock;
- krb5_storage *logging;
- char *moniker;
- int32_t nHandle;
- struct handle *handles;
- struct sockaddr_storage sa;
- socklen_t salen;
- char servername[MAXHOSTNAMELEN];
-};
-
-FILE *logfile;
-static char *targetname;
-krb5_context context;
-
-/*
- *
- */
-
-static void
-logmessage(struct client *c, const char *file, unsigned int lineno,
- int level, const char *fmt, ...)
-{
- char *message;
- va_list ap;
- int32_t ackid;
-
- va_start(ap, fmt);
- vasprintf(&message, fmt, ap);
- va_end(ap);
-
- if (logfile)
- fprintf(logfile, "%s:%u: %d %s\n", file, lineno, level, message);
-
- if (c->logging) {
- if (krb5_store_int32(c->logging, eLogInfo) != 0)
- errx(1, "krb5_store_int32: log level");
- if (krb5_store_string(c->logging, file) != 0)
- errx(1, "krb5_store_string: filename");
- if (krb5_store_int32(c->logging, lineno) != 0)
- errx(1, "krb5_store_string: filename");
- if (krb5_store_string(c->logging, message) != 0)
- errx(1, "krb5_store_string: message");
- if (krb5_ret_int32(c->logging, &ackid) != 0)
- errx(1, "krb5_ret_int32: ackid");
- }
- free(message);
-}
-
-/*
- *
- */
-
-static int32_t
-add_handle(struct client *c, enum handle_type type, void *data)
-{
- struct handle *h;
-
- h = ecalloc(1, sizeof(*h));
-
- h->idx = ++c->nHandle;
- h->type = type;
- h->ptr = data;
- h->next = c->handles;
- c->handles = h;
-
- return h->idx;
-}
-
-static void
-del_handle(struct handle **h, int32_t idx)
-{
- OM_uint32 min_stat;
-
- if (idx == 0)
- return;
-
- while (*h) {
- if ((*h)->idx == idx) {
- struct handle *p = *h;
- *h = (*h)->next;
- switch(p->type) {
- case handle_context: {
- gss_ctx_id_t c = p->ptr;
- gss_delete_sec_context(&min_stat, &c, NULL);
- break; }
- case handle_cred: {
- gss_cred_id_t c = p->ptr;
- gss_release_cred(&min_stat, &c);
- break; }
- }
- free(p);
- return;
- }
- h = &((*h)->next);
- }
- errx(1, "tried to delete an unexisting handle");
-}
-
-static void *
-find_handle(struct handle *h, int32_t idx, enum handle_type type)
-{
- if (idx == 0)
- return NULL;
-
- while (h) {
- if (h->idx == idx) {
- if (type == h->type)
- return h->ptr;
- errx(1, "monger switched type on handle!");
- }
- h = h->next;
- }
- return NULL;
-}
-
-
-static int32_t
-convert_gss_to_gsm(OM_uint32 maj_stat)
-{
- switch(maj_stat) {
- case 0:
- return GSMERR_OK;
- case GSS_S_CONTINUE_NEEDED:
- return GSMERR_CONTINUE_NEEDED;
- case GSS_S_DEFECTIVE_TOKEN:
- return GSMERR_INVALID_TOKEN;
- case GSS_S_BAD_MIC:
- return GSMERR_AP_MODIFIED;
- default:
- return GSMERR_ERROR;
- }
-}
-
-static int32_t
-convert_krb5_to_gsm(krb5_error_code ret)
-{
- switch(ret) {
- case 0:
- return GSMERR_OK;
- default:
- return GSMERR_ERROR;
- }
-}
-
-/*
- *
- */
-
-static int32_t
-acquire_cred(struct client *c,
- krb5_principal principal,
- krb5_get_init_creds_opt *opt,
- int32_t *handle)
-{
- krb5_error_code ret;
- krb5_creds cred;
- krb5_ccache id;
- gss_cred_id_t gcred;
- OM_uint32 maj_stat, min_stat;
-
- *handle = 0;
-
- krb5_get_init_creds_opt_set_forwardable (opt, 1);
- krb5_get_init_creds_opt_set_renew_life (opt, 3600 * 24 * 30);
-
- memset(&cred, 0, sizeof(cred));
-
- ret = krb5_get_init_creds_password (context,
- &cred,
- principal,
- NULL,
- NULL,
- NULL,
- 0,
- NULL,
- opt);
- if (ret) {
- logmessage(c, __FILE__, __LINE__, 0,
- "krb5_get_init_creds failed: %d", ret);
- return convert_krb5_to_gsm(ret);
- }
-
- ret = krb5_cc_new_unique(context, "MEMORY", NULL, &id);
- if (ret)
- krb5_err (context, 1, ret, "krb5_cc_initialize");
-
- ret = krb5_cc_initialize (context, id, cred.client);
- if (ret)
- krb5_err (context, 1, ret, "krb5_cc_initialize");
-
- ret = krb5_cc_store_cred (context, id, &cred);
- if (ret)
- krb5_err (context, 1, ret, "krb5_cc_store_cred");
-
- krb5_free_cred_contents (context, &cred);
-
- maj_stat = gss_krb5_import_cred(&min_stat,
- id,
- NULL,
- NULL,
- &gcred);
- krb5_cc_close(context, id);
- if (maj_stat) {
- logmessage(c, __FILE__, __LINE__, 0,
- "krb5 import creds failed with: %d", maj_stat);
- return convert_gss_to_gsm(maj_stat);
- }
-
- *handle = add_handle(c, handle_cred, gcred);
-
- return 0;
-}
-
-
-/*
- *
- */
-
-#define HandleOP(h) \
-handle##h(enum gssMaggotOp op, struct client *c)
-
-/*
- *
- */
-
-static int
-HandleOP(GetVersionInfo)
-{
- put32(c, GSSMAGGOTPROTOCOL);
- errx(1, "GetVersionInfo");
-}
-
-static int
-HandleOP(GoodBye)
-{
- struct handle *h = c->handles;
- int i = 0;
-
- while (h) {
- h = h->next;
- i++;
- }
-
- if (i != 0)
- logmessage(c, __FILE__, __LINE__, 0,
- "Did not toast all resources: %d", i);
- return 1;
-}
-
-static int
-HandleOP(InitContext)
-{
- OM_uint32 maj_stat, min_stat, ret_flags;
- int32_t hContext, hCred, flags;
- krb5_data target_name, in_token;
- int32_t new_context_id = 0, gsm_error = 0;
- krb5_data out_token = { 0 , NULL };
-
- gss_ctx_id_t ctx;
- gss_cred_id_t creds;
- gss_name_t gss_target_name;
- gss_buffer_desc input_token, output_token;
- gss_OID oid = GSS_C_NO_OID;
- gss_buffer_t input_token_ptr = GSS_C_NO_BUFFER;
-
- ret32(c, hContext);
- ret32(c, hCred);
- ret32(c, flags);
- retdata(c, target_name);
- retdata(c, in_token);
-
- logmessage(c, __FILE__, __LINE__, 0,
- "targetname: <%.*s>", (int)target_name.length,
- (char *)target_name.data);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- hContext = 0;
- creds = find_handle(c->handles, hCred, handle_cred);
- if (creds == NULL)
- abort();
-
- input_token.length = target_name.length;
- input_token.value = target_name.data;
-
- maj_stat = gss_import_name(&min_stat,
- &input_token,
- GSS_KRB5_NT_PRINCIPAL_NAME,
- &gss_target_name);
- if (GSS_ERROR(maj_stat)) {
- logmessage(c, __FILE__, __LINE__, 0,
- "import name creds failed with: %d", maj_stat);
- gsm_error = convert_gss_to_gsm(maj_stat);
- goto out;
- }
-
- /* oid from flags */
-
- if (in_token.length) {
- input_token.length = in_token.length;
- input_token.value = in_token.data;
- input_token_ptr = &input_token;
- if (ctx == NULL)
- krb5_errx(context, 1, "initcreds, context NULL, but not first req");
- } else {
- input_token.length = 0;
- input_token.value = NULL;
- if (ctx)
- krb5_errx(context, 1, "initcreds, context not NULL, but first req");
- }
-
- if ((flags & GSS_C_DELEG_FLAG) != 0)
- logmessage(c, __FILE__, __LINE__, 0, "init_sec_context delegating");
- if ((flags & GSS_C_DCE_STYLE) != 0)
- logmessage(c, __FILE__, __LINE__, 0, "init_sec_context dce-style");
-
- maj_stat = gss_init_sec_context(&min_stat,
- creds,
- &ctx,
- gss_target_name,
- oid,
- flags & 0x7f,
- 0,
- NULL,
- input_token_ptr,
- NULL,
- &output_token,
- &ret_flags,
- NULL);
- if (GSS_ERROR(maj_stat)) {
- if (hContext != 0)
- del_handle(&c->handles, hContext);
- new_context_id = 0;
- logmessage(c, __FILE__, __LINE__, 0,
- "gss_init_sec_context returns code: %d/%d",
- maj_stat, min_stat);
- } else {
- if (input_token.length == 0)
- new_context_id = add_handle(c, handle_context, ctx);
- else
- new_context_id = hContext;
- }
-
- gsm_error = convert_gss_to_gsm(maj_stat);
-
- if (output_token.length) {
- out_token.data = output_token.value;
- out_token.length = output_token.length;
- }
-
-out:
- logmessage(c, __FILE__, __LINE__, 0,
- "InitContext return code: %d", gsm_error);
-
- put32(c, new_context_id);
- put32(c, gsm_error);
- putdata(c, out_token);
-
- gss_release_name(&min_stat, &gss_target_name);
- if (output_token.length)
- gss_release_buffer(&min_stat, &output_token);
- krb5_data_free(&in_token);
- krb5_data_free(&target_name);
-
- return 0;
-}
-
-static int
-HandleOP(AcceptContext)
-{
- OM_uint32 maj_stat, min_stat, ret_flags;
- int32_t hContext, deleg_hcred, flags;
- krb5_data in_token;
- int32_t new_context_id = 0, gsm_error = 0;
- krb5_data out_token = { 0 , NULL };
-
- gss_ctx_id_t ctx;
- gss_cred_id_t deleg_cred = GSS_C_NO_CREDENTIAL;
- gss_buffer_desc input_token, output_token;
- gss_buffer_t input_token_ptr = GSS_C_NO_BUFFER;
-
- ret32(c, hContext);
- ret32(c, flags);
- retdata(c, in_token);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- hContext = 0;
-
- if (in_token.length) {
- input_token.length = in_token.length;
- input_token.value = in_token.data;
- input_token_ptr = &input_token;
- } else {
- input_token.length = 0;
- input_token.value = NULL;
- }
-
- maj_stat = gss_accept_sec_context(&min_stat,
- &ctx,
- GSS_C_NO_CREDENTIAL,
- &input_token,
- GSS_C_NO_CHANNEL_BINDINGS,
- NULL,
- NULL,
- &output_token,
- &ret_flags,
- NULL,
- &deleg_cred);
- if (GSS_ERROR(maj_stat)) {
- if (hContext != 0)
- del_handle(&c->handles, hContext);
- logmessage(c, __FILE__, __LINE__, 0,
- "gss_accept_sec_context returns code: %d/%d",
- maj_stat, min_stat);
- new_context_id = 0;
- } else {
- if (hContext == 0)
- new_context_id = add_handle(c, handle_context, ctx);
- else
- new_context_id = hContext;
- }
- if (output_token.length) {
- out_token.data = output_token.value;
- out_token.length = output_token.length;
- }
- if ((ret_flags & GSS_C_DCE_STYLE) != 0)
- logmessage(c, __FILE__, __LINE__, 0, "accept_sec_context dce-style");
- if ((ret_flags & GSS_C_DELEG_FLAG) != 0) {
- deleg_hcred = add_handle(c, handle_cred, deleg_cred);
- logmessage(c, __FILE__, __LINE__, 0,
- "accept_context delegated handle: %d", deleg_hcred);
- } else {
- gss_release_cred(&min_stat, &deleg_cred);
- deleg_hcred = 0;
- }
-
-
- gsm_error = convert_gss_to_gsm(maj_stat);
-
- put32(c, new_context_id);
- put32(c, gsm_error);
- putdata(c, out_token);
- put32(c, deleg_hcred);
-
- if (output_token.length)
- gss_release_buffer(&min_stat, &output_token);
- krb5_data_free(&in_token);
-
- return 0;
-}
-
-static int
-HandleOP(ToastResource)
-{
- int32_t handle;
-
- ret32(c, handle);
- logmessage(c, __FILE__, __LINE__, 0, "toasting %d", handle);
- del_handle(&c->handles, handle);
- put32(c, GSMERR_OK);
-
- return 0;
-}
-
-static int
-HandleOP(AcquireCreds)
-{
- char *name, *password;
- int32_t gsm_error, flags, handle = 0;
- krb5_principal principal = NULL;
- krb5_get_init_creds_opt *opt = NULL;
- krb5_error_code ret;
-
- retstring(c, name);
- retstring(c, password);
- ret32(c, flags);
-
- logmessage(c, __FILE__, __LINE__, 0,
- "username: %s password: %s", name, password);
-
- ret = krb5_parse_name(context, name, &principal);
- if (ret) {
- gsm_error = convert_krb5_to_gsm(ret);
- goto out;
- }
-
- ret = krb5_get_init_creds_opt_alloc (context, &opt);
- if (ret)
- krb5_err(context, 1, ret, "krb5_get_init_creds_opt_alloc");
-
- krb5_get_init_creds_opt_set_pa_password(context, opt, password, NULL);
-
- gsm_error = acquire_cred(c, principal, opt, &handle);
-
-out:
- logmessage(c, __FILE__, __LINE__, 0,
- "AcquireCreds handle: %d return code: %d", handle, gsm_error);
-
- if (opt)
- krb5_get_init_creds_opt_free (context, opt);
- if (principal)
- krb5_free_principal(context, principal);
- free(name);
- free(password);
-
- put32(c, gsm_error);
- put32(c, handle);
-
- return 0;
-}
-
-static int
-HandleOP(Sign)
-{
- OM_uint32 maj_stat, min_stat;
- int32_t hContext, flags, seqno;
- krb5_data token;
- gss_ctx_id_t ctx;
- gss_buffer_desc input_token, output_token;
-
- ret32(c, hContext);
- ret32(c, flags);
- ret32(c, seqno);
- retdata(c, token);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- errx(1, "sign: reference to unknown context");
-
- input_token.length = token.length;
- input_token.value = token.data;
-
- maj_stat = gss_get_mic(&min_stat, ctx, 0, &input_token,
- &output_token);
- if (maj_stat != GSS_S_COMPLETE)
- errx(1, "gss_get_mic failed");
-
- krb5_data_free(&token);
-
- token.data = output_token.value;
- token.length = output_token.length;
-
- put32(c, 0); /* XXX fix gsm_error */
- putdata(c, token);
-
- gss_release_buffer(&min_stat, &output_token);
-
- return 0;
-}
-
-static int
-HandleOP(Verify)
-{
- OM_uint32 maj_stat, min_stat;
- int32_t hContext, flags, seqno;
- krb5_data msg, mic;
- gss_ctx_id_t ctx;
- gss_buffer_desc msg_token, mic_token;
- gss_qop_t qop;
-
- ret32(c, hContext);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- errx(1, "verify: reference to unknown context");
-
- ret32(c, flags);
- ret32(c, seqno);
- retdata(c, msg);
-
- msg_token.length = msg.length;
- msg_token.value = msg.data;
-
- retdata(c, mic);
-
- mic_token.length = mic.length;
- mic_token.value = mic.data;
-
- maj_stat = gss_verify_mic(&min_stat, ctx, &msg_token,
- &mic_token, &qop);
- if (maj_stat != GSS_S_COMPLETE)
- errx(1, "gss_verify_mic failed");
-
- krb5_data_free(&mic);
- krb5_data_free(&msg);
-
- put32(c, 0); /* XXX fix gsm_error */
-
- return 0;
-}
-
-static int
-HandleOP(GetVersionAndCapabilities)
-{
- int32_t cap = HAS_MONIKER;
- char name[256] = "unknown", *str;
-
- if (targetname)
- cap |= ISSERVER; /* is server */
-
-#ifdef HAVE_UNAME
- {
- struct utsname ut;
- if (uname(&ut) == 0) {
- snprintf(name, sizeof(name), "%s-%s-%s",
- ut.sysname, ut.version, ut.machine);
- }
- }
-#endif
-
- asprintf(&str, "gssmask %s %s", PACKAGE_STRING, name);
-
- put32(c, GSSMAGGOTPROTOCOL);
- put32(c, cap);
- putstring(c, str);
- free(str);
-
- return 0;
-}
-
-static int
-HandleOP(GetTargetName)
-{
- if (targetname)
- putstring(c, targetname);
- else
- putstring(c, "");
- return 0;
-}
-
-static int
-HandleOP(SetLoggingSocket)
-{
- int32_t portnum;
- int fd, ret;
-
- ret32(c, portnum);
-
- logmessage(c, __FILE__, __LINE__, 0,
- "logging port on peer is: %d", (int)portnum);
-
- socket_set_port((struct sockaddr *)(&c->sa), htons(portnum));
-
- fd = socket(((struct sockaddr *)&c->sa)->sa_family, SOCK_STREAM, 0);
- if (fd < 0)
- return 0;
-
- ret = connect(fd, (struct sockaddr *)&c->sa, c->salen);
- if (ret < 0) {
- logmessage(c, __FILE__, __LINE__, 0, "failed connect to log port: %s",
- strerror(errno));
- close(fd);
- return 0;
- }
-
- if (c->logging)
- krb5_storage_free(c->logging);
- c->logging = krb5_storage_from_fd(fd);
- close(fd);
-
- krb5_store_int32(c->logging, eLogSetMoniker);
- store_string(c->logging, c->moniker);
-
- logmessage(c, __FILE__, __LINE__, 0, "logging turned on");
-
- return 0;
-}
-
-
-static int
-HandleOP(ChangePassword)
-{
- errx(1, "ChangePassword");
-}
-
-static int
-HandleOP(SetPasswordSelf)
-{
- errx(1, "SetPasswordSelf");
-}
-
-static int
-HandleOP(Wrap)
-{
- OM_uint32 maj_stat, min_stat;
- int32_t hContext, flags, seqno;
- krb5_data token;
- gss_ctx_id_t ctx;
- gss_buffer_desc input_token, output_token;
- int conf_state;
-
- ret32(c, hContext);
- ret32(c, flags);
- ret32(c, seqno);
- retdata(c, token);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- errx(1, "wrap: reference to unknown context");
-
- input_token.length = token.length;
- input_token.value = token.data;
-
- maj_stat = gss_wrap(&min_stat, ctx, flags, 0, &input_token,
- &conf_state, &output_token);
- if (maj_stat != GSS_S_COMPLETE)
- errx(1, "gss_wrap failed");
-
- krb5_data_free(&token);
-
- token.data = output_token.value;
- token.length = output_token.length;
-
- put32(c, 0); /* XXX fix gsm_error */
- putdata(c, token);
-
- gss_release_buffer(&min_stat, &output_token);
-
- return 0;
-}
-
-
-static int
-HandleOP(Unwrap)
-{
- OM_uint32 maj_stat, min_stat;
- int32_t hContext, flags, seqno;
- krb5_data token;
- gss_ctx_id_t ctx;
- gss_buffer_desc input_token, output_token;
- int conf_state;
- gss_qop_t qop_state;
-
- ret32(c, hContext);
- ret32(c, flags);
- ret32(c, seqno);
- retdata(c, token);
-
- ctx = find_handle(c->handles, hContext, handle_context);
- if (ctx == NULL)
- errx(1, "unwrap: reference to unknown context");
-
- input_token.length = token.length;
- input_token.value = token.data;
-
- maj_stat = gss_unwrap(&min_stat, ctx, &input_token,
- &output_token, &conf_state, &qop_state);
-
- if (maj_stat != GSS_S_COMPLETE)
- errx(1, "gss_unwrap failed: %d/%d", maj_stat, min_stat);
-
- krb5_data_free(&token);
- if (maj_stat == GSS_S_COMPLETE) {
- token.data = output_token.value;
- token.length = output_token.length;
- } else {
- token.data = NULL;
- token.length = 0;
- }
- put32(c, 0); /* XXX fix gsm_error */
- putdata(c, token);
-
- if (maj_stat == GSS_S_COMPLETE)
- gss_release_buffer(&min_stat, &output_token);
-
- return 0;
-}
-
-static int
-HandleOP(Encrypt)
-{
- return handleWrap(op, c);
-}
-
-static int
-HandleOP(Decrypt)
-{
- return handleUnwrap(op, c);
-}
-
-static int
-HandleOP(ConnectLoggingService2)
-{
- errx(1, "ConnectLoggingService2");
-}
-
-static int
-HandleOP(GetMoniker)
-{
- putstring(c, c->moniker);
- return 0;
-}
-
-static int
-HandleOP(CallExtension)
-{
- errx(1, "CallExtension");
-}
-
-static int
-HandleOP(AcquirePKInitCreds)
-{
- int32_t flags;
- krb5_data pfxdata;
-
- ret32(c, flags);
- retdata(c, pfxdata);
-
- /* get credentials */
-
- krb5_data_free(&pfxdata);
-
- put32(c, -1); /* hResource */
- put32(c, GSMERR_NOT_SUPPORTED);
- return 0;
-}
-
-/*
- *
- */
-
-struct handler {
- enum gssMaggotOp op;
- const char *name;
- int (*func)(enum gssMaggotOp, struct client *);
-};
-
-#define S(a) { e##a, #a, handle##a }
-
-struct handler handlers[] = {
- S(GetVersionInfo),
- S(GoodBye),
- S(InitContext),
- S(AcceptContext),
- S(ToastResource),
- S(AcquireCreds),
- S(Encrypt),
- S(Decrypt),
- S(Sign),
- S(Verify),
- S(GetVersionAndCapabilities),
- S(GetTargetName),
- S(SetLoggingSocket),
- S(ChangePassword),
- S(SetPasswordSelf),
- S(Wrap),
- S(Unwrap),
- S(ConnectLoggingService2),
- S(GetMoniker),
- S(CallExtension),
- S(AcquirePKInitCreds)
-};
-
-#undef S
-
-/*
- *
- */
-
-static struct handler *
-find_op(int32_t op)
-{
- int i;
-
- for (i = 0; i < sizeof(handlers)/sizeof(handlers[0]); i++)
- if (handlers[i].op == op)
- return &handlers[i];
- return NULL;
-}
-
-static struct client *
-create_client(int fd, int port, const char *moniker)
-{
- struct client *c;
-
- c = ecalloc(1, sizeof(*c));
-
- if (moniker) {
- c->moniker = estrdup(moniker);
- } else {
- char hostname[MAXHOSTNAMELEN];
- gethostname(hostname, sizeof(hostname));
- asprintf(&c->moniker, "gssmask: %s:%d", hostname, port);
- }
-
- {
- c->salen = sizeof(c->sa);
- getpeername(fd, (struct sockaddr *)&c->sa, &c->salen);
-
- getnameinfo((struct sockaddr *)&c->sa, c->salen,
- c->servername, sizeof(c->servername),
- NULL, 0, NI_NUMERICHOST);
- }
-
- c->sock = krb5_storage_from_fd(fd);
- if (c->sock == NULL)
- errx(1, "krb5_storage_from_fd");
-
- close(fd);
-
- return c;
-}
-
-static void
-free_client(struct client *c)
-{
- while(c->handles)
- del_handle(&c->handles, c->handles->idx);
-
- free(c->moniker);
- krb5_storage_free(c->sock);
- if (c->logging)
- krb5_storage_free(c->logging);
- free(c);
-}
-
-
-static void *
-handleServer(void *ptr)
-{
- struct handler *handler;
- struct client *c;
- int32_t op;
-
- c = (struct client *)ptr;
-
-
- while(1) {
- ret32(c, op);
-
- handler = find_op(op);
- if (handler == NULL) {
- logmessage(c, __FILE__, __LINE__, 0,
- "op %d not supported", (int)op);
- exit(1);
- }
-
- logmessage(c, __FILE__, __LINE__, 0,
- "---> Got op %s from server %s",
- handler->name, c->servername);
-
- if ((handler->func)(handler->op, c))
- break;
- }
-
- return NULL;
-}
-
-
-static char *port_str;
-static int version_flag;
-static int help_flag;
-static char *logfile_str;
-static char *moniker_str;
-
-static int port = 4711;
-
-struct getargs args[] = {
- { "spn", 0, arg_string, &targetname, "This host's SPN",
- "service/host@REALM" },
- { "port", 'p', arg_string, &port_str, "Use this port",
- "number-of-service" },
- { "logfile", 0, arg_string, &logfile_str, "logfile",
- "number-of-service" },
- { "moniker", 0, arg_string, &moniker_str, "nickname",
- "name" },
- { "version", 0, arg_flag, &version_flag, "Print version",
- NULL },
- { "help", 0, arg_flag, &help_flag, NULL,
- NULL }
-};
-
-static void
-usage(int ret)
-{
- arg_printusage (args,
- sizeof(args) / sizeof(args[0]),
- NULL,
- "");
- exit (ret);
-}
-
-int
-main(int argc, char **argv)
-{
- int optidx = 0;
-
- setprogname (argv[0]);
-
- if (getarg (args, sizeof(args) / sizeof(args[0]), argc, argv, &optidx))
- usage (1);
-
- if (help_flag)
- usage (0);
-
- if (version_flag) {
- print_version (NULL);
- return 0;
- }
-
- if (optidx != argc)
- usage (1);
-
- if (port_str) {
- char *ptr;
-
- port = strtol (port_str, &ptr, 10);
- if (port == 0 && ptr == port_str)
- errx (1, "Bad port `%s'", port_str);
- }
-
- krb5_init_context(&context);
-
- {
- const char *lf = logfile_str;
- if (lf == NULL)
- lf = "/dev/tty";
-
- logfile = fopen(lf, "w");
- if (logfile == NULL)
- err(1, "error opening %s", lf);
- }
-
- mini_inetd(htons(port));
- fprintf(logfile, "connected\n");
-
- {
- struct client *c;
-
- c = create_client(0, port, moniker_str);
- /* close(0); */
-
- handleServer(c);
-
- free_client(c);
- }
-
- krb5_free_context(context);
-
- return 0;
-}
diff --git a/crypto/heimdal/appl/gssmask/protocol.h b/crypto/heimdal/appl/gssmask/protocol.h
deleted file mode 100644
index 3683fa6edb1d..000000000000
--- a/crypto/heimdal/appl/gssmask/protocol.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH 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 KTH AND ITS 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 KTH OR ITS CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * $Id: protocol.h 18352 2006-10-08 13:53:28Z lha $
- */
-
-/* missing from tests:
- * - export context
- * - import context
- */
-
-/*
- * wire encodings:
- * int16: number, 2 bytes, in network order
- * int32: number, 4 bytes, in network order
- * length-encoded: [int32 length, data of length bytes]
- * string: [int32 length, string of length + 1 bytes, includes trailing '\0' ]
- */
-
-enum gssMaggotErrorCodes {
- GSMERR_OK = 0,
- GSMERR_ERROR,
- GSMERR_CONTINUE_NEEDED,
- GSMERR_INVALID_TOKEN,
- GSMERR_AP_MODIFIED,
- GSMERR_TEST_ISSUE,
- GSMERR_NOT_SUPPORTED
-};
-
-/*
- * input:
- * int32: message OP (enum gssMaggotProtocol)
- * ...
- *
- * return: -- on error
- * int32: not support (GSMERR_NOT_SUPPORTED)
- *
- * return: -- on existing message OP
- * int32: support (GSMERR_OK) -- only sent for extensions
- * ...
- */
-
-#define GSSMAGGOTPROTOCOL 14
-
-enum gssMaggotOp {
- eGetVersionInfo = 0,
- /*
- * input:
- * none
- * return:
- * int32: last version handled
- */
- eGoodBye,
- /*
- * input:
- * none
- * return:
- * close socket
- */
- eInitContext,
- /*
- * input:
- * int32: hContext
- * int32: hCred
- * int32: Flags
- * the lowest 0x7f flags maps directly to GSS-API flags
- * DELEGATE 0x001
- * MUTUAL_AUTH 0x002
- * REPLAY_DETECT 0x004
- * SEQUENCE_DETECT 0x008
- * CONFIDENTIALITY 0x010
- * INTEGRITY 0x020
- * ANONYMOUS 0x040
- *
- * FIRST_CALL 0x080
- *
- * NTLM 0x100
- * SPNEGO 0x200
- * length-encoded: targetname
- * length-encoded: token
- * return:
- * int32: hNewContextId
- * int32: gssapi status val
- * length-encoded: output token
- */
- eAcceptContext,
- /*
- * input:
- * int32: hContext
- * int32: Flags -- unused ?
- * flags are same as flags for eInitContext
- * length-encoded: token
- * return:
- * int32: hNewContextId
- * int32: gssapi status val
- * length-encoded: output token
- * int32: delegation cred id
- */
- eToastResource,
- /*
- * input:
- * int32: hResource
- * return:
- * int32: gsm status val
- */
- eAcquireCreds,
- /*
- * input:
- * string: principal name
- * string: password
- * int32: flags
- * FORWARDABLE 0x001
- * DEFAULT_CREDS 0x002
- *
- * NTLM 0x100
- * SPNEGO 0x200
- * return:
- * int32: gsm status val
- * int32: hCred
- */
- eEncrypt,
- /*
- * input:
- * int32: hContext
- * int32: flags -- unused
- * int32: seqno -- unused
- * length-encode: plaintext
- * return:
- * int32: gsm status val
- * length-encode: ciphertext
- */
- eDecrypt,
- /*
- * input:
- * int32: hContext
- * int32: flags -- unused
- * int32: seqno -- unused
- * length-encode: ciphertext
- * return:
- * int32: gsm status val
- * length-encode: plaintext
- */
- eSign,
- /* message same as eEncrypt */
- eVerify,
- /*
- * input:
- * int32: hContext
- * int32: flags -- unused
- * int32: seqno -- unused
- * length-encode: message
- * length-encode: signature
- * return:
- * int32: gsm status val
- */
- eGetVersionAndCapabilities,
- /*
- * return:
- * int32: protocol version
- * int32: capability flags */
-#define ISSERVER 0x01
-#define ISKDC 0x02
-#define MS_KERBEROS 0x04
-#define LOGSERVER 0x08
-#define HAS_MONIKER 0x10
- /* string: version string
- */
- eGetTargetName,
- /*
- * return:
- * string: target principal name
- */
- eSetLoggingSocket,
- /*
- * input:
- * int32: hostPort
- * return to the port on the host:
- * int32: opcode - for example eLogSetMoniker
- */
- eChangePassword,
- /* here ended version 7 of the protocol */
- /*
- * input:
- * string: principal name
- * string: old password
- * string: new password
- * return:
- * int32: gsm status val
- */
- eSetPasswordSelf,
- /* same as eChangePassword */
- eWrap,
- /* message same as eEncrypt */
- eUnwrap,
- /* message same as eDecrypt */
- eConnectLoggingService2,
- /*
- * return1:
- * int16: log port number
- * int32: master log prototocol version (0)
- *
- * wait for master to connect on the master log socket
- *
- * return2:
- * int32: gsm connection status
- * int32: maggot log prototocol version (2)
- */
- eGetMoniker,
- /*
- * return:
- * string: moniker (Nickname the master can refer to maggot)
- */
- eCallExtension,
- /*
- * input:
- * string: extension name
- * int32: message id
- * return:
- * int32: gsm status val
- */
- eAcquirePKInitCreds,
- /*
- * input:
- * int32: flags
- * length-encode: certificate (pkcs12 data)
- * return:
- * int32: hResource
- * int32: gsm status val (GSMERR_NOT_SUPPORTED)
- */
- /* here ended version 7 of the protocol */
- eLastProtocolMessage
-};
-
-enum gssMaggotLogOp{
- eLogInfo = 0,
- /*
- string: File
- int32: Line
- string: message
- reply:
- int32: ackid
- */
- eLogFailure,
- /*
- string: File
- int32: Line
- string: message
- reply:
- int32: ackid
- */
- eLogSetMoniker
- /*
- string: moniker
- */
-};