--------------------- PatchSet 1817 Date: 2001/04/06 12:55:39 Author: rbcollins Branch: squid-amake Tag: (none) Log: removed obsolete files. Members: makefile.in:1.5.18.2->1.5.18.3(DEAD) src/auth/Makefile.in:1.2.30.1->1.2.30.2 src/auth/basic/helpers/Makefile.in:1.3.24.1->1.3.24.2 src/auth/basic/helpers/MSNT/Makefile.in:1.3.22.1->1.3.22.2 src/auth/basic/helpers/NCSA/Makefile.in:1.3.22.1->1.3.22.2 src/auth/basic/helpers/PAM/Makefile.in:1.3.22.1->1.3.22.2 src/auth/basic/helpers/SMB/Makefile.in:1.3.22.1->1.3.22.2 src/auth/basic/helpers/getpwnam/Makefile.in:1.3.22.1->1.3.22.2 src/auth/ntlm/helpers/no_check/no_check:1.2->1.2.34.1(DEAD) src/auth/ntlm/helpers/no_check/no_check.pl:1.1->1.1.2.1 src/fs/Makefile.in:1.2.48.1->1.2.48.2 src/repl/Makefile.in:1.2.48.1->1.2.48.2 --- squid/makefile.in Wed Feb 14 00:51:48 2007 +++ /dev/null Wed Feb 14 00:51:37 2007 @@ -1,461 +0,0 @@ -# makefile.in generated automatically by automake 1.4e from makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# 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. - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : - -host_alias = @host_alias@ -host_triplet = @host@ - -@SET_MAKE@ -AMDEP = @AMDEP@ -AMTAR = @AMTAR@ -AR = @AR@ -AR_R = @AR_R@ -AUTH_LIBS = @AUTH_LIBS@ -AUTH_MODULES = @AUTH_MODULES@ -AUTH_OBJS = @AUTH_OBJS@ -AWK = @AWK@ -BASIC_AUTH_HELPERS = @BASIC_AUTH_HELPERS@ -CACHE_HTTP_PORT = @CACHE_HTTP_PORT@ -CACHE_ICP_PORT = @CACHE_ICP_PORT@ -CC = @CC@ -CPP = @CPP@ -CRYPTLIB = @CRYPTLIB@ -DEPDIR = @DEPDIR@ -DIGEST_AUTH_HELPERS = @DIGEST_AUTH_HELPERS@ -DLLIB = @DLLIB@ -ERR_LANGUAGE = @ERR_LANGUAGE@ -EXEEXT = @EXEEXT@ -FALSE = @FALSE@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@ -LIBDLMALLOC = @LIBDLMALLOC@ -LIBREGEX = @LIBREGEX@ -LIB_MALLOC = @LIB_MALLOC@ -LN = @LN@ -LN_S = @LN_S@ -MAKEINFO = @MAKEINFO@ -MKDIR = @MKDIR@ -MV = @MV@ -NTLM_AUTH_HELPERS = @NTLM_AUTH_HELPERS@ -OBJEXT = @OBJEXT@ -OPT_DNSSERVER_EXE = @OPT_DNSSERVER_EXE@ -OPT_PINGER_EXE = @OPT_PINGER_EXE@ -PACKAGE = @PACKAGE@ -PERL = @PERL@ -PTHREADLIB = @PTHREADLIB@ -RANLIB = @RANLIB@ -REGEXLIB = @REGEXLIB@ -REPL_LIBS = @REPL_LIBS@ -REPL_OBJS = @REPL_OBJS@ -REPL_POLICIES = @REPL_POLICIES@ -RM = @RM@ -SH = @SH@ -SNMPLIB = @SNMPLIB@ -SQUID_PTHREAD_LIB = @SQUID_PTHREAD_LIB@ -STORE_LIBS = @STORE_LIBS@ -STORE_MODULES = @STORE_MODULES@ -STORE_OBJS = @STORE_OBJS@ -STRIP = @STRIP@ -TRUE = @TRUE@ -VERSION = @VERSION@ -XTRA_LIBS = @XTRA_LIBS@ -XTRA_OBJS = @XTRA_OBJS@ -_am_include = @_am_include@ -install_sh = @install_sh@ -makesnmplib = @makesnmplib@ - -# -# $Id: makefile.in,v 1.5.18.2 2001/04/06 12:45:33 rbcollins Exp $ -# - - -SUBDIRS = lib @makesnmplib@ scripts src icons errors -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/include/autoconf.h -CONFIG_CLEAN_FILES = include/config.h contrib/Makefile -DIST_SOURCES = -DIST_COMMON = README ./include/autoconf.h.in ./include/stamp-h.in \ -COPYING ChangeLog INSTALL TODO acconfig.h aclocal.m4 compile \ -config.guess config.sub configure configure.in depcomp install-sh \ -makefile.am makefile.in missing mkinstalldirs - -DIST_SUBDIRS = $(SUBDIRS) -all: all-recursive - -.SUFFIXES: - -$(srcdir)/makefile.in: makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign makefile - -makefile: $(srcdir)/makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$@ $(SHELL) ./config.status -$(ACLOCAL_M4): configure.in - cd $(srcdir) && $(ACLOCAL) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -include/autoconf.h: include/stamp-h - @if test ! -f $@; then \ - rm -f include/stamp-h; \ - $(MAKE) include/stamp-h; \ - else :; fi -include/stamp-h: $(srcdir)/./include/autoconf.h.in $(top_builddir)/config.status - @rm -f include/stamp-h include/stamp-hT - @echo timestamp > include/stamp-hT 2> /dev/null - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=include/autoconf.h \ - $(SHELL) ./config.status - @mv include/stamp-hT include/stamp-h -$(srcdir)/./include/autoconf.h.in: $(srcdir)/./include/stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/./include/stamp-h.in; \ - $(MAKE) $(srcdir)/./include/stamp-h.in; \ - else :; fi -$(srcdir)/./include/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h - @rm -f $(srcdir)/./include/stamp-h.in $(srcdir)/./include/stamp-h.inT - @echo timestamp > $(srcdir)/./include/stamp-h.inT 2> /dev/null - cd $(top_srcdir) && $(AUTOHEADER) - @mv $(srcdir)/./include/stamp-h.inT $(srcdir)/./include/stamp-h.in - -distclean-hdr: - -rm -f include/autoconf.h -include/config.h: $(top_builddir)/config.status $(top_srcdir)/include/config.h.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status -contrib/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/Makefile.in - cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive \ -install-info-recursive uninstall-info-recursive \ -check-recursive installcheck-recursive info-recursive dvi-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(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 $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(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 "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) - -GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $$here - -distclean-tags: - -rm -f TAGS ID - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = . -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -GZIP_ENV = --best - -distdir: $(DISTFILES) - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - mkdir $(distdir) - $(mkinstalldirs) $(distdir)/./include $(distdir)/contrib $(distdir)/include $(distdir)/scripts - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done - @for file in $(DISTFILES); do \ - d=$(srcdir); \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || 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 - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - chmod a-w $(distdir) - dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \ - && cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && test `find $$dc_install_base -type f -print | wc -l` -le 1 \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && $(MAKE) $(AM_MAKEFLAGS) distclean \ - && rm -f $(distdir).tar.gz \ - && (test `find . -type f -print | wc -l` -eq 0 \ - || (echo "Error: files left after distclean" 1>&2; \ - exit 1) ) - -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) - @echo "$(distdir).tar.gz is ready for distribution" | \ - sed 'h;s/./=/g;p;x;p;x' -check-am: all-am -check: check-recursive -all-am: makefile - -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive - -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -rm -f Makefile.in -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -dist-all: dist - -distclean: distclean-recursive - -rm -f config.status - -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: - -dvi-am: - -info: - -info-am: - -install-data-am: - -install-exec-am: - -install-info: - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f config.status - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -.PHONY: all all-am all-recursive check check-am check-recursive clean \ - clean-generic clean-recursive dist dist-all distcheck distclean \ - distclean-generic distclean-hdr distclean-recursive \ - distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ - info-recursive install install-am install-data install-data-am \ - install-data-recursive install-exec install-exec-am \ - install-exec-recursive install-info install-info-recursive \ - install-man install-recursive install-strip installcheck \ - installcheck-am installcheck-recursive installdirs \ - installdirs-am installdirs-recursive maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive mostlyclean \ - mostlyclean-generic mostlyclean-recursive tags tags-recursive \ - uninstall uninstall-am uninstall-info-recursive \ - uninstall-recursive - - -dist-hook: - @ for subdir in "include"; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - cp -p $(srcdir)/$$subdir/*.h $(distdir)/$$subdir \ - && cp -p $(srcdir)/$$subdir/*.in $(distdir)/$$subdir \ - || exit 1; \ - 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: Index: squid/src/auth/basic/helpers/SMB/Makefile.in =================================================================== RCS file: /cvsroot/squid-sf//squid/src/auth/basic/helpers/SMB/Attic/Makefile.in,v retrieving revision 1.3.22.1 retrieving revision 1.3.22.2 diff -u -r1.3.22.1 -r1.3.22.2 --- squid/src/auth/basic/helpers/SMB/Makefile.in 6 Apr 2001 12:40:28 -0000 1.3.22.1 +++ squid/src/auth/basic/helpers/SMB/Makefile.in 6 Apr 2001 12:55:40 -0000 1.3.22.2 @@ -172,7 +172,7 @@ DIST_SOURCES = smb_auth.c depcomp = $(SHELL) $(top_srcdir)/depcomp @AMDEP@DEP_FILES = $(DEPDIR)/smb_auth-smb_auth.Po -DIST_COMMON = README Makefile.am Makefile.in compile +DIST_COMMON = README ChangeLog Makefile.am Makefile.in compile SOURCES = smb_auth.c OBJECTS = smb_auth.$(OBJEXT) --- squid/src/auth/ntlm/helpers/no_check/no_check Wed Feb 14 00:51:48 2007 +++ /dev/null Wed Feb 14 00:51:37 2007 @@ -1,210 +0,0 @@ -#!/usr/bin/perl -# (C) 2000 Francesco Chemolli -# -# TODO: use command-line arguments - -#use MIME::Base64; - -$|=1; -#$authdomain="your_domain_goes_here"; -$challenge="deadbeef"; - -$authdomain=$ARGV[0] if ($#ARGV >=0); - -die ("Edit $0 to configure a domain!") unless (defined($authdomain)); - -while() { - chop; - if ($_ eq "YR") { - print "TT ".encode_base64(&make_ntlm_static_challenge); - next; - } - $got=substr($_,3); - %res=decode_ntlm_any(decode_base64($got)); -# print STDERR "got: ".hash_to_string(%res); - if (!res) { # broken NTLM, deny - print "BH Couldn't decode NTLM packet\n"; - next; - } - if ($res{type} eq "negotiate") { # ok, send a challenge - print "BH Squid-helper protocol error: unexpected negotiate-request\n"; - next; - } - if ($res{type} eq "challenge") { # Huh? WE are the challengers. - print "BH Squid-helper protocol error: unexpected challenge-request\n"; - next; - } - if ($res{type} eq "authentication") { - print "AF $res{domain}\\$res{user}\n"; - next; - } - print "BH internal error\n"; # internal error -} - - -sub make_ntlm_static_challenge { - $rv = pack ("a8 V", "NTLMSSP", 0x2); - $payload = ""; - - $rv .= add_to_data(uc($authdomain),\$payload); - $rv .= pack ("V Z8 v8", 0x18206, $challenge,0,0,0,0,0,0,0x3a,0); - #flags, challenge, 8 bytes of unknown stuff - - return $rv.$payload; -} - -#gets as argument the decoded authenticate packet. -#returns either undef (failure to decode) or an hash with the decoded -# fields. -sub decode_ntlm_authentication { - my ($got)=$_[0]; - my ($signature, $type, %rv, $hdr, $rest); - ($signature, $type, $rest) = unpack ("a8 V a*",$got); - return unless ($signature eq "NTLMSSP\0"); - return unless ($type == 0x3); - $rv{type}="authentication"; - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{lmresponse}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{ntresponse}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{domain}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{user}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{workstation}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{sessionkey}=get_from_data($hdr,$got); - $rv{flags}=unpack("V",$rest); - return %rv; -} - -#args: len, maxlen, offset -sub make_ntlm_hdr { - return pack ("v v V", @_); -} - -#args: string to add, ref to payload -# returns ntlm header. -sub add_to_data { - my ($toadd, $pl) = @_; - my ($offset); -# $toadd.='\0' unless ($toadd[-1]=='\0'); #broken - $offset=48+length $pl; #48 is the length of the header - $$pl.=$toadd; - return make_ntlm_hdr (length $toadd, length $toadd, $offset); -} - -#args: encoded descriptor, entire decoded packet -# returns the decoded data -sub get_from_data { - my($desc,$packet) = @_; - my($offset,$length, $rv); - ($length, undef, $offset) = unpack ("v v V", $desc); - return unless ($length+$offset <= length $packet); - $rv = unpack ("x$offset a$length",$packet); - return $rv; -} - -sub hash_to_string { - my (%hash) = @_; - my ($rv); - foreach (sort keys %hash) { - $rv.=$_." => ".$hash{$_}."\n"; - } - return $rv; -} - - -#more decoder functions, added more for debugging purposes -#than for any real use in the application. -#args: the base64-decoded packet -#returns: either undef or an hash describing the packet. -sub decode_ntlm_negotiate { - my($got)=$_[0]; - my($signature, $type, %rv, $hdr, $rest); - ($signature, $type, $rest) = unpack ("a8 V a*",$got); - return unless ($signature eq "NTLMSSP\0"); - return unless ($type == 0x1); - $rv{type}="negotiate"; - ($rv{flags}, $rest)=unpack("V a*",$rest); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{domain}=get_from_data($hdr,$got); - ($hdr, $rest) = unpack ("a8 a*", $rest); - $rv{workstation}=get_from_data($hdr,$got); - return %rv; -} - -sub decode_ntlm_challenge { - my($got)=$_[0]; - my($signature, $type, %rv, $hdr, $rest, $j); - ($signature, $type, $rest) = unpack ("a8 V a*",$got); - return unless ($signature eq "NTLMSSP\0"); - return unless ($type == 0x2); - $rv{type}="challenge"; - ($rv{flags}, $rest)=unpack("V a*",$rest); - ($rv{challenge}, $rest)=unpack("a8 a*",$rest); - for ($j=0;$j<8;$j++) { # don't shoot on the programmer, please. - ($rv{"context.$j"},$rest)=unpack("v a*",$rest); - } - return %rv; -} - -#decodes any NTLMSSP packet. -#arg: the encoded packet, returns an hash with packet info -sub decode_ntlm_any { - my($got)=$_[0]; - my ($signature, $type); - ($signature, $type, undef) = unpack ("a8 V a*",$got); - return unless ($signature eq "NTLMSSP\0"); - return decode_ntlm_negotiate($got) if ($type == 1); - return decode_ntlm_challenge($got) if ($type == 2); - return decode_ntlm_authentication($got) if ($type == 3); - return undef; # default -} - - -use integer; - -sub encode_base64 ($;$) -{ - my $res = ""; - my $eol = $_[1]; - $eol = "\n" unless defined $eol; - pos($_[0]) = 0; # ensure start at the beginning - while ($_[0] =~ /(.{1,45})/gs) { - $res .= substr(pack('u', $1), 1); - chop($res); - } - $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs - # fix padding at the end - my $padding = (3 - length($_[0]) % 3) % 3; - $res =~ s/.{$padding}$/'=' x $padding/e if $padding; - # break encoded string into lines of no more than 76 characters each - if (length $eol) { - $res =~ s/(.{1,76})/$1$eol/g; - } - $res; -} - - -sub decode_base64 ($) -{ - local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123] - - my $str = shift; - my $res = ""; - - $str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars - if (length($str) % 4) { - require Carp; - Carp::carp("Length of base64 data not a multiple of 4") - } - $str =~ s/=+$//; # remove padding - $str =~ tr|A-Za-z0-9+/| -_|; # convert to uuencoded format - while ($str =~ /(.{1,60})/gs) { - my $len = chr(32 + length($1)*3/4); # compute length byte - $res .= unpack("u", $len . $1 ); # uudecode - } - $res; -} --- /dev/null Wed Feb 14 00:51:37 2007 +++ squid/src/auth/ntlm/helpers/no_check/no_check.pl Wed Feb 14 00:51:48 2007 @@ -0,0 +1,210 @@ +#!/usr/bin/perl +# (C) 2000 Francesco Chemolli +# +# TODO: use command-line arguments + +#use MIME::Base64; + +$|=1; +#$authdomain="your_domain_goes_here"; +$challenge="deadbeef"; + +$authdomain=$ARGV[0] if ($#ARGV >=0); + +die ("Edit $0 to configure a domain!") unless (defined($authdomain)); + +while() { + chop; + if ($_ eq "YR") { + print "TT ".encode_base64(&make_ntlm_static_challenge); + next; + } + $got=substr($_,3); + %res=decode_ntlm_any(decode_base64($got)); +# print STDERR "got: ".hash_to_string(%res); + if (!res) { # broken NTLM, deny + print "BH Couldn't decode NTLM packet\n"; + next; + } + if ($res{type} eq "negotiate") { # ok, send a challenge + print "BH Squid-helper protocol error: unexpected negotiate-request\n"; + next; + } + if ($res{type} eq "challenge") { # Huh? WE are the challengers. + print "BH Squid-helper protocol error: unexpected challenge-request\n"; + next; + } + if ($res{type} eq "authentication") { + print "AF $res{domain}\\$res{user}\n"; + next; + } + print "BH internal error\n"; # internal error +} + + +sub make_ntlm_static_challenge { + $rv = pack ("a8 V", "NTLMSSP", 0x2); + $payload = ""; + + $rv .= add_to_data(uc($authdomain),\$payload); + $rv .= pack ("V Z8 v8", 0x18206, $challenge,0,0,0,0,0,0,0x3a,0); + #flags, challenge, 8 bytes of unknown stuff + + return $rv.$payload; +} + +#gets as argument the decoded authenticate packet. +#returns either undef (failure to decode) or an hash with the decoded +# fields. +sub decode_ntlm_authentication { + my ($got)=$_[0]; + my ($signature, $type, %rv, $hdr, $rest); + ($signature, $type, $rest) = unpack ("a8 V a*",$got); + return unless ($signature eq "NTLMSSP\0"); + return unless ($type == 0x3); + $rv{type}="authentication"; + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{lmresponse}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{ntresponse}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{domain}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{user}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{workstation}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{sessionkey}=get_from_data($hdr,$got); + $rv{flags}=unpack("V",$rest); + return %rv; +} + +#args: len, maxlen, offset +sub make_ntlm_hdr { + return pack ("v v V", @_); +} + +#args: string to add, ref to payload +# returns ntlm header. +sub add_to_data { + my ($toadd, $pl) = @_; + my ($offset); +# $toadd.='\0' unless ($toadd[-1]=='\0'); #broken + $offset=48+length $pl; #48 is the length of the header + $$pl.=$toadd; + return make_ntlm_hdr (length $toadd, length $toadd, $offset); +} + +#args: encoded descriptor, entire decoded packet +# returns the decoded data +sub get_from_data { + my($desc,$packet) = @_; + my($offset,$length, $rv); + ($length, undef, $offset) = unpack ("v v V", $desc); + return unless ($length+$offset <= length $packet); + $rv = unpack ("x$offset a$length",$packet); + return $rv; +} + +sub hash_to_string { + my (%hash) = @_; + my ($rv); + foreach (sort keys %hash) { + $rv.=$_." => ".$hash{$_}."\n"; + } + return $rv; +} + + +#more decoder functions, added more for debugging purposes +#than for any real use in the application. +#args: the base64-decoded packet +#returns: either undef or an hash describing the packet. +sub decode_ntlm_negotiate { + my($got)=$_[0]; + my($signature, $type, %rv, $hdr, $rest); + ($signature, $type, $rest) = unpack ("a8 V a*",$got); + return unless ($signature eq "NTLMSSP\0"); + return unless ($type == 0x1); + $rv{type}="negotiate"; + ($rv{flags}, $rest)=unpack("V a*",$rest); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{domain}=get_from_data($hdr,$got); + ($hdr, $rest) = unpack ("a8 a*", $rest); + $rv{workstation}=get_from_data($hdr,$got); + return %rv; +} + +sub decode_ntlm_challenge { + my($got)=$_[0]; + my($signature, $type, %rv, $hdr, $rest, $j); + ($signature, $type, $rest) = unpack ("a8 V a*",$got); + return unless ($signature eq "NTLMSSP\0"); + return unless ($type == 0x2); + $rv{type}="challenge"; + ($rv{flags}, $rest)=unpack("V a*",$rest); + ($rv{challenge}, $rest)=unpack("a8 a*",$rest); + for ($j=0;$j<8;$j++) { # don't shoot on the programmer, please. + ($rv{"context.$j"},$rest)=unpack("v a*",$rest); + } + return %rv; +} + +#decodes any NTLMSSP packet. +#arg: the encoded packet, returns an hash with packet info +sub decode_ntlm_any { + my($got)=$_[0]; + my ($signature, $type); + ($signature, $type, undef) = unpack ("a8 V a*",$got); + return unless ($signature eq "NTLMSSP\0"); + return decode_ntlm_negotiate($got) if ($type == 1); + return decode_ntlm_challenge($got) if ($type == 2); + return decode_ntlm_authentication($got) if ($type == 3); + return undef; # default +} + + +use integer; + +sub encode_base64 ($;$) +{ + my $res = ""; + my $eol = $_[1]; + $eol = "\n" unless defined $eol; + pos($_[0]) = 0; # ensure start at the beginning + while ($_[0] =~ /(.{1,45})/gs) { + $res .= substr(pack('u', $1), 1); + chop($res); + } + $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs + # fix padding at the end + my $padding = (3 - length($_[0]) % 3) % 3; + $res =~ s/.{$padding}$/'=' x $padding/e if $padding; + # break encoded string into lines of no more than 76 characters each + if (length $eol) { + $res =~ s/(.{1,76})/$1$eol/g; + } + $res; +} + + +sub decode_base64 ($) +{ + local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123] + + my $str = shift; + my $res = ""; + + $str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars + if (length($str) % 4) { + require Carp; + Carp::carp("Length of base64 data not a multiple of 4") + } + $str =~ s/=+$//; # remove padding + $str =~ tr|A-Za-z0-9+/| -_|; # convert to uuencoded format + while ($str =~ /(.{1,60})/gs) { + my $len = chr(32 + length($1)*3/4); # compute length byte + $res .= unpack("u", $len . $1 ); # uudecode + } + $res; +}