summaryrefslogtreecommitdiffstats
path: root/crypto/kerberosIV/lib/krb
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>1999-09-19 14:19:32 +0000
committermarkm <markm@FreeBSD.org>1999-09-19 14:19:32 +0000
commitc171f3b18205ec5324a32cba54aff58ae5594701 (patch)
tree66b3054dafd0977d967bd8aba7ce4e8bcc8d605f /crypto/kerberosIV/lib/krb
parent4f947d680afa74c70cf3f206d4f05dcc3555aa90 (diff)
parentfe83e8abf357ee11114856a5278bb38431a9517c (diff)
downloadFreeBSD-src-c171f3b18205ec5324a32cba54aff58ae5594701.zip
FreeBSD-src-c171f3b18205ec5324a32cba54aff58ae5594701.tar.gz
This commit was generated by cvs2svn to compensate for changes in r51415,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'crypto/kerberosIV/lib/krb')
-rw-r--r--crypto/kerberosIV/lib/krb/Makefile.in474
-rw-r--r--crypto/kerberosIV/lib/krb/cr_err_reply.c50
-rw-r--r--crypto/kerberosIV/lib/krb/create_auth_reply.c63
-rw-r--r--crypto/kerberosIV/lib/krb/create_ciph.c44
-rw-r--r--crypto/kerberosIV/lib/krb/create_death_packet.c30
-rw-r--r--crypto/kerberosIV/lib/krb/create_ticket.c45
-rw-r--r--crypto/kerberosIV/lib/krb/debug_decl.c17
-rw-r--r--crypto/kerberosIV/lib/krb/decomp_ticket.c19
-rw-r--r--crypto/kerberosIV/lib/krb/dllmain.c50
-rw-r--r--crypto/kerberosIV/lib/krb/extra.c207
-rw-r--r--crypto/kerberosIV/lib/krb/get_ad_tkt.c38
-rw-r--r--crypto/kerberosIV/lib/krb/get_cred.c4
-rw-r--r--crypto/kerberosIV/lib/krb/get_default_principal.c20
-rw-r--r--crypto/kerberosIV/lib/krb/get_host.c246
-rw-r--r--crypto/kerberosIV/lib/krb/get_in_tkt.c109
-rw-r--r--crypto/kerberosIV/lib/krb/get_krbrlm.c182
-rw-r--r--crypto/kerberosIV/lib/krb/get_svc_in_tkt.c7
-rw-r--r--crypto/kerberosIV/lib/krb/get_tf_fullname.c8
-rw-r--r--crypto/kerberosIV/lib/krb/getaddrs.c93
-rw-r--r--crypto/kerberosIV/lib/krb/getfile.c96
-rw-r--r--crypto/kerberosIV/lib/krb/getrealm.c169
-rw-r--r--crypto/kerberosIV/lib/krb/k_getsockinst.c5
-rw-r--r--crypto/kerberosIV/lib/krb/kdc_reply.c13
-rw-r--r--crypto/kerberosIV/lib/krb/kntoln.c145
-rw-r--r--crypto/kerberosIV/lib/krb/krb-archaeology.h131
-rw-r--r--crypto/kerberosIV/lib/krb/krb-protos.h773
-rw-r--r--crypto/kerberosIV/lib/krb/krb.def16
-rw-r--r--crypto/kerberosIV/lib/krb/krb.dsp398
-rw-r--r--crypto/kerberosIV/lib/krb/krb.mak3301
-rw-r--r--crypto/kerberosIV/lib/krb/krb.rc105
-rw-r--r--crypto/kerberosIV/lib/krb/krb_equiv.c13
-rw-r--r--crypto/kerberosIV/lib/krb/krb_err.et310
-rw-r--r--crypto/kerberosIV/lib/krb/krb_err_txt.c6
-rw-r--r--crypto/kerberosIV/lib/krb/krb_get_in_tkt.c153
-rw-r--r--crypto/kerberosIV/lib/krb/krb_locl.h59
-rw-r--r--crypto/kerberosIV/lib/krb/krb_log.h79
-rw-r--r--crypto/kerberosIV/lib/krb/krb_net_read.c47
-rw-r--r--crypto/kerberosIV/lib/krb/krb_net_write.c47
-rw-r--r--crypto/kerberosIV/lib/krb/kuserok.c48
-rw-r--r--crypto/kerberosIV/lib/krb/logging.c6
-rw-r--r--crypto/kerberosIV/lib/krb/lsb_addr_comp.c42
-rw-r--r--crypto/kerberosIV/lib/krb/mk_auth.c50
-rw-r--r--crypto/kerberosIV/lib/krb/mk_err.c11
-rw-r--r--crypto/kerberosIV/lib/krb/mk_priv.c20
-rw-r--r--crypto/kerberosIV/lib/krb/mk_req.c102
-rw-r--r--crypto/kerberosIV/lib/krb/mk_safe.c18
-rw-r--r--crypto/kerberosIV/lib/krb/name2name.c29
-rw-r--r--crypto/kerberosIV/lib/krb/parse_name.c8
-rw-r--r--crypto/kerberosIV/lib/krb/prot.h59
-rw-r--r--crypto/kerberosIV/lib/krb/rd_priv.c6
-rw-r--r--crypto/kerberosIV/lib/krb/rd_req.c12
-rw-r--r--crypto/kerberosIV/lib/krb/rd_safe.c4
-rw-r--r--crypto/kerberosIV/lib/krb/read_service_key.c15
-rw-r--r--crypto/kerberosIV/lib/krb/realm_parse.c22
-rw-r--r--crypto/kerberosIV/lib/krb/recvauth.c16
-rw-r--r--crypto/kerberosIV/lib/krb/resource.h15
-rw-r--r--crypto/kerberosIV/lib/krb/roken_rename.h103
-rw-r--r--crypto/kerberosIV/lib/krb/rw.c66
-rw-r--r--crypto/kerberosIV/lib/krb/send_to_kdc.c473
-rw-r--r--crypto/kerberosIV/lib/krb/sendauth.c8
-rw-r--r--crypto/kerberosIV/lib/krb/sizetest.c17
-rw-r--r--crypto/kerberosIV/lib/krb/solaris_compat.c94
-rw-r--r--crypto/kerberosIV/lib/krb/str2key.c31
-rw-r--r--crypto/kerberosIV/lib/krb/tf_util.c77
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.c86
-rw-r--r--crypto/kerberosIV/lib/krb/ticket_memory.h3
-rw-r--r--crypto/kerberosIV/lib/krb/time.c76
-rw-r--r--crypto/kerberosIV/lib/krb/tkt_string.c28
-rw-r--r--crypto/kerberosIV/lib/krb/unparse_name.c18
-rw-r--r--crypto/kerberosIV/lib/krb/verify_user.c118
70 files changed, 5586 insertions, 3667 deletions
diff --git a/crypto/kerberosIV/lib/krb/Makefile.in b/crypto/kerberosIV/lib/krb/Makefile.in
index 8b34d65..9697de6 100644
--- a/crypto/kerberosIV/lib/krb/Makefile.in
+++ b/crypto/kerberosIV/lib/krb/Makefile.in
@@ -1,37 +1,50 @@
#
-# $Id: Makefile.in,v 1.74 1997/05/19 03:03:05 assar Exp $
+# $Id: Makefile.in,v 1.110 1999/03/10 19:01:16 joda Exp $
#
-
-# Under SunOS-5.x it is necessary to link with -ldes to be binary compatible.
-LIBDES=`test -r /usr/lib/libkrb.so.1 && echo "-lresolv -L../des -ldes"; true`
-
SHELL = /bin/sh
srcdir = @srcdir@
VPATH = @srcdir@
CC = @CC@
+LINK = @LINK@
AR = ar
RANLIB = @RANLIB@
LN_S = @LN_S@
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
+DEFS = @DEFS@ -DROKEN_RENAME
+CFLAGS = @CFLAGS@ $(WFLAGS)
+WFLAGS = @WFLAGS@
LD_FLAGS = @LD_FLAGS@
EXECSUFFIX=@EXECSUFFIX@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
+top_builddir = ../..
-COMPILE_ET = ../../util/et/compile_et$(EXECSUFFIX) -language ansi-c
+COMPILE_ET = ../com_err/compile_et
prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @libdir@
+includedir = @includedir@
+
+incdir = $(includedir)
+inc_DATA = krb_err.h
+idir = $(top_builddir)/include
+
PICFLAGS = @PICFLAGS@
+
+# Under SunOS-5.x it is necessary to link with -ldes to be binary compatible.
+
+LIBDES=`test -r /usr/lib/libkrb.so.1 && echo "@LD_FLAGS@ -L../des -ldes"; true`
+
+LIB_DEPS = @lib_deps_yes@ `echo @LIB_res_search@ @LIB_dn_expand@ | sort | uniq` $(LIBDES) -lc
+build_symlink_command = @build_symlink_command@
+install_symlink_command = @install_symlink_command@
-PROGS = sizetest$(EXEC_SUFFIX)
+PROGS = sizetest$(EXECSUFFIX)
LIBNAME = $(LIBPREFIX)krb
LIBEXT = @LIBEXT@
SHLIBEXT = @SHLIBEXT@
@@ -39,176 +52,216 @@ LIBPREFIX = @LIBPREFIX@
LDSHARED = @LDSHARED@
LIB = $(LIBNAME).$(LIBEXT)
-SOURCES = cr_err_reply.c \
- create_auth_reply.c \
- create_ciph.c \
- create_death_packet.c \
- create_ticket.c \
- dest_tkt.c \
- get_in_tkt.c \
- get_svc_in_tkt.c \
- getrealm.c \
- k_localtime.c \
- krb_err_txt.c \
- krb_get_in_tkt.c \
- kuserok.c \
- parse_name.c \
- kntoln.c \
- mk_auth.c \
- krb_check_auth.c \
- mk_err.c \
- mk_safe.c \
- rd_err.c \
- rd_safe.c \
- recvauth.c \
- mk_priv.c \
- rd_req.c \
- decomp_ticket.c \
- lifetime.c \
- month_sname.c \
- stime.c \
- read_service_key.c \
- getst.c \
- sendauth.c \
- netread.c \
- netwrite.c \
- rd_priv.c \
- krb_equiv.c \
- str2key.c \
- get_ad_tkt.c \
- mk_req.c \
- get_cred.c \
- get_tf_realm.c \
- get_tf_fullname.c \
- one.c \
- save_credentials.c \
- send_to_kdc.c \
- get_host.c \
- get_krbrlm.c \
- k_gethostname.c \
- tf_util.c \
- debug_decl.c \
- k_flock.c \
- tkt_string.c \
- getaddrs.c \
- k_getsockinst.c \
- k_getport.c \
- lsb_addr_comp.c \
- name2name.c \
- get_default_principal.c \
- realm_parse.c \
- verify_user.c \
- rw.c \
- kdc_reply.c \
- encrypt_ktext.c \
- swab.c \
- gettimeofday.c \
- check_time.c \
- krb_err.c \
- et_list.c \
- resolve.c \
- unparse_name.c \
- logging.c \
- k_concat.c
-
-# these files reside in ../roken
-# snprintf.c \
-# strdup.c \
-# strtok_r.c \
-# strcasecmp.c
-
-OBJECTS = cr_err_reply.o \
- create_auth_reply.o \
- create_ciph.o \
- create_death_packet.o \
- create_ticket.o \
- dest_tkt.o \
- get_in_tkt.o \
- get_svc_in_tkt.o \
- getrealm.o \
- k_localtime.o \
- krb_err_txt.o \
- krb_get_in_tkt.o \
- kuserok.o \
- parse_name.o \
- kntoln.o \
- mk_auth.o \
- krb_check_auth.o \
- mk_err.o \
- mk_safe.o \
- rd_err.o \
- rd_safe.o \
- recvauth.o \
- mk_priv.o \
- rd_req.o \
- decomp_ticket.o \
- lifetime.o \
- month_sname.o \
- stime.o \
- read_service_key.o \
- getst.o \
- sendauth.o \
- netread.o \
- netwrite.o \
- rd_priv.o \
- krb_equiv.o \
- str2key.o \
- get_ad_tkt.o \
- mk_req.o \
- get_cred.o \
- get_tf_realm.o \
- get_tf_fullname.o \
- one.o \
- save_credentials.o \
- send_to_kdc.o \
- get_host.o \
- get_krbrlm.o \
- k_gethostname.o \
- tf_util.o \
- debug_decl.o \
- k_flock.o \
- tkt_string.o \
- getaddrs.o \
- k_getsockinst.o \
- k_getport.o \
- lsb_addr_comp.o \
- name2name.o \
- get_default_principal.o \
- realm_parse.o \
- verify_user.o \
- rw.o \
- kdc_reply.o \
- encrypt_ktext.o \
- swab.o \
- gettimeofday.o \
- check_time.o \
- krb_err.o \
- resolve.o \
- unparse_name.o \
- logging.o \
- k_concat.o \
- snprintf.o \
- strdup.o \
- strtok_r.o \
- strcasecmp.o
-
-# This is only needed by some shared library implementations
-LDOBJ = et_list.o
-
-all: $(LIB) $(PROGS)
+SOURCES = \
+ check_time.c \
+ cr_err_reply.c \
+ create_auth_reply.c \
+ create_ciph.c \
+ create_death_packet.c \
+ create_ticket.c \
+ debug_decl.c \
+ decomp_ticket.c \
+ dest_tkt.c \
+ encrypt_ktext.c \
+ extra.c \
+ get_ad_tkt.c \
+ getfile.c \
+ get_cred.c \
+ get_default_principal.c \
+ get_host.c \
+ get_in_tkt.c \
+ get_krbrlm.c \
+ get_svc_in_tkt.c \
+ get_tf_fullname.c \
+ get_tf_realm.c \
+ getaddrs.c \
+ getrealm.c \
+ getst.c \
+ k_getport.c \
+ k_getsockinst.c \
+ k_localtime.c \
+ kdc_reply.c \
+ kntoln.c \
+ krb_check_auth.c \
+ krb_equiv.c \
+ krb_err.c \
+ krb_err_txt.c \
+ krb_get_in_tkt.c \
+ kuserok.c \
+ lifetime.c \
+ logging.c \
+ lsb_addr_comp.c \
+ mk_auth.c \
+ mk_err.c \
+ mk_priv.c \
+ mk_req.c \
+ mk_safe.c \
+ month_sname.c \
+ name2name.c \
+ krb_net_read.c \
+ krb_net_write.c \
+ one.c \
+ parse_name.c \
+ rd_err.c \
+ rd_priv.c \
+ rd_req.c \
+ rd_safe.c \
+ read_service_key.c \
+ realm_parse.c \
+ recvauth.c \
+ rw.c \
+ save_credentials.c \
+ send_to_kdc.c \
+ sendauth.c \
+ solaris_compat.c \
+ stime.c \
+ str2key.c \
+ tf_util.c \
+ time.c \
+ tkt_string.c \
+ unparse_name.c \
+ verify_user.c
+
+# these files reside in ../roken or ../com_err/
+EXTRA_SOURCE = \
+ base64.c \
+ concat.c \
+ flock.c \
+ gethostname.c \
+ gettimeofday.c \
+ getuid.c \
+ resolve.c \
+ snprintf.c \
+ strcasecmp.c \
+ strcat_truncate.c \
+ strcpy_truncate.c \
+ strdup.c \
+ strncasecmp.c \
+ strnlen.c \
+ strtok_r.c \
+ swab.c
+
+SHLIB_EXTRA_SOURCE = \
+ com_err.c \
+ error.c
+
+OBJECTS = \
+ check_time.o \
+ cr_err_reply.o \
+ create_auth_reply.o \
+ create_ciph.o \
+ create_death_packet.o \
+ create_ticket.o \
+ debug_decl.o \
+ decomp_ticket.o \
+ dest_tkt.o \
+ encrypt_ktext.o \
+ extra.o \
+ get_ad_tkt.o \
+ getfile.o \
+ get_cred.o \
+ get_default_principal.o \
+ get_host.o \
+ get_in_tkt.o \
+ get_krbrlm.o \
+ get_svc_in_tkt.o \
+ get_tf_fullname.o \
+ get_tf_realm.o \
+ getaddrs.o \
+ getrealm.o \
+ getst.o \
+ k_getport.o \
+ k_getsockinst.o \
+ k_localtime.o \
+ kdc_reply.o \
+ kntoln.o \
+ krb_check_auth.o \
+ krb_equiv.o \
+ krb_err.o \
+ krb_err_txt.o \
+ krb_get_in_tkt.o \
+ kuserok.o \
+ lifetime.o \
+ logging.o \
+ lsb_addr_comp.o \
+ mk_auth.o \
+ mk_err.o \
+ mk_priv.o \
+ mk_req.o \
+ mk_safe.o \
+ month_sname.o \
+ name2name.o \
+ krb_net_read.o \
+ krb_net_write.o \
+ one.o \
+ parse_name.o \
+ rd_err.o \
+ rd_priv.o \
+ rd_req.o \
+ rd_safe.o \
+ read_service_key.o \
+ realm_parse.o \
+ recvauth.o \
+ rw.o \
+ save_credentials.o \
+ send_to_kdc.o \
+ sendauth.o \
+ solaris_compat.o \
+ stime.o \
+ str2key.o \
+ tf_util.o \
+ time.o \
+ tkt_string.o \
+ unparse_name.o \
+ verify_user.o \
+ $(LIBADD)
+
+LIBADD = \
+ base64.o \
+ concat.o \
+ flock.o \
+ gethostname.o \
+ gettimeofday.o \
+ getuid.o \
+ net_read.o \
+ net_write.o \
+ resolve.o \
+ snprintf.o \
+ strcasecmp.o \
+ strcat_truncate.o \
+ strcpy_truncate.o \
+ strdup.o \
+ strncasecmp.o \
+ strnlen.o \
+ strtok_r.o \
+ swab.o
+
+SHLIB_LIBADD = \
+ com_err.o \
+ error.o
+
+all: $(LIB) $(PROGS) all-local
Wall:
- make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
+ make CFLAGS="-g -Wall -Wno-comment -Wmissing-prototypes -Wmissing-declarations -D__USE_FIXED_PROTOTYPES__"
.c.o:
- $(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(PICFLAGS) $<
+ $(CC) -c $(DEFS) -I. -I../../include -I$(srcdir) $(CFLAGS) $(CPPFLAGS) $(PICFLAGS) $<
install: all
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) -m 0555 $(LIB) $(libdir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) -m 0555 $(LIB) $(DESTDIR)$(libdir)/$(LIB)
+ @install_symlink_command@
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)
+ @for i in $(inc_DATA); do \
+ echo " $(INSTALL_DATA) $$i $(DESTDIR)$(incdir)/$$i";\
+ $(INSTALL_DATA) $$i $(DESTDIR)$(incdir)/$$i; done
uninstall:
- rm -f $(libdir)/$(LIB)
+ rm -f $(DESTDIR)$(libdir)/$(LIB)
+ @for i in $(inc_DATA); do \
+ echo " rm -f $(DESTDIR)$(incdir)/$$i";\
+ rm -f $(DESTDIR)$(incdir)/$$i; done
TAGS: $(SOURCES)
etags $(SOURCES)
@@ -217,13 +270,14 @@ sizetest.o: sizetest.c
$(CC) -c $(CPPFLAGS) $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $<
sizetest$(EXECSUFFIX): sizetest.o
- $(CC) $(LD_FLAGS) $(LDFLAGS) -o $@ sizetest.o
+ $(LINK) $(LD_FLAGS) $(LDFLAGS) -o $@ sizetest.o
check: sizetest$(EXECSUFFIX)
./sizetest$(EXECSUFFIX)
clean:
- rm -f $(LIB) *.o *.a krb_err.c krb_err.h $(PROGS)
+ rm -f $(LIB) *.o *.a *.so *.so.* so_locations \
+ krb_err.c krb_err.h $(PROGS) $(EXTRA_SOURCE) $(SHLIB_EXTRA_SOURCE)
mostlyclean: clean
@@ -233,37 +287,77 @@ distclean: clean
realclean: distclean
rm -f TAGS
-dist: $(DISTFILES)
- for file in $(DISTFILES); do \
- ln $$file ../`cat ../.fname`/lib \
- || cp -p $$file ../`cat ../.fname`/lib; \
- done
-
$(LIBNAME).a: $(OBJECTS)
rm -f $@
$(AR) cr $@ $(OBJECTS)
-$(RANLIB) $@
-$(LIBNAME).$(SHLIBEXT): $(OBJECTS) $(LDOBJ)
+$(LIBNAME).$(SHLIBEXT): $(OBJECTS) $(SHLIB_LIBADD)
rm -f $@
- $(LDSHARED) -o $@ $(OBJECTS) $(LDOBJ) $(LIBDES)
+ $(LDSHARED) -o $@ $(OBJECTS) $(SHLIB_LIBADD) $(LIB_DEPS)
+ @build_symlink_command@
krb_err.c krb_err.h: krb_err.et
- test -r krb_err.et || (rm -f krb_err.et && $(LN_S) $(srcdir)/krb_err.et .)
- $(COMPILE_ET) krb_err.et
-
+ $(COMPILE_ET) $(srcdir)/krb_err.et
+
+# this doesn't work with parallel makes
+#$(EXTRA_SOURCE):
+# for i in $(EXTRA_SOURCE); do \
+# test -f $$i || $(LN_S) $(srcdir)/../roken/$$i .; \
+# done
+
+base64.c:
+ $(LN_S) $(srcdir)/../roken/base64.c .
+concat.c:
+ $(LN_S) $(srcdir)/../roken/concat.c .
+flock.c:
+ $(LN_S) $(srcdir)/../roken/flock.c .
+gethostname.c:
+ $(LN_S) $(srcdir)/../roken/gethostname.c .
+gettimeofday.c:
+ $(LN_S) $(srcdir)/../roken/gettimeofday.c .
+getuid.c:
+ $(LN_S) $(srcdir)/../roken/getuid.c .
snprintf.c:
$(LN_S) $(srcdir)/../roken/snprintf.c .
-
+strcasecmp.c:
+ $(LN_S) $(srcdir)/../roken/strcasecmp.c .
+strcat_truncate.c:
+ $(LN_S) $(srcdir)/../roken/strcat_truncate.c .
+strcpy_truncate.c:
+ $(LN_S) $(srcdir)/../roken/strcpy_truncate.c .
+strncasecmp.c:
+ $(LN_S) $(srcdir)/../roken/strncasecmp.c .
+strnlen.c:
+ $(LN_S) $(srcdir)/../roken/strnlen.c .
strdup.c:
$(LN_S) $(srcdir)/../roken/strdup.c .
-
strtok_r.c:
$(LN_S) $(srcdir)/../roken/strtok_r.c .
+swab.c:
+ $(LN_S) $(srcdir)/../roken/swab.c .
+resolve.c:
+ $(LN_S) $(srcdir)/../roken/resolve.c .
+net_read.c:
+ $(LN_S) $(srcdir)/../roken/net_read.c .
+net_write.c:
+ $(LN_S) $(srcdir)/../roken/net_write.c .
+com_err.c:
+ $(LN_S) $(srcdir)/../com_err/com_err.c .
+error.c:
+ $(LN_S) $(srcdir)/../com_err/error.c .
-strcasecmp.c:
- $(LN_S) $(srcdir)/../roken/strcasecmp.c .
$(OBJECTS): ../../include/config.h
-$(OBJECTS): krb_locl.h krb.h krb_err.h
-one.o: ../../include/version.h
+$(OBJECTS): krb_locl.h krb.h
+rw.o: ../../include/version.h
+
+all-local: $(inc_DATA)
+ @for i in $(inc_DATA); do \
+ if cmp -s $$i $(idir)/$$i 2> /dev/null ; then :; else\
+ echo " $(INSTALL_DATA) $$i $(idir)/$$i"; \
+ $(INSTALL_DATA) $$i $(idir)/$$i; \
+ fi ; \
+ done
+
+.PHONY: all Wall install uninstall check clean mostlyclean distclean realclean all-local
diff --git a/crypto/kerberosIV/lib/krb/cr_err_reply.c b/crypto/kerberosIV/lib/krb/cr_err_reply.c
index 2c1956a..3e82659 100644
--- a/crypto/kerberosIV/lib/krb/cr_err_reply.c
+++ b/crypto/kerberosIV/lib/krb/cr_err_reply.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: cr_err_reply.c,v 1.9 1997/04/01 08:18:19 joda Exp $");
+RCSID("$Id: cr_err_reply.c,v 1.10 1998/06/09 19:25:16 joda Exp $");
/*
* This routine is used by the Kerberos authentication server to
@@ -74,26 +74,54 @@ RCSID("$Id: cr_err_reply.c,v 1.9 1997/04/01 08:18:19 joda Exp $");
* string e_string error text
*/
-void
+int
cr_err_reply(KTEXT pkt, char *pname, char *pinst, char *prealm,
u_int32_t time_ws, u_int32_t e, char *e_string)
{
unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_ERR_REPLY, p, 1);
+ int tmp;
+ size_t rem = sizeof(pkt->dat);
+
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(AUTH_MSG_ERR_REPLY, p, rem, 1);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
if (pname == NULL) pname = "";
if (pinst == NULL) pinst = "";
if (prealm == NULL) prealm = "";
- p += krb_put_nir(pname, pinst, prealm, p);
-
- p += krb_put_int(time_ws, p, 4);
+ tmp = krb_put_nir(pname, pinst, prealm, p, rem);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(time_ws, p, rem, 4);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(e, p, 4);
+ tmp = krb_put_int(e, p, rem, 4);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_string(e_string, p);
+ tmp = krb_put_string(e_string, p, rem);
+ if (tmp < 0)
+ return -1;
+ p += tmp;
+ rem -= tmp;
pkt->length = p - pkt->dat;
+ return 0;
}
diff --git a/crypto/kerberosIV/lib/krb/create_auth_reply.c b/crypto/kerberosIV/lib/krb/create_auth_reply.c
index 4976c46..f10d34c 100644
--- a/crypto/kerberosIV/lib/krb/create_auth_reply.c
+++ b/crypto/kerberosIV/lib/krb/create_auth_reply.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: create_auth_reply.c,v 1.11 1997/04/01 08:18:20 joda Exp $");
+RCSID("$Id: create_auth_reply.c,v 1.14 1998/06/13 00:06:59 assar Exp $");
/*
* This routine is called by the Kerberos authentication server
@@ -98,32 +98,65 @@ create_auth_reply(char *pname, /* Principal's name */
KTEXT pkt = &pkt_st;
unsigned char *p = pkt->dat;
+ int tmp;
+ size_t rem = sizeof(pkt->dat);
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_KDC_REPLY, p, 1);
-
- if(n != 0){
- /* barf on old code */
- krb_warning("create_auth_reply: don't give me no krb3 crap!"
- " (n == %d)\n", n);
+ if(n != 0)
+ return NULL;
+
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
return NULL;
- }
+ p += tmp;
+ rem -= tmp;
+ tmp = krb_put_int(AUTH_MSG_KDC_REPLY, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_nir(pname, pinst, prealm, p);
+ tmp = krb_put_nir(pname, pinst, prealm, p, rem);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(time_ws, p, 4);
+ tmp = krb_put_int(time_ws, p, rem, 4);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(n, p, 1);
+ tmp = krb_put_int(n, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(x_date, p, 4);
+ tmp = krb_put_int(x_date, p, rem, 4);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(kvno, p, 1);
+ tmp = krb_put_int(kvno, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(cipher->length, p, 2);
+ tmp = krb_put_int(cipher->length, p, rem, 2);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+ if (rem < cipher->length)
+ return NULL;
memcpy(p, cipher->dat, cipher->length);
p += cipher->length;
+ rem -= cipher->length;
pkt->length = p - pkt->dat;
diff --git a/crypto/kerberosIV/lib/krb/create_ciph.c b/crypto/kerberosIV/lib/krb/create_ciph.c
index 27d27ff..c22f01e 100644
--- a/crypto/kerberosIV/lib/krb/create_ciph.c
+++ b/crypto/kerberosIV/lib/krb/create_ciph.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: create_ciph.c,v 1.9 1997/04/01 08:18:20 joda Exp $");
+RCSID("$Id: create_ciph.c,v 1.12 1998/07/24 06:32:53 assar Exp $");
/*
* This routine is used by the authentication server to create
@@ -91,23 +91,53 @@ create_ciph(KTEXT c, /* Text block to hold ciphertext */
{
unsigned char *p = c->dat;
+ size_t rem = sizeof(c->dat);
+ int tmp;
memset(c, 0, sizeof(KTEXT_ST));
+ if (rem < 8)
+ return KFAILURE;
memcpy(p, session, 8);
p += 8;
+ rem -= 8;
- p += krb_put_nir(service, instance, realm, p);
+ tmp = krb_put_nir(service, instance, realm, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
- p += krb_put_int(life, p, 1);
- p += krb_put_int(kvno, p, 1);
+ tmp = krb_put_int(life, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(kvno, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(tkt->length, p, 1);
+ tmp = krb_put_int(tkt->length, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+ if (rem < tkt->length)
+ return KFAILURE;
memcpy(p, tkt->dat, tkt->length);
p += tkt->length;
+ rem -= tkt->length;
- p += krb_put_int(kdc_time, p, 4);
+ tmp = krb_put_int(kdc_time, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
/* multiple of eight bytes */
c->length = (p - c->dat + 7) & ~7;
diff --git a/crypto/kerberosIV/lib/krb/create_death_packet.c b/crypto/kerberosIV/lib/krb/create_death_packet.c
index f74ba30..ddc4c9a 100644
--- a/crypto/kerberosIV/lib/krb/create_death_packet.c
+++ b/crypto/kerberosIV/lib/krb/create_death_packet.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: create_death_packet.c,v 1.8 1997/04/01 08:18:21 joda Exp $");
+RCSID("$Id: create_death_packet.c,v 1.9 1998/06/09 19:25:17 joda Exp $");
/*
* This routine creates a packet to type AUTH_MSG_DIE which is sent to
@@ -74,11 +74,29 @@ krb_create_death_packet(char *a_name)
KTEXT pkt = &pkt_st;
unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_DIE, p, 1);
-
- p += krb_put_string(a_name, p);
+ int tmp;
+ int rem = sizeof(pkt->dat);
+
+ pkt->length = 0;
+
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(AUTH_MSG_DIE, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_string(a_name, p, rem);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
pkt->length = p - pkt->dat;
return pkt;
}
diff --git a/crypto/kerberosIV/lib/krb/create_ticket.c b/crypto/kerberosIV/lib/krb/create_ticket.c
index b469232..822cfbb 100644
--- a/crypto/kerberosIV/lib/krb/create_ticket.c
+++ b/crypto/kerberosIV/lib/krb/create_ticket.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: create_ticket.c,v 1.12 1997/04/01 08:18:21 joda Exp $");
+RCSID("$Id: create_ticket.c,v 1.13 1998/06/09 19:25:17 joda Exp $");
/*
* Create ticket takes as arguments information that should be in a
@@ -103,21 +103,52 @@ krb_create_ticket(KTEXT tkt, /* Gets filled in by the ticket */
des_cblock *key) /* Service's secret key */
{
unsigned char *p = tkt->dat;
+ int tmp;
+ size_t rem = sizeof(tkt->dat);
memset(tkt, 0, sizeof(KTEXT_ST));
- p += krb_put_int(flags, p, 1);
- p += krb_put_nir(pname, pinstance, prealm, p);
+ tmp = krb_put_int(flags, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_nir(pname, pinstance, prealm, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_address(paddress, p);
+ tmp = krb_put_address(paddress, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+ if (rem < 8)
+ return KFAILURE;
memcpy(p, session, 8);
p += 8;
+ rem -= 8;
+
+ tmp = krb_put_int(life, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(life, p, 1);
- p += krb_put_int(time_sec, p, 4);
+ tmp = krb_put_int(time_sec, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_nir(sname, sinstance, NULL, p);
+ tmp = krb_put_nir(sname, sinstance, NULL, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
/* multiple of eight bytes */
tkt->length = (p - tkt->dat + 7) & ~7;
diff --git a/crypto/kerberosIV/lib/krb/debug_decl.c b/crypto/kerberosIV/lib/krb/debug_decl.c
index 5358bcb..5cbab77 100644
--- a/crypto/kerberosIV/lib/krb/debug_decl.c
+++ b/crypto/kerberosIV/lib/krb/debug_decl.c
@@ -21,9 +21,24 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: debug_decl.c,v 1.6 1997/03/23 03:53:07 joda Exp $");
+RCSID("$Id: debug_decl.c,v 1.10 1999/06/16 15:10:38 joda Exp $");
/* Declare global debugging variables. */
int krb_ap_req_debug = 0;
int krb_debug = 0;
+int krb_dns_debug = 0;
+
+int
+krb_enable_debug(void)
+{
+ krb_ap_req_debug = krb_debug = krb_dns_debug = 1;
+ return 0;
+}
+
+int
+krb_disable_debug(void)
+{
+ krb_ap_req_debug = krb_debug = krb_dns_debug = 0;
+ return 0;
+}
diff --git a/crypto/kerberosIV/lib/krb/decomp_ticket.c b/crypto/kerberosIV/lib/krb/decomp_ticket.c
index 8e556a3..b62e978 100644
--- a/crypto/kerberosIV/lib/krb/decomp_ticket.c
+++ b/crypto/kerberosIV/lib/krb/decomp_ticket.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: decomp_ticket.c,v 1.16 1997/04/01 08:18:22 joda Exp $");
+RCSID("$Id: decomp_ticket.c,v 1.19 1998/11/22 09:42:36 assar Exp $");
/*
* This routine takes a ticket and pointers to the variables that
@@ -82,19 +82,22 @@ decomp_ticket(KTEXT tkt, /* The ticket to be decoded */
*flags = *p++;
- little_endian = (*flags >> K_FLAG_ORDER) & 1;
+ little_endian = *flags & 1;
if(strlen((char*)p) > ANAME_SZ)
return KFAILURE;
- p += krb_get_string(p, pname);
+ p += krb_get_string(p, pname, ANAME_SZ);
if(strlen((char*)p) > INST_SZ)
return KFAILURE;
- p += krb_get_string(p, pinstance);
+ p += krb_get_string(p, pinstance, INST_SZ);
if(strlen((char*)p) > REALM_SZ)
return KFAILURE;
- p += krb_get_string(p, prealm);
+ p += krb_get_string(p, prealm, REALM_SZ);
+
+ if (*prealm == '\0')
+ krb_get_lrealm (prealm, 1);
if(tkt->length - (p - tkt->dat) < 8 + 1 + 4)
return KFAILURE;
@@ -109,11 +112,11 @@ decomp_ticket(KTEXT tkt, /* The ticket to be decoded */
if(strlen((char*)p) > SNAME_SZ)
return KFAILURE;
- p += krb_get_string(p, sname);
+ p += krb_get_string(p, sname, SNAME_SZ);
if(strlen((char*)p) > INST_SZ)
return KFAILURE;
- p += krb_get_string(p, sinstance);
+ p += krb_get_string(p, sinstance, INST_SZ);
return KSUCCESS;
}
diff --git a/crypto/kerberosIV/lib/krb/dllmain.c b/crypto/kerberosIV/lib/krb/dllmain.c
index e98b7dc..9d653cd 100644
--- a/crypto/kerberosIV/lib/krb/dllmain.c
+++ b/crypto/kerberosIV/lib/krb/dllmain.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -45,7 +45,7 @@
#include "ticket_memory.h"
#include <Windows.h>
-RCSID("$Id: dllmain.c,v 1.6 1997/05/02 14:29:13 assar Exp $");
+RCSID("$Id: dllmain.c,v 1.8 1998/07/13 14:29:33 assar Exp $");
void
msg(char *text, int error)
@@ -55,12 +55,28 @@ msg(char *text, int error)
asprintf (&buf, "%s\nAn error of type: %d", text, error);
MessageBox(GetActiveWindow(),
- buf ? buf : "can't tell you",
+ buf ? buf : "Out of memory!",
"kerberos message",
MB_OK|MB_APPLMODAL);
free (buf);
}
+void
+PostUpdateMessage(void)
+{
+ HWND hWnd;
+ static UINT km_message;
+
+ if(km_message == 0)
+ km_message = RegisterWindowMessage("krb4-update-cache");
+
+ hWnd = FindWindow("KrbManagerWndClass", NULL);
+ if (hWnd == NULL)
+ hWnd = HWND_BROADCAST;
+ PostMessage(hWnd, km_message, 0, 0);
+}
+
+
BOOL WINAPI
DllMain (HANDLE hInst,
ULONG reason,
@@ -90,35 +106,35 @@ DllMain (HANDLE hInst,
}
if(GetLastError() != ERROR_ALREADY_EXISTS)
{
- STARTUPINFO s =
- {
+ STARTUPINFO s = {
sizeof(s),
- 0,
- 0,
- 0,
+ NULL,
+ NULL,
+ NULL,
0,0,
0,0,
0,0,
0,
- 0,
- 0,
- 0,0,
- 0,0,0};
+ STARTF_USESHOWWINDOW,
+ SW_SHOWMINNOACTIVE,
+ 0, NULL,
+ NULL, NULL, NULL
+ };
- s.dwFlags = STARTF_USESHOWWINDOW;
- s.wShowWindow = SW_HIDE;
if(!CreateProcess(0,"krbmanager",
0,0,FALSE,0,0,
- 0,&s, &p))
- {
- msg("Unable to create kerberos manager process.\n"
+ 0,&s, &p)) {
+#if 0
+ msg("Unable to create Kerberos manager process.\n"
"Make sure krbmanager.exe is in your PATH.",
GetLastError());
return FALSE;
+#endif
}
}
break;
case DLL_PROCESS_DETACH:
+ /* should this really be done here? */
freeTktMem(0);
WSACleanup();
break;
diff --git a/crypto/kerberosIV/lib/krb/extra.c b/crypto/kerberosIV/lib/krb/extra.c
new file mode 100644
index 0000000..eb13c43
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/extra.c
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: extra.c,v 1.6 1998/07/24 07:18:47 assar Exp $");
+
+struct value {
+ char *variable;
+ char *value;
+ struct value *next;
+};
+
+static struct value *_extra_values;
+
+static int _krb_extra_read = 0;
+
+static int
+define_variable(const char *variable, const char *value)
+{
+ struct value *e;
+ e = malloc(sizeof(*e));
+ if(e == NULL)
+ return ENOMEM;
+ e->variable = strdup(variable);
+ if(e->variable == NULL) {
+ free(e);
+ return ENOMEM;
+ }
+ e->value = strdup(value);
+ if(e->value == NULL) {
+ free(e->variable);
+ free(e);
+ return ENOMEM;
+ }
+ e->next = _extra_values;
+ _extra_values = e;
+ return 0;
+}
+
+#ifndef WIN32
+
+struct obsolete {
+ const char *from;
+ const char *to;
+} obsolete [] = {
+ { "KDC_TIMESYNC", "kdc_timesync" },
+ { "KRB_REVERSE_DIRECTION", "reverse_lsb_test"},
+ { "krb4_proxy", "krb4_proxy"},
+ { NULL, NULL }
+};
+
+static void
+check_obsolete(void)
+{
+ struct obsolete *r;
+ for(r = obsolete; r->from; r++) {
+ if(getenv(r->from)) {
+ krb_warning("The environment variable `%s' is obsolete;\n"
+ "set `%s' in your `krb.extra' file instead\n",
+ r->from, r->to);
+ define_variable(r->to, getenv(r->from));
+ }
+ }
+}
+
+static int
+read_extra_file(void)
+{
+ int i = 0;
+ char file[128];
+ char line[1024];
+ if(_krb_extra_read)
+ return 0;
+ _krb_extra_read = 1;
+ check_obsolete();
+ while(krb_get_krbextra(i++, file, sizeof(file)) == 0) {
+ FILE *f = fopen(file, "r");
+ if(f == NULL)
+ continue;
+ while(fgets(line, sizeof(line), f)) {
+ char *var, *tmp, *val;
+
+ /* skip initial whitespace */
+ var = line + strspn(line, " \t");
+ /* skip non-whitespace */
+ tmp = var + strcspn(var, " \t=");
+ /* skip whitespace */
+ val = tmp + strspn(tmp, " \t=");
+ *tmp = '\0';
+ tmp = val + strcspn(val, " \t\n");
+ *tmp = '\0';
+ if(*var == '\0' || *var == '#' || *val == '\0')
+ continue;
+ if(krb_debug)
+ krb_warning("%s: setting `%s' to `%s'\n", file, var, val);
+ define_variable(var, val);
+ }
+ fclose(f);
+ return 0;
+ }
+ return ENOENT;
+}
+
+#else /* WIN32 */
+
+static int
+read_extra_file(void)
+{
+ char name[1024], data[1024];
+ DWORD name_sz, data_sz;
+ DWORD type;
+ int num = 0;
+ HKEY reg_key;
+
+ if(_krb_extra_read)
+ return 0;
+ _krb_extra_read = 1;
+
+ if(RegCreateKey(HKEY_CURRENT_USER, "krb4", &reg_key) != 0)
+ return -1;
+
+
+ while(1) {
+ name_sz = sizeof(name);
+ data_sz = sizeof(data);
+ if(RegEnumValue(reg_key,
+ num++,
+ name,
+ &name_sz,
+ NULL,
+ &type,
+ data,
+ &data_sz) != 0)
+ break;
+ if(type == REG_SZ)
+ define_variable(name, data);
+ }
+ RegCloseKey(reg_key);
+ return 0;
+}
+
+#endif
+
+static const char*
+find_variable(const char *variable)
+{
+ struct value *e;
+ for(e = _extra_values; e; e = e->next) {
+ if(strcasecmp(variable, e->variable) == 0)
+ return e->value;
+ }
+ return NULL;
+}
+
+const char *
+krb_get_config_string(const char *variable)
+{
+ read_extra_file();
+ return find_variable(variable);
+}
+
+int
+krb_get_config_bool(const char *variable)
+{
+ const char *value = krb_get_config_string(variable);
+ if(value == NULL)
+ return 0;
+ return strcasecmp(value, "yes") == 0 ||
+ strcasecmp(value, "true") == 0 ||
+ atoi(value);
+}
diff --git a/crypto/kerberosIV/lib/krb/get_ad_tkt.c b/crypto/kerberosIV/lib/krb/get_ad_tkt.c
index 9590760..a10018e 100644
--- a/crypto/kerberosIV/lib/krb/get_ad_tkt.c
+++ b/crypto/kerberosIV/lib/krb/get_ad_tkt.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: get_ad_tkt.c,v 1.16 1997/05/30 17:43:34 bg Exp $");
+RCSID("$Id: get_ad_tkt.c,v 1.20 1998/11/22 09:42:55 assar Exp $");
/*
* get_ad_tkt obtains a new service ticket from Kerberos, using
@@ -86,6 +86,8 @@ get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
u_int32_t time_ws = 0;
int kerror;
unsigned char *p;
+ size_t rem;
+ int tmp;
/*
* First check if we have a "real" TGT for the corresponding
@@ -93,9 +95,9 @@ get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
*/
kerror = krb_get_cred(KRB_TICKET_GRANTING_TICKET, realm, realm, &cr);
- if (kerror == KSUCCESS)
- strncpy(lrealm, realm, REALM_SZ);
- else
+ if (kerror == KSUCCESS) {
+ strcpy_truncate(lrealm, realm, REALM_SZ);
+ } else
kerror = krb_get_tf_realm(TKT_FILE, lrealm);
if (kerror != KSUCCESS)
@@ -119,11 +121,12 @@ get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
else{
if ((kerror =
get_ad_tkt(KRB_TICKET_GRANTING_TICKET,
- realm, lrealm, lifetime)) != KSUCCESS)
+ realm, lrealm, lifetime)) != KSUCCESS) {
if (kerror == KDC_PR_UNKNOWN)
return(AD_INTR_RLM_NOTGT);
else
return(kerror);
+ }
if ((kerror = krb_get_cred(KRB_TICKET_GRANTING_TICKET,
realm, lrealm, &cr)) != KSUCCESS)
return(kerror);
@@ -144,10 +147,25 @@ get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
return(AD_NOTGT);
p = pkt->dat + pkt->length;
-
- p += krb_put_int(time_ws, p, 4);
- p += krb_put_int(lifetime, p, 1);
- p += krb_put_nir(service, sinstance, NULL, p);
+ rem = sizeof(pkt->dat) - pkt->length;
+
+ tmp = krb_put_int(time_ws, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(lifetime, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_nir(service, sinstance, NULL, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
pkt->length = p - pkt->dat;
rpkt->length = 0;
@@ -176,7 +194,7 @@ get_ad_tkt(char *service, char *sinstance, char *realm, int lifetime)
strcmp(cred.realm, realm)) /* not what we asked for */
return INTK_ERR; /* we need a better code here XXX */
- gettimeofday(&tv, NULL);
+ krb_kdctimeofday(&tv);
if (abs((int)(tv.tv_sec - cred.issue_date)) > CLOCK_SKEW) {
return RD_AP_TIME; /* XXX should probably be better code */
}
diff --git a/crypto/kerberosIV/lib/krb/get_cred.c b/crypto/kerberosIV/lib/krb/get_cred.c
index 1a0016c..085184b 100644
--- a/crypto/kerberosIV/lib/krb/get_cred.c
+++ b/crypto/kerberosIV/lib/krb/get_cred.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: get_cred.c,v 1.6 1997/05/30 17:38:29 bg Exp $");
+RCSID("$Id: get_cred.c,v 1.7 1997/12/15 17:12:55 assar Exp $");
/*
* krb_get_cred takes a service name, instance, and realm, and a
@@ -41,7 +41,7 @@ krb_get_cred(char *service, /* Service name */
int tf_status; /* return value of tf function calls */
CREDENTIALS cr;
- if (c == 0)
+ if (c == NULL)
c = &cr;
/* Open ticket file and lock it for shared reading */
diff --git a/crypto/kerberosIV/lib/krb/get_default_principal.c b/crypto/kerberosIV/lib/krb/get_default_principal.c
index 3a111ea..f9e18a1 100644
--- a/crypto/kerberosIV/lib/krb/get_default_principal.c
+++ b/crypto/kerberosIV/lib/krb/get_default_principal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,14 +38,13 @@
#include "krb_locl.h"
-RCSID("$Id: get_default_principal.c,v 1.10 1997/04/01 08:18:28 joda Exp $");
+RCSID("$Id: get_default_principal.c,v 1.12 1999/03/13 21:24:51 assar Exp $");
int
krb_get_default_principal(char *name, char *instance, char *realm)
{
char *file;
int ret;
-
char *p;
if ((file = getenv("KRBTKFILE")) == NULL)
@@ -58,7 +57,6 @@ krb_get_default_principal(char *name, char *instance, char *realm)
p = getenv("KRB4PRINCIPAL");
if(p && kname_parse(name, instance, realm, p) == KSUCCESS)
return 1;
-
#ifdef HAVE_PWD_H
{
@@ -68,11 +66,11 @@ krb_get_default_principal(char *name, char *instance, char *realm)
return -1;
}
- strcpy(name, pw->pw_name);
- strcpy(instance, "");
+ strcpy_truncate (name, pw->pw_name, ANAME_SZ);
+ strcpy_truncate (instance, "", INST_SZ);
krb_get_lrealm(realm, 1);
- if(strcmp(name, "root") == 0){
+ if(strcmp(name, "root") == 0) {
p = NULL;
#if defined(HAVE_GETLOGIN) && !defined(POSIX_GETLOGIN)
p = getlogin();
@@ -82,13 +80,13 @@ krb_get_default_principal(char *name, char *instance, char *realm)
if(p == NULL)
p = getenv("LOGNAME");
if(p){
- strncpy (name, p, ANAME_SZ);
- name[ANAME_SZ - 1] = '\0';
- strcpy(instance, "root");
+ strcpy_truncate (name, p, ANAME_SZ);
+ strcpy_truncate (instance, "root", INST_SZ);
}
}
return 1;
}
-#endif
+#else
return -1;
+#endif
}
diff --git a/crypto/kerberosIV/lib/krb/get_host.c b/crypto/kerberosIV/lib/krb/get_host.c
index de80ac4..aa5fb51 100644
--- a/crypto/kerberosIV/lib/krb/get_host.c
+++ b/crypto/kerberosIV/lib/krb/get_host.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: get_host.c,v 1.30 1997/05/02 14:29:13 assar Exp $");
+RCSID("$Id: get_host.c,v 1.45 1999/06/29 21:18:02 bg Exp $");
static struct host_list {
struct krb_host *this;
@@ -63,29 +63,42 @@ free_hosts(struct host_list *h)
}
static int
-parse_address(char *address, int *proto, char **host, int *port)
+parse_address(char *address, enum krb_host_proto *proto,
+ char **host, int *port)
{
char *p, *q;
- p = strchr(address, '/');
- *proto = IPPROTO_UDP;
- if(p){
- char prot[32];
- struct protoent *pp;
- strncpy(prot, address, p - address);
- prot[p - address] = 0;
- if((pp = getprotobyname(prot)))
- *proto = pp->p_proto;
- else
- krb_warning("Bad protocol name `%s', Using default `udp'.\n",
- prot);
- p++;
- }else
- p = address;
+ int default_port = krb_port;
+ *proto = PROTO_UDP;
+ if(strncmp(address, "http://", 7) == 0){
+ p = address + 7;
+ *proto = PROTO_HTTP;
+ default_port = 80;
+ }else{
+ p = strchr(address, '/');
+ if(p){
+ char prot[32];
+ strcpy_truncate (prot, address,
+ min(p - address + 1, sizeof(prot)));
+ if(strcasecmp(prot, "udp") == 0)
+ *proto = PROTO_UDP;
+ else if(strcasecmp(prot, "tcp") == 0)
+ *proto = PROTO_TCP;
+ else if(strcasecmp(prot, "http") == 0) {
+ *proto = PROTO_HTTP;
+ default_port = 80;
+ } else
+ krb_warning("Unknown protocol `%s', Using default `udp'.\n",
+ prot);
+ p++;
+ }else
+ p = address;
+ }
q = strchr(p, ':');
- if(q){
- *host = (char*)malloc(q - p + 1);
- strncpy(*host, p, q - p);
- (*host)[q - p] = 0;
+ if(q) {
+ *host = malloc(q - p + 1);
+ if (*host == NULL)
+ return -1;
+ strcpy_truncate (*host, p, q - p + 1);
q++;
{
struct servent *sp = getservbyname(q, NULL);
@@ -98,25 +111,49 @@ parse_address(char *address, int *proto, char **host, int *port)
*port = krb_port;
}
}
- }else{
- *host = strdup(p);
- *port = krb_port;
+ } else {
+ *port = default_port;
+ q = strchr(p, '/');
+ if (q) {
+ *host = malloc(q - p + 1);
+ if (*host == NULL)
+ return -1;
+ strcpy_truncate (*host, p, q - p + 1);
+ } else {
+ *host = strdup(p);
+ if(*host == NULL)
+ return -1;
+ }
}
return 0;
}
static int
-add_host(char *realm, char *address, int admin, int validate)
+add_host(const char *realm, char *address, int admin, int validate)
{
struct krb_host *host;
struct host_list *p, **last = &hosts;
+
host = (struct krb_host*)malloc(sizeof(struct krb_host));
- parse_address(address, &host->proto, &host->host, &host->port);
- if(validate && gethostbyname(host->host) == NULL){
- free(host->host);
+ if (host == NULL)
+ return 1;
+ if(parse_address(address, &host->proto, &host->host, &host->port) < 0) {
free(host);
return 1;
}
+ if (validate) {
+ if (krb_dns_debug)
+ krb_warning("Getting host entry for %s...", host->host);
+ if (gethostbyname(host->host) == NULL) {
+ if (krb_dns_debug)
+ krb_warning("Didn't get it.\n");
+ free(host->host);
+ free(host);
+ return 1;
+ }
+ else if (krb_dns_debug)
+ krb_warning("Got it.\n");
+ }
host->admin = admin;
for(p = hosts; p; p = p->next){
if(strcmp(realm, p->this->realm) == 0 &&
@@ -130,57 +167,106 @@ add_host(char *realm, char *address, int admin, int validate)
last = &p->next;
}
host->realm = strdup(realm);
+ if (host->realm == NULL) {
+ free(host->host);
+ free(host);
+ return 1;
+ }
p = (struct host_list*)malloc(sizeof(struct host_list));
+ if (p == NULL) {
+ free(host->realm);
+ free(host->host);
+ free(host);
+ return 1;
+ }
p->this = host;
p->next = NULL;
*last = p;
return 0;
}
-
-
static int
read_file(const char *filename, const char *r)
{
char line[1024];
- char realm[1024];
- char address[1024];
- char scratch[1024];
- int n;
int nhosts = 0;
-
FILE *f = fopen(filename, "r");
+
if(f == NULL)
return -1;
- while(fgets(line, sizeof(line), f)){
- n = sscanf(line, "%s %s admin %s", realm, address, scratch);
- if(n == 2 || n == 3){
- if(strcmp(realm, r))
- continue;
- if(add_host(realm, address, n == 3, 0) == 0)
- nhosts++;
- }
+ while(fgets(line, sizeof(line), f) != NULL) {
+ char *realm, *address, *admin;
+ char *save;
+
+ realm = strtok_r (line, " \t\n\r", &save);
+ if (realm == NULL)
+ continue;
+ if (strcmp(realm, r))
+ continue;
+ address = strtok_r (NULL, " \t\n\r", &save);
+ if (address == NULL)
+ continue;
+ admin = strtok_r (NULL, " \t\n\r", &save);
+ if (add_host(realm,
+ address,
+ admin != NULL && strcasecmp(admin, "admin") == 0,
+ 0) == 0)
+ ++nhosts;
}
fclose(f);
return nhosts;
}
+#if 0
+static int
+read_cellservdb (const char *filename, const char *realm)
+{
+ char line[1024];
+ FILE *f = fopen (filename, "r");
+ int nhosts = 0;
+
+ if (f == NULL)
+ return -1;
+ while (fgets (line, sizeof(line), f) != NULL) {
+ if (line[0] == '>'
+ && strncasecmp (line + 1, realm, strlen(realm)) == 0) {
+ while (fgets (line, sizeof(line), f) != NULL && *line != '>') {
+ char *hash;
+
+ if (line [strlen(line) - 1] == '\n')
+ line [strlen(line) - 1] = '\0';
+
+ hash = strchr (line, '#');
+
+ if (hash != NULL
+ && add_host (realm, hash + 1, 0, 0) == 0)
+ ++nhosts;
+ }
+ break;
+ }
+ }
+ fclose (f);
+ return nhosts;
+}
+#endif
+
static int
init_hosts(char *realm)
{
- static const char *files[] = KRB_CNF_FILES;
- int i;
- char *dir = getenv("KRBCONFDIR");
+ int i, j, ret = 0;
+ char file[MaxPathLen];
+
+ /*
+ * proto should really be NULL, but there are libraries out there
+ * that don't like that so we use "udp" instead.
+ */
- krb_port = ntohs(k_getportbyname (KRB_SERVICE, NULL, htons(KRB_PORT)));
- if(dir){
- char file[MaxPathLen];
- if(k_concat(file, sizeof(file), dir, "/krb.conf", NULL) == 0)
- read_file(file, realm);
+ krb_port = ntohs(k_getportbyname (KRB_SERVICE, "udp", htons(KRB_PORT)));
+ for(i = 0; krb_get_krbconf(i, file, sizeof(file)) == 0; i++) {
+ j = read_file(file, realm);
+ if (j > 0) ret += j;
}
- for(i = 0; files[i]; i++)
- read_file(files[i], realm);
- return 0;
+ return ret;
}
static void
@@ -190,7 +276,7 @@ srv_find_realm(char *realm, char *proto, char *service)
struct dns_reply *r;
struct resource_record *rr;
- k_mconcat(&domain, 1024, service, ".", proto, ".", realm, ".", NULL);
+ roken_mconcat(&domain, 1024, service, ".", proto, ".", realm, ".", NULL);
if(domain == NULL)
return;
@@ -225,11 +311,11 @@ krb_get_host(int nth, char *realm, int admin)
{
struct host_list *p;
static char orealm[REALM_SZ];
+
if(orealm[0] == 0 || strcmp(realm, orealm)){
/* quick optimization */
if(realm && realm[0]){
- strncpy(orealm, realm, sizeof(orealm) - 1);
- orealm[sizeof(orealm) - 1] = 0;
+ strcpy_truncate (orealm, realm, sizeof(orealm));
}else{
int ret = krb_get_lrealm(orealm, 1);
if(ret != KSUCCESS)
@@ -241,32 +327,46 @@ krb_get_host(int nth, char *realm, int admin)
hosts = NULL;
}
- init_hosts(orealm);
-
- srv_find_realm(orealm, "udp", KRB_SERVICE);
- srv_find_realm(orealm, "tcp", KRB_SERVICE);
+ if (init_hosts(orealm) < nth) {
+ srv_find_realm(orealm, "udp", KRB_SERVICE);
+ srv_find_realm(orealm, "tcp", KRB_SERVICE);
+ srv_find_realm(orealm, "http", KRB_SERVICE);
- {
- /* XXX this assumes no one has more than 99999 kerberos
- servers */
- char host[REALM_SZ + sizeof("kerberos-XXXXX..")];
+ {
+ char *host;
int i = 0;
- sprintf(host, "kerberos.%s.", orealm);
+
+ asprintf(&host, "kerberos.%s.", orealm);
+ if (host == NULL) {
+ free_hosts(hosts);
+ hosts = NULL;
+ return NULL;
+ }
add_host(orealm, host, 1, 1);
- do{
+ do {
i++;
- sprintf(host, "kerberos-%d.%s.", i, orealm);
- }while(i < 100000 && add_host(orealm, host, 0, 1) == 0);
+ free(host);
+ asprintf(&host, "kerberos-%d.%s.", i, orealm);
+ } while(host != NULL
+ && i < 100000
+ && add_host(orealm, host, 0, 1) == 0);
+ free(host);
+ }
}
+#if 0
+ read_cellservdb ("/usr/vice/etc/CellServDB", orealm);
+ read_cellservdb ("/usr/arla/etc/CellServDB", orealm);
+#endif
}
for(p = hosts; p; p = p->next){
if(strcmp(orealm, p->this->realm) == 0 &&
- (!admin || p->this->admin))
+ (!admin || p->this->admin)) {
if(nth == 1)
return p->this;
else
nth--;
+ }
}
return NULL;
}
@@ -277,7 +377,7 @@ krb_get_krbhst(char *host, char *realm, int nth)
struct krb_host *p = krb_get_host(nth, realm, 0);
if(p == NULL)
return KFAILURE;
- strcpy(host, p->host);
+ strcpy_truncate (host, p->host, MaxHostNameLen);
return KSUCCESS;
}
@@ -287,6 +387,6 @@ krb_get_admhst(char *host, char *realm, int nth)
struct krb_host *p = krb_get_host(nth, realm, 1);
if(p == NULL)
return KFAILURE;
- strcpy(host, p->host);
+ strcpy_truncate (host, p->host, MaxHostNameLen);
return KSUCCESS;
}
diff --git a/crypto/kerberosIV/lib/krb/get_in_tkt.c b/crypto/kerberosIV/lib/krb/get_in_tkt.c
index 435632a..4336687 100644
--- a/crypto/kerberosIV/lib/krb/get_in_tkt.c
+++ b/crypto/kerberosIV/lib/krb/get_in_tkt.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: get_in_tkt.c,v 1.15 1997/03/23 03:53:08 joda Exp $");
+RCSID("$Id: get_in_tkt.c,v 1.23 1999/07/01 09:36:22 assar Exp $");
/*
* This file contains three routines: passwd_to_key() and
@@ -35,7 +35,10 @@ RCSID("$Id: get_in_tkt.c,v 1.15 1997/03/23 03:53:08 joda Exp $");
*/
int
-passwd_to_key(char *user, char *instance, char *realm, void *passwd,
+passwd_to_key(const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
des_cblock *key)
{
#ifndef NOENCRYPTION
@@ -44,13 +47,34 @@ passwd_to_key(char *user, char *instance, char *realm, void *passwd,
return 0;
}
+int
+passwd_to_5key(const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
+ des_cblock *key)
+{
+ char *p;
+ size_t len;
+ len = roken_mconcat (&p, 512, passwd, realm, user, instance, NULL);
+ if(len == 0)
+ return -1;
+ des_string_to_key(p, key);
+ memset(p, 0, len);
+ free(p);
+ return 0;
+}
+
int
-passwd_to_afskey(char *user, char *instance, char *realm, void *passwd,
- des_cblock *key)
+passwd_to_afskey(const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
+ des_cblock *key)
{
#ifndef NOENCRYPTION
- afs_string_to_key((char *)passwd, realm, key);
+ afs_string_to_key(passwd, realm, key);
#endif
return (0);
}
@@ -72,9 +96,21 @@ passwd_to_afskey(char *user, char *instance, char *realm, void *passwd,
* The result of the call to krb_get_in_tkt() is returned.
*/
+typedef int (*const_key_proc_t) __P((const char *name,
+ const char *instance, /* IN parameter */
+ const char *realm,
+ const void *password,
+ des_cblock *key));
+
int
-krb_get_pw_in_tkt(char *user, char *instance, char *realm, char *service,
- char *sinstance, int life, char *password)
+krb_get_pw_in_tkt2(const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ const char *password,
+ des_cblock *key)
{
char pword[100]; /* storage for the password */
int code;
@@ -88,12 +124,61 @@ krb_get_pw_in_tkt(char *user, char *instance, char *realm, char *service,
password = pword;
}
- code = krb_get_in_tkt(user,instance,realm,service,sinstance,life,
- passwd_to_key, NULL, password);
- if (code == INTK_BADPW)
- code = krb_get_in_tkt(user,instance,realm,service,sinstance,life,
- passwd_to_afskey, NULL, password);
+ {
+ KTEXT_ST as_rep;
+ CREDENTIALS cred;
+ int ret = 0;
+ const_key_proc_t key_procs[] = { passwd_to_key,
+ passwd_to_afskey,
+ passwd_to_5key,
+ NULL };
+ const_key_proc_t *kp;
+
+ code = krb_mk_as_req(user, instance, realm,
+ service, sinstance, life, &as_rep);
+ if(code)
+ return code;
+ for(kp = key_procs; *kp; kp++){
+ KTEXT_ST tmp;
+ memcpy(&tmp, &as_rep, sizeof(as_rep));
+ code = krb_decode_as_rep(user,
+ (char *)instance, /* const_key_proc_t */
+ realm,
+ service,
+ sinstance,
+ (key_proc_t)*kp, /* const_key_proc_t */
+ NULL,
+ password,
+ &tmp,
+ &cred);
+ if(code == 0){
+ if(key)
+ (**kp)(user, instance, realm, password, key);
+ break;
+ }
+ if(code != INTK_BADPW)
+ ret = code; /* this is probably a better code than
+ what code gets after this loop */
+ }
+ if(code)
+ return ret ? ret : code;
+
+ code = tf_setup(&cred, user, instance);
+ }
if (password == pword)
memset(pword, 0, sizeof(pword));
return(code);
}
+
+int
+krb_get_pw_in_tkt(const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ const char *password)
+{
+ return krb_get_pw_in_tkt2(user, instance, realm,
+ service, sinstance, life, password, NULL);
+}
diff --git a/crypto/kerberosIV/lib/krb/get_krbrlm.c b/crypto/kerberosIV/lib/krb/get_krbrlm.c
index 8c5b0c9..9c675f6 100644
--- a/crypto/kerberosIV/lib/krb/get_krbrlm.c
+++ b/crypto/kerberosIV/lib/krb/get_krbrlm.c
@@ -1,27 +1,44 @@
-/*
- Copyright (C) 1989 by the Massachusetts Institute of Technology
-
- Export of this software from the United States of America is assumed
- to require a specific license from the United States Government.
- It is the responsibility of any person or organization contemplating
- export to obtain such a license before exporting.
-
-WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
-distribute this software and its documentation for any purpose and
-without fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright notice and
-this permission notice appear in supporting documentation, and that
-the name of M.I.T. not be used in advertising or publicity pertaining
-to distribution of the software without specific, written prior
-permission. M.I.T. makes no representations about the suitability of
-this software for any purpose. It is provided "as is" without express
-or implied warranty.
-
- */
+/*
+ * Copyright (c) 1995, 1996, 1997, 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
#include "krb_locl.h"
-RCSID("$Id: get_krbrlm.c,v 1.16 1997/05/02 01:26:22 assar Exp $");
+RCSID("$Id: get_krbrlm.c,v 1.22.2.1 1999/09/02 08:51:04 joda Exp $");
/*
* krb_get_lrealm takes a pointer to a string, and a number, n. It fills
@@ -31,9 +48,6 @@ RCSID("$Id: get_krbrlm.c,v 1.16 1997/05/02 01:26:22 assar Exp $");
* config file does not exist, and if n=1, a successful return will occur
* with r = KRB_REALM (also defined in "krb.h").
*
- * NOTE: for archaic & compatibility reasons, this routine will only return
- * valid results when n = 1.
- *
* For the format of the KRB_CONF file, see comments describing the routine
* krb_get_krbhst().
*/
@@ -41,76 +55,88 @@ RCSID("$Id: get_krbrlm.c,v 1.16 1997/05/02 01:26:22 assar Exp $");
static int
krb_get_lrealm_f(char *r, int n, const char *fname)
{
+ char buf[1024];
+ char *p;
+ int nchar;
FILE *f;
int ret = KFAILURE;
+
+ if (n < 0)
+ return KFAILURE;
+ if(n == 0)
+ n = 1;
+
f = fopen(fname, "r");
- if(f){
- char buf[REALM_SZ];
- if(fgets(buf, sizeof(buf), f)){
- char *p = buf + strspn(buf, " \t");
- p[strcspn(p, " \t\r\n")] = 0;
- p[REALM_SZ - 1] = 0;
- strcpy(r, p);
- ret = KSUCCESS;
- }
- fclose(f);
- }
+ if (f == 0)
+ return KFAILURE;
+
+ for (; n > 0; n--)
+ if (fgets(buf, sizeof(buf), f) == 0)
+ goto done;
+
+ /* We now have the n:th line, remove initial white space. */
+ p = buf + strspn(buf, " \t");
+
+ /* Collect realmname. */
+ nchar = strcspn(p, " \t\n");
+ if (nchar == 0 || nchar > REALM_SZ)
+ goto done; /* No realmname */
+ strncpy(r, p, nchar);
+ r[nchar] = 0;
+
+ /* Does more junk follow? */
+ p += nchar;
+ nchar = strspn(p, " \t\n");
+ if (p[nchar] == 0)
+ ret = KSUCCESS; /* This was a realm name only line. */
+
+ done:
+ fclose(f);
return ret;
}
+static const char *no_default_realm = "NO.DEFAULT.REALM";
+
int
krb_get_lrealm(char *r, int n)
{
- static const char *const files[] = KRB_CNF_FILES;
- int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- if (n > 1)
- return(KFAILURE); /* Temporary restriction */
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
- if(k_concat(fname, sizeof(fname), dir, "/krb.conf", NULL) == 0)
- if (krb_get_lrealm_f(r, n, fname) == KSUCCESS)
+ int i;
+ char file[MaxPathLen];
+
+ for (i = 0; krb_get_krbconf(i, file, sizeof(file)) == 0; i++)
+ if (krb_get_lrealm_f(r, n, file) == KSUCCESS)
return KSUCCESS;
- }
- for (i = 0; files[i] != 0; i++)
- if (krb_get_lrealm_f(r, n, files[i]) == KSUCCESS)
- return KSUCCESS;
+ /* When nothing else works try default realm */
+ if (n == 1) {
+ char *t = krb_get_default_realm();
+
+ if (strcmp(t, no_default_realm) == 0)
+ return KFAILURE; /* Can't figure out default realm */
- /* If nothing else works try LOCALDOMAIN, if it exists */
- if (n == 1)
- {
- char *t, hostname[MaxHostNameLen];
- k_gethostname(hostname, sizeof(hostname));
- t = krb_realmofhost(hostname);
- if (t) {
- strcpy (r, t);
- return KSUCCESS;
- }
- t = strchr(hostname, '.');
- if (t == 0)
- return KFAILURE; /* No domain part, you loose */
-
- t++; /* Skip leading dot and upcase the rest */
- for (; *t; t++, r++)
- *r = toupper(*t);
- *r = 0;
- return(KSUCCESS);
+ strcpy(r, t);
+ return KSUCCESS;
}
- else
- return(KFAILURE);
+ else
+ return(KFAILURE);
}
-/* For SunOS5 compat. */
+/* Returns local realm if that can be figured out else NO.DEFAULT.REALM */
char *
krb_get_default_realm(void)
{
- static char local_realm[REALM_SZ]; /* local kerberos realm */
- if (krb_get_lrealm(local_realm, 1) != KSUCCESS)
- strcpy(local_realm, "NO.DEFAULT.REALM");
- return local_realm;
+ static char local_realm[REALM_SZ]; /* Local kerberos realm */
+
+ if (local_realm[0] == 0) {
+ char *t, hostname[MaxHostNameLen];
+
+ strcpy_truncate(local_realm, no_default_realm,
+ sizeof(local_realm)); /* Provide default */
+
+ gethostname(hostname, sizeof(hostname));
+ t = krb_realmofhost(hostname);
+ if (t && strcmp(t, no_default_realm) != 0)
+ strcpy_truncate(local_realm, t, sizeof(local_realm));
+ }
+ return local_realm;
}
diff --git a/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c b/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c
index c290524..daf7ae1 100644
--- a/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c
+++ b/crypto/kerberosIV/lib/krb/get_svc_in_tkt.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: get_svc_in_tkt.c,v 1.8 1997/03/23 03:53:09 joda Exp $");
+RCSID("$Id: get_svc_in_tkt.c,v 1.9 1999/06/29 21:18:04 bg Exp $");
/*
* This file contains two routines: srvtab_to_key(), which gets
@@ -47,7 +47,10 @@ RCSID("$Id: get_svc_in_tkt.c,v 1.8 1997/03/23 03:53:09 joda Exp $");
*/
int
-srvtab_to_key(char *user, char *instance, char *realm, void *srvtab,
+srvtab_to_key(const char *user,
+ char *instance,
+ const char *realm,
+ const void *srvtab,
des_cblock *key)
{
if (!srvtab)
diff --git a/crypto/kerberosIV/lib/krb/get_tf_fullname.c b/crypto/kerberosIV/lib/krb/get_tf_fullname.c
index 33733d0..7a103b6 100644
--- a/crypto/kerberosIV/lib/krb/get_tf_fullname.c
+++ b/crypto/kerberosIV/lib/krb/get_tf_fullname.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: get_tf_fullname.c,v 1.6 1997/03/23 03:53:10 joda Exp $");
+RCSID("$Id: get_tf_fullname.c,v 1.7 1998/06/09 19:25:19 joda Exp $");
/*
* This file contains a routine to extract the fullname of a user
@@ -51,12 +51,12 @@ krb_get_tf_fullname(char *ticket_file, char *name, char *instance, char *realm)
return (tf_status);
if (name)
- strcpy(name, c.pname);
+ strcpy_truncate (name, c.pname, ANAME_SZ);
if (instance)
- strcpy(instance, c.pinst);
+ strcpy_truncate (instance, c.pinst, INST_SZ);
if ((tf_status = tf_get_cred(&c)) == KSUCCESS) {
if (realm)
- strcpy(realm, c.realm);
+ strcpy_truncate (realm, c.realm, REALM_SZ);
}
else {
if (tf_status == EOF)
diff --git a/crypto/kerberosIV/lib/krb/getaddrs.c b/crypto/kerberosIV/lib/krb/getaddrs.c
index d25ec1b..069b8b7 100644
--- a/crypto/kerberosIV/lib/krb/getaddrs.c
+++ b/crypto/kerberosIV/lib/krb/getaddrs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,12 +38,19 @@
#include "krb_locl.h"
-RCSID("$Id: getaddrs.c,v 1.19 1997/04/01 08:18:29 joda Exp $");
+RCSID("$Id: getaddrs.c,v 1.26.2.1 1999/07/22 03:15:33 assar Exp $");
-#if defined(HAVE_SYS_IOCTL_H) && SunOS != 4
+#if defined(HAVE_SYS_IOCTL_H) && SunOS != 40
#include <sys/ioctl.h>
#endif
#ifdef HAVE_NET_IF_H
+#ifdef __osf__
+struct rtentry;
+struct mbuf;
+#endif
+#ifdef _AIX
+#undef __P /* XXX hack for AIX 4.3 */
+#endif
#include <net/if.h>
#endif
@@ -62,7 +69,7 @@ k_get_all_addrs (struct in_addr **l)
char name[MaxHostNameLen];
struct hostent *he;
- if (k_gethostname(name, sizeof(name)) < 0)
+ if (gethostname(name, sizeof(name)) < 0)
return -1;
he = gethostbyname (name);
if (he == NULL)
@@ -74,57 +81,75 @@ k_get_all_addrs (struct in_addr **l)
return 1;
#else
int fd;
- char buf[BUFSIZ];
+ char *inbuf = NULL;
+ size_t in_len = 8192;
struct ifreq ifreq;
struct ifconf ifconf;
int num, j;
char *p;
+ size_t sz;
+ *l = NULL;
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd < 0)
return -1;
- ifconf.ifc_len = sizeof(buf);
- ifconf.ifc_buf = buf;
- if(ioctl(fd, SIOCGIFCONF, &ifconf) < 0)
- return -1;
+ for(;;) {
+ void *tmp;
+
+ tmp = realloc (inbuf, in_len);
+ if (tmp == NULL)
+ goto fail;
+ inbuf = tmp;
+
+ ifconf.ifc_len = in_len;
+ ifconf.ifc_buf = inbuf;
+
+ if(ioctl(fd, SIOCGIFCONF, &ifconf) < 0)
+ goto fail;
+ if(ifconf.ifc_len + sizeof(ifreq) < in_len)
+ break;
+ in_len *= 2;
+ }
num = ifconf.ifc_len / sizeof(struct ifreq);
*l = malloc(num * sizeof(struct in_addr));
- if(*l == NULL) {
- close (fd);
- return -1;
- }
+ if(*l == NULL)
+ goto fail;
j = 0;
ifreq.ifr_name[0] = '\0';
- for (p = ifconf.ifc_buf; p < ifconf.ifc_buf + ifconf.ifc_len;) {
+ for (p = ifconf.ifc_buf; p < ifconf.ifc_buf + ifconf.ifc_len; p += sz) {
struct ifreq *ifr = (struct ifreq *)p;
-#ifdef SOCKADDR_HAS_SA_LEN
- size_t sz = sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len;
-#else
- size_t sz = sizeof(*ifr);
+ sz = sizeof(*ifr);
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ sz = max(sz, sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len);
#endif
+
if(strncmp(ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name))) {
- if(ioctl(fd, SIOCGIFFLAGS, ifr) < 0) {
- close (fd);
- free (*l);
- return -1;
- }
- if (ifr->ifr_flags & IFF_UP) {
- if(ioctl(fd, SIOCGIFADDR, ifr) < 0) {
- close (fd);
- free (*l);
- return -1;
- }
- (*l)[j++] = ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr;
+ if(ioctl(fd, SIOCGIFFLAGS, ifr) < 0)
+ continue;
+ if (ifr->ifr_flags & IFF_UP) {
+ if(ioctl(fd, SIOCGIFADDR, ifr) < 0)
+ continue;
+ (*l)[j++] = ((struct sockaddr_in *)&ifr->ifr_addr)->sin_addr;
}
- ifreq = *ifr;
+ ifreq = *ifr;
}
- p = p + sz;
}
- if (j != num)
- *l = realloc (*l, j * sizeof(struct in_addr));
+ if (j != num) {
+ void *tmp;
+ tmp = realloc (*l, j * sizeof(struct in_addr));
+ if(tmp == NULL)
+ goto fail;
+ *l = tmp;
+ }
close (fd);
+ free(inbuf);
return j;
+fail:
+ close(fd);
+ free(inbuf);
+ free(*l);
+ return -1;
#endif /* SIOCGIFCONF */
}
diff --git a/crypto/kerberosIV/lib/krb/getfile.c b/crypto/kerberosIV/lib/krb/getfile.c
new file mode 100644
index 0000000..15c5ed8
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/getfile.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 1995, 1996, 1997, 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: getfile.c,v 1.4 1998/06/09 19:25:19 joda Exp $");
+
+static int
+is_suid(void)
+{
+ int ret = 0;
+#ifdef HAVE_GETUID
+ ret |= getuid() != geteuid();
+#endif
+#ifdef HAVE_GETGID
+ ret |= getgid() != getegid();
+#endif
+ return ret;
+}
+
+static int
+get_file(const char **files, int num, const char *file, char *buf, size_t len)
+{
+ const char *p, **q;
+ int i = 0;
+ if(!is_suid() && (p = getenv("KRBCONFDIR"))){
+ if(num == i){
+ snprintf(buf, len, "%s/%s", p, file);
+ return 0;
+ }
+ i++;
+ }
+ for(q = files; *q; q++, i++){
+ if(num == i){
+ snprintf(buf, len, "%s", *q);
+ return 0;
+ }
+ }
+ return -1;
+}
+
+int
+krb_get_krbconf(int num, char *buf, size_t len)
+{
+ const char *files[] = KRB_CNF_FILES;
+ return get_file(files, num, "krb.conf", buf, len);
+}
+
+int
+krb_get_krbrealms(int num, char *buf, size_t len)
+{
+ const char *files[] = KRB_RLM_FILES;
+ return get_file(files, num, "krb.realms", buf, len);
+}
+
+int
+krb_get_krbextra(int num, char *buf, size_t len)
+{
+ const char *files[] = { "/etc/krb.extra", NULL };
+ return get_file(files, num, "krb.extra", buf, len);
+}
diff --git a/crypto/kerberosIV/lib/krb/getrealm.c b/crypto/kerberosIV/lib/krb/getrealm.c
index 05dfdab..16734c7 100644
--- a/crypto/kerberosIV/lib/krb/getrealm.c
+++ b/crypto/kerberosIV/lib/krb/getrealm.c
@@ -21,9 +21,11 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: getrealm.c,v 1.25 1997/05/02 14:29:14 assar Exp $");
+RCSID("$Id: getrealm.c,v 1.35 1998/08/31 10:40:06 assar Exp $");
-#define MATCH_SUBDOMAINS 0
+#ifndef MATCH_SUBDOMAINS
+#define MATCH_SUBDOMAINS 0
+#endif
/*
* krb_realmofhost.
@@ -66,13 +68,16 @@ dns_find_realm(char *hostname, char *realm)
while(1){
snprintf(domain, sizeof(domain), "krb4-realm.%s.", p);
+ p = strchr(p, '.');
+ if(p == NULL)
+ break;
+ p++;
r = dns_lookup(domain, "TXT");
if(r){
struct resource_record *rr = r->head;
while(rr){
if(rr->type == T_TXT){
- strncpy(realm, rr->u.txt, REALM_SZ);
- realm[REALM_SZ - 1] = 0;
+ strcpy_truncate(realm, rr->u.txt, REALM_SZ);
dns_free_data(r);
return level;
}
@@ -81,10 +86,6 @@ dns_find_realm(char *hostname, char *realm)
dns_free_data(r);
}
level++;
- p = strchr(p, '.');
- if(p == NULL)
- break;
- p++;
}
return -1;
}
@@ -93,92 +94,92 @@ dns_find_realm(char *hostname, char *realm)
static FILE *
open_krb_realms(void)
{
- static const char *const files[] = KRB_RLM_FILES;
- FILE *res;
- int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
+ int i;
+ char file[MaxPathLen];
+ FILE *res;
- if(k_concat(fname, sizeof(fname), dir, "/krb.realms", NULL) == 0)
- if ((res = fopen(fname, "r")) != NULL)
+ for(i = 0; krb_get_krbrealms(i, file, sizeof(file)) == 0; i++)
+ if ((res = fopen(file, "r")) != NULL)
return res;
- }
-
- for (i = 0; files[i] != 0; i++)
- if ((res = fopen(files[i], "r")) != NULL)
- return res;
-
return NULL;
}
+static int
+file_find_realm(const char *phost, const char *domain,
+ char *ret_realm, size_t ret_realm_sz)
+{
+ FILE *trans_file;
+ char buf[1024];
+ int ret = -1;
+
+ if ((trans_file = open_krb_realms()) == NULL)
+ return -1;
+
+ while (fgets(buf, sizeof(buf), trans_file) != NULL) {
+ char *save = NULL;
+ char *tok;
+ char *tmp_host;
+ char *tmp_realm;
+
+ tok = strtok_r(buf, " \t\r\n", &save);
+ if(tok == NULL)
+ continue;
+ tmp_host = tok;
+ tok = strtok_r(NULL, " \t\r\n", &save);
+ if(tok == NULL)
+ continue;
+ tmp_realm = tok;
+ if (strcasecmp(tmp_host, phost) == 0) {
+ /* exact match of hostname, so return the realm */
+ strcpy_truncate(ret_realm, tmp_realm, ret_realm_sz);
+ ret = 0;
+ break;
+ }
+ if ((tmp_host[0] == '.') && domain) {
+ const char *cp = domain;
+ do {
+ if(strcasecmp(tmp_host, cp) == 0){
+ /* domain match, save for later */
+ strcpy_truncate(ret_realm, tmp_realm, ret_realm_sz);
+ ret = 0;
+ break;
+ }
+ cp = strchr(cp + 1, '.');
+ } while(MATCH_SUBDOMAINS && cp);
+ }
+ if (ret == 0)
+ break;
+ }
+ fclose(trans_file);
+ return ret;
+}
+
char *
krb_realmofhost(const char *host)
{
- static char ret_realm[REALM_SZ];
- char *domain;
- FILE *trans_file;
- char trans_host[MaxHostNameLen];
- char trans_realm[REALM_SZ];
- char buf[1024];
-
- char phost[MaxHostNameLen];
+ static char ret_realm[REALM_SZ];
+ char *domain;
+ char phost[MaxHostNameLen];
- krb_name_to_name(host, phost, sizeof(phost));
+ krb_name_to_name(host, phost, sizeof(phost));
- domain = strchr(phost, '.');
+ domain = strchr(phost, '.');
- /* prepare default */
- if(dns_find_realm(phost, ret_realm) < 0){
- if (domain) {
- char *cp;
+ if(file_find_realm(phost, domain, ret_realm, sizeof ret_realm) == 0)
+ return ret_realm;
+
+ if(dns_find_realm(phost, ret_realm) >= 0)
+ return ret_realm;
+
+ if (domain) {
+ char *cp;
- strncpy(ret_realm, &domain[1], REALM_SZ);
- ret_realm[REALM_SZ - 1] = 0;
- /* Upper-case realm */
- for (cp = ret_realm; *cp; cp++)
- *cp = toupper(*cp);
- } else {
- krb_get_lrealm(ret_realm, 1);
- }
- }
-
- if ((trans_file = open_krb_realms()) == NULL)
- return(ret_realm); /* krb_errno = KRB_NO_TRANS */
-
- while (fgets(buf, sizeof(buf), trans_file)) {
- char *save = NULL;
- char *tok = strtok_r(buf, " \t\r\n", &save);
- if(tok == NULL)
- continue;
- strncpy(trans_host, tok, MaxHostNameLen);
- trans_host[MaxHostNameLen - 1] = 0;
- tok = strtok_r(NULL, " \t\r\n", &save);
- if(tok == NULL)
- continue;
- strcpy(trans_realm, tok);
- trans_realm[REALM_SZ - 1] = 0;
- if (!strcasecmp(trans_host, phost)) {
- /* exact match of hostname, so return the realm */
- strcpy(ret_realm, trans_realm);
- fclose(trans_file);
- return(ret_realm);
- }
- if ((trans_host[0] == '.') && domain) {
- char *cp = domain;
- do {
- if(strcasecmp(trans_host, domain) == 0){
- /* domain match, save for later */
- strcpy(ret_realm, trans_realm);
- break;
- }
- cp = strchr(cp + 1, '.');
- } while(MATCH_SUBDOMAINS && cp);
- }
- }
- fclose(trans_file);
- return ret_realm;
+ strcpy_truncate(ret_realm, &domain[1], REALM_SZ);
+ /* Upper-case realm */
+ for (cp = ret_realm; *cp; cp++)
+ *cp = toupper(*cp);
+ } else {
+ strncpy(ret_realm, krb_get_default_realm(), REALM_SZ); /* Wild guess */
+ }
+ return ret_realm;
}
diff --git a/crypto/kerberosIV/lib/krb/k_getsockinst.c b/crypto/kerberosIV/lib/krb/k_getsockinst.c
index 04676b1..6c3edb0 100644
--- a/crypto/kerberosIV/lib/krb/k_getsockinst.c
+++ b/crypto/kerberosIV/lib/krb/k_getsockinst.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: k_getsockinst.c,v 1.10 1997/05/02 14:29:17 assar Exp $");
+RCSID("$Id: k_getsockinst.c,v 1.11 1998/06/09 19:25:20 joda Exp $");
/*
* Return in inst the name of the local interface bound to socket
@@ -61,8 +61,7 @@ k_getsockinst(int fd, char *inst, size_t inst_size)
if (hnam == 0)
goto fail;
- strncpy (inst, hnam->h_name, inst_size);
- inst[inst_size - 1] = '\0';
+ strcpy_truncate (inst, hnam->h_name, inst_size);
k_ricercar(inst); /* Canonicalize name */
return 0; /* Success */
diff --git a/crypto/kerberosIV/lib/krb/kdc_reply.c b/crypto/kerberosIV/lib/krb/kdc_reply.c
index aa012e0..51675b0 100644
--- a/crypto/kerberosIV/lib/krb/kdc_reply.c
+++ b/crypto/kerberosIV/lib/krb/kdc_reply.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: kdc_reply.c,v 1.9 1997/04/15 21:52:14 assar Exp $");
+RCSID("$Id: kdc_reply.c,v 1.11 1998/06/09 19:25:20 joda Exp $");
static int little_endian; /* XXX ugly */
@@ -52,15 +52,15 @@ kdc_reply_cred(KTEXT cip, CREDENTIALS *cred)
if(p + strlen((char*)p) > cip->dat + cip->length)
return INTK_BADPW;
- p += krb_get_string(p, cred->service);
+ p += krb_get_string(p, cred->service, sizeof(cred->service));
if(p + strlen((char*)p) > cip->dat + cip->length)
return INTK_BADPW;
- p += krb_get_string(p, cred->instance);
+ p += krb_get_string(p, cred->instance, sizeof(cred->instance));
if(p + strlen((char*)p) > cip->dat + cip->length)
return INTK_BADPW;
- p += krb_get_string(p, cred->realm);
+ p += krb_get_string(p, cred->realm, sizeof(cred->realm));
if(p + 3 > cip->dat + cip->length)
return INTK_BADPW;
@@ -107,11 +107,14 @@ kdc_reply_cipher(KTEXT reply, KTEXT cip)
if(type == AUTH_MSG_ERR_REPLY){
u_int32_t code;
+ /* skip these fields */
p += strlen((char*)p) + 1; /* name */
p += strlen((char*)p) + 1; /* instance */
p += strlen((char*)p) + 1; /* realm */
p += 4; /* time */
p += krb_get_int(p, &code, 4, little_endian);
+ if(code == 0)
+ code = KFAILURE; /* things will go bad otherwise */
return code;
}
if(type != AUTH_MSG_KDC_REPLY)
diff --git a/crypto/kerberosIV/lib/krb/kntoln.c b/crypto/kerberosIV/lib/krb/kntoln.c
index 88b8b25..86e5205 100644
--- a/crypto/kerberosIV/lib/krb/kntoln.c
+++ b/crypto/kerberosIV/lib/krb/kntoln.c
@@ -47,7 +47,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: kntoln.c,v 1.7 1997/03/23 03:53:12 joda Exp $");
+RCSID("$Id: kntoln.c,v 1.10 1998/06/09 19:25:21 joda Exp $");
int
krb_kntoln(AUTH_DAT *ad, char *lname)
@@ -91,57 +91,55 @@ extern int errno;
static char lrealm[REALM_SZ] = "";
-an_to_ln(ad,lname)
-AUTH_DAT *ad;
-char *lname;
+int
+an_to_ln(AUTH_DAT *ad, char *lname)
{
- static DBM *aname = NULL;
- char keyname[ANAME_SZ+INST_SZ+REALM_SZ+2];
-
- if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE))
- return(KFAILURE);
-
- if((strcmp(ad->pinst,"") && strcmp(ad->pinst,"root")) ||
-strcmp(ad->prealm,lrealm)) {
- datum val;
- datum key;
- /*
- * Non-local name (or) non-null and non-root instance.
- * Look up in dbm file.
- */
- if (!aname) {
- if ((aname = dbm_open("/etc/aname", O_RDONLY, 0))
- == NULL) return (KFAILURE);
- }
- /* Construct dbm lookup key. */
- an_to_a(ad, keyname);
- key.dptr = keyname;
- key.dsize = strlen(keyname)+1;
- flock(dbm_dirfno(aname), LOCK_SH);
- val = dbm_fetch(aname, key);
- flock(dbm_dirfno(aname), LOCK_UN);
- if (!val.dptr) {
- dbm_close(aname);
- return(KFAILURE);
- }
- /* Got it! */
- strcpy(lname,val.dptr);
- return(KSUCCESS);
- } else strcpy(lname,ad->pname);
- return(KSUCCESS);
+ static DBM *aname = NULL;
+ char keyname[ANAME_SZ+INST_SZ+REALM_SZ+2];
+
+ if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE))
+ return(KFAILURE);
+
+ if((strcmp(ad->pinst,"") && strcmp(ad->pinst,"root")) ||
+ strcmp(ad->prealm,lrealm)) {
+ datum val;
+ datum key;
+ /*
+ * Non-local name (or) non-null and non-root instance.
+ * Look up in dbm file.
+ */
+ if (!aname) {
+ if ((aname = dbm_open("/etc/aname", O_RDONLY, 0))
+ == NULL) return (KFAILURE);
+ }
+ /* Construct dbm lookup key. */
+ an_to_a(ad, keyname);
+ key.dptr = keyname;
+ key.dsize = strlen(keyname)+1;
+ flock(dbm_dirfno(aname), LOCK_SH);
+ val = dbm_fetch(aname, key);
+ flock(dbm_dirfno(aname), LOCK_UN);
+ if (!val.dptr) {
+ dbm_close(aname);
+ return(KFAILURE);
+ }
+ /* Got it! */
+ strcpy(lname,val.dptr);
+ return(KSUCCESS);
+ } else strcpy(lname,ad->pname);
+ return(KSUCCESS);
}
-an_to_a(ad, str)
- AUTH_DAT *ad;
- char *str;
+void
+an_to_a(AUTH_DAT *ad, char *str)
{
- strcpy(str, ad->pname);
- if(*ad->pinst) {
- strcat(str, ".");
- strcat(str, ad->pinst);
- }
- strcat(str, "@");
- strcat(str, ad->prealm);
+ strcpy(str, ad->pname);
+ if(*ad->pinst) {
+ strcat(str, ".");
+ strcat(str, ad->pinst);
+ }
+ strcat(str, "@");
+ strcat(str, ad->prealm);
}
/*
@@ -149,32 +147,31 @@ an_to_a(ad, str)
* into a struct AUTH_DAT.
*/
-a_to_an(str, ad)
- AUTH_DAT *ad;
- char *str;
+int
+a_to_an(char *str, AUTH_DAT *ad)
{
- char *buf = (char *)malloc(strlen(str)+1);
- char *rlm, *inst, *princ;
-
- if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE)) {
- free(buf);
- return(KFAILURE);
- }
- /* destructive string hacking is more fun.. */
- strcpy(buf, str);
-
- if (rlm = index(buf, '@')) {
- *rlm++ = '\0';
- }
- if (inst = index(buf, '.')) {
- *inst++ = '\0';
- }
- strcpy(ad->pname, buf);
- if(inst) strcpy(ad->pinst, inst);
- else *ad->pinst = '\0';
- if (rlm) strcpy(ad->prealm, rlm);
- else strcpy(ad->prealm, lrealm);
- free(buf);
- return(KSUCCESS);
+ char *buf = (char *)malloc(strlen(str)+1);
+ char *rlm, *inst, *princ;
+
+ if(!(*lrealm) && (krb_get_lrealm(lrealm,1) == KFAILURE)) {
+ free(buf);
+ return(KFAILURE);
+ }
+ /* destructive string hacking is more fun.. */
+ strcpy(buf, str);
+
+ if (rlm = index(buf, '@')) {
+ *rlm++ = '\0';
+ }
+ if (inst = index(buf, '.')) {
+ *inst++ = '\0';
+ }
+ strcpy(ad->pname, buf);
+ if(inst) strcpy(ad->pinst, inst);
+ else *ad->pinst = '\0';
+ if (rlm) strcpy(ad->prealm, rlm);
+ else strcpy(ad->prealm, lrealm);
+ free(buf);
+ return(KSUCCESS);
}
#endif
diff --git a/crypto/kerberosIV/lib/krb/krb-archaeology.h b/crypto/kerberosIV/lib/krb/krb-archaeology.h
new file mode 100644
index 0000000..0757996
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb-archaeology.h
@@ -0,0 +1,131 @@
+/*
+ * $Id: krb-archaeology.h,v 1.2 1997/12/05 02:04:44 joda Exp $
+ *
+ * Most of the cruft in this file is probably:
+ *
+ * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
+ * of Technology.
+ *
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
+ */
+
+#ifndef __KRB_ARCHAEOLOGY_H__
+#define __KRB_ARCHAEOLOGY_H__
+
+/* Compare x and y in VAX byte order, result is -1, 0 or 1. */
+
+#define krb_lsb_antinet_ulong_less(x, y) (((x) == (y)) ? 0 : krb_lsb_antinet_ulong_cmp(x, y))
+
+#define krb_lsb_antinet_ushort_less(x, y) (((x) == (y)) ? 0 : krb_lsb_antinet_ushort_cmp(x, y))
+
+int krb_lsb_antinet_ulong_cmp(u_int32_t x, u_int32_t y);
+int krb_lsb_antinet_ushort_cmp(u_int16_t x, u_int16_t y);
+u_int32_t lsb_time(time_t t, struct sockaddr_in *src, struct sockaddr_in *dst);
+
+/* Macro's to obtain various fields from a packet */
+
+#define pkt_version(packet) (unsigned int) *(packet->dat)
+#define pkt_msg_type(packet) (unsigned int) *(packet->dat+1)
+#define pkt_a_name(packet) (packet->dat+2)
+#define pkt_a_inst(packet) \
+ (packet->dat+3+strlen((char *)pkt_a_name(packet)))
+#define pkt_a_realm(packet) \
+ (pkt_a_inst(packet)+1+strlen((char *)pkt_a_inst(packet)))
+
+/* Macro to obtain realm from application request */
+#define apreq_realm(auth) (auth->dat + 3)
+
+#define pkt_time_ws(packet) (char *) \
+ (packet->dat+5+strlen((char *)pkt_a_name(packet)) + \
+ strlen((char *)pkt_a_inst(packet)) + \
+ strlen((char *)pkt_a_realm(packet)))
+
+#define pkt_no_req(packet) (unsigned short) \
+ *(packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
+ strlen((char *)pkt_a_inst(packet)) + \
+ strlen((char *)pkt_a_realm(packet)))
+#define pkt_x_date(packet) (char *) \
+ (packet->dat+10+strlen((char *)pkt_a_name(packet)) + \
+ strlen((char *)pkt_a_inst(packet)) + \
+ strlen((char *)pkt_a_realm(packet)))
+#define pkt_err_code(packet) ( (char *) \
+ (packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
+ strlen((char *)pkt_a_inst(packet)) + \
+ strlen((char *)pkt_a_realm(packet))))
+#define pkt_err_text(packet) \
+ (packet->dat+13+strlen((char *)pkt_a_name(packet)) + \
+ strlen((char *)pkt_a_inst(packet)) + \
+ strlen((char *)pkt_a_realm(packet)))
+
+/*
+ * macros for byte swapping; also scratch space
+ * u_quad 0-->7, 1-->6, 2-->5, 3-->4, 4-->3, 5-->2, 6-->1, 7-->0
+ * u_int32_t 0-->3, 1-->2, 2-->1, 3-->0
+ * u_int16_t 0-->1, 1-->0
+ */
+
+#define swap_u_16(x) {\
+ u_int32_t _krb_swap_tmp[4];\
+ swab(((char *) x) +0, ((char *) _krb_swap_tmp) +14 ,2); \
+ swab(((char *) x) +2, ((char *) _krb_swap_tmp) +12 ,2); \
+ swab(((char *) x) +4, ((char *) _krb_swap_tmp) +10 ,2); \
+ swab(((char *) x) +6, ((char *) _krb_swap_tmp) +8 ,2); \
+ swab(((char *) x) +8, ((char *) _krb_swap_tmp) +6 ,2); \
+ swab(((char *) x) +10,((char *) _krb_swap_tmp) +4 ,2); \
+ swab(((char *) x) +12,((char *) _krb_swap_tmp) +2 ,2); \
+ swab(((char *) x) +14,((char *) _krb_swap_tmp) +0 ,2); \
+ memcpy(x, _krb_swap_tmp, 16);\
+ }
+
+#define swap_u_12(x) {\
+ u_int32_t _krb_swap_tmp[4];\
+ swab(( char *) x, ((char *) _krb_swap_tmp) +10 ,2); \
+ swab(((char *) x) +2, ((char *) _krb_swap_tmp) +8 ,2); \
+ swab(((char *) x) +4, ((char *) _krb_swap_tmp) +6 ,2); \
+ swab(((char *) x) +6, ((char *) _krb_swap_tmp) +4 ,2); \
+ swab(((char *) x) +8, ((char *) _krb_swap_tmp) +2 ,2); \
+ swab(((char *) x) +10,((char *) _krb_swap_tmp) +0 ,2); \
+ memcpy(x, _krb_swap_tmp, 12);\
+ }
+
+#define swap_C_Block(x) {\
+ u_int32_t _krb_swap_tmp[4];\
+ swab(( char *) x, ((char *) _krb_swap_tmp) +6 ,2); \
+ swab(((char *) x) +2,((char *) _krb_swap_tmp) +4 ,2); \
+ swab(((char *) x) +4,((char *) _krb_swap_tmp) +2 ,2); \
+ swab(((char *) x) +6,((char *) _krb_swap_tmp) ,2); \
+ memcpy(x, _krb_swap_tmp, 8);\
+ }
+#define swap_u_quad(x) {\
+ u_int32_t _krb_swap_tmp[4];\
+ swab(( char *) &x, ((char *) _krb_swap_tmp) +6 ,2); \
+ swab(((char *) &x) +2,((char *) _krb_swap_tmp) +4 ,2); \
+ swab(((char *) &x) +4,((char *) _krb_swap_tmp) +2 ,2); \
+ swab(((char *) &x) +6,((char *) _krb_swap_tmp) ,2); \
+ memcpy(x, _krb_swap_tmp, 8);\
+ }
+
+#define swap_u_long(x) {\
+ u_int32_t _krb_swap_tmp[4];\
+ swab((char *) &x, ((char *) _krb_swap_tmp) +2 ,2); \
+ swab(((char *) &x) +2,((char *) _krb_swap_tmp),2); \
+ x = _krb_swap_tmp[0]; \
+ }
+
+#define swap_u_short(x) {\
+ u_int16_t _krb_swap_sh_tmp; \
+ swab((char *) &x, ( &_krb_swap_sh_tmp) ,2); \
+ x = (u_int16_t) _krb_swap_sh_tmp; \
+ }
+/* Kerberos ticket flag field bit definitions */
+#define K_FLAG_ORDER 0 /* bit 0 --> lsb */
+#define K_FLAG_1 /* reserved */
+#define K_FLAG_2 /* reserved */
+#define K_FLAG_3 /* reserved */
+#define K_FLAG_4 /* reserved */
+#define K_FLAG_5 /* reserved */
+#define K_FLAG_6 /* reserved */
+#define K_FLAG_7 /* reserved, bit 7 --> msb */
+
+#endif /* __KRB_ARCHAEOLOGY_H__ */
diff --git a/crypto/kerberosIV/lib/krb/krb-protos.h b/crypto/kerberosIV/lib/krb/krb-protos.h
new file mode 100644
index 0000000..965e4dc
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb-protos.h
@@ -0,0 +1,773 @@
+/*
+ * Copyright (c) 1997, 1998, 1999 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Id: krb-protos.h,v 1.18 1999/06/29 21:18:05 bg Exp $ */
+
+#ifndef __krb_protos_h__
+#define __krb_protos_h__
+
+#if defined (__STDC__) || defined (_MSC_VER)
+#include <stdarg.h>
+#ifndef __P
+#define __P(x) x
+#endif
+#else
+#ifndef __P
+#define __P(x) ()
+#endif
+#endif
+
+#ifdef __STDC__
+struct in_addr;
+struct sockaddr_in;
+struct timeval;
+#endif
+
+#ifndef KRB_LIB_FUNCTION
+#if defined(__BORLANDC__)
+#define KRB_LIB_FUNCTION /* not-ready-definition-yet */
+#elif defined(_MSC_VER)
+#define KRB_LIB_FUNCTION /* not-ready-definition-yet2 */
+#else
+#define KRB_LIB_FUNCTION
+#endif
+#endif
+
+void KRB_LIB_FUNCTION
+afs_string_to_key __P((
+ const char *str,
+ const char *cell,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+create_ciph __P((
+ KTEXT c,
+ unsigned char *session,
+ char *service,
+ char *instance,
+ char *realm,
+ u_int32_t life,
+ int kvno,
+ KTEXT tkt,
+ u_int32_t kdc_time,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+cr_err_reply __P((
+ KTEXT pkt,
+ char *pname,
+ char *pinst,
+ char *prealm,
+ u_int32_t time_ws,
+ u_int32_t e,
+ char *e_string));
+
+int KRB_LIB_FUNCTION
+decomp_ticket __P((
+ KTEXT tkt,
+ unsigned char *flags,
+ char *pname,
+ char *pinstance,
+ char *prealm,
+ u_int32_t *paddress,
+ unsigned char *session,
+ int *life,
+ u_int32_t *time_sec,
+ char *sname,
+ char *sinstance,
+ des_cblock *key,
+ des_key_schedule schedule));
+
+int KRB_LIB_FUNCTION
+dest_tkt __P((void));
+
+int KRB_LIB_FUNCTION
+get_ad_tkt __P((
+ char *service,
+ char *sinstance,
+ char *realm,
+ int lifetime));
+
+int KRB_LIB_FUNCTION
+getst __P((
+ int fd,
+ char *s,
+ int n));
+
+int KRB_LIB_FUNCTION
+in_tkt __P((
+ char *pname,
+ char *pinst));
+
+int KRB_LIB_FUNCTION
+k_get_all_addrs __P((struct in_addr **l));
+
+int KRB_LIB_FUNCTION
+k_gethostname __P((
+ char *name,
+ int namelen));
+
+int KRB_LIB_FUNCTION
+k_getportbyname __P((
+ const char *service,
+ const char *proto,
+ int default_port));
+
+int KRB_LIB_FUNCTION
+k_getsockinst __P((
+ int fd,
+ char *inst,
+ size_t inst_size));
+
+int KRB_LIB_FUNCTION
+k_isinst __P((char *s));
+
+int KRB_LIB_FUNCTION
+k_isname __P((char *s));
+
+int KRB_LIB_FUNCTION
+k_isrealm __P((char *s));
+
+struct tm * KRB_LIB_FUNCTION
+k_localtime __P((u_int32_t *tp));
+
+int KRB_LIB_FUNCTION
+kname_parse __P((
+ char *np,
+ char *ip,
+ char *rp,
+ char *fullname));
+
+int KRB_LIB_FUNCTION
+krb_atime_to_life __P((char *atime));
+
+int KRB_LIB_FUNCTION
+krb_check_auth __P((
+ KTEXT packet,
+ u_int32_t checksum,
+ MSG_DAT *msg_data,
+ des_cblock *session,
+ struct des_ks_struct *schedule,
+ struct sockaddr_in *laddr,
+ struct sockaddr_in *faddr));
+
+int KRB_LIB_FUNCTION
+krb_check_tm __P((struct tm tm));
+
+KTEXT KRB_LIB_FUNCTION
+krb_create_death_packet __P((char *a_name));
+
+int KRB_LIB_FUNCTION
+krb_create_ticket __P((
+ KTEXT tkt,
+ unsigned char flags,
+ char *pname,
+ char *pinstance,
+ char *prealm,
+ int32_t paddress,
+ void *session,
+ int16_t life,
+ int32_t time_sec,
+ char *sname,
+ char *sinstance,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+krb_decode_as_rep __P((
+ const char *user,
+ char *instance, /* INOUT parameter */
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ key_proc_t key_proc,
+ decrypt_proc_t decrypt_proc,
+ const void *arg,
+ KTEXT as_rep,
+ CREDENTIALS *cred));
+
+int KRB_LIB_FUNCTION
+krb_disable_debug __P((void));
+
+int KRB_LIB_FUNCTION
+krb_enable_debug __P((void));
+
+int KRB_LIB_FUNCTION
+krb_equiv __P((
+ u_int32_t a,
+ u_int32_t b));
+
+int KRB_LIB_FUNCTION
+krb_get_address __P((
+ void *from,
+ u_int32_t *to));
+
+int KRB_LIB_FUNCTION
+krb_get_admhst __P((
+ char *host,
+ char *realm,
+ int nth));
+
+int KRB_LIB_FUNCTION
+krb_get_config_bool __P((const char *variable));
+
+const char * KRB_LIB_FUNCTION
+krb_get_config_string __P((const char *variable));
+
+int KRB_LIB_FUNCTION
+krb_get_cred __P((
+ char *service,
+ char *instance,
+ char *realm,
+ CREDENTIALS *c));
+
+int KRB_LIB_FUNCTION
+krb_get_default_principal __P((
+ char *name,
+ char *instance,
+ char *realm));
+
+char * KRB_LIB_FUNCTION
+krb_get_default_realm __P((void));
+
+const char * KRB_LIB_FUNCTION
+krb_get_err_text __P((int code));
+
+struct krb_host* KRB_LIB_FUNCTION
+krb_get_host __P((
+ int nth,
+ char *realm,
+ int admin));
+
+int KRB_LIB_FUNCTION
+krb_get_in_tkt __P((
+ char *user,
+ char *instance,
+ char *realm,
+ char *service,
+ char *sinstance,
+ int life,
+ key_proc_t key_proc,
+ decrypt_proc_t decrypt_proc,
+ void *arg));
+
+int KRB_LIB_FUNCTION
+krb_get_int __P((
+ void *f,
+ u_int32_t *to,
+ int size,
+ int lsb));
+
+int KRB_LIB_FUNCTION
+krb_get_kdc_time_diff __P((void));
+
+int KRB_LIB_FUNCTION
+krb_get_krbconf __P((
+ int num,
+ char *buf,
+ size_t len));
+
+int KRB_LIB_FUNCTION
+krb_get_krbextra __P((
+ int num,
+ char *buf,
+ size_t len));
+
+int KRB_LIB_FUNCTION
+krb_get_krbhst __P((
+ char *host,
+ char *realm,
+ int nth));
+
+int KRB_LIB_FUNCTION
+krb_get_krbrealms __P((
+ int num,
+ char *buf,
+ size_t len));
+
+int KRB_LIB_FUNCTION
+krb_get_lrealm __P((
+ char *r,
+ int n));
+
+int KRB_LIB_FUNCTION
+krb_get_nir __P((
+ void *from,
+ char *name,
+ char *instance,
+ char *realm));
+
+char * KRB_LIB_FUNCTION
+krb_get_phost __P((const char *alias));
+
+int KRB_LIB_FUNCTION
+krb_get_pw_in_tkt __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ const char *password));
+
+int KRB_LIB_FUNCTION
+krb_get_pw_in_tkt2 __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ const char *password,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+krb_get_string __P((
+ void *from,
+ char *to,
+ size_t to_size));
+
+int KRB_LIB_FUNCTION
+krb_get_svc_in_tkt __P((
+ char *user,
+ char *instance,
+ char *realm,
+ char *service,
+ char *sinstance,
+ int life,
+ char *srvtab));
+
+int KRB_LIB_FUNCTION
+krb_get_tf_fullname __P((
+ char *ticket_file,
+ char *name,
+ char *instance,
+ char *realm));
+
+int KRB_LIB_FUNCTION
+krb_get_tf_realm __P((
+ char *ticket_file,
+ char *realm));
+
+void KRB_LIB_FUNCTION
+krb_kdctimeofday __P((struct timeval *tv));
+
+int KRB_LIB_FUNCTION
+krb_kntoln __P((
+ AUTH_DAT *ad,
+ char *lname));
+
+int KRB_LIB_FUNCTION
+krb_kuserok __P((
+ char *name,
+ char *instance,
+ char *realm,
+ char *luser));
+
+char * KRB_LIB_FUNCTION
+krb_life_to_atime __P((int life));
+
+u_int32_t KRB_LIB_FUNCTION
+krb_life_to_time __P((
+ u_int32_t start,
+ int life_));
+
+int KRB_LIB_FUNCTION
+krb_lsb_antinet_ulong_cmp __P((
+ u_int32_t x,
+ u_int32_t y));
+
+int KRB_LIB_FUNCTION
+krb_lsb_antinet_ushort_cmp __P((
+ u_int16_t x,
+ u_int16_t y));
+
+int KRB_LIB_FUNCTION
+krb_mk_as_req __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ KTEXT cip));
+
+int KRB_LIB_FUNCTION
+krb_mk_auth __P((
+ int32_t options,
+ KTEXT ticket,
+ char *service,
+ char *instance,
+ char *realm,
+ u_int32_t checksum,
+ char *version,
+ KTEXT buf));
+
+int32_t KRB_LIB_FUNCTION
+krb_mk_err __P((
+ u_char *p,
+ int32_t e,
+ char *e_string));
+
+int32_t KRB_LIB_FUNCTION
+krb_mk_priv __P((
+ void *in,
+ void *out,
+ u_int32_t length,
+ struct des_ks_struct *schedule,
+ des_cblock *key,
+ struct sockaddr_in *sender,
+ struct sockaddr_in *receiver));
+
+int KRB_LIB_FUNCTION
+krb_mk_req __P((
+ KTEXT authent,
+ char *service,
+ char *instance,
+ char *realm,
+ int32_t checksum));
+
+int32_t KRB_LIB_FUNCTION
+krb_mk_safe __P((
+ void *in,
+ void *out,
+ u_int32_t length,
+ des_cblock *key,
+ struct sockaddr_in *sender,
+ struct sockaddr_in *receiver));
+
+int KRB_LIB_FUNCTION
+krb_net_read __P((
+ int fd,
+ void *v,
+ size_t len));
+
+int KRB_LIB_FUNCTION
+krb_net_write __P((
+ int fd,
+ const void *v,
+ size_t len));
+
+int KRB_LIB_FUNCTION
+krb_parse_name __P((
+ const char *fullname,
+ krb_principal *principal));
+
+int KRB_LIB_FUNCTION
+krb_put_address __P((
+ u_int32_t addr,
+ void *to,
+ size_t rem));
+
+int KRB_LIB_FUNCTION
+krb_put_int __P((
+ u_int32_t from,
+ void *to,
+ size_t rem,
+ int size));
+
+int KRB_LIB_FUNCTION
+krb_put_nir __P((
+ const char *name,
+ const char *instance,
+ const char *realm,
+ void *to,
+ size_t rem));
+
+int KRB_LIB_FUNCTION
+krb_put_string __P((
+ const char *from,
+ void *to,
+ size_t rem));
+
+int KRB_LIB_FUNCTION
+krb_rd_err __P((
+ u_char *in,
+ u_int32_t in_length,
+ int32_t *code,
+ MSG_DAT *m_data));
+
+int32_t KRB_LIB_FUNCTION
+krb_rd_priv __P((
+ void *in,
+ u_int32_t in_length,
+ struct des_ks_struct *schedule,
+ des_cblock *key,
+ struct sockaddr_in *sender,
+ struct sockaddr_in *receiver,
+ MSG_DAT *m_data));
+
+int KRB_LIB_FUNCTION
+krb_rd_req __P((
+ KTEXT authent,
+ char *service,
+ char *instance,
+ int32_t from_addr,
+ AUTH_DAT *ad,
+ char *fn));
+
+int32_t KRB_LIB_FUNCTION
+krb_rd_safe __P((
+ void *in,
+ u_int32_t in_length,
+ des_cblock *key,
+ struct sockaddr_in *sender,
+ struct sockaddr_in *receiver,
+ MSG_DAT *m_data));
+
+int KRB_LIB_FUNCTION
+krb_realm_parse __P((
+ char *realm,
+ int length));
+
+char * KRB_LIB_FUNCTION
+krb_realmofhost __P((const char *host));
+
+int KRB_LIB_FUNCTION
+krb_recvauth __P((
+ int32_t options,
+ int fd,
+ KTEXT ticket,
+ char *service,
+ char *instance,
+ struct sockaddr_in *faddr,
+ struct sockaddr_in *laddr,
+ AUTH_DAT *kdata,
+ char *filename,
+ struct des_ks_struct *schedule,
+ char *version));
+
+int KRB_LIB_FUNCTION
+krb_sendauth __P((
+ int32_t options,
+ int fd,
+ KTEXT ticket,
+ char *service,
+ char *instance,
+ char *realm,
+ u_int32_t checksum,
+ MSG_DAT *msg_data,
+ CREDENTIALS *cred,
+ struct des_ks_struct *schedule,
+ struct sockaddr_in *laddr,
+ struct sockaddr_in *faddr,
+ char *version));
+
+void KRB_LIB_FUNCTION
+krb_set_kdc_time_diff __P((int diff));
+
+int KRB_LIB_FUNCTION
+krb_set_key __P((
+ void *key,
+ int cvt));
+
+int KRB_LIB_FUNCTION
+krb_set_lifetime __P((int newval));
+
+void KRB_LIB_FUNCTION
+krb_set_tkt_string __P((const char *val));
+
+const char * KRB_LIB_FUNCTION
+krb_stime __P((time_t *t));
+
+int KRB_LIB_FUNCTION
+krb_time_to_life __P((
+ u_int32_t start,
+ u_int32_t end));
+
+char * KRB_LIB_FUNCTION
+krb_unparse_name __P((krb_principal *pr));
+
+char * KRB_LIB_FUNCTION
+krb_unparse_name_long __P((
+ char *name,
+ char *instance,
+ char *realm));
+
+char * KRB_LIB_FUNCTION
+krb_unparse_name_long_r __P((
+ char *name,
+ char *instance,
+ char *realm,
+ char *fullname));
+
+char * KRB_LIB_FUNCTION
+krb_unparse_name_r __P((
+ krb_principal *pr,
+ char *fullname));
+
+int KRB_LIB_FUNCTION
+krb_use_admin_server __P((int flag));
+
+int KRB_LIB_FUNCTION
+krb_verify_user __P((
+ char *name,
+ char *instance,
+ char *realm,
+ char *password,
+ int secure,
+ char *linstance));
+
+int KRB_LIB_FUNCTION
+krb_verify_user_srvtab __P((
+ char *name,
+ char *instance,
+ char *realm,
+ char *password,
+ int secure,
+ char *linstance,
+ char *srvtab));
+
+int KRB_LIB_FUNCTION
+kuserok __P((
+ AUTH_DAT *auth,
+ char *luser));
+
+u_int32_t KRB_LIB_FUNCTION
+lsb_time __P((
+ time_t t,
+ struct sockaddr_in *src,
+ struct sockaddr_in *dst));
+
+const char * KRB_LIB_FUNCTION
+month_sname __P((int n));
+
+int KRB_LIB_FUNCTION
+passwd_to_5key __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+passwd_to_afskey __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+passwd_to_key __P((
+ const char *user,
+ const char *instance,
+ const char *realm,
+ const void *passwd,
+ des_cblock *key));
+
+int KRB_LIB_FUNCTION
+read_service_key __P((
+ const char *service,
+ char *instance,
+ const char *realm,
+ int kvno,
+ const char *file,
+ void *key));
+
+int KRB_LIB_FUNCTION
+save_credentials __P((
+ char *service,
+ char *instance,
+ char *realm,
+ unsigned char *session,
+ int lifetime,
+ int kvno,
+ KTEXT ticket,
+ int32_t issue_date));
+
+int KRB_LIB_FUNCTION
+send_to_kdc __P((
+ KTEXT pkt,
+ KTEXT rpkt,
+ const char *realm));
+
+int KRB_LIB_FUNCTION
+srvtab_to_key __P((
+ const char *user,
+ char *instance, /* INOUT parameter */
+ const char *realm,
+ const void *srvtab,
+ des_cblock *key));
+
+void KRB_LIB_FUNCTION
+tf_close __P((void));
+
+int KRB_LIB_FUNCTION
+tf_create __P((char *tf_name));
+
+int KRB_LIB_FUNCTION
+tf_get_cred __P((CREDENTIALS *c));
+
+int KRB_LIB_FUNCTION
+tf_get_pinst __P((char *inst));
+
+int KRB_LIB_FUNCTION
+tf_get_pname __P((char *p));
+
+int KRB_LIB_FUNCTION
+tf_init __P((
+ char *tf_name,
+ int rw));
+
+int KRB_LIB_FUNCTION
+tf_put_pinst __P((const char *inst));
+
+int KRB_LIB_FUNCTION
+tf_put_pname __P((const char *p));
+
+int KRB_LIB_FUNCTION
+tf_save_cred __P((
+ char *service,
+ char *instance,
+ char *realm,
+ unsigned char *session,
+ int lifetime,
+ int kvno,
+ KTEXT ticket,
+ u_int32_t issue_date));
+
+int KRB_LIB_FUNCTION
+tf_setup __P((
+ CREDENTIALS *cred,
+ const char *pname,
+ const char *pinst));
+
+char * KRB_LIB_FUNCTION
+tkt_string __P((void));
+
+#endif /* __krb_protos_h__ */
diff --git a/crypto/kerberosIV/lib/krb/krb.def b/crypto/kerberosIV/lib/krb/krb.def
index da2e906..1158e60 100644
--- a/crypto/kerberosIV/lib/krb/krb.def
+++ b/crypto/kerberosIV/lib/krb/krb.def
@@ -1,8 +1,4 @@
-LIBRARY "krb" BASE=0x07000000
-
-DESCRIPTION "Dynamic link library for kerberos version 4"
-VERSION 1.0
-
+LIBRARY krb BASE=0x07000000
EXPORTS
krb_get_err_text
@@ -13,11 +9,16 @@ EXPORTS
currCredIndex
nextFreeIndex
- k_flock
k_localtime
k_getsockinst
k_getportbyname
k_get_all_addrs
+
+ krb_set_kdc_time_diff
+ krb_get_kdc_time_diff
+
+ krb_get_config_bool
+ krb_get_config_string
krb_equiv
@@ -55,6 +56,9 @@ EXPORTS
k_isname
k_isrealm
kname_parse
+ krb_parse_name
+ krb_unparse_name
+ krb_unparse_name_long
krb_create_ticket
krb_get_admhst
krb_get_cred
diff --git a/crypto/kerberosIV/lib/krb/krb.dsp b/crypto/kerberosIV/lib/krb/krb.dsp
new file mode 100644
index 0000000..efec3b2
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb.dsp
@@ -0,0 +1,398 @@
+# Microsoft Developer Studio Project File - Name="krb" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=krb - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "krb.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "krb.mak" CFG="krb - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "krb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "krb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "krb - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir ".\Release"
+# PROP BASE Intermediate_Dir ".\Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ".\Release"
+# PROP Intermediate_Dir ".\Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 ..\roken\Release\roken.lib ..\des\Release\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:I386
+
+!ELSEIF "$(CFG)" == "krb - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir ".\Debug"
+# PROP BASE Intermediate_Dir ".\Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ".\Debug"
+# PROP Intermediate_Dir ".\Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
+# ADD LINK32 ..\roken\Debug\roken.lib ..\des\Debug\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386
+
+!ENDIF
+
+# Begin Target
+
+# Name "krb - Win32 Release"
+# Name "krb - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
+# Begin Source File
+
+SOURCE=.\cr_err_reply.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\create_auth_reply.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\create_ciph.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\create_ticket.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\debug_decl.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\decomp_ticket.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\dllmain.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\encrypt_ktext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\extra.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_ad_tkt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_cred.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_default_principal.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_host.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_in_tkt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_krbrlm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_svc_in_tkt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_tf_fullname.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\get_tf_realm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\getaddrs.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\getfile.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\getrealm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\getst.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\k_gethostname.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\k_getport.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\k_getsockinst.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\k_localtime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\kdc_reply.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\kntoln.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_check_auth.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_equiv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_err_txt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_get_in_tkt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\lifetime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\logging.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\lsb_addr_comp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mk_auth.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mk_err.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mk_priv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mk_req.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mk_safe.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\month_sname.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\name2name.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\netread.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\netwrite.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\one.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\parse_name.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\rd_err.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\rd_priv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\rd_req.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\rd_safe.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\read_service_key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\realm_parse.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\recvauth.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\rw.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\save_credentials.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\send_to_kdc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\sendauth.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\stime.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\str2key.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ticket_memory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\time.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\tkt_string.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unparse_name.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\util.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\verify_user.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+# Begin Source File
+
+SOURCE=.\klog.h
+# End Source File
+# Begin Source File
+
+SOURCE=".\krb-protos.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_locl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\krb_log.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\prot.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ticket_memory.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\krb.rc
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/crypto/kerberosIV/lib/krb/krb.mak b/crypto/kerberosIV/lib/krb/krb.mak
index 1236261..e9d5690 100644
--- a/crypto/kerberosIV/lib/krb/krb.mak
+++ b/crypto/kerberosIV/lib/krb/krb.mak
@@ -1,19 +1,15 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.10
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
+# Microsoft Developer Studio Generated NMAKE File, Based on krb.dsp
!IF "$(CFG)" == ""
-CFG=krb - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to krb - Win32 Debug.
+CFG=krb - Win32 Release
+!MESSAGE No configuration specified. Defaulting to krb - Win32 Release.
!ENDIF
!IF "$(CFG)" != "krb - Win32 Release" && "$(CFG)" != "krb - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
+!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
-!MESSAGE NMAKE /f "krb.mak" CFG="krb - Win32 Debug"
+!MESSAGE NMAKE /f "krb.mak" CFG="krb - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
@@ -28,3038 +24,1879 @@ NULL=
!ELSE
NULL=nul
!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "krb - Win32 Debug"
-RSC=rc.exe
-MTL=mktyplib.exe
-CPP=cl.exe
!IF "$(CFG)" == "krb - Win32 Release"
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
OUTDIR=.\Release
INTDIR=.\Release
+# Begin Custom Macros
+OutDir=.\.\Release
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
-ALL : ".\Release\krb.dll"
+ALL : "$(OUTDIR)\krb.dll"
+
+!ELSE
+
+ALL : "des - Win32 Release" "$(OUTDIR)\krb.dll"
+
+!ENDIF
+!IF "$(RECURSE)" == "1"
+CLEAN :"des - Win32 ReleaseCLEAN"
+!ELSE
CLEAN :
- -@erase ".\Release\cr_err_reply.obj"
- -@erase ".\Release\create_auth_reply.obj"
- -@erase ".\Release\create_ciph.obj"
- -@erase ".\Release\create_ticket.obj"
- -@erase ".\Release\debug_decl.obj"
- -@erase ".\Release\decomp_ticket.obj"
- -@erase ".\Release\dllmain.obj"
- -@erase ".\Release\encrypt_ktext.obj"
- -@erase ".\Release\et_list.obj"
- -@erase ".\Release\get_ad_tkt.obj"
- -@erase ".\Release\get_cred.obj"
- -@erase ".\Release\get_default_principal.obj"
- -@erase ".\Release\get_host.obj"
- -@erase ".\Release\get_in_tkt.obj"
- -@erase ".\Release\get_krbrlm.obj"
- -@erase ".\Release\get_phost.obj"
- -@erase ".\Release\get_svc_in_tkt.obj"
- -@erase ".\Release\get_tf_fullname.obj"
- -@erase ".\Release\get_tf_realm.obj"
- -@erase ".\Release\getaddrs.obj"
- -@erase ".\Release\getrealm.obj"
- -@erase ".\Release\getst.obj"
- -@erase ".\Release\k_flock.obj"
- -@erase ".\Release\k_gethostname.obj"
- -@erase ".\Release\k_getport.obj"
- -@erase ".\Release\k_getsockinst.obj"
- -@erase ".\Release\k_localtime.obj"
- -@erase ".\Release\kdc_reply.obj"
- -@erase ".\Release\kntoln.obj"
- -@erase ".\Release\krb.dll"
- -@erase ".\Release\krb.exp"
- -@erase ".\Release\krb.lib"
- -@erase ".\Release\krb_check_auth.obj"
- -@erase ".\Release\krb_equiv.obj"
- -@erase ".\Release\krb_err_txt.obj"
- -@erase ".\Release\krb_get_in_tkt.obj"
- -@erase ".\Release\lifetime.obj"
- -@erase ".\Release\logging.obj"
- -@erase ".\Release\lsb_addr_comp.obj"
- -@erase ".\Release\mk_auth.obj"
- -@erase ".\Release\mk_err.obj"
- -@erase ".\Release\mk_priv.obj"
- -@erase ".\Release\mk_req.obj"
- -@erase ".\Release\mk_safe.obj"
- -@erase ".\Release\month_sname.obj"
- -@erase ".\Release\name2name.obj"
- -@erase ".\Release\netread.obj"
- -@erase ".\Release\netwrite.obj"
- -@erase ".\Release\one.obj"
- -@erase ".\Release\parse_name.obj"
- -@erase ".\Release\rd_err.obj"
- -@erase ".\Release\rd_priv.obj"
- -@erase ".\Release\rd_req.obj"
- -@erase ".\Release\rd_safe.obj"
- -@erase ".\Release\read_service_key.obj"
- -@erase ".\Release\realm_parse.obj"
- -@erase ".\Release\recvauth.obj"
- -@erase ".\Release\resolve.obj"
- -@erase ".\Release\rw.obj"
- -@erase ".\Release\save_credentials.obj"
- -@erase ".\Release\send_to_kdc.obj"
- -@erase ".\Release\sendauth.obj"
- -@erase ".\Release\stime.obj"
- -@erase ".\Release\str2key.obj"
- -@erase ".\Release\swab.obj"
- -@erase ".\Release\ticket_memory.obj"
- -@erase ".\Release\tkt_string.obj"
- -@erase ".\Release\unparse_name.obj"
- -@erase ".\Release\util.obj"
- -@erase ".\Release\verify_user.obj"
+!ENDIF
+ -@erase "$(INTDIR)\cr_err_reply.obj"
+ -@erase "$(INTDIR)\create_auth_reply.obj"
+ -@erase "$(INTDIR)\create_ciph.obj"
+ -@erase "$(INTDIR)\create_ticket.obj"
+ -@erase "$(INTDIR)\debug_decl.obj"
+ -@erase "$(INTDIR)\decomp_ticket.obj"
+ -@erase "$(INTDIR)\dllmain.obj"
+ -@erase "$(INTDIR)\encrypt_ktext.obj"
+ -@erase "$(INTDIR)\get_ad_tkt.obj"
+ -@erase "$(INTDIR)\get_cred.obj"
+ -@erase "$(INTDIR)\get_default_principal.obj"
+ -@erase "$(INTDIR)\get_host.obj"
+ -@erase "$(INTDIR)\get_in_tkt.obj"
+ -@erase "$(INTDIR)\get_krbrlm.obj"
+ -@erase "$(INTDIR)\get_svc_in_tkt.obj"
+ -@erase "$(INTDIR)\get_tf_fullname.obj"
+ -@erase "$(INTDIR)\get_tf_realm.obj"
+ -@erase "$(INTDIR)\getaddrs.obj"
+ -@erase "$(INTDIR)\getfile.obj"
+ -@erase "$(INTDIR)\getrealm.obj"
+ -@erase "$(INTDIR)\getst.obj"
+ -@erase "$(INTDIR)\k_flock.obj"
+ -@erase "$(INTDIR)\k_gethostname.obj"
+ -@erase "$(INTDIR)\k_getport.obj"
+ -@erase "$(INTDIR)\k_getsockinst.obj"
+ -@erase "$(INTDIR)\k_localtime.obj"
+ -@erase "$(INTDIR)\kdc_reply.obj"
+ -@erase "$(INTDIR)\kntoln.obj"
+ -@erase "$(INTDIR)\krb.res"
+ -@erase "$(INTDIR)\krb_check_auth.obj"
+ -@erase "$(INTDIR)\krb_equiv.obj"
+ -@erase "$(INTDIR)\krb_err_txt.obj"
+ -@erase "$(INTDIR)\krb_get_in_tkt.obj"
+ -@erase "$(INTDIR)\lifetime.obj"
+ -@erase "$(INTDIR)\logging.obj"
+ -@erase "$(INTDIR)\lsb_addr_comp.obj"
+ -@erase "$(INTDIR)\mk_auth.obj"
+ -@erase "$(INTDIR)\mk_err.obj"
+ -@erase "$(INTDIR)\mk_priv.obj"
+ -@erase "$(INTDIR)\mk_req.obj"
+ -@erase "$(INTDIR)\mk_safe.obj"
+ -@erase "$(INTDIR)\month_sname.obj"
+ -@erase "$(INTDIR)\name2name.obj"
+ -@erase "$(INTDIR)\netread.obj"
+ -@erase "$(INTDIR)\netwrite.obj"
+ -@erase "$(INTDIR)\one.obj"
+ -@erase "$(INTDIR)\parse_name.obj"
+ -@erase "$(INTDIR)\rd_err.obj"
+ -@erase "$(INTDIR)\rd_priv.obj"
+ -@erase "$(INTDIR)\rd_req.obj"
+ -@erase "$(INTDIR)\rd_safe.obj"
+ -@erase "$(INTDIR)\read_service_key.obj"
+ -@erase "$(INTDIR)\realm_parse.obj"
+ -@erase "$(INTDIR)\recvauth.obj"
+ -@erase "$(INTDIR)\rw.obj"
+ -@erase "$(INTDIR)\save_credentials.obj"
+ -@erase "$(INTDIR)\send_to_kdc.obj"
+ -@erase "$(INTDIR)\sendauth.obj"
+ -@erase "$(INTDIR)\stime.obj"
+ -@erase "$(INTDIR)\str2key.obj"
+ -@erase "$(INTDIR)\ticket_memory.obj"
+ -@erase "$(INTDIR)\time.obj"
+ -@erase "$(INTDIR)\tkt_string.obj"
+ -@erase "$(INTDIR)\unparse_name.obj"
+ -@erase "$(INTDIR)\util.obj"
+ -@erase "$(INTDIR)\vc50.idb"
+ -@erase "$(INTDIR)\verify_user.obj"
+ -@erase "$(OUTDIR)\krb.dll"
+ -@erase "$(OUTDIR)\krb.exp"
+ -@erase "$(OUTDIR)\krb.lib"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
+CPP=cl.exe
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "." /I "..\..\include" /I\
"..\..\include\win32" /I "..\des" /I "..\roken" /D "NDEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)/krb.pch" /YX /Fo"$(INTDIR)/" /c
+ "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)\krb.pch" /YX /Fo"$(INTDIR)\\"\
+ /Fd"$(INTDIR)\\" /FD /c
CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
+CPP_SBRS=.
+
+.c{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\krb.res" /d "NDEBUG"
BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/krb.bsc"
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\krb.bsc"
BSC32_SBRS= \
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\roken\Release\roken.lib ..\des\Release\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
LINK32_FLAGS=..\roken\Release\roken.lib ..\des\Release\des.lib wsock32.lib\
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib\
- shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo\
- /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)/krb.pdb" /machine:I386\
- /def:".\krb.def" /out:"$(OUTDIR)/krb.dll" /implib:"$(OUTDIR)/krb.lib"
+ shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll\
+ /incremental:no /pdb:"$(OUTDIR)\krb.pdb" /machine:I386 /def:".\krb.def"\
+ /out:"$(OUTDIR)\krb.dll" /implib:"$(OUTDIR)\krb.lib"
DEF_FILE= \
".\krb.def"
LINK32_OBJS= \
- ".\Release\cr_err_reply.obj" \
- ".\Release\create_auth_reply.obj" \
- ".\Release\create_ciph.obj" \
- ".\Release\create_ticket.obj" \
- ".\Release\debug_decl.obj" \
- ".\Release\decomp_ticket.obj" \
- ".\Release\dllmain.obj" \
- ".\Release\encrypt_ktext.obj" \
- ".\Release\et_list.obj" \
- ".\Release\get_ad_tkt.obj" \
- ".\Release\get_cred.obj" \
- ".\Release\get_default_principal.obj" \
- ".\Release\get_host.obj" \
- ".\Release\get_in_tkt.obj" \
- ".\Release\get_krbrlm.obj" \
- ".\Release\get_phost.obj" \
- ".\Release\get_svc_in_tkt.obj" \
- ".\Release\get_tf_fullname.obj" \
- ".\Release\get_tf_realm.obj" \
- ".\Release\getaddrs.obj" \
- ".\Release\getrealm.obj" \
- ".\Release\getst.obj" \
- ".\Release\k_flock.obj" \
- ".\Release\k_gethostname.obj" \
- ".\Release\k_getport.obj" \
- ".\Release\k_getsockinst.obj" \
- ".\Release\k_localtime.obj" \
- ".\Release\kdc_reply.obj" \
- ".\Release\kntoln.obj" \
- ".\Release\krb_check_auth.obj" \
- ".\Release\krb_equiv.obj" \
- ".\Release\krb_err_txt.obj" \
- ".\Release\krb_get_in_tkt.obj" \
- ".\Release\lifetime.obj" \
- ".\Release\logging.obj" \
- ".\Release\lsb_addr_comp.obj" \
- ".\Release\mk_auth.obj" \
- ".\Release\mk_err.obj" \
- ".\Release\mk_priv.obj" \
- ".\Release\mk_req.obj" \
- ".\Release\mk_safe.obj" \
- ".\Release\month_sname.obj" \
- ".\Release\name2name.obj" \
- ".\Release\netread.obj" \
- ".\Release\netwrite.obj" \
- ".\Release\one.obj" \
- ".\Release\parse_name.obj" \
- ".\Release\rd_err.obj" \
- ".\Release\rd_priv.obj" \
- ".\Release\rd_req.obj" \
- ".\Release\rd_safe.obj" \
- ".\Release\read_service_key.obj" \
- ".\Release\realm_parse.obj" \
- ".\Release\recvauth.obj" \
- ".\Release\resolve.obj" \
- ".\Release\rw.obj" \
- ".\Release\save_credentials.obj" \
- ".\Release\send_to_kdc.obj" \
- ".\Release\sendauth.obj" \
- ".\Release\stime.obj" \
- ".\Release\str2key.obj" \
- ".\Release\swab.obj" \
- ".\Release\ticket_memory.obj" \
- ".\Release\tkt_string.obj" \
- ".\Release\unparse_name.obj" \
- ".\Release\util.obj" \
- ".\Release\verify_user.obj"
-
-".\Release\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ "$(INTDIR)\cr_err_reply.obj" \
+ "$(INTDIR)\create_auth_reply.obj" \
+ "$(INTDIR)\create_ciph.obj" \
+ "$(INTDIR)\create_ticket.obj" \
+ "$(INTDIR)\debug_decl.obj" \
+ "$(INTDIR)\decomp_ticket.obj" \
+ "$(INTDIR)\dllmain.obj" \
+ "$(INTDIR)\encrypt_ktext.obj" \
+ "$(INTDIR)\get_ad_tkt.obj" \
+ "$(INTDIR)\get_cred.obj" \
+ "$(INTDIR)\get_default_principal.obj" \
+ "$(INTDIR)\get_host.obj" \
+ "$(INTDIR)\get_in_tkt.obj" \
+ "$(INTDIR)\get_krbrlm.obj" \
+ "$(INTDIR)\get_svc_in_tkt.obj" \
+ "$(INTDIR)\get_tf_fullname.obj" \
+ "$(INTDIR)\get_tf_realm.obj" \
+ "$(INTDIR)\getaddrs.obj" \
+ "$(INTDIR)\getfile.obj" \
+ "$(INTDIR)\getrealm.obj" \
+ "$(INTDIR)\getst.obj" \
+ "$(INTDIR)\k_flock.obj" \
+ "$(INTDIR)\k_gethostname.obj" \
+ "$(INTDIR)\k_getport.obj" \
+ "$(INTDIR)\k_getsockinst.obj" \
+ "$(INTDIR)\k_localtime.obj" \
+ "$(INTDIR)\kdc_reply.obj" \
+ "$(INTDIR)\kntoln.obj" \
+ "$(INTDIR)\krb.res" \
+ "$(INTDIR)\krb_check_auth.obj" \
+ "$(INTDIR)\krb_equiv.obj" \
+ "$(INTDIR)\krb_err_txt.obj" \
+ "$(INTDIR)\krb_get_in_tkt.obj" \
+ "$(INTDIR)\lifetime.obj" \
+ "$(INTDIR)\logging.obj" \
+ "$(INTDIR)\lsb_addr_comp.obj" \
+ "$(INTDIR)\mk_auth.obj" \
+ "$(INTDIR)\mk_err.obj" \
+ "$(INTDIR)\mk_priv.obj" \
+ "$(INTDIR)\mk_req.obj" \
+ "$(INTDIR)\mk_safe.obj" \
+ "$(INTDIR)\month_sname.obj" \
+ "$(INTDIR)\name2name.obj" \
+ "$(INTDIR)\netread.obj" \
+ "$(INTDIR)\netwrite.obj" \
+ "$(INTDIR)\one.obj" \
+ "$(INTDIR)\parse_name.obj" \
+ "$(INTDIR)\rd_err.obj" \
+ "$(INTDIR)\rd_priv.obj" \
+ "$(INTDIR)\rd_req.obj" \
+ "$(INTDIR)\rd_safe.obj" \
+ "$(INTDIR)\read_service_key.obj" \
+ "$(INTDIR)\realm_parse.obj" \
+ "$(INTDIR)\recvauth.obj" \
+ "$(INTDIR)\rw.obj" \
+ "$(INTDIR)\save_credentials.obj" \
+ "$(INTDIR)\send_to_kdc.obj" \
+ "$(INTDIR)\sendauth.obj" \
+ "$(INTDIR)\stime.obj" \
+ "$(INTDIR)\str2key.obj" \
+ "$(INTDIR)\ticket_memory.obj" \
+ "$(INTDIR)\time.obj" \
+ "$(INTDIR)\tkt_string.obj" \
+ "$(INTDIR)\unparse_name.obj" \
+ "$(INTDIR)\util.obj" \
+ "$(INTDIR)\verify_user.obj" \
+ "..\des\Release\des.lib"
+
+"$(OUTDIR)\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
OUTDIR=.\Debug
INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\.\Debug
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\krb.dll"
+
+!ELSE
+
+ALL : "des - Win32 Debug" "$(OUTDIR)\krb.dll"
-ALL : ".\Debug\krb.dll"
+!ENDIF
+!IF "$(RECURSE)" == "1"
+CLEAN :"des - Win32 DebugCLEAN"
+!ELSE
CLEAN :
- -@erase ".\Debug\cr_err_reply.obj"
- -@erase ".\Debug\create_auth_reply.obj"
- -@erase ".\Debug\create_ciph.obj"
- -@erase ".\Debug\create_ticket.obj"
- -@erase ".\Debug\debug_decl.obj"
- -@erase ".\Debug\decomp_ticket.obj"
- -@erase ".\Debug\dllmain.obj"
- -@erase ".\Debug\encrypt_ktext.obj"
- -@erase ".\Debug\et_list.obj"
- -@erase ".\Debug\get_ad_tkt.obj"
- -@erase ".\Debug\get_cred.obj"
- -@erase ".\Debug\get_default_principal.obj"
- -@erase ".\Debug\get_host.obj"
- -@erase ".\Debug\get_in_tkt.obj"
- -@erase ".\Debug\get_krbrlm.obj"
- -@erase ".\Debug\get_phost.obj"
- -@erase ".\Debug\get_svc_in_tkt.obj"
- -@erase ".\Debug\get_tf_fullname.obj"
- -@erase ".\Debug\get_tf_realm.obj"
- -@erase ".\Debug\getaddrs.obj"
- -@erase ".\Debug\getrealm.obj"
- -@erase ".\Debug\getst.obj"
- -@erase ".\Debug\k_flock.obj"
- -@erase ".\Debug\k_gethostname.obj"
- -@erase ".\Debug\k_getport.obj"
- -@erase ".\Debug\k_getsockinst.obj"
- -@erase ".\Debug\k_localtime.obj"
- -@erase ".\Debug\kdc_reply.obj"
- -@erase ".\Debug\kntoln.obj"
- -@erase ".\Debug\krb.dll"
- -@erase ".\Debug\krb.exp"
- -@erase ".\Debug\krb.ilk"
- -@erase ".\Debug\krb.lib"
- -@erase ".\Debug\krb.pdb"
- -@erase ".\Debug\krb_check_auth.obj"
- -@erase ".\Debug\krb_equiv.obj"
- -@erase ".\Debug\krb_err_txt.obj"
- -@erase ".\Debug\krb_get_in_tkt.obj"
- -@erase ".\Debug\lifetime.obj"
- -@erase ".\Debug\logging.obj"
- -@erase ".\Debug\lsb_addr_comp.obj"
- -@erase ".\Debug\mk_auth.obj"
- -@erase ".\Debug\mk_err.obj"
- -@erase ".\Debug\mk_priv.obj"
- -@erase ".\Debug\mk_req.obj"
- -@erase ".\Debug\mk_safe.obj"
- -@erase ".\Debug\month_sname.obj"
- -@erase ".\Debug\name2name.obj"
- -@erase ".\Debug\netread.obj"
- -@erase ".\Debug\netwrite.obj"
- -@erase ".\Debug\one.obj"
- -@erase ".\Debug\parse_name.obj"
- -@erase ".\Debug\rd_err.obj"
- -@erase ".\Debug\rd_priv.obj"
- -@erase ".\Debug\rd_req.obj"
- -@erase ".\Debug\rd_safe.obj"
- -@erase ".\Debug\read_service_key.obj"
- -@erase ".\Debug\realm_parse.obj"
- -@erase ".\Debug\recvauth.obj"
- -@erase ".\Debug\resolve.obj"
- -@erase ".\Debug\rw.obj"
- -@erase ".\Debug\save_credentials.obj"
- -@erase ".\Debug\send_to_kdc.obj"
- -@erase ".\Debug\sendauth.obj"
- -@erase ".\Debug\stime.obj"
- -@erase ".\Debug\str2key.obj"
- -@erase ".\Debug\swab.obj"
- -@erase ".\Debug\ticket_memory.obj"
- -@erase ".\Debug\tkt_string.obj"
- -@erase ".\Debug\unparse_name.obj"
- -@erase ".\Debug\util.obj"
- -@erase ".\Debug\vc40.idb"
- -@erase ".\Debug\vc40.pdb"
- -@erase ".\Debug\verify_user.obj"
+!ENDIF
+ -@erase "$(INTDIR)\cr_err_reply.obj"
+ -@erase "$(INTDIR)\create_auth_reply.obj"
+ -@erase "$(INTDIR)\create_ciph.obj"
+ -@erase "$(INTDIR)\create_ticket.obj"
+ -@erase "$(INTDIR)\debug_decl.obj"
+ -@erase "$(INTDIR)\decomp_ticket.obj"
+ -@erase "$(INTDIR)\dllmain.obj"
+ -@erase "$(INTDIR)\encrypt_ktext.obj"
+ -@erase "$(INTDIR)\get_ad_tkt.obj"
+ -@erase "$(INTDIR)\get_cred.obj"
+ -@erase "$(INTDIR)\get_default_principal.obj"
+ -@erase "$(INTDIR)\get_host.obj"
+ -@erase "$(INTDIR)\get_in_tkt.obj"
+ -@erase "$(INTDIR)\get_krbrlm.obj"
+ -@erase "$(INTDIR)\get_svc_in_tkt.obj"
+ -@erase "$(INTDIR)\get_tf_fullname.obj"
+ -@erase "$(INTDIR)\get_tf_realm.obj"
+ -@erase "$(INTDIR)\getaddrs.obj"
+ -@erase "$(INTDIR)\getfile.obj"
+ -@erase "$(INTDIR)\getrealm.obj"
+ -@erase "$(INTDIR)\getst.obj"
+ -@erase "$(INTDIR)\k_flock.obj"
+ -@erase "$(INTDIR)\k_gethostname.obj"
+ -@erase "$(INTDIR)\k_getport.obj"
+ -@erase "$(INTDIR)\k_getsockinst.obj"
+ -@erase "$(INTDIR)\k_localtime.obj"
+ -@erase "$(INTDIR)\kdc_reply.obj"
+ -@erase "$(INTDIR)\kntoln.obj"
+ -@erase "$(INTDIR)\krb.res"
+ -@erase "$(INTDIR)\krb_check_auth.obj"
+ -@erase "$(INTDIR)\krb_equiv.obj"
+ -@erase "$(INTDIR)\krb_err_txt.obj"
+ -@erase "$(INTDIR)\krb_get_in_tkt.obj"
+ -@erase "$(INTDIR)\lifetime.obj"
+ -@erase "$(INTDIR)\logging.obj"
+ -@erase "$(INTDIR)\lsb_addr_comp.obj"
+ -@erase "$(INTDIR)\mk_auth.obj"
+ -@erase "$(INTDIR)\mk_err.obj"
+ -@erase "$(INTDIR)\mk_priv.obj"
+ -@erase "$(INTDIR)\mk_req.obj"
+ -@erase "$(INTDIR)\mk_safe.obj"
+ -@erase "$(INTDIR)\month_sname.obj"
+ -@erase "$(INTDIR)\name2name.obj"
+ -@erase "$(INTDIR)\netread.obj"
+ -@erase "$(INTDIR)\netwrite.obj"
+ -@erase "$(INTDIR)\one.obj"
+ -@erase "$(INTDIR)\parse_name.obj"
+ -@erase "$(INTDIR)\rd_err.obj"
+ -@erase "$(INTDIR)\rd_priv.obj"
+ -@erase "$(INTDIR)\rd_req.obj"
+ -@erase "$(INTDIR)\rd_safe.obj"
+ -@erase "$(INTDIR)\read_service_key.obj"
+ -@erase "$(INTDIR)\realm_parse.obj"
+ -@erase "$(INTDIR)\recvauth.obj"
+ -@erase "$(INTDIR)\rw.obj"
+ -@erase "$(INTDIR)\save_credentials.obj"
+ -@erase "$(INTDIR)\send_to_kdc.obj"
+ -@erase "$(INTDIR)\sendauth.obj"
+ -@erase "$(INTDIR)\stime.obj"
+ -@erase "$(INTDIR)\str2key.obj"
+ -@erase "$(INTDIR)\ticket_memory.obj"
+ -@erase "$(INTDIR)\time.obj"
+ -@erase "$(INTDIR)\tkt_string.obj"
+ -@erase "$(INTDIR)\unparse_name.obj"
+ -@erase "$(INTDIR)\util.obj"
+ -@erase "$(INTDIR)\vc50.idb"
+ -@erase "$(INTDIR)\vc50.pdb"
+ -@erase "$(INTDIR)\verify_user.obj"
+ -@erase "$(OUTDIR)\krb.dll"
+ -@erase "$(OUTDIR)\krb.exp"
+ -@erase "$(OUTDIR)\krb.ilk"
+ -@erase "$(OUTDIR)\krb.lib"
+ -@erase "$(OUTDIR)\krb.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I "..\..\include\win32" /I "..\des" /I "..\roken" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_CONFIG_H" /YX /c
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I\
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I "..\..\include" /I\
"..\..\include\win32" /I "..\des" /I "..\roken" /D "_DEBUG" /D "WIN32" /D\
- "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)/krb.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
+ "_WINDOWS" /D "HAVE_CONFIG_H" /Fp"$(INTDIR)\krb.pch" /YX /Fo"$(INTDIR)\\"\
+ /Fd"$(INTDIR)\\" /FD /c
CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
+CPP_SBRS=.
+
+.c{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(CPP_OBJS)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(CPP_SBRS)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\krb.res" /d "_DEBUG"
BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/krb.bsc"
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\krb.bsc"
BSC32_SBRS= \
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 ..\roken\Debug\roken.lib ..\des\Debug\des.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
LINK32_FLAGS=..\roken\Debug\roken.lib ..\des\Debug\des.lib wsock32.lib\
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib\
- shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo\
- /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)/krb.pdb" /debug\
- /machine:I386 /def:".\krb.def" /out:"$(OUTDIR)/krb.dll"\
- /implib:"$(OUTDIR)/krb.lib"
+ shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll\
+ /incremental:yes /pdb:"$(OUTDIR)\krb.pdb" /debug /machine:I386 /def:".\krb.def"\
+ /out:"$(OUTDIR)\krb.dll" /implib:"$(OUTDIR)\krb.lib"
DEF_FILE= \
".\krb.def"
LINK32_OBJS= \
- ".\Debug\cr_err_reply.obj" \
- ".\Debug\create_auth_reply.obj" \
- ".\Debug\create_ciph.obj" \
- ".\Debug\create_ticket.obj" \
- ".\Debug\debug_decl.obj" \
- ".\Debug\decomp_ticket.obj" \
- ".\Debug\dllmain.obj" \
- ".\Debug\encrypt_ktext.obj" \
- ".\Debug\et_list.obj" \
- ".\Debug\get_ad_tkt.obj" \
- ".\Debug\get_cred.obj" \
- ".\Debug\get_default_principal.obj" \
- ".\Debug\get_host.obj" \
- ".\Debug\get_in_tkt.obj" \
- ".\Debug\get_krbrlm.obj" \
- ".\Debug\get_phost.obj" \
- ".\Debug\get_svc_in_tkt.obj" \
- ".\Debug\get_tf_fullname.obj" \
- ".\Debug\get_tf_realm.obj" \
- ".\Debug\getaddrs.obj" \
- ".\Debug\getrealm.obj" \
- ".\Debug\getst.obj" \
- ".\Debug\k_flock.obj" \
- ".\Debug\k_gethostname.obj" \
- ".\Debug\k_getport.obj" \
- ".\Debug\k_getsockinst.obj" \
- ".\Debug\k_localtime.obj" \
- ".\Debug\kdc_reply.obj" \
- ".\Debug\kntoln.obj" \
- ".\Debug\krb_check_auth.obj" \
- ".\Debug\krb_equiv.obj" \
- ".\Debug\krb_err_txt.obj" \
- ".\Debug\krb_get_in_tkt.obj" \
- ".\Debug\lifetime.obj" \
- ".\Debug\logging.obj" \
- ".\Debug\lsb_addr_comp.obj" \
- ".\Debug\mk_auth.obj" \
- ".\Debug\mk_err.obj" \
- ".\Debug\mk_priv.obj" \
- ".\Debug\mk_req.obj" \
- ".\Debug\mk_safe.obj" \
- ".\Debug\month_sname.obj" \
- ".\Debug\name2name.obj" \
- ".\Debug\netread.obj" \
- ".\Debug\netwrite.obj" \
- ".\Debug\one.obj" \
- ".\Debug\parse_name.obj" \
- ".\Debug\rd_err.obj" \
- ".\Debug\rd_priv.obj" \
- ".\Debug\rd_req.obj" \
- ".\Debug\rd_safe.obj" \
- ".\Debug\read_service_key.obj" \
- ".\Debug\realm_parse.obj" \
- ".\Debug\recvauth.obj" \
- ".\Debug\resolve.obj" \
- ".\Debug\rw.obj" \
- ".\Debug\save_credentials.obj" \
- ".\Debug\send_to_kdc.obj" \
- ".\Debug\sendauth.obj" \
- ".\Debug\stime.obj" \
- ".\Debug\str2key.obj" \
- ".\Debug\swab.obj" \
- ".\Debug\ticket_memory.obj" \
- ".\Debug\tkt_string.obj" \
- ".\Debug\unparse_name.obj" \
- ".\Debug\util.obj" \
- ".\Debug\verify_user.obj"
-
-".\Debug\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ "$(INTDIR)\cr_err_reply.obj" \
+ "$(INTDIR)\create_auth_reply.obj" \
+ "$(INTDIR)\create_ciph.obj" \
+ "$(INTDIR)\create_ticket.obj" \
+ "$(INTDIR)\debug_decl.obj" \
+ "$(INTDIR)\decomp_ticket.obj" \
+ "$(INTDIR)\dllmain.obj" \
+ "$(INTDIR)\encrypt_ktext.obj" \
+ "$(INTDIR)\get_ad_tkt.obj" \
+ "$(INTDIR)\get_cred.obj" \
+ "$(INTDIR)\get_default_principal.obj" \
+ "$(INTDIR)\get_host.obj" \
+ "$(INTDIR)\get_in_tkt.obj" \
+ "$(INTDIR)\get_krbrlm.obj" \
+ "$(INTDIR)\get_svc_in_tkt.obj" \
+ "$(INTDIR)\get_tf_fullname.obj" \
+ "$(INTDIR)\get_tf_realm.obj" \
+ "$(INTDIR)\getaddrs.obj" \
+ "$(INTDIR)\getfile.obj" \
+ "$(INTDIR)\getrealm.obj" \
+ "$(INTDIR)\getst.obj" \
+ "$(INTDIR)\k_flock.obj" \
+ "$(INTDIR)\k_gethostname.obj" \
+ "$(INTDIR)\k_getport.obj" \
+ "$(INTDIR)\k_getsockinst.obj" \
+ "$(INTDIR)\k_localtime.obj" \
+ "$(INTDIR)\kdc_reply.obj" \
+ "$(INTDIR)\kntoln.obj" \
+ "$(INTDIR)\krb.res" \
+ "$(INTDIR)\krb_check_auth.obj" \
+ "$(INTDIR)\krb_equiv.obj" \
+ "$(INTDIR)\krb_err_txt.obj" \
+ "$(INTDIR)\krb_get_in_tkt.obj" \
+ "$(INTDIR)\lifetime.obj" \
+ "$(INTDIR)\logging.obj" \
+ "$(INTDIR)\lsb_addr_comp.obj" \
+ "$(INTDIR)\mk_auth.obj" \
+ "$(INTDIR)\mk_err.obj" \
+ "$(INTDIR)\mk_priv.obj" \
+ "$(INTDIR)\mk_req.obj" \
+ "$(INTDIR)\mk_safe.obj" \
+ "$(INTDIR)\month_sname.obj" \
+ "$(INTDIR)\name2name.obj" \
+ "$(INTDIR)\netread.obj" \
+ "$(INTDIR)\netwrite.obj" \
+ "$(INTDIR)\one.obj" \
+ "$(INTDIR)\parse_name.obj" \
+ "$(INTDIR)\rd_err.obj" \
+ "$(INTDIR)\rd_priv.obj" \
+ "$(INTDIR)\rd_req.obj" \
+ "$(INTDIR)\rd_safe.obj" \
+ "$(INTDIR)\read_service_key.obj" \
+ "$(INTDIR)\realm_parse.obj" \
+ "$(INTDIR)\recvauth.obj" \
+ "$(INTDIR)\rw.obj" \
+ "$(INTDIR)\save_credentials.obj" \
+ "$(INTDIR)\send_to_kdc.obj" \
+ "$(INTDIR)\sendauth.obj" \
+ "$(INTDIR)\stime.obj" \
+ "$(INTDIR)\str2key.obj" \
+ "$(INTDIR)\ticket_memory.obj" \
+ "$(INTDIR)\time.obj" \
+ "$(INTDIR)\tkt_string.obj" \
+ "$(INTDIR)\unparse_name.obj" \
+ "$(INTDIR)\util.obj" \
+ "$(INTDIR)\verify_user.obj" \
+ "..\des\Debug\des.lib"
+
+"$(OUTDIR)\krb.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "krb - Win32 Release"
-# Name "krb - Win32 Debug"
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb.def
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_tf_fullname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_T=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_T=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+!IF "$(CFG)" == "krb - Win32 Release" || "$(CFG)" == "krb - Win32 Debug"
SOURCE=.\cr_err_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CR_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_CR_ER=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)"
+"$(INTDIR)\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\create_auth_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_CREAT=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_CREAT=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\create_ciph.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_CREATE=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_CREATE=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)"
+"$(INTDIR)\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\create_ticket.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_CREATE_=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
+ ".\prot.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)"
-
+"$(INTDIR)\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_CREATE_=\
+SOURCE=.\debug_decl.c
+DEP_CPP_DEBUG=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)"
+"$(INTDIR)\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\decomp_ticket.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_DECOM=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_DECOM=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\dllmain.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_DLLMA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\ticket_memory.h"\
-
-
-".\Release\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_DLLMA=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
".\ticket_memory.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)"
+"$(INTDIR)\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\encrypt_ktext.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_ENCRY=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_ENCRY=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\et_list.c
-DEP_CPP_ET_LI=\
- "..\..\include\win32\config.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\et_list.obj" : $(SOURCE) $(DEP_CPP_ET_LI) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\et_list.obj" : $(SOURCE) $(DEP_CPP_ET_LI) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\get_ad_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_GET_A=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_A=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)"
+"$(INTDIR)\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\get_cred.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_C=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_GET_C=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\get_default_principal.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_GET_D=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_D=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)"
-
+"$(INTDIR)\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\get_host.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_H=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_GET_H=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)"
-
+"$(INTDIR)\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\get_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_GET_I=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_I=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)"
+"$(INTDIR)\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\get_krbrlm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_K=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_GET_K=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+"$(INTDIR)\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)"
-SOURCE=.\get_phos
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\get_svc_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_S=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_GET_S=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_phost.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_P=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\get_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)"
-
+"$(INTDIR)\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_GET_P=\
+SOURCE=.\get_tf_fullname.c
+DEP_CPP_GET_T=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\krb_equiv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_E=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)"
-
+"$(INTDIR)\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_KRB_E=\
+SOURCE=.\get_tf_realm.c
+DEP_CPP_GET_TF=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)"
+"$(INTDIR)\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\getaddrs.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_GETAD=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
+ ".\prot.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)"
-
+"$(INTDIR)\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_GETAD=\
+SOURCE=.\getfile.c
+DEP_CPP_GETFI=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\getfile.obj" : $(SOURCE) $(DEP_CPP_GETFI) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\getrealm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GETRE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_GETRE=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)"
-
+"$(INTDIR)\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\getst.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_GETST=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GETST=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)"
-
+"$(INTDIR)\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\k_flock.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_K_FLO=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_K_FLO=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\k_gethostname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GET=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_K_GET=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)"
-
+"$(INTDIR)\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\k_getport.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GETP=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_K_GETP=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\k_getsockinst.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_GETS=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_K_GETS=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)"
+"$(INTDIR)\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\k_localtime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_K_LOC=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_K_LOC=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\kdc_reply.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_KDC_R=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KDC_R=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)"
+"$(INTDIR)\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\kntoln.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KNTOL=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Release\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_KNTOL=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)"
-
+"$(INTDIR)\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\krb_check_auth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_C=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_KRB_C=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\get_tf_realm.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_GET_TF=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
+"$(INTDIR)\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)"
-".\Release\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)"
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_GET_TF=\
+SOURCE=.\krb_equiv.c
+DEP_CPP_KRB_E=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)"
-
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-SOURCE=.\rd_safe.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
+"$(INTDIR)\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)"
-DEP_CPP_RD_SA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-".\Release\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RD_SA=\
+SOURCE=.\krb_err_txt.c
+DEP_CPP_KRB_ER=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)"
+"$(INTDIR)\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\krb_get_in_tkt.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_G=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_KRB_G=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)"
-
+"$(INTDIR)\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\lifetime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_LIFET=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
+ ".\prot.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)"
+"$(INTDIR)\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_LIFET=\
+SOURCE=.\logging.c
+DEP_CPP_LOGGI=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\klog.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\lsb_addr_comp.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_LSB_A=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_LSB_A=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-archaeology.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)"
-
+"$(INTDIR)\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\mk_auth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_AU=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_MK_AU=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)"
-
+"$(INTDIR)\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\mk_err.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_MK_ER=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\mk_priv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_MK_PR=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_PR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-archaeology.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)"
+"$(INTDIR)\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\mk_req.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MK_RE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_MK_RE=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\mk_safe.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_MK_SA=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_MK_SA=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-archaeology.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)"
-
+"$(INTDIR)\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\month_sname.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_MONTH=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_MONTH=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)"
-
+"$(INTDIR)\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\name2name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_NAME2=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_NAME2=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)"
-
+"$(INTDIR)\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\netread.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_NETRE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_NETRE=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)"
-
+"$(INTDIR)\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\netwrite.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_NETWR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_NETWR=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\one.c
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\one.obj" : $(SOURCE) "$(INTDIR)"
-
+"$(INTDIR)\one.obj" : $(SOURCE) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\one.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\parse_name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_PARSE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_PARSE=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
+"$(INTDIR)\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\rd_err.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_RD_ER=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)"
+"$(INTDIR)\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\rd_priv.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_PR=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
-
-
-".\Release\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_RD_PR=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-archaeology.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
- ".\lsb_addr_comp.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)"
+"$(INTDIR)\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\rd_req.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RD_RE=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_RD_RE=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+"$(INTDIR)\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)"
-SOURCE=.\krb_err_txt.c
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_KRB_ER=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_KRB_ER=\
+SOURCE=.\rd_safe.c
+DEP_CPP_RD_SA=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-archaeology.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)"
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+"$(INTDIR)\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)"
-SOURCE=.\send_to_kdc.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-DEP_CPP_SEND_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_SEND_=\
+SOURCE=.\read_service_key.c
+DEP_CPP_READ_=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)"
+"$(INTDIR)\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
SOURCE=.\realm_parse.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_REALM=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_REALM=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\recvauth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RECVA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_RECVA=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)"
-
+"$(INTDIR)\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\resolve.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RESOL=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
- ".\resolve.h"\
-
-
-".\Release\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_RESOL=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\rw.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_RW_C68=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- "..\des\version.h"\
- ".\krb_locl.h"\
-
-
-".\Release\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C68) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_RW_C68=\
+DEP_CPP_RW_C6a=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\..\include\win32\version.h"\
"..\des\des.h"\
- "..\des\version.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C68) "$(INTDIR)"
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-!ENDIF
+"$(INTDIR)\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C6a) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\save_credentials.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_SAVE_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_SAVE_=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)"
+"$(INTDIR)\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\read_service_key.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_READ_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_READ_=\
+SOURCE=.\send_to_kdc.c
+DEP_CPP_SEND_=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\base64.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\verify_user.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_VERIF=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)"
-
+"$(INTDIR)\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_VERIF=\
+SOURCE=.\sendauth.c
+DEP_CPP_SENDA=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\stime.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_STIME=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
+ ".\prot.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)"
-
+"$(INTDIR)\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_STIME=\
+SOURCE=.\str2key.c
+DEP_CPP_STR2K=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)"
+"$(INTDIR)\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\swab.c
-DEP_CPP_SWAB_=\
- "..\..\include\win32\config.h"\
-
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-
-".\Release\swab.obj" : $(SOURCE) $(DEP_CPP_SWAB_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-
-".\Debug\swab.obj" : $(SOURCE) $(DEP_CPP_SWAB_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\ticket_memory.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_TICKE=\
- ".\krb_locl.h"\
- ".\ticket_memory.h"\
-
-
-".\Release\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_TICKE=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
+ ".\prot.h"\
".\ticket_memory.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+"$(INTDIR)\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)"
-SOURCE=.\tkt_string.c
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_TKT_S=\
+SOURCE=.\time.c
+DEP_CPP_TIME_=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
+ "..\des\des.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
+ ".\krb.h"\
".\krb_locl.h"\
-
+ ".\krb_log.h"\
+ ".\prot.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)"
+"$(INTDIR)\time.obj" : $(SOURCE) $(DEP_CPP_TIME_) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
+SOURCE=.\tkt_string.c
DEP_CPP_TKT_S=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)"
-
-
-!ENDIF
+"$(INTDIR)\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)"
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\unparse_name.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
DEP_CPP_UNPAR=\
"..\..\include\protos.h"\
"..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_UNPAR=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)"
-
+"$(INTDIR)\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)"
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
SOURCE=.\util.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_UTIL_=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
DEP_CPP_UTIL_=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Debug\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
+"$(INTDIR)\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)"
-SOURCE=.\sendauth.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-DEP_CPP_SENDA=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_SENDA=\
+SOURCE=.\verify_user.c
+DEP_CPP_VERIF=\
"..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
"..\..\include\win32\config.h"\
+ "..\..\include\win32\ktypes.h"\
+ "..\..\include\win32\roken.h"\
"..\des\des.h"\
- "..\roken\roken.h"\
+ "..\roken\err.h"\
+ "..\roken\roken-common.h"\
+ ".\krb-protos.h"\
".\krb.h"\
".\krb_locl.h"\
+ ".\krb_log.h"\
".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\logging.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
-
-DEP_CPP_LOGGI=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\klog.h"\
- ".\krb_locl.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
-".\Release\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
+"$(INTDIR)\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)"
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
+SOURCE=.\krb.rc
-DEP_CPP_LOGGI=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\klog.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
+"$(INTDIR)\krb.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
-".\Debug\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\str2key.c
-
!IF "$(CFG)" == "krb - Win32 Release"
-DEP_CPP_STR2K=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
-
-
-".\Release\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)"
+"des - Win32 Release" :
+ cd "\tmp\wirus-krb\krb4-pre-0.9.9\lib\des"
+ $(MAKE) /$(MAKEFLAGS) /F ".\des.mak" CFG="des - Win32 Release"
+ cd "..\krb"
+"des - Win32 ReleaseCLEAN" :
+ cd "\tmp\wirus-krb\krb4-pre-0.9.9\lib\des"
+ $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\des.mak" CFG="des - Win32 Release"\
+ RECURSE=1
+ cd "..\krb"
!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-DEP_CPP_STR2K=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)"
-
-
-!ENDIF
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\debug_decl.c
-
-!IF "$(CFG)" == "krb - Win32 Release"
+"des - Win32 Debug" :
+ cd "\tmp\wirus-krb\krb4-pre-0.9.9\lib\des"
+ $(MAKE) /$(MAKEFLAGS) /F ".\des.mak" CFG="des - Win32 Debug"
+ cd "..\krb"
-DEP_CPP_DEBUG=\
- "..\..\include\protos.h"\
- "..\..\include\win32\config.h"\
- ".\krb_locl.h"\
+"des - Win32 DebugCLEAN" :
+ cd "\tmp\wirus-krb\krb4-pre-0.9.9\lib\des"
+ $(MAKE) /$(MAKEFLAGS) CLEAN /F ".\des.mak" CFG="des - Win32 Debug" RECURSE=1\
+ cd "..\krb"
-".\Release\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "krb - Win32 Debug"
-
-DEP_CPP_DEBUG=\
- "..\..\include\protos.h"\
- "..\..\include\sys/bitypes.h"\
- "..\..\include\sys/cdefs.h"\
- "..\..\include\win32\config.h"\
- "..\des\des.h"\
- "..\roken\roken.h"\
- ".\krb.h"\
- ".\krb_locl.h"\
- ".\prot.h"\
- ".\resolve.h"\
- {$(INCLUDE)}"\sys\STAT.H"\
- {$(INCLUDE)}"\sys\TYPES.H"\
-
-
-".\Debug\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)"
+!ENDIF
!ENDIF
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/crypto/kerberosIV/lib/krb/krb.rc b/crypto/kerberosIV/lib/krb/krb.rc
new file mode 100644
index 0000000..413e706
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb.rc
@@ -0,0 +1,105 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Swedish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
+#ifdef _WIN32
+LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "Royal Institute of Technology (KTH)\0"
+ VALUE "FileDescription", "krb\0"
+ VALUE "FileVersion", "4, 0, 9, 9\0"
+ VALUE "InternalName", "krb\0"
+ VALUE "LegalCopyright", "Copyright © 1996 - 1998 Royal Institute of Technology (KTH)\0"
+ VALUE "OriginalFilename", "krb.dll\0"
+ VALUE "ProductName", "KTH Kerberos\0"
+ VALUE "ProductVersion", "4,0,9,9\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+#endif // Swedish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/crypto/kerberosIV/lib/krb/krb_equiv.c b/crypto/kerberosIV/lib/krb/krb_equiv.c
index 06f42f5..fab79e5 100644
--- a/crypto/kerberosIV/lib/krb/krb_equiv.c
+++ b/crypto/kerberosIV/lib/krb/krb_equiv.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -56,7 +56,7 @@
*/
#include "krb_locl.h"
-RCSID("$Id: krb_equiv.c,v 1.13 1997/04/01 08:18:33 joda Exp $");
+RCSID("$Id: krb_equiv.c,v 1.14 1999/03/13 21:25:30 assar Exp $");
int krb_ignore_ip_address = 0;
@@ -100,9 +100,9 @@ krb_equiv(u_int32_t a, u_int32_t b)
++t;
} else if (*t == '\\' ) /* continuation */
break;
- else if (isspace(*t)) /* skip space */
+ else if (isspace((unsigned char)*t)) /* skip space */
t++;
- else if (isdigit(*t)) /* an address? */
+ else if (isdigit((unsigned char)*t)) /* an address? */
{
u_int32_t tmp;
u_int32_t tmpa, tmpb, tmpc, tmpd;
@@ -110,7 +110,8 @@ krb_equiv(u_int32_t a, u_int32_t b)
sscanf(t, "%d.%d.%d.%d", &tmpa, &tmpb, &tmpc, &tmpd);
tmp = (tmpa << 24) | (tmpb << 16) | (tmpc << 8) | tmpd;
- while (*t == '.' || isdigit(*t)) /* done with this address */
+ /* done with this address */
+ while (*t == '.' || isdigit((unsigned char)*t))
t++;
if (tmp != -1) { /* an address (and not broadcast) */
@@ -120,7 +121,7 @@ krb_equiv(u_int32_t a, u_int32_t b)
++t;
mask <<= 32 - atoi(t);
- while(isdigit(*t))
+ while(isdigit((unsigned char)*t))
++t;
}
diff --git a/crypto/kerberosIV/lib/krb/krb_err.et b/crypto/kerberosIV/lib/krb/krb_err.et
index 4e32aed..9dce192 100644
--- a/crypto/kerberosIV/lib/krb/krb_err.et
+++ b/crypto/kerberosIV/lib/krb/krb_err.et
@@ -3,255 +3,63 @@
# For copying and distribution information, see the file
# "mit-copyright.h".
#
-# $Id: krb_err.et,v 1.4 1996/10/27 13:30:28 bg Exp $
+# This might look like a com_err file, but is not
#
- error_table krb
-
- ec KRBET_KSUCCESS,
- "Kerberos successful"
-
- ec KRBET_KDC_NAME_EXP,
- "Kerberos principal expired"
-
- ec KRBET_KDC_SERVICE_EXP,
- "Kerberos service expired"
-
- ec KRBET_KDC_AUTH_EXP,
- "Kerberos auth expired"
-
- ec KRBET_KDC_PKT_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_P_MKEY_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_S_MKEY_VER,
- "Incorrect kerberos master key version"
-
- ec KRBET_KDC_BYTE_ORDER,
- "Kerberos error: byte order unknown"
-
- ec KRBET_KDC_PR_UNKNOWN,
- "Kerberos principal unknown"
-
- ec KRBET_KDC_PR_N_UNIQUE,
- "Kerberos principal not unique"
-
- ec KRBET_KDC_NULL_KEY,
- "Kerberos principal has null key"
-
- ec KRBET_KRB_RES11,
- "Reserved 11"
-
- ec KRBET_KRB_RES12,
- "Reserved 12"
-
- ec KRBET_KRB_RES13,
- "Reserved 13"
-
- ec KRBET_KRB_RES14,
- "Reserved 14"
-
- ec KRBET_KRB_RES15,
- "Reserved 15"
-
- ec KRBET_KRB_RES16,
- "Reserved 16"
-
- ec KRBET_KRB_RES17,
- "Reserved 17"
-
- ec KRBET_KRB_RES18,
- "Reserved 18"
-
- ec KRBET_KRB_RES19,
- "Reserved 19"
-
- ec KRBET_KDC_GEN_ERR,
- "Generic error from Kerberos KDC"
-
- ec KRBET_GC_TKFIL,
- "Can't read Kerberos ticket file"
-
- ec KRBET_GC_NOTKT,
- "Can't find Kerberos ticket or TGT"
-
- ec KRBET_KRB_RES23,
- "Reserved 23"
-
- ec KRBET_KRB_RES24,
- "Reserved 24"
-
- ec KRBET_KRB_RES25,
- "Reserved 25"
-
- ec KRBET_MK_AP_TGTEXP,
- "Kerberos TGT Expired"
-
- ec KRBET_KRB_RES27,
- "Reserved 27"
-
- ec KRBET_KRB_RES28,
- "Reserved 28"
-
- ec KRBET_KRB_RES29,
- "Reserved 29"
-
- ec KRBET_KRB_RES30,
- "Reserved 30"
-
- ec KRBET_RD_AP_UNDEC,
- "Kerberos error: Can't decode authenticator"
-
- ec KRBET_RD_AP_EXP,
- "Kerberos ticket expired"
-
- ec KRBET_RD_AP_NYV,
- "Kerberos ticket not yet valid"
-
- ec KRBET_RD_AP_REPEAT,
- "Kerberos error: Repeated request"
-
- ec KRBET_RD_AP_NOT_US,
- "The kerberos ticket isn't for us"
-
- ec KRBET_RD_AP_INCON,
- "Kerberos request inconsistent"
-
- ec KRBET_RD_AP_TIME,
- "Kerberos error: delta_t too big"
-
- ec KRBET_RD_AP_BADD,
- "Kerberos error: incorrect net address"
-
- ec KRBET_RD_AP_VERSION,
- "Kerberos protocol version mismatch"
-
- ec KRBET_RD_AP_MSG_TYPE,
- "Kerberos error: invalid msg type"
-
- ec KRBET_RD_AP_MODIFIED,
- "Kerberos error: message stream modified"
-
- ec KRBET_RD_AP_ORDER,
- "Kerberos error: message out of order"
-
- ec KRBET_RD_AP_UNAUTHOR,
- "Kerberos error: unauthorized request"
-
- ec KRBET_KRB_RES44,
- "Reserved 44"
-
- ec KRBET_KRB_RES45,
- "Reserved 45"
-
- ec KRBET_KRB_RES46,
- "Reserved 46"
-
- ec KRBET_KRB_RES47,
- "Reserved 47"
-
- ec KRBET_KRB_RES48,
- "Reserved 48"
-
- ec KRBET_KRB_RES49,
- "Reserved 49"
-
- ec KRBET_KRB_RES50,
- "Reserved 50"
-
- ec KRBET_GT_PW_NULL,
- "Kerberos error: current PW is null"
-
- ec KRBET_GT_PW_BADPW,
- "Kerberos error: Incorrect current password"
-
- ec KRBET_GT_PW_PROT,
- "Kerberos protocol error"
-
- ec KRBET_GT_PW_KDCERR,
- "Error returned by Kerberos KDC"
-
- ec KRBET_GT_PW_NULLTKT,
- "Null Kerberos ticket returned by KDC"
-
- ec KRBET_SKDC_RETRY,
- "Kerberos error: Retry count exceeded"
-
- ec KRBET_SKDC_CANT,
- "Kerberos error: Can't send request"
-
- ec KRBET_KRB_RES58,
- "Reserved 58"
-
- ec KRBET_KRB_RES59,
- "Reserved 59"
-
- ec KRBET_KRB_RES60,
- "Reserved 60"
-
- ec KRBET_INTK_W_NOTALL,
- "Kerberos error: not all tickets returned"
-
- ec KRBET_INTK_BADPW,
- "Kerberos error: incorrect password"
-
- ec KRBET_INTK_PROT,
- "Kerberos error: Protocol Error"
-
- ec KRBET_KRB_RES64,
- "Reserved 64"
-
- ec KRBET_KRB_RES65,
- "Reserved 65"
-
- ec KRBET_KRB_RES66,
- "Reserved 66"
-
- ec KRBET_KRB_RES67,
- "Reserved 67"
-
- ec KRBET_KRB_RES68,
- "Reserved 68"
-
- ec KRBET_KRB_RES69,
- "Reserved 69"
-
- ec KRBET_INTK_ERR,
- "Other error"
-
- ec KRBET_AD_NOTGT,
- "Don't have Kerberos ticket-granting ticket"
-
- ec KRBET_KRB_RES72,
- "Can't get Kerberos inter-realm ticket-granting ticket"
-
- ec KRBET_KRB_RES73,
- "Reserved 73"
-
- ec KRBET_KRB_RES74,
- "Reserved 74"
-
- ec KRBET_KRB_RES75,
- "Reserved 75"
-
- ec KRBET_NO_TKT_FIL,
- "No ticket file found"
-
- ec KRBET_TKT_FIL_ACC,
- "Couldn't access ticket file"
-
- ec KRBET_TKT_FIL_LCK,
- "Couldn't lock ticket file"
-
- ec KRBET_TKT_FIL_FMT,
- "Bad ticket file format"
-
- ec KRBET_TKT_FIL_INI,
- "tf_init not called first"
-
- ec KRBET_KNAME_FMT,
- "Bad Kerberos name format"
-
- end
-
+id "$Id: krb_err.et,v 1.7 1998/03/29 14:19:52 bg Exp $"
+
+error_table krb
+
+prefix KRBET
+ec KSUCCESS, "Kerberos successful"
+ec KDC_NAME_EXP, "Kerberos principal expired"
+ec KDC_SERVICE_EXP, "Kerberos service expired"
+ec KDC_AUTH_EXP, "Kerberos auth expired"
+ec KDC_PKT_VER, "Incorrect kerberos master key version"
+ec KDC_P_MKEY_VER, "Incorrect kerberos master key version"
+ec KDC_S_MKEY_VER, "Incorrect kerberos master key version"
+ec KDC_BYTE_ORDER, "Kerberos error: byte order unknown"
+ec KDC_PR_UNKNOWN, "Kerberos principal unknown"
+ec KDC_PR_N_UNIQUE, "Kerberos principal not unique"
+ec KDC_NULL_KEY, "Kerberos principal has null key"
+index 20
+ec KDC_GEN_ERR, "Generic error from Kerberos KDC"
+ec GC_TKFIL, "Can't read Kerberos ticket file"
+ec GC_NOTKT, "Can't find Kerberos ticket or TGT"
+index 26
+ec MK_AP_TGTEXP, "Kerberos TGT Expired"
+index 31
+ec RD_AP_UNDEC, "Kerberos error: Can't decode authenticator"
+ec RD_AP_EXP, "Kerberos ticket expired"
+ec RD_AP_NYV, "Kerberos ticket not yet valid"
+ec RD_AP_REPEAT, "Kerberos error: Repeated request"
+ec RD_AP_NOT_US, "The kerberos ticket isn't for us"
+ec RD_AP_INCON, "Kerberos request inconsistent"
+ec RD_AP_TIME, "Kerberos error: delta_t too big"
+ec RD_AP_BADD, "Kerberos error: incorrect net address"
+ec RD_AP_VERSION, "Kerberos protocol version mismatch"
+ec RD_AP_MSG_TYPE, "Kerberos error: invalid msg type"
+ec RD_AP_MODIFIED, "Kerberos error: message stream modified"
+ec RD_AP_ORDER, "Kerberos error: message out of order"
+ec RD_AP_UNAUTHOR, "Kerberos error: unauthorized request"
+index 51
+ec GT_PW_NULL, "Kerberos error: current PW is null"
+ec GT_PW_BADPW, "Kerberos error: Incorrect current password"
+ec GT_PW_PROT, "Kerberos protocol error"
+ec GT_PW_KDCERR, "Error returned by Kerberos KDC"
+ec GT_PW_NULLTKT, "Null Kerberos ticket returned by KDC"
+ec SKDC_RETRY, "Kerberos error: Retry count exceeded"
+ec SKDC_CANT, "Kerberos error: Can't send request"
+index 61
+ec INTK_W_NOTALL, "Kerberos error: not all tickets returned"
+ec INTK_BADPW, "Kerberos error: incorrect password"
+ec INTK_PROT, "Kerberos error: Protocol Error"
+index 70
+ec INTK_ERR, "Other error"
+ec AD_NOTGT, "Don't have Kerberos ticket-granting ticket"
+index 76
+ec NO_TKT_FIL, "No ticket file found"
+ec TKT_FIL_ACC, "Couldn't access ticket file"
+ec TKT_FIL_LCK, "Couldn't lock ticket file"
+ec TKT_FIL_FMT, "Bad ticket file format"
+ec TKT_FIL_INI, "tf_init not called first"
+ec KNAME_FMT, "Bad Kerberos name format"
diff --git a/crypto/kerberosIV/lib/krb/krb_err_txt.c b/crypto/kerberosIV/lib/krb/krb_err_txt.c
index 161aa0f..cb6cd13 100644
--- a/crypto/kerberosIV/lib/krb/krb_err_txt.c
+++ b/crypto/kerberosIV/lib/krb/krb_err_txt.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: krb_err_txt.c,v 1.12 1997/04/02 05:37:10 joda Exp $");
+RCSID("$Id: krb_err_txt.c,v 1.13 1998/01/31 08:11:52 joda Exp $");
/*
* This file contains an array of error text strings.
@@ -70,7 +70,7 @@ const char *krb_err_txt[256] = {
"Time is out of bounds (krb_rd_req)", /* 037 */
"Incorrect network address (krb_rd_req)", /* 038 */
"Protocol version mismatch (krb_rd_req)", /* 039 */
- "Illegal message type (krb_rd_req)", /* 040 */
+ "Invalid message type (krb_rd_req)", /* 040 */
"Message integrity error (krb_rd_req)", /* 041 */
"Message duplicate or out of order (krb_rd_req)", /* 042 */
"Unauthorized request (krb_rd_req)", /* 043 */
@@ -288,7 +288,7 @@ const char *krb_err_txt[256] = {
"Generic kerberos error (kfailure)", /* 255 */
};
-static const char err_failure[] = "Illegal error code passed (krb_get_err_text)";
+static const char err_failure[] = "Unknown error code passed (krb_get_err_text)";
const char *
krb_get_err_text(int code)
diff --git a/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c b/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c
index d3e6cc1..83848c8 100644
--- a/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c
+++ b/crypto/kerberosIV/lib/krb/krb_get_in_tkt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: krb_get_in_tkt.c,v 1.20 1997/04/01 08:18:34 joda Exp $");
+RCSID("$Id: krb_get_in_tkt.c,v 1.29 1999/06/29 21:18:07 bg Exp $");
/*
* decrypt_tkt(): Given user, instance, realm, passwd, key_proc
@@ -47,8 +47,12 @@ RCSID("$Id: krb_get_in_tkt.c,v 1.20 1997/04/01 08:18:34 joda Exp $");
*/
static int
-decrypt_tkt(char *user, char *instance, char *realm,
- void *arg, key_proc_t key_proc, KTEXT *cip)
+decrypt_tkt(const char *user,
+ char *instance,
+ const char *realm,
+ const void *arg,
+ key_proc_t key_proc,
+ KTEXT *cip)
{
des_cblock key; /* Key for decrypting cipher */
int ret;
@@ -105,32 +109,64 @@ decrypt_tkt(char *user, char *instance, char *realm,
*/
int
-krb_get_in_tkt(char *user, char *instance, char *realm,
- char *service, char *sinstance, int life,
- key_proc_t key_proc, decrypt_proc_t decrypt_proc, void *arg)
+krb_mk_as_req(const char *user,
+ const char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ int life,
+ KTEXT cip)
{
KTEXT_ST pkt_st;
KTEXT pkt = &pkt_st; /* Packet to KDC */
KTEXT_ST rpkt_st;
- KTEXT rpkt = &rpkt_st; /* Returned packet */
-
+ KTEXT rpkt = &rpkt_st; /* Reply from KDC */
+
int kerror;
struct timeval tv;
/* BUILD REQUEST PACKET */
unsigned char *p = pkt->dat;
+ int tmp;
+ size_t rem = sizeof(pkt->dat);
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_KDC_REQUEST, p, 1);
-
- p += krb_put_nir(user, instance, realm, p);
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(AUTH_MSG_KDC_REQUEST, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_nir(user, instance, realm, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
gettimeofday(&tv, NULL);
- p += krb_put_int(tv.tv_sec, p, 4);
- p += krb_put_int(life, p, 1);
-
- p += krb_put_nir(service, sinstance, NULL, p);
+ tmp = krb_put_int(tv.tv_sec, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(life, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_nir(service, sinstance, NULL, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
pkt->length = p - pkt->dat;
@@ -138,38 +174,67 @@ krb_get_in_tkt(char *user, char *instance, char *realm,
/* SEND THE REQUEST AND RECEIVE THE RETURN PACKET */
- if ((kerror = send_to_kdc(pkt, rpkt, realm))) return(kerror);
-
- p = rpkt->dat;
+ kerror = send_to_kdc(pkt, rpkt, realm);
+ if(kerror) return kerror;
+ kerror = kdc_reply_cipher(rpkt, cip);
+ return kerror;
+}
+
+int
+krb_decode_as_rep(const char *user,
+ char *instance,
+ const char *realm,
+ const char *service,
+ const char *sinstance,
+ key_proc_t key_proc,
+ decrypt_proc_t decrypt_proc,
+ const void *arg,
+ KTEXT as_rep,
+ CREDENTIALS *cred)
+{
+ int kerror;
+ time_t now;
- {
- CREDENTIALS cred;
- KTEXT_ST cip;
- KTEXT foo = &cip; /* braindamage */
+ if (decrypt_proc == NULL)
+ decrypt_tkt(user, instance, realm, arg, key_proc, &as_rep);
+ else
+ (*decrypt_proc)(user, instance, realm, arg, key_proc, &as_rep);
+
+ kerror = kdc_reply_cred(as_rep, cred);
+ if(kerror != KSUCCESS)
+ return kerror;
- kerror = kdc_reply_cipher(rpkt, &cip);
- if(kerror != KSUCCESS)
- return kerror;
+ if (strcmp(cred->service, service) ||
+ strcmp(cred->instance, sinstance) ||
+ strcmp(cred->realm, realm)) /* not what we asked for */
+ return INTK_ERR; /* we need a better code here XXX */
- if (decrypt_proc == NULL)
- decrypt_proc = decrypt_tkt;
- (*decrypt_proc)(user, instance, realm, arg, key_proc, &foo);
+ now = time(NULL);
+ if(krb_get_config_bool("kdc_timesync"))
+ krb_set_kdc_time_diff(cred->issue_date - now);
+ else if (abs((int)(now - cred->issue_date)) > CLOCK_SKEW)
+ return RD_AP_TIME; /* XXX should probably be better code */
- kerror = kdc_reply_cred(&cip, &cred);
- if(kerror != KSUCCESS)
- return kerror;
-
- if (strcmp(cred.service, service) ||
- strcmp(cred.instance, sinstance) ||
- strcmp(cred.realm, realm)) /* not what we asked for */
- return INTK_ERR; /* we need a better code here XXX */
+ return 0;
+}
- if (abs((int)(tv.tv_sec - cred.issue_date)) > CLOCK_SKEW) {
- return RD_AP_TIME; /* XXX should probably be better code */
- }
+int
+krb_get_in_tkt(char *user, char *instance, char *realm,
+ char *service, char *sinstance, int life,
+ key_proc_t key_proc, decrypt_proc_t decrypt_proc, void *arg)
+{
+ KTEXT_ST as_rep;
+ CREDENTIALS cred;
+ int ret;
- /* initialize ticket cache */
+ ret = krb_mk_as_req(user, instance, realm,
+ service, sinstance, life, &as_rep);
+ if(ret)
+ return ret;
+ ret = krb_decode_as_rep(user, instance, realm, service, sinstance,
+ key_proc, decrypt_proc, arg, &as_rep, &cred);
+ if(ret)
+ return ret;
- return tf_setup(&cred, user, instance);
- }
+ return tf_setup(&cred, user, instance);
}
diff --git a/crypto/kerberosIV/lib/krb/krb_locl.h b/crypto/kerberosIV/lib/krb/krb_locl.h
index 4475883..f5792a8 100644
--- a/crypto/kerberosIV/lib/krb/krb_locl.h
+++ b/crypto/kerberosIV/lib/krb/krb_locl.h
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*/
-/* $Id: krb_locl.h,v 1.42 1997/05/20 18:40:45 bg Exp $ */
+/* $Id: krb_locl.h,v 1.49 1998/06/13 00:06:59 assar Exp $ */
#ifndef __krb_locl_h
#define __krb_locl_h
@@ -119,6 +119,11 @@
#ifdef SOCKS
#include <socks.h>
+
+/* This doesn't belong here. */
+struct tm *localtime(const time_t *);
+struct hostent *gethostbyname(const char *);
+
#endif
#include <roken.h>
@@ -127,37 +132,49 @@
#include <prot.h>
#include "resolve.h"
+#include "krb_log.h"
/* --- */
-/* Globals! */
-extern int krb_debug;
-extern int krb_ap_req_debug;
-
/* Utils */
-int krb_name_to_name(const char *, char *, size_t);
+int
+krb_name_to_name __P((
+ const char *host,
+ char *phost,
+ size_t phost_size));
-void encrypt_ktext(KTEXT cip, des_cblock *key, int encrypt);
-int kdc_reply_cred(KTEXT cip, CREDENTIALS *cred);
-int kdc_reply_cipher(KTEXT reply, KTEXT cip);
+void
+encrypt_ktext __P((
+ KTEXT cip,
+ des_cblock *key,
+ int encrypt));
-#ifndef HAVE_GETTIMEOFDAY
-int gettimeofday (struct timeval *, void *);
-#endif
+int
+kdc_reply_cipher __P((
+ KTEXT reply,
+ KTEXT cip));
-void k_ricercar(char*);
+int
+kdc_reply_cred __P((
+ KTEXT cip,
+ CREDENTIALS *cred));
-/* safe multiple strcat */
-int k_concat(char*, size_t, ...);
-int k_vconcat(char*, size_t, va_list);
+void
+k_ricercar __P((char *name));
-/* mallocing versions of the above */
-size_t k_vmconcat (char**, size_t, va_list);
-size_t k_mconcat (char**, size_t, ...);
/* used in rd_safe.c and mk_safe.c */
-void fixup_quad_cksum(void *start, size_t len, des_cblock *key,
- void *new_checksum, void *old_checksum, int little);
+void
+fixup_quad_cksum __P((
+ void *start,
+ size_t len,
+ des_cblock *key,
+ void *new_checksum,
+ void *old_checksum,
+ int little));
+
+void
+krb_kdctimeofday __P((struct timeval *tv));
#endif /* __krb_locl_h */
diff --git a/crypto/kerberosIV/lib/krb/krb_log.h b/crypto/kerberosIV/lib/krb/krb_log.h
new file mode 100644
index 0000000..a760102
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb_log.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 1995, 1996, 1997 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Id: krb_log.h,v 1.2 1997/09/26 17:40:33 joda Exp $ */
+
+#include <krb.h>
+
+#ifndef __KRB_LOG_H__
+#define __KRB_LOG_H__
+
+#if !defined(__GNUC__) && !defined(__attribute__)
+#define __attribute__(X)
+#endif
+
+__BEGIN_DECLS
+
+/* logging.c */
+
+typedef int (*krb_log_func_t) __P((FILE *, const char *, va_list));
+
+typedef krb_log_func_t krb_warnfn_t;
+
+struct krb_log_facility;
+
+int krb_vlogger __P((struct krb_log_facility*, const char *, va_list))
+ __attribute__ ((format (printf, 2, 0)));
+int krb_logger __P((struct krb_log_facility*, const char *, ...))
+ __attribute__ ((format (printf, 2, 3)));
+int krb_openlog __P((struct krb_log_facility*, char*, FILE*, krb_log_func_t));
+
+void krb_set_warnfn __P((krb_warnfn_t));
+krb_warnfn_t krb_get_warnfn __P((void));
+void krb_warning __P((const char*, ...))
+ __attribute__ ((format (printf, 1, 2)));
+
+void kset_logfile __P((char*));
+void krb_log __P((const char*, ...))
+ __attribute__ ((format (printf, 1, 2)));
+char *klog __P((int, const char*, ...))
+ __attribute__ ((format (printf, 2, 3)));
+
+__END_DECLS
+
+#endif /* __KRB_LOG_H__ */
diff --git a/crypto/kerberosIV/lib/krb/krb_net_read.c b/crypto/kerberosIV/lib/krb/krb_net_read.c
new file mode 100644
index 0000000..7459e2f
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb_net_read.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: krb_net_read.c,v 1.2 1999/03/17 16:18:37 joda Exp $");
+
+int
+krb_net_read (int fd, void *buf, size_t nbytes)
+{
+ return net_read (fd, buf, nbytes);
+}
diff --git a/crypto/kerberosIV/lib/krb/krb_net_write.c b/crypto/kerberosIV/lib/krb/krb_net_write.c
new file mode 100644
index 0000000..e086ee1
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/krb_net_write.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: krb_net_write.c,v 1.2 1999/03/17 16:18:37 joda Exp $");
+
+int
+krb_net_write (int fd, const void *buf, size_t nbytes)
+{
+ return net_write (fd, buf, nbytes);
+}
diff --git a/crypto/kerberosIV/lib/krb/kuserok.c b/crypto/kerberosIV/lib/krb/kuserok.c
index e3d5e6b..4a2be44 100644
--- a/crypto/kerberosIV/lib/krb/kuserok.c
+++ b/crypto/kerberosIV/lib/krb/kuserok.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995 - 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,12 +38,29 @@
#include "krb_locl.h"
-RCSID("$Id: kuserok.c,v 1.21 1997/04/01 08:18:35 joda Exp $");
+RCSID("$Id: kuserok.c,v 1.24 1999/06/23 10:12:37 assar Exp $");
#define OK 0
#define NOTOK 1
#define MAX_USERNAME 10
+/*
+ * Return OK if `r' is one of the local realms, else NOTOK
+ */
+
+static int
+is_local_realm (const char *r)
+{
+ char lrealm[REALM_SZ];
+ int n;
+
+ for (n = 1; krb_get_lrealm(lrealm, n) == KSUCCESS; ++n) {
+ if (strcmp (r, lrealm) == 0)
+ return OK;
+ }
+ return NOTOK;
+}
+
/*
* Given a Kerberos principal and a local username, determine whether
* user is authorized to login according to the authorization file
@@ -83,7 +100,6 @@ int
krb_kuserok(char *name, char *instance, char *realm, char *luser)
{
struct passwd *pwd;
- char lrealm[REALM_SZ];
FILE *f;
char line[1024];
char file[MaxPathLen];
@@ -92,15 +108,13 @@ krb_kuserok(char *name, char *instance, char *realm, char *luser)
pwd = getpwnam(luser);
if(pwd == NULL)
return NOTOK;
- if(krb_get_lrealm(lrealm, 1))
- return NOTOK;
- if(pwd->pw_uid != 0 &&
- strcmp(name, luser) == 0 &&
- strcmp(instance, "") == 0 &&
- strcmp(realm, lrealm) == 0)
+ if (pwd->pw_uid != 0
+ && strcmp (name, luser) == 0
+ && strcmp (instance, "") == 0
+ && is_local_realm (realm) == OK)
return OK;
- strcpy(file, pwd->pw_dir);
- strcat(file, "/.klogin");
+
+ snprintf(file, sizeof(file), "%s/.klogin", pwd->pw_dir);
f = fopen(file, "r");
if(f == NULL)
@@ -135,10 +149,15 @@ krb_kuserok(char *name, char *instance, char *realm, char *luser)
continue;
if(strcmp(instance, finst))
continue;
- if(frealm[0] == 0)
- strcpy(frealm, lrealm);
- if(strcmp(realm, frealm))
+#if 0 /* don't support principals without realm any longer */
+ if(frealm[0] == 0) {
+ if (is_local_realm (realm) != OK)
+ continue;
+ } else
+#endif
+ if (strcmp (realm, frealm))
continue;
+
fclose(f);
return OK;
}
@@ -153,4 +172,3 @@ kuserok(AUTH_DAT *auth, char *luser)
{
return krb_kuserok(auth->pname, auth->pinst, auth->prealm, luser);
}
-
diff --git a/crypto/kerberosIV/lib/krb/logging.c b/crypto/kerberosIV/lib/krb/logging.c
index 15e5bde..76965fd 100644
--- a/crypto/kerberosIV/lib/krb/logging.c
+++ b/crypto/kerberosIV/lib/krb/logging.c
@@ -39,7 +39,7 @@
#include "krb_locl.h"
#include <klog.h>
-RCSID("$Id: logging.c,v 1.14 1997/05/11 09:01:40 assar Exp $");
+RCSID("$Id: logging.c,v 1.16 1998/07/24 06:13:35 assar Exp $");
struct krb_log_facility {
char filename[MaxPathLen];
@@ -87,7 +87,7 @@ krb_openlog(struct krb_log_facility *f,
FILE *file,
krb_log_func_t func)
{
- strcpy(f->filename, filename);
+ strcpy_truncate(f->filename, filename, MaxPathLen);
f->file = file;
f->func = func;
return KSUCCESS;
@@ -109,7 +109,7 @@ log_tty(FILE *f, const char *format, va_list args)
static struct krb_log_facility std_log = { "/dev/tty", NULL, log_tty };
static void
-init_std_log ()
+init_std_log (void)
{
static int done = 0;
diff --git a/crypto/kerberosIV/lib/krb/lsb_addr_comp.c b/crypto/kerberosIV/lib/krb/lsb_addr_comp.c
index bc3c484..024e8ca 100644
--- a/crypto/kerberosIV/lib/krb/lsb_addr_comp.c
+++ b/crypto/kerberosIV/lib/krb/lsb_addr_comp.c
@@ -38,9 +38,9 @@
#include "krb_locl.h"
-RCSID("$Id: lsb_addr_comp.c,v 1.9 1997/04/01 08:18:37 joda Exp $");
+RCSID("$Id: lsb_addr_comp.c,v 1.15 1998/10/22 15:58:26 joda Exp $");
-#include "lsb_addr_comp.h"
+#include "krb-archaeology.h"
int
krb_lsb_antinet_ulong_cmp(u_int32_t x, u_int32_t y)
@@ -83,23 +83,57 @@ krb_lsb_antinet_ushort_cmp(u_int16_t x, u_int16_t y)
u_int32_t
lsb_time(time_t t, struct sockaddr_in *src, struct sockaddr_in *dst)
{
+ int dir = 1;
+ const char *fw;
+
/*
* direction bit is the sign bit of the timestamp. Ok until
* 2038??
*/
+ if(krb_debug) {
+ krb_warning("lsb_time: src = %s:%u\n",
+ inet_ntoa(src->sin_addr), ntohs(src->sin_port));
+ krb_warning("lsb_time: dst = %s:%u\n",
+ inet_ntoa(dst->sin_addr), ntohs(dst->sin_port));
+ }
+
/* For compatibility with broken old code, compares are done in VAX
byte order (LSBFIRST) */
if (krb_lsb_antinet_ulong_less(src->sin_addr.s_addr, /* src < recv */
dst->sin_addr.s_addr) < 0)
- t = -t;
+ dir = -1;
else if (krb_lsb_antinet_ulong_less(src->sin_addr.s_addr,
dst->sin_addr.s_addr)==0)
if (krb_lsb_antinet_ushort_less(src->sin_port, dst->sin_port) < 0)
- t = -t;
+ dir = -1;
/*
* all that for one tiny bit! Heaven help those that talk to
* themselves.
*/
+ if(krb_get_config_bool("reverse_lsb_test")) {
+ if(krb_debug)
+ krb_warning("lsb_time: reversing direction: %d -> %d\n", dir, -dir);
+ dir = -dir;
+ }else if((fw = krb_get_config_string("firewall_address"))) {
+ struct in_addr fw_addr;
+ fw_addr.s_addr = inet_addr(fw);
+ if(fw_addr.s_addr != INADDR_NONE) {
+ int s_lt_d, d_lt_f;
+ krb_warning("lsb_time: fw = %s\n", inet_ntoa(fw_addr));
+ /* negate if src < dst < fw || fw < dst < src */
+ s_lt_d = (krb_lsb_antinet_ulong_less(src->sin_addr.s_addr,
+ dst->sin_addr.s_addr) == -1);
+ d_lt_f = (krb_lsb_antinet_ulong_less(fw_addr.s_addr,
+ dst->sin_addr.s_addr) == 1);
+ if((s_lt_d ^ d_lt_f) == 0) {
+ if(krb_debug)
+ krb_warning("lsb_time: reversing direction: %d -> %d\n",
+ dir, -dir);
+ dir = -dir;
+ }
+ }
+ }
+ t = t * dir;
t = t & 0xffffffff;
return t;
}
diff --git a/crypto/kerberosIV/lib/krb/mk_auth.c b/crypto/kerberosIV/lib/krb/mk_auth.c
index 7cfb36b..91ea866 100644
--- a/crypto/kerberosIV/lib/krb/mk_auth.c
+++ b/crypto/kerberosIV/lib/krb/mk_auth.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: mk_auth.c,v 1.4 1997/04/01 08:18:35 joda Exp $");
+RCSID("$Id: mk_auth.c,v 1.6 1998/06/09 19:25:22 joda Exp $");
/*
* Generate an authenticator for service.instance@realm.
@@ -62,12 +62,14 @@ krb_mk_auth(int32_t options,
char realinst[INST_SZ];
char realrealm[REALM_SZ];
int ret;
- unsigned char *p;
+ char *tmp;
if (options & KOPT_DONT_CANON)
- strncpy(realinst, instance, sizeof(realinst));
+ tmp = instance;
else
- strncpy(realinst, krb_get_phost (instance), sizeof(realinst));
+ tmp = krb_get_phost (instance);
+
+ strcpy_truncate(realinst, tmp, sizeof(realinst));
if (realm == NULL) {
ret = krb_get_lrealm (realrealm, 1);
@@ -82,15 +84,35 @@ krb_mk_auth(int32_t options,
return ret;
}
- p = buf->dat;
+ {
+ int tmp;
+ size_t rem = sizeof(buf->dat);
+ unsigned char *p = buf->dat;
+
+ p = buf->dat;
+
+ if (rem < 2 * KRB_SENDAUTH_VLEN)
+ return KFAILURE;
+ memcpy (p, KRB_SENDAUTH_VERS, KRB_SENDAUTH_VLEN);
+ p += KRB_SENDAUTH_VLEN;
+ rem -= KRB_SENDAUTH_VLEN;
- memcpy (p, KRB_SENDAUTH_VERS, KRB_SENDAUTH_VLEN);
- p += KRB_SENDAUTH_VLEN;
- memcpy (p, version, KRB_SENDAUTH_VLEN);
- p += KRB_SENDAUTH_VLEN;
- p += krb_put_int(ticket->length, p, 4);
- memcpy(p, ticket->dat, ticket->length);
- p += ticket->length;
- buf->length = p - buf->dat;
+ memcpy (p, version, KRB_SENDAUTH_VLEN);
+ p += KRB_SENDAUTH_VLEN;
+ rem -= KRB_SENDAUTH_VLEN;
+
+ tmp = krb_put_int(ticket->length, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ if (rem < ticket->length)
+ return KFAILURE;
+ memcpy(p, ticket->dat, ticket->length);
+ p += ticket->length;
+ rem -= ticket->length;
+ buf->length = p - buf->dat;
+ }
return KSUCCESS;
}
diff --git a/crypto/kerberosIV/lib/krb/mk_err.c b/crypto/kerberosIV/lib/krb/mk_err.c
index 710587a..11fc059 100644
--- a/crypto/kerberosIV/lib/krb/mk_err.c
+++ b/crypto/kerberosIV/lib/krb/mk_err.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: mk_err.c,v 1.6 1997/03/23 03:53:14 joda Exp $");
+RCSID("$Id: mk_err.c,v 1.7 1998/06/09 19:25:22 joda Exp $");
/*
* This routine creates a general purpose error reply message. It
@@ -47,10 +47,11 @@ int32_t
krb_mk_err(u_char *p, int32_t e, char *e_string)
{
unsigned char *start = p;
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_APPL_ERR, p, 1);
- p += krb_put_int(e, p, 4);
- p += krb_put_string(e_string, p);
+ p += krb_put_int(KRB_PROT_VERSION, p, 1, 1);
+ p += krb_put_int(AUTH_MSG_APPL_ERR, p, 1, 1);
+
+ p += krb_put_int(e, p, 4, 4);
+ p += krb_put_string(e_string, p, strlen(e_string) + 1);
return p - start;
}
diff --git a/crypto/kerberosIV/lib/krb/mk_priv.c b/crypto/kerberosIV/lib/krb/mk_priv.c
index b6a9cc4..20f4ee2 100644
--- a/crypto/kerberosIV/lib/krb/mk_priv.c
+++ b/crypto/kerberosIV/lib/krb/mk_priv.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,10 +38,10 @@
#include "krb_locl.h"
-RCSID("$Id: mk_priv.c,v 1.18 1997/04/01 08:18:37 joda Exp $");
+RCSID("$Id: mk_priv.c,v 1.21 1998/06/09 19:25:23 joda Exp $");
/* application include files */
-#include "lsb_addr_comp.h"
+#include "krb-archaeology.h"
/*
* krb_mk_priv() constructs an AUTH_MSG_PRIVATE message. It takes
@@ -93,28 +93,28 @@ krb_mk_priv(void *in, void *out, u_int32_t length,
u_int32_t src_addr;
u_int32_t len;
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_PRIVATE, p, 1);
+ p += krb_put_int(KRB_PROT_VERSION, p, 1, 1);
+ p += krb_put_int(AUTH_MSG_PRIVATE, p, 1, 1);
len = 4 + length + 1 + 4 + 4;
len = (len + 7) & ~7;
- p += krb_put_int(len, p, 4);
+ p += krb_put_int(len, p, 4, 4);
cipher = p;
- p += krb_put_int(length, p, 4);
+ p += krb_put_int(length, p, 4, 4);
memcpy(p, in, length);
p += length;
- gettimeofday(&tv, NULL);
+ krb_kdctimeofday(&tv);
*p++ =tv.tv_usec / 5000;
src_addr = sender->sin_addr.s_addr;
- p += krb_put_address(src_addr, p);
+ p += krb_put_address(src_addr, p, 4);
- p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4);
+ p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4, 4);
memset(p, 0, 7);
diff --git a/crypto/kerberosIV/lib/krb/mk_req.c b/crypto/kerberosIV/lib/krb/mk_req.c
index 313ea04..b3761ca 100644
--- a/crypto/kerberosIV/lib/krb/mk_req.c
+++ b/crypto/kerberosIV/lib/krb/mk_req.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,32 +38,50 @@
#include "krb_locl.h"
-RCSID("$Id: mk_req.c,v 1.17 1997/05/30 17:42:38 bg Exp $");
+RCSID("$Id: mk_req.c,v 1.20 1998/06/09 19:25:23 joda Exp $");
static int lifetime = 255; /* But no longer than TGT says. */
-static void
+static int
build_request(KTEXT req, char *name, char *inst, char *realm,
u_int32_t checksum)
{
struct timeval tv;
unsigned char *p = req->dat;
-
- p += krb_put_nir(name, inst, realm, p);
-
- p += krb_put_int(checksum, p, 4);
+ int tmp;
+ size_t rem = sizeof(req->dat);
+
+ tmp = krb_put_nir(name, inst, realm, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+ tmp = krb_put_int(checksum, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
/* Fill in the times on the request id */
- gettimeofday(&tv, NULL);
+ krb_kdctimeofday(&tv);
+
+ if (rem < 1)
+ return KFAILURE;
*p++ = tv.tv_usec / 5000; /* 5ms */
+ --rem;
- p += krb_put_int(tv.tv_sec, p, 4);
+ tmp = krb_put_int(tv.tv_sec, p, rem, 4);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
/* Fill to a multiple of 8 bytes for DES */
req->length = ((p - req->dat + 7)/8) * 8;
+ return 0;
}
@@ -125,11 +143,21 @@ krb_mk_req(KTEXT authent, char *service, char *instance, char *realm,
char myrealm[REALM_SZ];
unsigned char *p = authent->dat;
+ int rem = sizeof(authent->dat);
+ int tmp;
+
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(AUTH_MSG_APPL_REQUEST, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
-
- p += krb_put_int(AUTH_MSG_APPL_REQUEST, p, 1);
-
/* Get the ticket and move it into the authenticator */
if (krb_ap_req_debug)
krb_warning("Realm: %s\n", realm);
@@ -155,9 +183,9 @@ krb_mk_req(KTEXT authent, char *service, char *instance, char *realm,
*/
retval = krb_get_cred(KRB_TICKET_GRANTING_TICKET, realm, realm, 0);
- if (retval == KSUCCESS)
- strncpy(myrealm, realm, REALM_SZ);
- else
+ if (retval == KSUCCESS) {
+ strcpy_truncate(myrealm, realm, REALM_SZ);
+ } else
retval = krb_get_tf_realm(TKT_FILE, myrealm);
if (retval != KSUCCESS)
@@ -167,25 +195,45 @@ krb_mk_req(KTEXT authent, char *service, char *instance, char *realm,
krb_warning("serv=%s.%s@%s princ=%s.%s@%s\n", service, instance, realm,
cr.pname, cr.pinst, myrealm);
- p += krb_put_int(cr.kvno, p, 1);
-
- p += krb_put_string(realm, p);
-
- p += krb_put_int(ticket->length, p, 1);
-
- build_request(req_id, cr.pname, cr.pinst, myrealm, checksum);
+ tmp = krb_put_int(cr.kvno, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_string(realm, p, rem);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(ticket->length, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ retval = build_request(req_id, cr.pname, cr.pinst, myrealm, checksum);
+ if (retval != KSUCCESS)
+ return retval;
encrypt_ktext(req_id, &cr.session, DES_ENCRYPT);
- p += krb_put_int(req_id->length, p, 1);
+ tmp = krb_put_int(req_id->length, p, rem, 1);
+ if (tmp < 0)
+ return KFAILURE;
+ p += tmp;
+ rem -= tmp;
+
+ if (rem < ticket->length + req_id->length)
+ return KFAILURE;
memcpy(p, ticket->dat, ticket->length);
-
p += ticket->length;
-
+ rem -= ticket->length;
memcpy(p, req_id->dat, req_id->length);
-
p += req_id->length;
+ rem -= req_id->length;
authent->length = p - authent->dat;
diff --git a/crypto/kerberosIV/lib/krb/mk_safe.c b/crypto/kerberosIV/lib/krb/mk_safe.c
index df5ca21..e5ea847 100644
--- a/crypto/kerberosIV/lib/krb/mk_safe.c
+++ b/crypto/kerberosIV/lib/krb/mk_safe.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,10 +38,10 @@
#include "krb_locl.h"
-RCSID("$Id: mk_safe.c,v 1.21 1997/04/19 23:18:03 joda Exp $");
+RCSID("$Id: mk_safe.c,v 1.24 1998/06/09 19:25:23 joda Exp $");
/* application include files */
-#include "lsb_addr_comp.h"
+#include "krb-archaeology.h"
/* from rd_safe.c */
@@ -89,24 +89,24 @@ krb_mk_safe(void *in, void *out, u_int32_t length, des_cblock *key,
unsigned char *start;
u_int32_t src_addr;
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_SAFE, p, 1);
+ p += krb_put_int(KRB_PROT_VERSION, p, 1, 1);
+ p += krb_put_int(AUTH_MSG_SAFE, p, 1, 1);
start = p;
- p += krb_put_int(length, p, 4);
+ p += krb_put_int(length, p, 4, 4);
memcpy(p, in, length);
p += length;
- gettimeofday(&tv, NULL);
+ krb_kdctimeofday(&tv);
*p++ = tv.tv_usec/5000; /* 5ms */
src_addr = sender->sin_addr.s_addr;
- p += krb_put_address(src_addr, p);
+ p += krb_put_address(src_addr, p, 4);
- p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4);
+ p += krb_put_int(lsb_time(tv.tv_sec, sender, receiver), p, 4, 4);
{
/* We are faking big endian mode, so we need to fix the
diff --git a/crypto/kerberosIV/lib/krb/name2name.c b/crypto/kerberosIV/lib/krb/name2name.c
index fa95b89..2e2e9e6 100644
--- a/crypto/kerberosIV/lib/krb/name2name.c
+++ b/crypto/kerberosIV/lib/krb/name2name.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: name2name.c,v 1.15 1997/04/30 04:30:36 assar Exp $");
+RCSID("$Id: name2name.c,v 1.20 1999/03/13 21:26:02 assar Exp $");
/* convert host to a more fully qualified domain name, returns 0 if
* phost is the same as host, 1 otherwise. phost should be
@@ -53,15 +53,25 @@ krb_name_to_name(const char *host, char *phost, size_t phost_size)
const char *tmp;
adr.s_addr = inet_addr(host);
- hp = gethostbyname(host);
- if (hp == NULL && adr.s_addr != INADDR_NONE)
+ if (adr.s_addr != INADDR_NONE)
hp = gethostbyaddr((char *)&adr, sizeof(adr), AF_INET);
+ else
+ hp = gethostbyname(host);
if (hp == NULL)
tmp = host;
- else
+ else {
tmp = hp->h_name;
- strncpy (phost, tmp, phost_size);
- phost[phost_size - 1] = '\0';
+ /*
+ * Broken SunOS 5.4 sometimes keeps the official name as the
+ * 1:st alias.
+ */
+ if (strchr(tmp, '.') == NULL
+ && hp->h_aliases != NULL
+ && hp->h_aliases[0] != NULL
+ && strchr (hp->h_aliases[0], '.') != NULL)
+ tmp = hp->h_aliases[0];
+ }
+ strcpy_truncate (phost, tmp, phost_size);
if (strcmp(phost, host) == 0)
return 0;
@@ -74,7 +84,8 @@ krb_name_to_name(const char *host, char *phost, size_t phost_size)
void
k_ricercar(char *name)
{
- char *p = name;
+ unsigned char *p = (unsigned char *)name;
+
while(*p && *p != '.'){
if(isupper(*p))
*p = tolower(*p);
@@ -94,7 +105,7 @@ k_ricercar(char *name)
char *
krb_get_phost(const char *alias)
{
- static char phost[MaxHostNameLen+1];
+ static char phost[MaxHostNameLen];
krb_name_to_name(alias, phost, sizeof(phost));
k_ricercar(phost);
diff --git a/crypto/kerberosIV/lib/krb/parse_name.c b/crypto/kerberosIV/lib/krb/parse_name.c
index 1184330..da06aec 100644
--- a/crypto/kerberosIV/lib/krb/parse_name.c
+++ b/crypto/kerberosIV/lib/krb/parse_name.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: parse_name.c,v 1.4 1997/04/01 08:18:39 joda Exp $");
+RCSID("$Id: parse_name.c,v 1.5 1998/06/09 19:25:24 joda Exp $");
int
krb_parse_name(const char *fullname, krb_principal *principal)
@@ -86,10 +86,10 @@ kname_parse(char *np, char *ip, char *rp, char *fullname)
krb_principal p;
int ret;
if((ret = krb_parse_name(fullname, &p)) == 0){
- strcpy(np, p.name);
- strcpy(ip, p.instance);
+ strcpy_truncate (np, p.name, ANAME_SZ);
+ strcpy_truncate (ip, p.instance, INST_SZ);
if(p.realm[0])
- strcpy(rp, p.realm);
+ strcpy_truncate (rp, p.realm, REALM_SZ);
}
return ret;
}
diff --git a/crypto/kerberosIV/lib/krb/prot.h b/crypto/kerberosIV/lib/krb/prot.h
index e4825e1..b9a4ea3 100644
--- a/crypto/kerberosIV/lib/krb/prot.h
+++ b/crypto/kerberosIV/lib/krb/prot.h
@@ -1,5 +1,5 @@
/*
- * $Id: prot.h,v 1.7 1997/03/23 03:52:27 joda Exp $
+ * $Id: prot.h,v 1.8 1997/12/05 00:18:02 joda Exp $
*
* Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
* of Technology.
@@ -20,41 +20,6 @@
#define MAX_PKT_LEN 1000
#define MAX_TXT_LEN 1000
-/* Macro's to obtain various fields from a packet */
-
-#define pkt_version(packet) (unsigned int) *(packet->dat)
-#define pkt_msg_type(packet) (unsigned int) *(packet->dat+1)
-#define pkt_a_name(packet) (packet->dat+2)
-#define pkt_a_inst(packet) \
- (packet->dat+3+strlen((char *)pkt_a_name(packet)))
-#define pkt_a_realm(packet) \
- (pkt_a_inst(packet)+1+strlen((char *)pkt_a_inst(packet)))
-
-/* Macro to obtain realm from application request */
-#define apreq_realm(auth) (auth->dat + 3)
-
-#define pkt_time_ws(packet) (char *) \
- (packet->dat+5+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-
-#define pkt_no_req(packet) (unsigned short) \
- *(packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-#define pkt_x_date(packet) (char *) \
- (packet->dat+10+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-#define pkt_err_code(packet) ( (char *) \
- (packet->dat+9+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet))))
-#define pkt_err_text(packet) \
- (packet->dat+13+strlen((char *)pkt_a_name(packet)) + \
- strlen((char *)pkt_a_inst(packet)) + \
- strlen((char *)pkt_a_realm(packet)))
-
/* Routines to create and read packets may be found in prot.c */
KTEXT create_auth_reply(char *pname, char *pinst, char *prealm,
@@ -66,17 +31,17 @@ KTEXT krb_create_death_packet(char *a_name);
/* Message types , always leave lsb for byte order */
-#define AUTH_MSG_KDC_REQUEST 1<<1
-#define AUTH_MSG_KDC_REPLY 2<<1
-#define AUTH_MSG_APPL_REQUEST 3<<1
-#define AUTH_MSG_APPL_REQUEST_MUTUAL 4<<1
-#define AUTH_MSG_ERR_REPLY 5<<1
-#define AUTH_MSG_PRIVATE 6<<1
-#define AUTH_MSG_SAFE 7<<1
-#define AUTH_MSG_APPL_ERR 8<<1
-#define AUTH_MSG_KDC_FORWARD 9<<1
-#define AUTH_MSG_KDC_RENEW 10<<1
-#define AUTH_MSG_DIE 63<<1
+#define AUTH_MSG_KDC_REQUEST (1<<1)
+#define AUTH_MSG_KDC_REPLY (2<<1)
+#define AUTH_MSG_APPL_REQUEST (3<<1)
+#define AUTH_MSG_APPL_REQUEST_MUTUAL (4<<1)
+#define AUTH_MSG_ERR_REPLY (5<<1)
+#define AUTH_MSG_PRIVATE (6<<1)
+#define AUTH_MSG_SAFE (7<<1)
+#define AUTH_MSG_APPL_ERR (8<<1)
+#define AUTH_MSG_KDC_FORWARD (9<<1)
+#define AUTH_MSG_KDC_RENEW (10<<1)
+#define AUTH_MSG_DIE (63<<1)
/* values for kerb error codes */
diff --git a/crypto/kerberosIV/lib/krb/rd_priv.c b/crypto/kerberosIV/lib/krb/rd_priv.c
index 58ecd9f..0721b2c 100644
--- a/crypto/kerberosIV/lib/krb/rd_priv.c
+++ b/crypto/kerberosIV/lib/krb/rd_priv.c
@@ -38,10 +38,10 @@
#include "krb_locl.h"
-RCSID("$Id: rd_priv.c,v 1.24 1997/05/14 17:53:29 joda Exp $");
+RCSID("$Id: rd_priv.c,v 1.26 1998/05/26 19:57:42 joda Exp $");
/* application include files */
-#include "lsb_addr_comp.h"
+#include "krb-archaeology.h"
/*
* krb_rd_priv() decrypts and checks the integrity of an
@@ -116,7 +116,7 @@ krb_rd_priv(void *in, u_int32_t in_length,
if (delta_t > CLOCK_SKEW)
return RD_AP_TIME;
if (krb_debug)
- krb_warning("\ndelta_t = %d", (int) delta_t);
+ krb_warning("delta_t = %d\n", (int) delta_t);
/*
* caller must check timestamps for proper order and
diff --git a/crypto/kerberosIV/lib/krb/rd_req.c b/crypto/kerberosIV/lib/krb/rd_req.c
index 1a3e848..e145dae 100644
--- a/crypto/kerberosIV/lib/krb/rd_req.c
+++ b/crypto/kerberosIV/lib/krb/rd_req.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: rd_req.c,v 1.24 1997/05/11 11:05:28 assar Exp $");
+RCSID("$Id: rd_req.c,v 1.25 1998/06/09 19:25:25 joda Exp $");
static struct timeval t_local = { 0, 0 };
@@ -198,7 +198,7 @@ krb_rd_req(KTEXT authent, /* The received message */
s_kvno = *p++;
- p += krb_get_string(p, realm);
+ p += krb_get_string(p, realm, sizeof(realm));
/*
* If "fn" is NULL, key info should already be set; don't
@@ -217,9 +217,9 @@ krb_rd_req(KTEXT authent, /* The received message */
return(RD_AP_UNDEC);
if ((status = krb_set_key((char*)skey, 0)))
return(status);
- strcpy(st_rlm, realm);
- strcpy(st_nam, service);
- strcpy(st_inst, instance);
+ strcpy_truncate (st_rlm, realm, REALM_SZ);
+ strcpy_truncate (st_nam, service, SNAME_SZ);
+ strcpy_truncate (st_inst, instance, INST_SZ);
}
tkt->length = *p++;
diff --git a/crypto/kerberosIV/lib/krb/rd_safe.c b/crypto/kerberosIV/lib/krb/rd_safe.c
index 8471df0..495a681 100644
--- a/crypto/kerberosIV/lib/krb/rd_safe.c
+++ b/crypto/kerberosIV/lib/krb/rd_safe.c
@@ -38,10 +38,10 @@
#include "krb_locl.h"
-RCSID("$Id: rd_safe.c,v 1.24 1997/04/19 23:18:20 joda Exp $");
+RCSID("$Id: rd_safe.c,v 1.25 1997/12/05 00:17:09 joda Exp $");
/* application include files */
-#include "lsb_addr_comp.h"
+#include "krb-archaeology.h"
/* Generate two checksums in the given byteorder of the data, one
* new-form and one old-form. It has to be done this way to be
diff --git a/crypto/kerberosIV/lib/krb/read_service_key.c b/crypto/kerberosIV/lib/krb/read_service_key.c
index 6de5db2..d517551 100644
--- a/crypto/kerberosIV/lib/krb/read_service_key.c
+++ b/crypto/kerberosIV/lib/krb/read_service_key.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: read_service_key.c,v 1.8 1997/03/23 03:53:16 joda Exp $");
+RCSID("$Id: read_service_key.c,v 1.11 1999/03/10 18:34:34 joda Exp $");
/*
* The private keys for servers on a given host are stored in a
@@ -57,12 +57,12 @@ RCSID("$Id: read_service_key.c,v 1.8 1997/03/23 03:53:16 joda Exp $");
int
-read_service_key(char *service, /* Service Name */
+read_service_key(const char *service, /* Service Name */
char *instance, /* Instance name or "*" */
- char *realm, /* Realm */
+ const char *realm, /* Realm */
int kvno, /* Key version number */
- char *file, /* Filename */
- char *key) /* Pointer to key to be filled in */
+ const char *file, /* Filename */
+ void *key) /* Pointer to key to be filled in */
{
char serv[SNAME_SZ];
char inst[INST_SZ];
@@ -96,8 +96,9 @@ read_service_key(char *service, /* Service Name */
/* How about instance */
if (!wcard && strcmp(inst,instance))
continue;
- if (wcard)
- strncpy(instance,inst,INST_SZ);
+ if (wcard) {
+ strcpy_truncate (instance, inst, INST_SZ);
+ }
/* Is this the right realm */
if (strcmp(rlm,realm))
continue;
diff --git a/crypto/kerberosIV/lib/krb/realm_parse.c b/crypto/kerberosIV/lib/krb/realm_parse.c
index 2ce852a..8d90f1b 100644
--- a/crypto/kerberosIV/lib/krb/realm_parse.c
+++ b/crypto/kerberosIV/lib/krb/realm_parse.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: realm_parse.c,v 1.10 1997/06/01 03:14:50 assar Exp $");
+RCSID("$Id: realm_parse.c,v 1.15 1998/06/09 19:25:25 joda Exp $");
static int
realm_parse(char *realm, int length, const char *file)
@@ -55,7 +55,7 @@ realm_parse(char *realm, int length, const char *file)
p = strtok_r(tr, " \t\n\r", &unused);
if(p && strcasecmp(p, realm) == 0){
fclose(F);
- strncpy(realm, p, length);
+ strcpy_truncate (realm, p, length);
return 0;
}
}
@@ -63,26 +63,14 @@ realm_parse(char *realm, int length, const char *file)
return -1;
}
-static const char *const files[] = KRB_CNF_FILES;
-
int
krb_realm_parse(char *realm, int length)
{
int i;
-
- const char *dir = getenv("KRBCONFDIR");
-
- /* First try user specified file */
- if (dir != 0) {
- char fname[MaxPathLen];
-
- if(k_concat(fname, sizeof(fname), dir, "/krb.conf", NULL) == 0)
- if (realm_parse(realm, length, fname) == 0)
- return 0;
- }
+ char file[MaxPathLen];
- for (i = 0; files[i] != NULL; i++)
- if (realm_parse(realm, length, files[i]) == 0)
+ for(i = 0; krb_get_krbconf(i, file, sizeof(file)) == 0; i++)
+ if (realm_parse(realm, length, file) == 0)
return 0;
return -1;
}
diff --git a/crypto/kerberosIV/lib/krb/recvauth.c b/crypto/kerberosIV/lib/krb/recvauth.c
index 6c96897..f164b2b 100644
--- a/crypto/kerberosIV/lib/krb/recvauth.c
+++ b/crypto/kerberosIV/lib/krb/recvauth.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: recvauth.c,v 1.17 1997/03/23 03:53:16 joda Exp $");
+RCSID("$Id: recvauth.c,v 1.19 1998/06/09 19:25:25 joda Exp $");
/*
* krb_recvauth() reads (and optionally responds to) a message sent
@@ -117,10 +117,12 @@ krb_recvauth(int32_t options, /* bit-pattern of options */
int32_t priv_len;
u_char tmp_buf[MAX_KTXT_LEN+max(KRB_SENDAUTH_VLEN+1,21)];
- /* read the protocol version number */
- if (krb_net_read(fd, krb_vers, KRB_SENDAUTH_VLEN) != KRB_SENDAUTH_VLEN)
- return(errno);
- krb_vers[KRB_SENDAUTH_VLEN] = '\0';
+ if (!(options & KOPT_IGNORE_PROTOCOL)) {
+ /* read the protocol version number */
+ if (krb_net_read(fd, krb_vers, KRB_SENDAUTH_VLEN) != KRB_SENDAUTH_VLEN)
+ return(errno);
+ krb_vers[KRB_SENDAUTH_VLEN] = '\0';
+ }
/* read the application version string */
if (krb_net_read(fd, version, KRB_SENDAUTH_VLEN) != KRB_SENDAUTH_VLEN)
@@ -168,7 +170,7 @@ krb_recvauth(int32_t options, /* bit-pattern of options */
for return to the client */
{
unsigned char cs[4];
- krb_put_int(kdata->checksum + 1, cs, 4);
+ krb_put_int(kdata->checksum + 1, cs, sizeof(cs), 4);
#ifndef NOENCRYPTION
des_key_sched(&kdata->session,schedule);
#endif
@@ -181,7 +183,7 @@ krb_recvauth(int32_t options, /* bit-pattern of options */
faddr);
}
/* mk_priv will never fail */
- priv_len += krb_put_int(priv_len, tmp_buf, 4);
+ priv_len += krb_put_int(priv_len, tmp_buf, 4, 4);
if((cc = krb_net_write(fd, tmp_buf, priv_len)) != priv_len)
return -1;
diff --git a/crypto/kerberosIV/lib/krb/resource.h b/crypto/kerberosIV/lib/krb/resource.h
new file mode 100644
index 0000000..d50551f
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/resource.h
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by krb.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/crypto/kerberosIV/lib/krb/roken_rename.h b/crypto/kerberosIV/lib/krb/roken_rename.h
new file mode 100644
index 0000000..831da32
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/roken_rename.h
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Id: roken_rename.h,v 1.7 1998/10/13 16:50:23 joda Exp $ */
+
+#ifndef __roken_rename_h__
+#define __roken_rename_h__
+
+/*
+ * Libroken routines that are added libkrb
+ */
+
+#define base64_decode _krb_base64_decode
+#define base64_encode _krb_base64_encode
+
+#define net_write roken_net_write
+#define net_read roken_net_read
+
+#ifndef HAVE_FLOCK
+#define flock _krb_flock
+#endif
+#ifndef HAVE_GETHOSTNAME
+#define gethostname _krb_gethostname
+#endif
+#ifndef HAVE_GETTIMEOFDAY
+#define gettimeofday _krb_gettimeofday
+#endif
+#ifndef HAVE_GETUID
+#define getuid _krb_getuid
+#endif
+#ifndef HAVE_SNPRINTF
+#define snprintf _krb_snprintf
+#endif
+#ifndef HAVE_ASPRINTF
+#define asprintf _krb_asprintf
+#endif
+#ifndef HAVE_ASNPRINTF
+#define asnprintf _krb_asnprintf
+#endif
+#ifndef HAVE_VASPRINTF
+#define vasprintf _krb_vasprintf
+#endif
+#ifndef HAVE_VASNPRINTF
+#define vasnprintf _krb_vasnprintf
+#endif
+#ifndef HAVE_VSNPRINTF
+#define vsnprintf _krb_vsnprintf
+#endif
+#ifndef HAVE_STRCASECMP
+#define strcasecmp _krb_strcasecmp
+#endif
+#ifndef HAVE_STRNCASECMP
+#define strncasecmp _krb_strncasecmp
+#endif
+#ifndef HAVE_STRDUP
+#define strdup _krb_strdup
+#endif
+#ifndef HAVE_STRNLEN
+#define strnlen _krb_strnlen
+#endif
+#ifndef HAVE_SWAB
+#define swab _krb_swab
+#endif
+#ifndef HAVE_STRTOK_R
+#define strtok_r _krb_strtok_r
+#endif
+
+#endif /* __roken_rename_h__ */
diff --git a/crypto/kerberosIV/lib/krb/rw.c b/crypto/kerberosIV/lib/krb/rw.c
index 4b136aa..559e3fa 100644
--- a/crypto/kerberosIV/lib/krb/rw.c
+++ b/crypto/kerberosIV/lib/krb/rw.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -43,7 +43,7 @@
#include "krb_locl.h"
-RCSID("$Id: rw.c,v 1.8 1997/04/01 08:18:44 joda Exp $");
+RCSID("$Id: rw.c,v 1.10 1999/06/29 21:18:08 bg Exp $");
int
krb_get_int(void *f, u_int32_t *to, int size, int lsb)
@@ -63,10 +63,14 @@ krb_get_int(void *f, u_int32_t *to, int size, int lsb)
}
int
-krb_put_int(u_int32_t from, void *to, int size)
+krb_put_int(u_int32_t from, void *to, size_t rem, int size)
{
int i;
unsigned char *p = (unsigned char *)to;
+
+ if (rem < size)
+ return -1;
+
for(i = size - 1; i >= 0; i--){
p[i] = from & 0xff;
from >>= 8;
@@ -86,22 +90,27 @@ krb_get_address(void *from, u_int32_t *to)
}
int
-krb_put_address(u_int32_t addr, void *to)
+krb_put_address(u_int32_t addr, void *to, size_t rem)
{
- return krb_put_int(ntohl(addr), to, 4);
+ return krb_put_int(ntohl(addr), to, rem, 4);
}
int
-krb_put_string(char *from, void *to)
+krb_put_string(const char *from, void *to, size_t rem)
{
- strcpy((char *)to, from);
- return strlen(from) + 1;
+ size_t len = strlen(from) + 1;
+
+ if (rem < len)
+ return -1;
+ memcpy(to, from, len);
+ return len;
}
int
-krb_get_string(void *from, char *to)
+krb_get_string(void *from, char *to, size_t to_size)
{
- return krb_put_string(from, to);
+ strcpy_truncate (to, (char *)from, to_size);
+ return strlen((char *)from) + 1;
}
int
@@ -109,20 +118,41 @@ krb_get_nir(void *from, char *name, char *instance, char *realm)
{
char *p = (char *)from;
- p += krb_get_string(p, name);
- p += krb_get_string(p, instance);
+ p += krb_get_string(p, name, ANAME_SZ);
+ p += krb_get_string(p, instance, INST_SZ);
if(realm)
- p += krb_get_string(p, realm);
+ p += krb_get_string(p, realm, REALM_SZ);
return p - (char *)from;
}
int
-krb_put_nir(char *name, char *instance, char *realm, void *to)
+krb_put_nir(const char *name,
+ const char *instance,
+ const char *realm,
+ void *to,
+ size_t rem)
{
char *p = (char *)to;
- p += krb_put_string(name, p);
- p += krb_put_string(instance, p);
- if(realm)
- p += krb_put_string(realm, p);
+ int tmp;
+
+ tmp = krb_put_string(name, p, rem);
+ if (tmp < 0)
+ return tmp;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_string(instance, p, rem);
+ if (tmp < 0)
+ return tmp;
+ p += tmp;
+ rem -= tmp;
+
+ if (realm) {
+ tmp = krb_put_string(realm, p, rem);
+ if (tmp < 0)
+ return tmp;
+ p += tmp;
+ rem -= tmp;
+ }
return p - (char *)to;
}
diff --git a/crypto/kerberosIV/lib/krb/send_to_kdc.c b/crypto/kerberosIV/lib/krb/send_to_kdc.c
index 828b34d..04409be 100644
--- a/crypto/kerberosIV/lib/krb/send_to_kdc.c
+++ b/crypto/kerberosIV/lib/krb/send_to_kdc.c
@@ -20,23 +20,17 @@ or implied warranty.
*/
#include "krb_locl.h"
+#include <base64.h>
-RCSID("$Id: send_to_kdc.c,v 1.39 1997/05/15 21:02:31 joda Exp $");
+RCSID("$Id: send_to_kdc.c,v 1.69 1999/06/29 21:18:09 bg Exp $");
struct host {
- struct sockaddr_in addr;
- int proto;
+ struct sockaddr_in addr;
+ enum krb_host_proto proto;
};
-static const char *prog = "send_to_kdc";
-static send_recv(KTEXT pkt, KTEXT rpkt, int f,
- struct sockaddr_in *_to, struct host *addrs,
- int h_hosts);
-
-/*
- * This file contains two routines, send_to_kdc() and send_recv().
- * send_recv() is a static routine used by send_to_kdc().
- */
+static int send_recv(KTEXT pkt, KTEXT rpkt, int f,
+ struct sockaddr_in *adr);
/*
* send_to_kdc() sends a message to the Kerberos authentication
@@ -65,8 +59,21 @@ static send_recv(KTEXT pkt, KTEXT rpkt, int f,
* after several retries
*/
+/* always use the admin server */
+static int krb_use_admin_server_flag = 0;
+
+static int client_timeout = -1;
+
int
-send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm)
+krb_use_admin_server(int flag)
+{
+ int old = krb_use_admin_server_flag;
+ krb_use_admin_server_flag = flag;
+ return old;
+}
+
+int
+send_to_kdc(KTEXT pkt, KTEXT rpkt, const char *realm)
{
int i;
int no_host; /* was a kerberos host found? */
@@ -78,53 +85,87 @@ send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm)
struct krb_host *k_host;
struct host *hosts = malloc(sizeof(*hosts));
+ if (client_timeout == -1) {
+ const char *to;
+
+ client_timeout = CLIENT_KRB_TIMEOUT;
+ to = krb_get_config_string ("kdc_timeout");
+ if (to != NULL) {
+ int tmp;
+ char *end;
+
+ tmp = strtol (to, &end, 0);
+ if (end != to)
+ client_timeout = tmp;
+ }
+ }
+
if (hosts == NULL)
- return SKDC_CANT;
+ return SKDC_CANT;
/*
* If "realm" is non-null, use that, otherwise get the
* local realm.
*/
if (realm)
- strcpy(lrealm, realm);
+ strcpy_truncate(lrealm, realm, REALM_SZ);
else
if (krb_get_lrealm(lrealm,1)) {
if (krb_debug)
- krb_warning("%s: can't get local realm\n", prog);
+ krb_warning("send_to_kdc: can't get local realm\n");
return(SKDC_CANT);
}
if (krb_debug)
- krb_warning("lrealm is %s\n", lrealm);
+ krb_warning("lrealm is %s\n", lrealm);
no_host = 1;
/* get an initial allocation */
n_hosts = 0;
- for (i = 1; (k_host = krb_get_host(i, lrealm, 0)); ++i) {
+ for (i = 1;
+ (k_host = krb_get_host(i, lrealm, krb_use_admin_server_flag));
+ ++i) {
char *p;
+ char **addr_list;
+ int j;
+ int n_addrs;
+ struct host *tmp;
if (krb_debug)
- krb_warning("Getting host entry for %s...", k_host->host);
+ krb_warning("Getting host entry for %s...", k_host->host);
host = gethostbyname(k_host->host);
if (krb_debug) {
- krb_warning("%s.\n",
- host ? "Got it" : "Didn't get it");
+ krb_warning("%s.\n",
+ host ? "Got it" : "Didn't get it");
}
- if (!host)
+ if (host == NULL)
continue;
no_host = 0; /* found at least one */
- while ((p = *(host->h_addr_list)++)) {
- hosts = realloc(hosts, sizeof(*hosts) * (n_hosts + 1));
- if (hosts == NULL)
- return SKDC_CANT;
- memset (&hosts[n_hosts].addr, 0, sizeof(hosts[n_hosts].addr));
- hosts[n_hosts].addr.sin_family = host->h_addrtype;
- hosts[n_hosts].addr.sin_port = htons(k_host->port);
- hosts[n_hosts].proto = k_host->proto;
- memcpy(&hosts[n_hosts].addr.sin_addr, p,
- sizeof(hosts[n_hosts].addr.sin_addr));
- ++n_hosts;
- if (send_recv(pkt, rpkt, hosts[n_hosts-1].proto,
- &hosts[n_hosts-1].addr, hosts, n_hosts)) {
+
+ n_addrs = 0;
+ for (addr_list = host->h_addr_list; *addr_list != NULL; ++addr_list)
+ ++n_addrs;
+
+ tmp = realloc (hosts, (n_hosts + n_addrs) * sizeof(*hosts));
+ if (tmp == NULL) {
+ free (hosts);
+ return SKDC_CANT;
+ }
+ hosts = tmp;
+
+ for (addr_list = host->h_addr_list, j = 0;
+ (p = *addr_list) != NULL;
+ ++addr_list, ++j) {
+ memset (&hosts[n_hosts + j].addr, 0, sizeof(struct sockaddr_in));
+ hosts[n_hosts + j].addr.sin_family = host->h_addrtype;
+ hosts[n_hosts + j].addr.sin_port = htons(k_host->port);
+ hosts[n_hosts + j].proto = k_host->proto;
+ memcpy(&hosts[n_hosts + j].addr.sin_addr, p,
+ sizeof(struct in_addr));
+ }
+
+ for (j = 0; j < n_addrs; ++j) {
+ if (send_recv(pkt, rpkt, hosts[n_hosts + j].proto,
+ &hosts[n_hosts + j].addr)) {
retval = KSUCCESS;
goto rtn;
}
@@ -132,11 +173,11 @@ send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm)
krb_warning("Timeout, error, or wrong descriptor\n");
}
}
+ n_hosts += j;
}
if (no_host) {
if (krb_debug)
- krb_warning("%s: can't find any Kerberos host.\n",
- prog);
+ krb_warning("send_to_kdc: can't find any Kerberos host.\n");
retval = SKDC_CANT;
goto rtn;
}
@@ -145,9 +186,7 @@ send_to_kdc(KTEXT pkt, KTEXT rpkt, char *realm)
for (i = 0; i < n_hosts; ++i) {
if (send_recv(pkt, rpkt,
hosts[i].proto,
- &hosts[i].addr,
- hosts,
- n_hosts)) {
+ &hosts[i].addr)) {
retval = KSUCCESS;
goto rtn;
}
@@ -159,93 +198,297 @@ rtn:
return(retval);
}
-/*
- * try to send out and receive message.
- * return 1 on success, 0 on failure
- */
+static int
+udp_socket(void)
+{
+ return socket(AF_INET, SOCK_DGRAM, 0);
+}
static int
-send_recv_it(KTEXT pkt, KTEXT rpkt, int stream, int f,
- struct sockaddr_in *_to, struct host *addrs, int n_hosts)
+udp_connect(int s, struct sockaddr_in *adr)
{
- fd_set readfds;
- int numsent;
-
- /* CLIENT_KRB_TIMEOUT indicates the time to wait before
- * retrying a server. It's defined in "krb.h".
- */
- struct timeval timeout;
- timeout.tv_sec = CLIENT_KRB_TIMEOUT;
- timeout.tv_usec = 0;
-
- if (krb_debug) {
- if (_to->sin_family == AF_INET)
- krb_warning("Sending message to %s...",
- inet_ntoa(_to->sin_addr));
- else
- krb_warning("Sending message...");
- }
- if(stream){
- unsigned char tmp[4];
- krb_put_int(pkt->length, tmp, 4);
- if((numsent = send(f, tmp, 4, 0)) != 4){
- if (krb_debug)
- krb_warning("sent only %d/%d\n", numsent, 4);
- return 0;
- }
+ if(krb_debug) {
+ krb_warning("connecting to %s udp, port %d\n",
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
}
- if ((numsent = send(f, pkt->dat, pkt->length, 0)) != pkt->length) {
- if (krb_debug)
- krb_warning("sent only %d/%d\n",numsent, pkt->length);
- return 0;
+ return connect(s, (struct sockaddr*)adr, sizeof(*adr));
+}
+
+static int
+udp_send(int s, struct sockaddr_in* adr, KTEXT pkt)
+{
+ if(krb_debug) {
+ krb_warning("sending %d bytes to %s, udp port %d\n",
+ pkt->length,
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
}
- if (krb_debug)
- krb_warning("Sent\nWaiting for reply...");
- FD_ZERO(&readfds);
- FD_SET(f, &readfds);
- /* select - either recv is ready, or timeout */
- /* see if timeout or error or wrong descriptor */
- if (select(f + 1, &readfds, 0, 0, &timeout) < 1
- || !FD_ISSET(f, &readfds)) {
- if (krb_debug)
- krb_warning("select failed: errno = %d", errno);
- return 0;
- }
- if(stream){
- if(krb_net_read(f, rpkt->dat, sizeof(rpkt->dat)) <= 0)
- return 0;
- }else{
- if (recv (f, rpkt->dat, sizeof(rpkt->dat), 0) < 0) {
- if (krb_debug)
- krb_warning("recvfrom: errno = %d\n", errno);
- return 0;
+ return send(s, pkt->dat, pkt->length, 0);
+}
+
+static int
+tcp_socket(void)
+{
+ return socket(AF_INET, SOCK_STREAM, 0);
+}
+
+static int
+tcp_connect(int s, struct sockaddr_in *adr)
+{
+ if(krb_debug) {
+ krb_warning("connecting to %s, tcp port %d\n",
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
+ }
+ return connect(s, (struct sockaddr*)adr, sizeof(*adr));
+}
+
+static int
+tcp_send(int s, struct sockaddr_in* adr, KTEXT pkt)
+{
+ unsigned char len[4];
+ if(krb_debug) {
+ krb_warning("sending %d bytes to %s, tcp port %d\n",
+ pkt->length,
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
+ }
+ krb_put_int(pkt->length, len, sizeof(len), 4);
+ if(send(s, len, sizeof(len), 0) != sizeof(len))
+ return -1;
+ return send(s, pkt->dat, pkt->length, 0);
+}
+
+static int
+udptcp_recv(void *buf, size_t len, KTEXT rpkt)
+{
+ int pktlen = min(len, MAX_KTXT_LEN);
+
+ if(krb_debug)
+ krb_warning("recieved %lu bytes on udp/tcp socket\n",
+ (unsigned long)len);
+ memcpy(rpkt->dat, buf, pktlen);
+ rpkt->length = pktlen;
+ return 0;
+}
+
+static int
+url_parse(const char *url, char *host, size_t len, short *port)
+{
+ const char *p;
+ size_t n;
+
+ if(strncmp(url, "http://", 7))
+ return -1;
+ url += 7;
+ p = strchr(url, ':');
+ if(p) {
+ char *end;
+
+ *port = htons(strtol(p + 1, &end, 0));
+ if (end == p + 1)
+ return -1;
+ n = p - url;
+ } else {
+ *port = k_getportbyname ("http", "tcp", htons(80));
+ p = strchr(url, '/');
+ if (p)
+ n = p - url;
+ else
+ n = strlen(url);
+ }
+ if (n >= len)
+ return -1;
+ memcpy(host, url, n);
+ host[n] = '\0';
+ return 0;
+}
+
+#define PROXY_VAR "krb4_proxy"
+
+static int
+http_connect(int s, struct sockaddr_in *adr)
+{
+ const char *proxy = krb_get_config_string(PROXY_VAR);
+ char host[MaxHostNameLen];
+ short port;
+ struct hostent *hp;
+ struct sockaddr_in sin;
+ if(proxy == NULL) {
+ if(krb_debug)
+ krb_warning("Not using proxy.\n");
+ return tcp_connect(s, adr);
+ }
+ if(url_parse(proxy, host, sizeof(host), &port) < 0)
+ return -1;
+ hp = gethostbyname(host);
+ if(hp == NULL)
+ return -1;
+ memset(&sin, 0, sizeof(sin));
+ sin.sin_family = AF_INET;
+ memcpy(&sin.sin_addr, hp->h_addr, sizeof(sin.sin_addr));
+ sin.sin_port = port;
+ if(krb_debug) {
+ krb_warning("connecting to proxy on %s (%s) port %d\n",
+ host, inet_ntoa(sin.sin_addr), ntohs(port));
+ }
+ return connect(s, (struct sockaddr*)&sin, sizeof(sin));
+}
+
+static int
+http_send(int s, struct sockaddr_in* adr, KTEXT pkt)
+{
+ char *str;
+ char *msg;
+
+ if(base64_encode(pkt->dat, pkt->length, &str) < 0)
+ return -1;
+ if(krb_get_config_string(PROXY_VAR)) {
+ if(krb_debug) {
+ krb_warning("sending %d bytes to %s, tcp port %d (via proxy)\n",
+ pkt->length,
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
+ }
+ asprintf(&msg, "GET http://%s:%d/%s HTTP/1.0\r\n\r\n",
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port),
+ str);
+ } else {
+ if(krb_debug) {
+ krb_warning("sending %d bytes to %s, http port %d\n",
+ pkt->length,
+ inet_ntoa(adr->sin_addr),
+ ntohs(adr->sin_port));
}
+ asprintf(&msg, "GET %s HTTP/1.0\r\n\r\n", str);
+ }
+ free(str);
+
+ if (msg == NULL)
+ return -1;
+
+ if(send(s, msg, strlen(msg), 0) != strlen(msg)){
+ free(msg);
+ return -1;
}
- return 1;
+ free(msg);
+ return 0;
}
static int
-send_recv(KTEXT pkt, KTEXT rpkt, int proto, struct sockaddr_in *_to,
- struct host *addrs, int n_hosts)
+http_recv(void *buf, size_t len, KTEXT rpkt)
{
- int f;
- int ret = 0;
- if(proto == IPPROTO_UDP)
- f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- else if(proto == IPPROTO_TCP)
- f = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- else{
- krb_warning("Unknown protocol `%d'.\n", proto);
- return 0;
+ char *p;
+ char *tmp = malloc(len + 1);
+
+ if (tmp == NULL)
+ return -1;
+ memcpy(tmp, buf, len);
+ tmp[len] = 0;
+ p = strstr(tmp, "\r\n\r\n");
+ if(p == NULL){
+ free(tmp);
+ return -1;
}
+ p += 4;
+ if(krb_debug)
+ krb_warning("recieved %lu bytes on http socket\n",
+ (unsigned long)((tmp + len) - p));
+ if((tmp + len) - p > MAX_KTXT_LEN) {
+ free(tmp);
+ return -1;
+ }
+ if (strncasecmp (tmp, "HTTP/1.0 2", 10) != 0
+ && strncasecmp (tmp, "HTTP/1.1 2", 10) != 0) {
+ free (tmp);
+ return -1;
+ }
+ memcpy(rpkt->dat, p, (tmp + len) - p);
+ rpkt->length = (tmp + len) - p;
+ free(tmp);
+ return 0;
+}
+
+static struct proto_descr {
+ int proto;
+ int stream_flag;
+ int (*socket)(void);
+ int (*connect)(int, struct sockaddr_in*);
+ int (*send)(int, struct sockaddr_in*, KTEXT);
+ int (*recv)(void*, size_t, KTEXT);
+} protos[] = {
+ { PROTO_UDP, 0, udp_socket, udp_connect, udp_send, udptcp_recv },
+ { PROTO_TCP, 1, tcp_socket, tcp_connect, tcp_send, udptcp_recv },
+ { PROTO_HTTP, 1, tcp_socket, http_connect, http_send, http_recv }
+};
+
+static int
+send_recv(KTEXT pkt, KTEXT rpkt, int proto, struct sockaddr_in *adr)
+{
+ int i;
+ int s;
+ unsigned char buf[MAX_KTXT_LEN];
+ int offset = 0;
- if(connect(f, (struct sockaddr*)_to, sizeof(*_to)) < 0)
- krb_warning("Connecting socket: errno = %d\n", errno);
- else
- ret = send_recv_it(pkt, rpkt, proto == IPPROTO_TCP, f,
- _to, addrs, n_hosts);
-
- close(f);
- return ret;
+ for(i = 0; i < sizeof(protos) / sizeof(protos[0]); i++){
+ if(protos[i].proto == proto)
+ break;
+ }
+ if(i == sizeof(protos) / sizeof(protos[0]))
+ return FALSE;
+ if((s = (*protos[i].socket)()) < 0)
+ return FALSE;
+ if((*protos[i].connect)(s, adr) < 0){
+ close(s);
+ return FALSE;
+ }
+ if((*protos[i].send)(s, adr, pkt) < 0){
+ close(s);
+ return FALSE;
+ }
+ do{
+ fd_set readfds;
+ struct timeval timeout;
+ int len;
+ timeout.tv_sec = client_timeout;
+ timeout.tv_usec = 0;
+ FD_ZERO(&readfds);
+ FD_SET(s, &readfds);
+
+ /* select - either recv is ready, or timeout */
+ /* see if timeout or error or wrong descriptor */
+ if(select(s + 1, &readfds, 0, 0, &timeout) < 1
+ || !FD_ISSET(s, &readfds)) {
+ if (krb_debug)
+ krb_warning("select failed: errno = %d\n", errno);
+ close(s);
+ return FALSE;
+ }
+ len = recv(s, buf + offset, sizeof(buf) - offset, 0);
+ if (len < 0) {
+ close(s);
+ return FALSE;
+ }
+ if(len == 0)
+ break;
+ offset += len;
+ } while(protos[i].stream_flag);
+ close(s);
+ if((*protos[i].recv)(buf, offset, rpkt) < 0)
+ return FALSE;
+ return TRUE;
}
+/* The configuration line "hosts: dns files" in /etc/nsswitch.conf is
+ * rumored to avoid triggering this bug. */
+#if defined(linux) && defined(HAVE__DNS_GETHOSTBYNAME) && 0
+/* Linux libc 5.3 is broken probably somewhere in nsw_hosts.o,
+ * for now keep this kludge. */
+static
+struct hostent *gethostbyname(const char *name)
+{
+ return (void *)_dns_gethostbyname(name);
+}
+#endif
diff --git a/crypto/kerberosIV/lib/krb/sendauth.c b/crypto/kerberosIV/lib/krb/sendauth.c
index 4240bcf..3debc49 100644
--- a/crypto/kerberosIV/lib/krb/sendauth.c
+++ b/crypto/kerberosIV/lib/krb/sendauth.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: sendauth.c,v 1.15 1997/04/18 14:11:36 joda Exp $");
+RCSID("$Id: sendauth.c,v 1.17 1998/06/09 19:25:26 joda Exp $");
/*
* krb_sendauth() transmits a ticket over a file descriptor for a
@@ -130,6 +130,7 @@ krb_sendauth(int32_t options, /* bit-pattern of options */
char tmp[4];
u_int32_t len;
char inst[INST_SZ];
+ char *i;
ret = krb_net_read (fd, tmp, 4);
if (ret < 0)
@@ -144,9 +145,10 @@ krb_sendauth(int32_t options, /* bit-pattern of options */
return -1;
if (options & KOPT_DONT_CANON)
- strncpy (inst, instance, sizeof(inst));
+ i = instance;
else
- strncpy (inst, krb_get_phost(instance), sizeof(inst));
+ i = krb_get_phost(instance);
+ strcpy_truncate (inst, i, sizeof(inst));
ret = krb_get_cred (service, inst, realm, cred);
if (ret != KSUCCESS)
diff --git a/crypto/kerberosIV/lib/krb/sizetest.c b/crypto/kerberosIV/lib/krb/sizetest.c
index d64bbeb..e683416 100644
--- a/crypto/kerberosIV/lib/krb/sizetest.c
+++ b/crypto/kerberosIV/lib/krb/sizetest.c
@@ -1,24 +1,23 @@
#include "krb_locl.h"
-RCSID("$Id: sizetest.c,v 1.5 1996/11/15 18:39:19 bg Exp $");
+RCSID("$Id: sizetest.c,v 1.6 1998/01/01 22:29:04 assar Exp $");
-static
-void
-err(const char *msg)
+static void
+fatal(const char *msg)
{
fputs(msg, stderr);
exit(1);
}
int
-main()
+main(void)
{
if (sizeof(u_int8_t) < 1)
- err("sizeof(u_int8_t) is smaller than 1 byte\n");
+ fatal("sizeof(u_int8_t) is smaller than 1 byte\n");
if (sizeof(u_int16_t) < 2)
- err("sizeof(u_int16_t) is smaller than 2 bytes\n");
+ fatal("sizeof(u_int16_t) is smaller than 2 bytes\n");
if (sizeof(u_int32_t) < 4)
- err("sizeof(u_int32_t) is smaller than 4 bytes\n");
+ fatal("sizeof(u_int32_t) is smaller than 4 bytes\n");
if (sizeof(u_int8_t) > 1)
fputs("warning: sizeof(u_int8_t) is larger than 1 byte, "
@@ -31,7 +30,7 @@ main()
u <<= 1;
if (i < 8)
- err("u_int8_t is smaller than 8 bits\n");
+ fatal("u_int8_t is smaller than 8 bits\n");
else if (i > 8)
fputs("warning: u_int8_t is larger than 8 bits, "
"some stuff may not work properly!\n", stderr);
diff --git a/crypto/kerberosIV/lib/krb/solaris_compat.c b/crypto/kerberosIV/lib/krb/solaris_compat.c
new file mode 100644
index 0000000..ff59dcb
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/solaris_compat.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: solaris_compat.c,v 1.2.6.1 1999/07/22 03:15:53 assar Exp $");
+
+#if (SunOS + 0) >= 50
+/*
+ * Compatibility with solaris' libkrb.
+ */
+
+int32_t
+_C0095C2A(void *in, void *out, u_int32_t length,
+ struct des_ks_struct *schedule, des_cblock *key,
+ struct sockaddr_in *sender, struct sockaddr_in *receiver)
+{
+ return krb_mk_priv (in, out, length, schedule, key, sender, receiver);
+}
+
+int32_t
+_C0095C2B(void *in, u_int32_t in_length,
+ struct des_ks_struct *schedule, des_cblock *key,
+ struct sockaddr_in *sender, struct sockaddr_in *receiver,
+ MSG_DAT *m_data)
+{
+ return krb_rd_priv (in, in_length, schedule, key,
+ sender, receiver, m_data);
+}
+
+void
+_C0095B2B(des_cblock *input,des_cblock *output,
+ des_key_schedule ks,int enc)
+{
+ des_ecb_encrypt(input, output, ks, enc);
+}
+
+void
+_C0095B2A(des_cblock (*input),
+ des_cblock (*output),
+ long length,
+ des_key_schedule schedule,
+ des_cblock (*ivec),
+ int encrypt)
+{
+ des_cbc_encrypt(input, output, length, schedule, ivec, encrypt);
+}
+
+void
+_C0095B2C(des_cblock (*input),
+ des_cblock (*output),
+ long length,
+ des_key_schedule schedule,
+ des_cblock (*ivec),
+ int encrypt)
+{
+ des_pcbc_encrypt(input, output, length, schedule, ivec, encrypt);
+}
+#endif /* (SunOS-0) >= 50 */
diff --git a/crypto/kerberosIV/lib/krb/str2key.c b/crypto/kerberosIV/lib/krb/str2key.c
index 2b00fc1..71a2cea 100644
--- a/crypto/kerberosIV/lib/krb/str2key.c
+++ b/crypto/kerberosIV/lib/krb/str2key.c
@@ -6,9 +6,9 @@
#include "krb_locl.h"
-RCSID("$Id: str2key.c,v 1.10 1997/03/23 03:53:19 joda Exp $");
+RCSID("$Id: str2key.c,v 1.12.2.1 1999/08/19 13:35:01 assar Exp $");
-static void
+static inline void
mklower(char *s)
{
for (; *s; s++)
@@ -19,8 +19,8 @@ mklower(char *s)
/*
* Short passwords, i.e 8 characters or less.
*/
-static void
-afs_cmu_StringToKey (char *str, char *cell, des_cblock *key)
+static inline void
+afs_cmu_StringToKey(const char *str, const char *cell, des_cblock *key)
{
char password[8+1]; /* crypt is limited to 8 chars anyway */
int i;
@@ -29,7 +29,7 @@ afs_cmu_StringToKey (char *str, char *cell, des_cblock *key)
memset (key, 0, sizeof(key));
memset(password, 0, sizeof(password));
- strncpy (password, cell, 8);
+ strcpy_truncate (password, cell, sizeof(password));
passlen = strlen (str);
if (passlen > 8) passlen = 8;
@@ -41,7 +41,7 @@ afs_cmu_StringToKey (char *str, char *cell, des_cblock *key)
/* crypt only considers the first 8 characters of password but for some
reason returns eleven characters of result (plus the two salt chars). */
- strncpy((char *)key, (char *)crypt(password, "#~") + 2, sizeof(des_cblock));
+ strncpy((char *)key, crypt(password, "p1") + 2, sizeof(des_cblock));
/* parity is inserted into the LSB so leftshift each byte up one bit. This
allows ascii characters with a zero MSB to retain as much significance
@@ -60,8 +60,8 @@ afs_cmu_StringToKey (char *str, char *cell, des_cblock *key)
/*
* Long passwords, i.e 9 characters or more.
*/
-static void
-afs_transarc_StringToKey (char *str, char *cell, des_cblock *key)
+static inline void
+afs_transarc_StringToKey(const char *str, const char *cell, des_cblock *key)
{
des_key_schedule schedule;
des_cblock temp_key;
@@ -69,10 +69,11 @@ afs_transarc_StringToKey (char *str, char *cell, des_cblock *key)
char password[512];
int passlen;
- strncpy (password, str, sizeof(password));
+ strcpy_truncate (password, str, sizeof(password));
if ((passlen = strlen (password)) < sizeof(password)-1)
- strncat (password, cell, sizeof(password)-passlen);
- if ((passlen = strlen(password)) > sizeof(password)) passlen = sizeof(password);
+ strcat_truncate (password, cell, sizeof(password));
+ if ((passlen = strlen(password)) > sizeof(password))
+ passlen = sizeof(password);
memcpy(&ivec, "kerberos", 8);
memcpy(&temp_key, "kerberos", 8);
@@ -89,11 +90,11 @@ afs_transarc_StringToKey (char *str, char *cell, des_cblock *key)
}
void
-afs_string_to_key(char *str, char *cell, des_cblock *key)
+afs_string_to_key(const char *str, const char *cell, des_cblock *key)
{
- char realm[REALM_SZ+1];
- strncpy(realm, cell, REALM_SZ);
- realm[REALM_SZ] = 0;
+ char realm[REALM_SZ];
+
+ strcpy_truncate(realm, cell, REALM_SZ);
mklower(realm);
if (strlen(str) > 8)
diff --git a/crypto/kerberosIV/lib/krb/tf_util.c b/crypto/kerberosIV/lib/krb/tf_util.c
index a196448..27a6125 100644
--- a/crypto/kerberosIV/lib/krb/tf_util.c
+++ b/crypto/kerberosIV/lib/krb/tf_util.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: tf_util.c,v 1.24 1997/04/20 06:24:32 assar Exp $");
+RCSID("$Id: tf_util.c,v 1.35 1999/06/29 21:18:11 bg Exp $");
#define TOO_BIG -1
@@ -121,6 +121,11 @@ static int tf_read(void *s, int n);
* TKT_FIL_LCK - couldn't lock the file, even after a retry
*/
+#ifdef _NO_LOCKING
+#undef flock
+#define flock(F, M) 0
+#endif
+
int
tf_init(char *tf_name, int rw)
{
@@ -148,18 +153,21 @@ tf_init(char *tf_name, int rw)
default:
return TKT_FIL_ACC;
}
- /* The old code tried to guess when the calling program was
- * running set-uid, this is now removed - the kerberos library
- * does not (or shouldn't) know anything about user-ids.
-
- * All library functions now assume that the right userids are set
- * upon entry, therefore there is no need to test permissions like
- * before. If the file is openable, just open it.
- */
-
- if(!S_ISREG(stat_buf.st_mode))
+ if (!S_ISREG(stat_buf.st_mode))
return TKT_FIL_ACC;
+ /* The code tries to guess when the calling program is running
+ * set-uid and prevent unauthorized access.
+ *
+ * All library functions now assume that the right set of userids
+ * are set upon entry, therefore it's not strictly necessary to
+ * perform these test for programs adhering to these assumptions.
+ */
+ {
+ uid_t me = getuid();
+ if (stat_buf.st_uid != me && me != 0)
+ return TKT_FIL_ACC;
+ }
/*
* If "wflag" is set, open the ticket file in append-writeonly mode
@@ -177,7 +185,7 @@ tf_init(char *tf_name, int rw)
return TKT_FIL_ACC;
}
for (i_retry = 0; i_retry < TF_LCK_RETRY_COUNT; i_retry++) {
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
+ if (flock(fd, LOCK_EX | LOCK_NB) < 0) {
if (krb_debug)
krb_warning("tf_init: retry %d of write lock of `%s'.\n",
i_retry, tf_name);
@@ -201,7 +209,7 @@ tf_init(char *tf_name, int rw)
}
for (i_retry = 0; i_retry < TF_LCK_RETRY_COUNT; i_retry++) {
- if (k_flock(fd, K_LOCK_SH | K_LOCK_NB) < 0) {
+ if (flock(fd, LOCK_SH | LOCK_NB) < 0) {
if (krb_debug)
krb_warning("tf_init: retry %d of read lock of `%s'.\n",
i_retry, tf_name);
@@ -252,9 +260,9 @@ tf_create(char *tf_name)
fd = open(tf_name, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
if (fd < 0)
return TKT_FIL_ACC;
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
+ if (flock(fd, LOCK_EX | LOCK_NB) < 0) {
sleep(TF_LCK_RETRY);
- if (k_flock(fd, K_LOCK_EX | K_LOCK_NB) < 0) {
+ if (flock(fd, LOCK_EX | LOCK_NB) < 0) {
close(fd);
fd = -1;
return TKT_FIL_LCK;
@@ -295,7 +303,7 @@ tf_get_pname(char *p)
*/
int
-tf_put_pname(char *p)
+tf_put_pname(const char *p)
{
unsigned count;
@@ -343,7 +351,7 @@ tf_get_pinst(char *inst)
*/
int
-tf_put_pinst(char *inst)
+tf_put_pinst(const char *inst)
{
unsigned count;
@@ -369,6 +377,9 @@ tf_put_pinst(char *inst)
* EOF - end of file encountered
*/
+#define MAGIC_TICKET_NAME "magic"
+#define MAGIC_TICKET_INST "time-diff"
+
int
tf_get_cred(CREDENTIALS *c)
{
@@ -380,6 +391,7 @@ tf_get_cred(CREDENTIALS *c)
krb_warning ("tf_get_cred called before tf_init.\n");
return TKT_FIL_INI;
}
+again:
if ((k_errno = tf_gets(c->service, SNAME_SZ)) < 2)
switch (k_errno) {
case TOO_BIG:
@@ -431,6 +443,16 @@ tf_get_cred(CREDENTIALS *c)
krb_warning ("tf_get_cred: failed tf_read.\n");
return TKT_FIL_FMT;
}
+ if(strcmp(c->service, MAGIC_TICKET_NAME) == 0 &&
+ strcmp(c->instance, MAGIC_TICKET_INST) == 0) {
+ /* we found the magic `time diff' ticket; update the kdc time
+ differential, and then get the next ticket */
+ u_int32_t d;
+
+ krb_get_int(c->ticket_st.dat, &d, 4, 0);
+ krb_set_kdc_time_diff(d);
+ goto again;
+ }
return KSUCCESS;
}
@@ -446,7 +468,7 @@ void
tf_close(void)
{
if (!(fd < 0)) {
- k_flock(fd, K_LOCK_UN);
+ flock(fd, LOCK_UN);
close(fd);
fd = -1; /* see declaration of fd above */
}
@@ -603,9 +625,9 @@ tf_save_cred(char *service, /* Service name */
bad:
return (KFAILURE);
}
-
+
int
-tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
+tf_setup(CREDENTIALS *cred, const char *pname, const char *pinst)
{
int ret;
ret = tf_create(tkt_string());
@@ -617,7 +639,20 @@ tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
tf_close();
return INTK_ERR;
}
-
+
+ if(krb_get_kdc_time_diff() != 0) {
+ /* Add an extra magic ticket containing the time differential
+ to the kdc. The first ticket defines which realm we belong
+ to, but since this ticket gets the same realm as the tgt,
+ this shouldn't be a problem */
+ des_cblock s = { 0, 0, 0, 0, 0, 0, 0, 0 };
+ KTEXT_ST t;
+ int d = krb_get_kdc_time_diff();
+ krb_put_int(d, t.dat, sizeof(t.dat), 4);
+ t.length = 4;
+ tf_save_cred(MAGIC_TICKET_NAME, MAGIC_TICKET_INST, cred->realm, s,
+ cred->lifetime, 0, &t, cred->issue_date);
+ }
ret = tf_save_cred(cred->service, cred->instance, cred->realm,
cred->session, cred->lifetime, cred->kvno,
&cred->ticket_st, cred->issue_date);
diff --git a/crypto/kerberosIV/lib/krb/ticket_memory.c b/crypto/kerberosIV/lib/krb/ticket_memory.c
index 04e20b6..d1fab2e 100644
--- a/crypto/kerberosIV/lib/krb/ticket_memory.c
+++ b/crypto/kerberosIV/lib/krb/ticket_memory.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -45,7 +45,7 @@
#include "krb_locl.h"
#include "ticket_memory.h"
-RCSID("$Id: ticket_memory.c,v 1.9 1997/04/20 18:07:36 assar Exp $");
+RCSID("$Id: ticket_memory.c,v 1.13 1998/08/23 18:07:41 assar Exp $");
void msg(char *text, int error);
@@ -55,40 +55,36 @@ tktmem *SharedMemory;
static int CredIndex = -1;
+void PostUpdateMessage(void);
+
int
newTktMem(const char *tf_name)
{
- if(!SharedMemory)
- {
- unsigned int MemorySize = sizeof(tktmem);
- unsigned int MemorySizeHi = sizeof(tktmem)>>16;
- unsigned int MemorySizeLo = MemorySize&0xFFFF;
- SharedMemoryHandle = CreateFileMapping((HANDLE)(int)-1, 0,
+ if(!SharedMemory){
+ SharedMemoryHandle = CreateFileMapping((HANDLE)-1, 0,
PAGE_READWRITE,
- MemorySizeHi, MemorySizeLo,
+ sizeof(tktmem) >> 16,
+ sizeof(tktmem) & 0xffff,
"krb_memory");
-
- if(!SharedMemoryHandle)
- {
+
+ if(!SharedMemoryHandle){
msg("Could not create shared memory.", GetLastError());
return KFAILURE;
}
SharedMemory = MapViewOfFile(SharedMemoryHandle,
FILE_MAP_WRITE, 0, 0, 0);
- if(!SharedMemory)
- {
+ if(!SharedMemory){
msg("Unable to alloc shared memory.", GetLastError());
return KFAILURE;
}
- if(GetLastError() != ERROR_ALREADY_EXISTS)
- {
+ if(GetLastError() != ERROR_ALREADY_EXISTS) {
+ memset(SharedMemory, 0, sizeof(*SharedMemory));
if(tf_name)
- strcpy(SharedMemory->tmname, tf_name);
- SharedMemory->last_cred_no = 0;
+ strcpy_truncate(SharedMemory->tmname,
+ tf_name, sizeof(SharedMemory->tmname));
}
}
-
CredIndex = 0;
return KSUCCESS;
}
@@ -96,8 +92,7 @@ newTktMem(const char *tf_name)
int
freeTktMem(const char *tf_name)
{
- if(SharedMemory)
- {
+ if(SharedMemory) {
UnmapViewOfFile(SharedMemory);
CloseHandle(SharedMemoryHandle);
}
@@ -184,9 +179,8 @@ in_tkt(char *pname, char *pinst)
int
dest_tkt(void)
{
- /* Here goes code to destroy tickets in shared memory. */
- /* Not implemented yet. */
- return KFAILURE;
+ memset(getTktMem(0), 0, sizeof(tktmem));
+ return 0;
}
/* Short description of routines:
@@ -265,9 +259,9 @@ tf_get_pname(char *p)
if(!(TktStore = getTktMem(0)))
return KFAILURE;
- if(!TktStore->pname)
+ if(!TktStore->pname[0])
return KFAILURE;
- strcpy(p, TktStore->pname);
+ strcpy_truncate(p, TktStore->pname, ANAME_SZ);
return KSUCCESS;
}
@@ -283,9 +277,7 @@ tf_put_pname(char *p)
if(!(TktStore = getTktMem(0)))
return KFAILURE;
- if(!TktStore->pname)
- return KFAILURE;
- strcpy(TktStore->pname, p);
+ strcpy_truncate(TktStore->pname, p, sizeof(TktStore->pname));
return KSUCCESS;
}
@@ -306,9 +298,7 @@ tf_get_pinst(char *inst)
if(!(TktStore = getTktMem(0)))
return KFAILURE;
- if(!TktStore->pinst)
- return KFAILURE;
- strcpy(inst, TktStore->pinst);
+ strcpy_truncate(inst, TktStore->pinst, INST_SZ);
return KSUCCESS;
}
@@ -324,9 +314,7 @@ tf_put_pinst(char *inst)
if(!(TktStore = getTktMem(0)))
return KFAILURE;
- if(!TktStore->pinst)
- return KFAILURE;
- strcpy(TktStore->pinst, inst);
+ strcpy_truncate(TktStore->pinst, inst, sizeof(TktStore->pinst));
return KSUCCESS;
}
@@ -350,10 +338,11 @@ tf_get_cred(CREDENTIALS *c)
if(!(TktStore = getTktMem(0)))
return KFAILURE;
+ krb_set_kdc_time_diff(TktStore->kdc_diff);
if((index = nextCredIndex()) == -1)
return EOF;
if(!(cred = TktStore->cred_vec+index))
- return KFAILURE;
+ return KFAILURE;
if(!c)
return KFAILURE;
memcpy(c, cred, sizeof(*c));
@@ -402,20 +391,31 @@ tf_save_cred(char *service, /* Service name */
if(last == -1)
return KFAILURE;
cred = mem->cred_vec+last;
- strcpy(cred->service, service);
- strcpy(cred->instance, instance);
- strcpy(cred->realm, realm);
- strcpy(cred->session, session);
+ strcpy_truncate(cred->service, service, sizeof(cred->service));
+ strcpy_truncate(cred->instance, instance, sizeof(cred->instance));
+ strcpy_truncate(cred->realm, realm, sizeof(cred->realm));
+ memcpy(cred->session, session, sizeof(cred->session));
cred->lifetime = lifetime;
cred->kvno = kvno;
memcpy(&(cred->ticket_st), ticket, sizeof(*ticket));
cred->issue_date = issue_date;
- strcpy(cred->pname, mem->pname);
- strcpy(cred->pinst, mem->pinst);
+ strcpy_truncate(cred->pname, mem->pname, sizeof(cred->pname));
+ strcpy_truncate(cred->pinst, mem->pinst, sizeof(cred->pinst));
+ PostUpdateMessage();
return KSUCCESS;
}
+static void
+set_time_diff(time_t diff)
+{
+ tktmem *TktStore = getTktMem(0);
+ if(TktStore == NULL)
+ return;
+ TktStore->kdc_diff = diff;
+}
+
+
int
tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
{
@@ -430,6 +430,8 @@ tf_setup(CREDENTIALS *cred, char *pname, char *pinst)
return INTK_ERR;
}
+ set_time_diff(krb_get_kdc_time_diff());
+
ret = tf_save_cred(cred->service, cred->instance, cred->realm,
cred->session, cred->lifetime, cred->kvno,
&cred->ticket_st, cred->issue_date);
diff --git a/crypto/kerberosIV/lib/krb/ticket_memory.h b/crypto/kerberosIV/lib/krb/ticket_memory.h
index e85e1a4..307fb9a 100644
--- a/crypto/kerberosIV/lib/krb/ticket_memory.h
+++ b/crypto/kerberosIV/lib/krb/ticket_memory.h
@@ -40,7 +40,7 @@
* Author: d93-jka@nada.kth.se - June 1996
*/
-/* $Id: ticket_memory.h,v 1.6 1997/04/20 06:25:12 assar Exp $ */
+/* $Id: ticket_memory.h,v 1.7 1998/06/03 02:31:05 joda Exp $ */
#ifndef TICKET_MEMORY_H
#define TICKET_MEMORY_H
@@ -56,6 +56,7 @@ typedef struct _tktmem
char pinst[INST_SZ]; /* Principal's instance */
int last_cred_no;
CREDENTIALS cred_vec[CRED_VEC_SZ];
+ time_t kdc_diff;
} tktmem;
int newTktMem(const char *tf_name);
diff --git a/crypto/kerberosIV/lib/krb/time.c b/crypto/kerberosIV/lib/krb/time.c
new file mode 100644
index 0000000..23831cf
--- /dev/null
+++ b/crypto/kerberosIV/lib/krb/time.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 1998 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. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Kungliga Tekniska
+ * Högskolan and its contributors.
+ *
+ * 4. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "krb_locl.h"
+
+RCSID("$Id: time.c,v 1.3 1998/09/30 22:36:19 assar Exp $");
+
+/* number of seconds the kdc clock is ahead of us */
+static int time_diff;
+
+void
+krb_set_kdc_time_diff(int diff)
+{
+ time_diff = diff;
+ if(krb_debug)
+ krb_warning("Setting time diff to %d\n", diff);
+}
+
+int
+krb_get_kdc_time_diff(void)
+{
+ return time_diff;
+}
+
+/* return the time at the kdc (local time corrected with a time
+ differential) */
+void
+krb_kdctimeofday(struct timeval *tv)
+{
+ time_t t;
+
+ gettimeofday(tv, NULL);
+ t = tv->tv_sec;
+
+ if(krb_debug)
+ krb_warning("Machine time: %s", ctime(&t));
+ t += krb_get_kdc_time_diff();
+ if(krb_debug)
+ krb_warning("Correcting to %s", ctime(&t));
+ tv->tv_sec = t;
+}
diff --git a/crypto/kerberosIV/lib/krb/tkt_string.c b/crypto/kerberosIV/lib/krb/tkt_string.c
index 2914abb..2c81288 100644
--- a/crypto/kerberosIV/lib/krb/tkt_string.c
+++ b/crypto/kerberosIV/lib/krb/tkt_string.c
@@ -21,7 +21,7 @@ or implied warranty.
#include "krb_locl.h"
-RCSID("$Id: tkt_string.c,v 1.10 1997/05/02 14:54:26 assar Exp $");
+RCSID("$Id: tkt_string.c,v 1.14 1998/06/09 19:25:28 joda Exp $");
/*
* This routine is used to generate the name of the file that holds
@@ -39,25 +39,19 @@ RCSID("$Id: tkt_string.c,v 1.10 1997/05/02 14:54:26 assar Exp $");
static char krb_ticket_string[MaxPathLen] = "";
-#ifndef HAVE_GETUID
-int getuid(void)
-{
- return 27;
-}
-#endif
-
-char *tkt_string(void)
+char *
+tkt_string(void)
{
char *env;
if (!*krb_ticket_string) {
if ((env = getenv("KRBTKFILE"))) {
- strncpy(krb_ticket_string, env,
- sizeof(krb_ticket_string)-1);
- krb_ticket_string[sizeof(krb_ticket_string)-1] = '\0';
+ strcpy_truncate (krb_ticket_string,
+ env,
+ sizeof(krb_ticket_string));
} else {
snprintf(krb_ticket_string, sizeof(krb_ticket_string),
- "%s%u",TKT_ROOT,(unsigned)getuid());
+ "%s%u",TKT_ROOT, (unsigned)getuid());
}
}
return krb_ticket_string;
@@ -75,11 +69,7 @@ char *tkt_string(void)
*/
void
-krb_set_tkt_string(char *val)
+krb_set_tkt_string(const char *val)
{
-
- strncpy(krb_ticket_string, val, sizeof(krb_ticket_string)-1);
- krb_ticket_string[sizeof(krb_ticket_string)-1] = '\0';
-
- return;
+ strcpy_truncate (krb_ticket_string, val, sizeof(krb_ticket_string));
}
diff --git a/crypto/kerberosIV/lib/krb/unparse_name.c b/crypto/kerberosIV/lib/krb/unparse_name.c
index ddb938f..9d39f1d 100644
--- a/crypto/kerberosIV/lib/krb/unparse_name.c
+++ b/crypto/kerberosIV/lib/krb/unparse_name.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: unparse_name.c,v 1.7 1997/04/01 08:18:46 joda Exp $");
+RCSID("$Id: unparse_name.c,v 1.8 1998/06/09 19:25:28 joda Exp $");
static void
quote_string(char *quote, char *from, char *to)
@@ -74,12 +74,13 @@ krb_unparse_name_long_r(char *name, char *instance, char *realm,
char *fullname)
{
krb_principal pr;
+
memset(&pr, 0, sizeof(pr));
- strcpy(pr.name, name);
+ strcpy_truncate(pr.name, name, sizeof(pr.name));
if(instance)
- strcpy(pr.instance, instance);
+ strcpy_truncate(pr.instance, instance, sizeof(pr.instance));
if(realm)
- strcpy(pr.realm, realm);
+ strcpy_truncate(pr.realm, realm, sizeof(pr.realm));
return krb_unparse_name_r(&pr, fullname);
}
@@ -95,11 +96,12 @@ char *
krb_unparse_name_long(char *name, char *instance, char *realm)
{
krb_principal pr;
+
memset(&pr, 0, sizeof(pr));
- strcpy(pr.name, name);
+ strcpy_truncate(pr.name, name, sizeof(pr.name));
if(instance)
- strcpy(pr.instance, instance);
+ strcpy_truncate(pr.instance, instance, sizeof(pr.instance));
if(realm)
- strcpy(pr.realm, realm);
+ strcpy_truncate(pr.realm, realm, sizeof(pr.realm));
return krb_unparse_name(&pr);
}
diff --git a/crypto/kerberosIV/lib/krb/verify_user.c b/crypto/kerberosIV/lib/krb/verify_user.c
index ce22b59..de692dd 100644
--- a/crypto/kerberosIV/lib/krb/verify_user.c
+++ b/crypto/kerberosIV/lib/krb/verify_user.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -38,22 +38,38 @@
#include "krb_locl.h"
-RCSID("$Id: verify_user.c,v 1.8 1997/04/01 08:18:46 joda Exp $");
+RCSID("$Id: verify_user.c,v 1.14 1999/03/16 17:31:39 assar Exp $");
-/* Verify user with password. If secure, also verify against local
- * service key, this can (usually) only be done by root.
+/*
+ * Verify user (name.instance@realm) with `password'.
+ *
+ * If secure, also verify against local
+ * service key (`linstance'.hostname) (or rcmd if linstance == NULL),
+ * this can (usually) only be done by root.
+ *
+ * If secure == KRB_VERIFY_SECURE, fail if there's no key.
+ * If secure == KRB_VERIFY_SECURE_FAIL, don't fail if there's no such
+ * key in the srvtab.
*
* As a side effect, fresh tickets are obtained.
*
+ * srvtab is where the key is found.
+ *
* Returns zero if ok, a positive kerberos error or -1 for system
* errors.
*/
-int
-krb_verify_user(char *name, char *instance, char *realm, char *password,
- int secure, char *linstance)
+static int
+krb_verify_user_srvtab_exact(char *name,
+ char *instance,
+ char *realm,
+ char *password,
+ int secure,
+ char *linstance,
+ char *srvtab)
{
int ret;
+
ret = krb_get_pw_in_tkt(name, instance, realm,
KRB_TICKET_GRANTING_TICKET,
realm,
@@ -61,7 +77,7 @@ krb_verify_user(char *name, char *instance, char *realm, char *password,
if(ret != KSUCCESS)
return ret;
- if(secure){
+ if(secure == KRB_VERIFY_SECURE || secure == KRB_VERIFY_SECURE_FAIL){
struct hostent *hp;
int32_t addr;
@@ -72,7 +88,7 @@ krb_verify_user(char *name, char *instance, char *realm, char *password,
char hostname[MaxHostNameLen];
char *phost;
- if (k_gethostname(hostname, sizeof(hostname)) == -1) {
+ if (gethostname(hostname, sizeof(hostname)) == -1) {
dest_tkt();
return -1;
}
@@ -94,13 +110,21 @@ krb_verify_user(char *name, char *instance, char *realm, char *password,
if (linstance == NULL)
linstance = "rcmd";
+ if(secure == KRB_VERIFY_SECURE_FAIL) {
+ des_cblock key;
+ ret = read_service_key(linstance, phost, lrealm, 0, srvtab, &key);
+ memset(key, 0, sizeof(key));
+ if(ret == KFAILURE)
+ return 0;
+ }
+
ret = krb_mk_req(&ticket, linstance, phost, lrealm, 33);
if(ret != KSUCCESS){
dest_tkt();
return ret;
}
- ret = krb_rd_req(&ticket, linstance, phost, addr, &auth, "");
+ ret = krb_rd_req(&ticket, linstance, phost, addr, &auth, srvtab);
if(ret != KSUCCESS){
dest_tkt();
return ret;
@@ -109,3 +133,77 @@ krb_verify_user(char *name, char *instance, char *realm, char *password,
return 0;
}
+/*
+ *
+ */
+
+int
+krb_verify_user_srvtab(char *name,
+ char *instance,
+ char *realm,
+ char *password,
+ int secure,
+ char *linstance,
+ char *srvtab)
+{
+ int n;
+ char rlm[256];
+#define ERICSSON_COMPAT 1
+#ifdef ERICSSON_COMPAT
+ FILE *f;
+
+ f = fopen ("/etc/krb.localrealms", "r");
+ if (f != NULL) {
+ while (fgets(rlm, sizeof(rlm), f) != NULL) {
+ if (rlm[strlen(rlm) - 1] == '\n')
+ rlm[strlen(rlm) - 1] = '\0';
+
+ if (krb_verify_user_srvtab_exact(name, instance, rlm, password,
+ secure, linstance, srvtab)
+ == KSUCCESS) {
+ fclose(f);
+ return KSUCCESS;
+ }
+ }
+ fclose (f);
+ return krb_verify_user_srvtab_exact(name, instance, realm, password,
+ secure, linstance, srvtab);
+ }
+#endif
+ /* First try to verify against the supplied realm. */
+ if (krb_verify_user_srvtab_exact(name, instance, realm, password,
+ secure, linstance, srvtab)
+ == KSUCCESS)
+ return KSUCCESS;
+
+ /* Verify all local realms, except the supplied realm. */
+ for (n = 1; krb_get_lrealm(rlm, n) == KSUCCESS; n++)
+ if (strcmp(rlm, realm) != 0)
+ if (krb_verify_user_srvtab_exact(name, instance, rlm, password,
+ secure, linstance, srvtab)
+ == KSUCCESS)
+ return KSUCCESS;
+
+ return KFAILURE;
+}
+
+/*
+ * Compat function without srvtab.
+ */
+
+int
+krb_verify_user(char *name,
+ char *instance,
+ char *realm,
+ char *password,
+ int secure,
+ char *linstance)
+{
+ return krb_verify_user_srvtab (name,
+ instance,
+ realm,
+ password,
+ secure,
+ linstance,
+ KEYFILE);
+}
OpenPOWER on IntegriCloud