diff options
Diffstat (limited to 'crypto/heimdal/appl/gssmask')
-rw-r--r-- | crypto/heimdal/appl/gssmask/Makefile.am | 12 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/Makefile.in | 760 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/common.c | 97 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/common.h | 112 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/gssmaestro.c | 851 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/gssmask.c | 1092 | ||||
-rw-r--r-- | crypto/heimdal/appl/gssmask/protocol.h | 286 |
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 - */ -}; |