From fe83e8abf357ee11114856a5278bb38431a9517c Mon Sep 17 00:00:00 2001 From: markm Date: Sun, 19 Sep 1999 14:19:32 +0000 Subject: Clean import of KTH krb4-0.10.1. --- crypto/kerberosIV/lib/krb/Makefile.in | 474 +-- crypto/kerberosIV/lib/krb/cr_err_reply.c | 50 +- crypto/kerberosIV/lib/krb/create_auth_reply.c | 63 +- crypto/kerberosIV/lib/krb/create_ciph.c | 44 +- crypto/kerberosIV/lib/krb/create_death_packet.c | 30 +- crypto/kerberosIV/lib/krb/create_ticket.c | 45 +- crypto/kerberosIV/lib/krb/debug_decl.c | 17 +- crypto/kerberosIV/lib/krb/decomp_ticket.c | 19 +- crypto/kerberosIV/lib/krb/dllmain.c | 50 +- crypto/kerberosIV/lib/krb/extra.c | 207 ++ crypto/kerberosIV/lib/krb/get_ad_tkt.c | 38 +- crypto/kerberosIV/lib/krb/get_cred.c | 4 +- crypto/kerberosIV/lib/krb/get_default_principal.c | 20 +- crypto/kerberosIV/lib/krb/get_host.c | 246 +- crypto/kerberosIV/lib/krb/get_in_tkt.c | 109 +- crypto/kerberosIV/lib/krb/get_krbrlm.c | 182 +- crypto/kerberosIV/lib/krb/get_svc_in_tkt.c | 7 +- crypto/kerberosIV/lib/krb/get_tf_fullname.c | 8 +- crypto/kerberosIV/lib/krb/getaddrs.c | 93 +- crypto/kerberosIV/lib/krb/getfile.c | 96 + crypto/kerberosIV/lib/krb/getrealm.c | 169 +- crypto/kerberosIV/lib/krb/k_getsockinst.c | 5 +- crypto/kerberosIV/lib/krb/kdc_reply.c | 13 +- crypto/kerberosIV/lib/krb/kntoln.c | 145 +- crypto/kerberosIV/lib/krb/krb-archaeology.h | 131 + crypto/kerberosIV/lib/krb/krb-protos.h | 773 +++++ crypto/kerberosIV/lib/krb/krb.def | 16 +- crypto/kerberosIV/lib/krb/krb.dsp | 398 +++ crypto/kerberosIV/lib/krb/krb.h | 317 +- crypto/kerberosIV/lib/krb/krb.mak | 3701 +++++++-------------- crypto/kerberosIV/lib/krb/krb.rc | 105 + crypto/kerberosIV/lib/krb/krb_equiv.c | 13 +- crypto/kerberosIV/lib/krb/krb_err.et | 310 +- crypto/kerberosIV/lib/krb/krb_err_txt.c | 6 +- crypto/kerberosIV/lib/krb/krb_get_in_tkt.c | 153 +- crypto/kerberosIV/lib/krb/krb_locl.h | 59 +- crypto/kerberosIV/lib/krb/krb_log.h | 79 + crypto/kerberosIV/lib/krb/krb_net_read.c | 47 + crypto/kerberosIV/lib/krb/krb_net_write.c | 47 + crypto/kerberosIV/lib/krb/kuserok.c | 48 +- crypto/kerberosIV/lib/krb/logging.c | 6 +- crypto/kerberosIV/lib/krb/lsb_addr_comp.c | 42 +- crypto/kerberosIV/lib/krb/mk_auth.c | 50 +- crypto/kerberosIV/lib/krb/mk_err.c | 11 +- crypto/kerberosIV/lib/krb/mk_priv.c | 20 +- crypto/kerberosIV/lib/krb/mk_req.c | 102 +- crypto/kerberosIV/lib/krb/mk_safe.c | 18 +- crypto/kerberosIV/lib/krb/name2name.c | 29 +- crypto/kerberosIV/lib/krb/parse_name.c | 8 +- crypto/kerberosIV/lib/krb/prot.h | 59 +- crypto/kerberosIV/lib/krb/rd_priv.c | 6 +- crypto/kerberosIV/lib/krb/rd_req.c | 12 +- crypto/kerberosIV/lib/krb/rd_safe.c | 4 +- crypto/kerberosIV/lib/krb/read_service_key.c | 15 +- crypto/kerberosIV/lib/krb/realm_parse.c | 22 +- crypto/kerberosIV/lib/krb/recvauth.c | 16 +- crypto/kerberosIV/lib/krb/resource.h | 15 + crypto/kerberosIV/lib/krb/roken_rename.h | 103 + crypto/kerberosIV/lib/krb/rw.c | 66 +- crypto/kerberosIV/lib/krb/send_to_kdc.c | 473 ++- crypto/kerberosIV/lib/krb/sendauth.c | 8 +- crypto/kerberosIV/lib/krb/sizetest.c | 17 +- crypto/kerberosIV/lib/krb/solaris_compat.c | 94 + crypto/kerberosIV/lib/krb/str2key.c | 31 +- crypto/kerberosIV/lib/krb/tf_util.c | 77 +- crypto/kerberosIV/lib/krb/ticket_memory.c | 86 +- crypto/kerberosIV/lib/krb/ticket_memory.h | 3 +- crypto/kerberosIV/lib/krb/time.c | 76 + crypto/kerberosIV/lib/krb/tkt_string.c | 28 +- crypto/kerberosIV/lib/krb/unparse_name.c | 18 +- crypto/kerberosIV/lib/krb/verify_user.c | 118 +- 71 files changed, 5840 insertions(+), 4130 deletions(-) create mode 100644 crypto/kerberosIV/lib/krb/extra.c create mode 100644 crypto/kerberosIV/lib/krb/getfile.c create mode 100644 crypto/kerberosIV/lib/krb/krb-archaeology.h create mode 100644 crypto/kerberosIV/lib/krb/krb-protos.h create mode 100644 crypto/kerberosIV/lib/krb/krb.dsp create mode 100644 crypto/kerberosIV/lib/krb/krb.rc create mode 100644 crypto/kerberosIV/lib/krb/krb_log.h create mode 100644 crypto/kerberosIV/lib/krb/krb_net_read.c create mode 100644 crypto/kerberosIV/lib/krb/krb_net_write.c create mode 100644 crypto/kerberosIV/lib/krb/resource.h create mode 100644 crypto/kerberosIV/lib/krb/roken_rename.h create mode 100644 crypto/kerberosIV/lib/krb/solaris_compat.c create mode 100644 crypto/kerberosIV/lib/krb/time.c (limited to 'crypto/kerberosIV/lib/krb') 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 -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", ®_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 #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 #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 + * . + */ + +#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 +#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.h b/crypto/kerberosIV/lib/krb/krb.h index 1ce349e..11a11c1 100644 --- a/crypto/kerberosIV/lib/krb/krb.h +++ b/crypto/kerberosIV/lib/krb/krb.h @@ -1,5 +1,5 @@ /* - * $Id: krb.h,v 1.76 1997/05/26 17:47:31 bg Exp $ + * $Id: krb.h,v 1.97 1999/06/29 21:18:06 bg Exp $ * * Copyright 1987, 1988 by the Massachusetts Institute of Technology. * @@ -9,20 +9,39 @@ * Include file for the Kerberos library. */ -/* Only one time, please */ -#ifndef KRB_DEFS -#define KRB_DEFS +#if !defined (__STDC__) && !defined(_MSC_VER) +#define const +#define signed +#endif #include -#include -#include #include -__BEGIN_DECLS +#ifndef __KRB_H__ +#define __KRB_H__ + +/* XXX */ +#ifndef __BEGIN_DECLS +#if defined(__cplusplus) +#define __BEGIN_DECLS extern "C" { +#define __END_DECLS }; +#else +#define __BEGIN_DECLS +#define __END_DECLS +#endif +#endif +#if defined (__STDC__) || defined (_MSC_VER) #ifndef __P #define __P(x) x #endif +#else +#ifndef __P +#define __P(x) () +#endif +#endif + +__BEGIN_DECLS /* Need some defs from des.h */ #if !defined(NOPROTO) && !defined(__STDC__) @@ -30,7 +49,7 @@ __BEGIN_DECLS #endif #include -/* Don't use these guys, they are only for compatibility with CNS. */ +/* CNS compatibility ahead! */ #ifndef KRB_INT32 #define KRB_INT32 int32_t #endif @@ -43,15 +62,16 @@ extern int krb_ignore_ip_address; /* To turn off IP address comparison */ extern int krb_no_long_lifetimes; /* To disable AFS compatible lifetimes */ extern int krbONE; #define HOST_BYTE_ORDER (* (char *) &krbONE) +/* Debug variables */ +extern int krb_debug; +extern int krb_ap_req_debug; +extern int krb_dns_debug; + /* Text describing error codes */ #define MAX_KRB_ERRORS 256 extern const char *krb_err_txt[MAX_KRB_ERRORS]; -/* Use this function rather than indexing in krb_err_txt */ -const char *krb_get_err_text __P((int code)); - - /* General definitions */ #define KSUCCESS 0 #define KFAILURE 255 @@ -132,7 +152,7 @@ typedef struct ktext KTEXT_ST; /* Definitions for send_to_kdc */ -#define CLIENT_KRB_TIMEOUT 4 /* time between retries */ +#define CLIENT_KRB_TIMEOUT 4 /* default time between retries */ #define CLIENT_KRB_RETRY 5 /* retry this many times */ #define CLIENT_KRB_BUFLEN 512 /* max unfragmented packet */ @@ -198,14 +218,11 @@ typedef struct msg_dat MSG_DAT; struct krb_host { char *realm; char *host; - int proto; + enum krb_host_proto { PROTO_UDP, PROTO_TCP, PROTO_HTTP } proto; int port; int admin; }; -struct krb_host *krb_get_host __P((int, char*, int)); - - /* Location of ticket file for save_cred and get_cred */ #define TKT_FILE tkt_string() #define TKT_ROOT "/tmp/tkt" @@ -297,76 +314,6 @@ struct krb_host *krb_get_host __P((int, char*, int)); /* Error code returned by krb_mk_safe */ #define SAFE_PRIV_ERROR -1 /* syscall error */ -/* - * 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 */ - /* Defines for krb_sendauth and krb_recvauth */ #define KOPT_DONT_MK_REQ 0x00000001 /* don't call krb_mk_req */ @@ -377,189 +324,33 @@ struct krb_host *krb_get_host __P((int, char*, int)); * a hostname */ +#define KOPT_IGNORE_PROTOCOL 0x0008 + #define KRB_SENDAUTH_VLEN 8 /* length for version strings */ -/* File locking */ -#define K_LOCK_SH 1 /* Shared lock */ -#define K_LOCK_EX 2 /* Exclusive lock */ -#define K_LOCK_NB 4 /* Don't block when locking */ -#define K_LOCK_UN 8 /* Unlock */ -int k_flock __P((int fd, int operation)); -struct tm *k_localtime __P((u_int32_t *)); -int k_getsockinst __P((int fd, char *inst, size_t)); -int k_getportbyname __P((const char *service, const char *proto, int default_port)); +/* flags for krb_verify_user() */ +#define KRB_VERIFY_NOT_SECURE 0 +#define KRB_VERIFY_SECURE 1 +#define KRB_VERIFY_SECURE_FAIL 2 extern char *krb4_version; -struct in_addr; - -int k_get_all_addrs __P((struct in_addr **l)); - -/* Host address comparison */ -int krb_equiv __P((u_int32_t, u_int32_t)); - -/* Password conversion */ -void mit_string_to_key __P((char *str, char *cell, des_cblock *key)); -void afs_string_to_key __P((char *str, char *cell, des_cblock *key)); - -/* Lifetime conversion */ -u_int32_t krb_life_to_time __P((u_int32_t start, int life)); -int krb_time_to_life __P((u_int32_t start, u_int32_t end)); -char *krb_life_to_atime __P((int life)); -int krb_atime_to_life __P((char *atime)); - -/* Ticket manipulation */ -int tf_get_cred __P((CREDENTIALS *)); -int tf_get_pinst __P((char *)); -int tf_get_pname __P((char *)); -int tf_put_pinst __P((char *)); -int tf_put_pname __P((char *)); -int tf_init __P((char *, int)); -int tf_create __P((char *)); -int tf_save_cred __P((char *, char *, char *, unsigned char *, int , int , KTEXT ticket, u_int32_t)); -void tf_close __P((void)); -int tf_setup __P((CREDENTIALS *cred, char *pname, char *pinst)); - -/* Private communication */ - -struct sockaddr_in; - -int32_t krb_mk_priv __P((void *, void *, u_int32_t, struct des_ks_struct *, des_cblock *, struct sockaddr_in *, struct sockaddr_in *)); -int32_t krb_rd_priv __P((void *, u_int32_t, struct des_ks_struct *, des_cblock *, struct sockaddr_in *, struct sockaddr_in *, MSG_DAT *)); - -/* Misc */ -KTEXT create_auth_reply __P((char *, char *, char *, int32_t, int, u_int32_t, int, KTEXT)); - -char *krb_get_phost __P((const char *)); -char *krb_realmofhost __P((const char *)); -char *tkt_string __P((void)); - -int create_ciph __P((KTEXT, unsigned char *, char *, char *, char *, u_int32_t, int, KTEXT, u_int32_t, des_cblock *)); -int decomp_ticket __P((KTEXT, unsigned char *, char *, char *, char *, u_int32_t *, unsigned char *, int *, u_int32_t *, char *, char *, des_cblock *, struct des_ks_struct *)); -int dest_tkt __P((void)); -int get_ad_tkt __P((char *, char *, char *, int)); -int get_pw_tkt __P((char *, char *, char *, char *)); -int get_request __P((KTEXT, int, char **, char **)); -int in_tkt __P((char *, char *)); -int k_gethostname __P((char *, int )); -int k_isinst __P((char *)); -int k_isname __P((char *)); -int k_isrealm __P((char *)); -int kname_parse __P((char *, char *, char *, char *)); -int krb_parse_name __P((const char*, krb_principal*)); -char *krb_unparse_name __P((krb_principal*)); -char *krb_unparse_name_r __P((krb_principal*, char*)); -char *krb_unparse_name_long __P((char*, char*, char*)); -char *krb_unparse_name_long_r __P((char *name, char *instance, char *realm, char *fullname)); -int krb_create_ticket __P((KTEXT, unsigned char, char *, char *, char *, int32_t, void *, int16_t, int32_t, char *, char *, des_cblock *)); -int krb_get_admhst __P((char *, char *, int)); -int krb_get_cred __P((char *, char *, char *, CREDENTIALS *)); - -typedef int (*key_proc_t) __P((char*, char*, char*, void*, des_cblock*)); - -typedef int (*decrypt_proc_t) __P((char*, char*, char*, void*, - key_proc_t, KTEXT*)); - -int krb_get_in_tkt __P((char*, char*, char*, char*, char*, int, key_proc_t, - decrypt_proc_t, void*)); - -int srvtab_to_key __P((char *, char *, char *, void *, des_cblock *)); -int passwd_to_key __P((char *, char *, char *, void *, des_cblock *)); -int passwd_to_afskey __P((char *, char *, char *, void *, des_cblock *)); - -int krb_get_krbhst __P((char *, char *, int)); -int krb_get_lrealm __P((char *, int)); -char *krb_get_default_realm __P((void)); -int krb_get_pw_in_tkt __P((char *, char *, char *, char *, char *, int, char *)); -int krb_get_svc_in_tkt __P((char *, char *, char *, char *, char *, int, char *)); -int krb_get_tf_fullname __P((char *, char *, char *, char *)); -int krb_get_tf_realm __P((char *, char *)); -int krb_kntoln __P((AUTH_DAT *, char *)); -int krb_mk_req __P((KTEXT , char *, char *, char *, int32_t)); -int krb_net_read __P((int , void *, size_t)); -int krb_net_write __P((int , const void *, size_t)); -int krb_rd_err __P((u_char *, u_int32_t, int32_t *, MSG_DAT *)); -int krb_rd_req __P((KTEXT , char *, char *, int32_t, AUTH_DAT *, char *)); -int krb_recvauth __P((int32_t, int, KTEXT, char *, char *, struct sockaddr_in *, struct sockaddr_in *, AUTH_DAT *, char *, struct des_ks_struct *, char *)); -int krb_sendauth __P((int32_t, int, KTEXT, char *,char *, char *, u_int32_t, MSG_DAT *, CREDENTIALS *, struct des_ks_struct *, struct sockaddr_in *, struct sockaddr_in *, char *)); -int krb_mk_auth __P((int32_t, KTEXT, char *, char *, char *, u_int32_t, char *, KTEXT)); -int krb_check_auth __P((KTEXT, u_int32_t, MSG_DAT *, des_cblock *, struct des_ks_struct *, struct sockaddr_in *, struct sockaddr_in *)); -int krb_set_key __P((void *, int)); -int krb_set_lifetime __P((int)); -int krb_kuserok __P((char *name, char *inst, char *realm, char *luser)); -int kuserok __P((AUTH_DAT *, char *)); -int read_service_key __P((char *, char *, char *, int , char *, char *)); -int save_credentials __P((char *, char *, char *, unsigned char *, int , int , KTEXT , int32_t)); -int send_to_kdc __P((KTEXT , KTEXT , char *)); - -int32_t krb_mk_err __P((u_char *, int32_t, char *)); -int32_t krb_mk_safe __P((void *, void *, u_int32_t, des_cblock *, struct sockaddr_in *, struct sockaddr_in *)); -int32_t krb_rd_safe __P((void *, u_int32_t, des_cblock *, struct sockaddr_in *, struct sockaddr_in *, MSG_DAT *)); - -void ad_print __P((AUTH_DAT *)); -void cr_err_reply __P((KTEXT, char *, char *, char *, u_int32_t, u_int32_t, char *)); -void extract_ticket __P((KTEXT, int, char *, int *, int *, char *, KTEXT)); -void krb_set_tkt_string __P((char *)); - -int krb_get_default_principal __P((char *, char *, char *)); -int krb_realm_parse __P((char *, int)); -int krb_verify_user __P((char*, char*, char*, char*, int, char *)); - -/* logging.c */ - -typedef int (*krb_log_func_t)(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)) -#ifdef __GNUC__ -__attribute__ ((format (printf, 2, 0))) -#endif -; -int krb_logger __P((struct krb_log_facility*, const char *, ...)) -#ifdef __GNUC__ -__attribute__ ((format (printf, 2, 3))) -#endif -; -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*, ...)) -#ifdef __GNUC__ -__attribute__ ((format (printf, 1, 2))) -#endif -; +typedef int (*key_proc_t) __P((const char *name, + char *instance, /* INOUT parameter */ + const char *realm, + const void *password, + des_cblock *key)); -void kset_logfile __P((char*)); -void krb_log __P((const char*, ...)) -#ifdef __GNUC__ -__attribute__ ((format (printf, 1, 2))) -#endif -; -char *klog __P((int, const char*, ...)) -#ifdef __GNUC__ -__attribute__ ((format (printf, 2, 3))) -#endif -; - -int getst __P((int, char *, int)); -const char *month_sname __P((int)); -const char *krb_stime __P((time_t *)); -int krb_check_tm __P((struct tm)); - -int krb_get_int __P((void *from, u_int32_t *to, int size, int lsb)); -int krb_put_int __P((u_int32_t from, void *to, int size)); -int krb_get_address __P((void *from, u_int32_t *to)); -int krb_put_address __P((u_int32_t addr, void *to)); -int krb_put_string __P((char *from, void *to)); -int krb_get_string __P((void *from, char *to)); -int krb_get_nir __P((void *from, char *name, char *instance, char *realm)); -int krb_put_nir __P((char *name, char *instance, char *realm, void *to)); +typedef int (*decrypt_proc_t) __P((const char *name, + const char *instance, + const char *realm, + const void *arg, + key_proc_t, + KTEXT *)); + +#include "krb-protos.h" __END_DECLS -#endif /* KRB_DEFS */ +#endif /* __KRB_H__ */ 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 : "$(OUTDIR)\krb.dll" + +!ELSE -ALL : ".\Release\krb.dll" +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=\ +!IF "$(CFG)" == "krb - Win32 Release" || "$(CFG)" == "krb - Win32 Debug" +SOURCE=.\cr_err_reply.c +DEP_CPP_CR_ER=\ "..\..\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\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)" +"$(INTDIR)\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GET_T=\ +SOURCE=.\create_auth_reply.c +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\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)" +"$(INTDIR)\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cr_err_reply.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_CR_ER=\ +SOURCE=.\create_ciph.c +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\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)" - +"$(INTDIR)\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_CR_ER=\ +SOURCE=.\create_ticket.c +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\cr_err_reply.obj" : $(SOURCE) $(DEP_CPP_CR_ER) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\create_auth_reply.c +"$(INTDIR)\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_CREAT=\ +SOURCE=.\debug_decl.c +DEP_CPP_DEBUG=\ "..\..\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_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)" +"$(INTDIR)\debug_decl.obj" : $(SOURCE) $(DEP_CPP_DEBUG) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_CREAT=\ +SOURCE=.\decomp_ticket.c +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\create_auth_reply.obj" : $(SOURCE) $(DEP_CPP_CREAT) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\create_ciph.c +"$(INTDIR)\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_CREATE=\ +SOURCE=.\dllmain.c +DEP_CPP_DLLMA=\ "..\..\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"\ -".\Release\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)" +"$(INTDIR)\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_CREATE=\ +SOURCE=.\encrypt_ktext.c +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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Debug\create_ciph.obj" : $(SOURCE) $(DEP_CPP_CREATE) "$(INTDIR)" +"$(INTDIR)\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\get_ad_tkt.c +DEP_CPP_GET_A=\ + "..\..\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"\ + -SOURCE=.\create_ticket.c +"$(INTDIR)\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_CREATE_=\ +SOURCE=.\get_cred.c +DEP_CPP_GET_C=\ "..\..\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)\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_CREATE_=\ +SOURCE=.\get_default_principal.c +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\create_ticket.obj" : $(SOURCE) $(DEP_CPP_CREATE_) "$(INTDIR)" - +"$(INTDIR)\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)" -!ENDIF -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\get_host.c +DEP_CPP_GET_H=\ + "..\..\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"\ + -SOURCE=.\decomp_ticket.c +"$(INTDIR)\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_DECOM=\ +SOURCE=.\get_in_tkt.c +DEP_CPP_GET_I=\ "..\..\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\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)" +"$(INTDIR)\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_DECOM=\ +SOURCE=.\get_krbrlm.c +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\decomp_ticket.obj" : $(SOURCE) $(DEP_CPP_DECOM) "$(INTDIR)" +"$(INTDIR)\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\get_svc_in_tkt.c +DEP_CPP_GET_S=\ + "..\..\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"\ + -SOURCE=.\dllmain.c +"$(INTDIR)\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_DLLMA=\ +SOURCE=.\get_tf_fullname.c +DEP_CPP_GET_T=\ "..\..\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"\ - ".\ticket_memory.h"\ + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\dllmain.obj" : $(SOURCE) $(DEP_CPP_DLLMA) "$(INTDIR)" +"$(INTDIR)\get_tf_fullname.obj" : $(SOURCE) $(DEP_CPP_GET_T) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_DLLMA=\ +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"\ - ".\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)\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)" -!ENDIF -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\getaddrs.c +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"\ + -SOURCE=.\encrypt_ktext.c +"$(INTDIR)\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_ENCRY=\ +SOURCE=.\getfile.c +DEP_CPP_GETFI=\ "..\..\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\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)" +"$(INTDIR)\getfile.obj" : $(SOURCE) $(DEP_CPP_GETFI) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_ENCRY=\ +SOURCE=.\getrealm.c +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\encrypt_ktext.obj" : $(SOURCE) $(DEP_CPP_ENCRY) "$(INTDIR)" - - -!ENDIF +"$(INTDIR)\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)" -# End Source File -################################################################################ -# Begin Source File -SOURCE=.\et_list.c -DEP_CPP_ET_LI=\ +SOURCE=.\getst.c +DEP_CPP_GETST=\ + "..\..\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"\ -!IF "$(CFG)" == "krb - Win32 Release" +"$(INTDIR)\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)" -".\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 - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_ad_tkt.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_GET_A=\ +SOURCE=.\k_flock.c +DEP_CPP_K_FLO=\ "..\..\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\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)" +"$(INTDIR)\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GET_A=\ +SOURCE=.\k_gethostname.c +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\get_ad_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_A) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_cred.c +"$(INTDIR)\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_C=\ +SOURCE=.\k_getport.c +DEP_CPP_K_GETP=\ "..\..\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\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)" - +"$(INTDIR)\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GET_C=\ +SOURCE=.\k_getsockinst.c +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\get_cred.obj" : $(SOURCE) $(DEP_CPP_GET_C) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_default_principal.c +"$(INTDIR)\k_getsockinst.obj" : $(SOURCE) $(DEP_CPP_K_GETS) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_D=\ +SOURCE=.\k_localtime.c +DEP_CPP_K_LOC=\ "..\..\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\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)" +"$(INTDIR)\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GET_D=\ +SOURCE=.\kdc_reply.c +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\get_default_principal.obj" : $(SOURCE) $(DEP_CPP_GET_D) "$(INTDIR)" +"$(INTDIR)\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_host.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_GET_H=\ +SOURCE=.\kntoln.c +DEP_CPP_KNTOL=\ "..\..\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\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)" - +"$(INTDIR)\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GET_H=\ +SOURCE=.\krb_check_auth.c +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\get_host.obj" : $(SOURCE) $(DEP_CPP_GET_H) "$(INTDIR)" +"$(INTDIR)\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)" -!ENDIF +SOURCE=.\krb_equiv.c +DEP_CPP_KRB_E=\ + "..\..\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"\ -# End Source File -################################################################################ -# Begin Source File -SOURCE=.\get_in_tkt.c +"$(INTDIR)\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_I=\ +SOURCE=.\krb_err_txt.c +DEP_CPP_KRB_ER=\ "..\..\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\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)" +"$(INTDIR)\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GET_I=\ +SOURCE=.\krb_get_in_tkt.c +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\get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_I) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_krbrlm.c +"$(INTDIR)\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_K=\ +SOURCE=.\lifetime.c +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\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)" - +"$(INTDIR)\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GET_K=\ +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\get_krbrlm.obj" : $(SOURCE) $(DEP_CPP_GET_K) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -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 +"$(INTDIR)\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_S=\ +SOURCE=.\lsb_addr_comp.c +DEP_CPP_LSB_A=\ "..\..\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-archaeology.h"\ + ".\krb-protos.h"\ + ".\krb.h"\ ".\krb_locl.h"\ + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)" - +"$(INTDIR)\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GET_S=\ +SOURCE=.\mk_auth.c +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\get_svc_in_tkt.obj" : $(SOURCE) $(DEP_CPP_GET_S) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\get_phost.c +"$(INTDIR)\mk_auth.obj" : $(SOURCE) $(DEP_CPP_MK_AU) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GET_P=\ +SOURCE=.\mk_err.c +DEP_CPP_MK_ER=\ "..\..\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\get_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)" +"$(INTDIR)\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GET_P=\ +SOURCE=.\mk_priv.c +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"\ + ".\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_phost.obj" : $(SOURCE) $(DEP_CPP_GET_P) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\krb_equiv.c +"$(INTDIR)\mk_priv.obj" : $(SOURCE) $(DEP_CPP_MK_PR) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_KRB_E=\ +SOURCE=.\mk_req.c +DEP_CPP_MK_RE=\ "..\..\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\krb_equiv.obj" : $(SOURCE) $(DEP_CPP_KRB_E) "$(INTDIR)" +"$(INTDIR)\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_KRB_E=\ +SOURCE=.\mk_safe.c +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"\ + ".\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)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File +"$(INTDIR)\mk_safe.obj" : $(SOURCE) $(DEP_CPP_MK_SA) "$(INTDIR)" -SOURCE=.\getaddrs.c - -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GETAD=\ +SOURCE=.\month_sname.c +DEP_CPP_MONTH=\ "..\..\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)\month_sname.obj" : $(SOURCE) $(DEP_CPP_MONTH) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GETAD=\ +SOURCE=.\name2name.c +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\getaddrs.obj" : $(SOURCE) $(DEP_CPP_GETAD) "$(INTDIR)" - +"$(INTDIR)\name2name.obj" : $(SOURCE) $(DEP_CPP_NAME2) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\getrealm.c -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_GETRE=\ +SOURCE=.\netread.c +DEP_CPP_NETRE=\ "..\..\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\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)" +"$(INTDIR)\netread.obj" : $(SOURCE) $(DEP_CPP_NETRE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_GETRE=\ +SOURCE=.\netwrite.c +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\getrealm.obj" : $(SOURCE) $(DEP_CPP_GETRE) "$(INTDIR)" +"$(INTDIR)\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\one.c -SOURCE=.\getst.c +"$(INTDIR)\one.obj" : $(SOURCE) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_GETST=\ +SOURCE=.\parse_name.c +DEP_CPP_PARSE=\ "..\..\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\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)" - +"$(INTDIR)\parse_name.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GETST=\ +SOURCE=.\rd_err.c +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\getst.obj" : $(SOURCE) $(DEP_CPP_GETST) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\k_flock.c +"$(INTDIR)\rd_err.obj" : $(SOURCE) $(DEP_CPP_RD_ER) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_K_FLO=\ +SOURCE=.\rd_priv.c +DEP_CPP_RD_PR=\ "..\..\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-archaeology.h"\ + ".\krb-protos.h"\ + ".\krb.h"\ ".\krb_locl.h"\ + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)" +"$(INTDIR)\rd_priv.obj" : $(SOURCE) $(DEP_CPP_RD_PR) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_K_FLO=\ +SOURCE=.\rd_req.c +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"\ - - -".\Debug\k_flock.obj" : $(SOURCE) $(DEP_CPP_K_FLO) "$(INTDIR)" - - -!ENDIF - -# 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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)" - +"$(INTDIR)\rd_req.obj" : $(SOURCE) $(DEP_CPP_RD_RE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_K_GET=\ +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\k_gethostname.obj" : $(SOURCE) $(DEP_CPP_K_GET) "$(INTDIR)" - - -!ENDIF + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -# 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)" +"$(INTDIR)\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_K_GETP=\ +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\k_getport.obj" : $(SOURCE) $(DEP_CPP_K_GETP) "$(INTDIR)" - - -!ENDIF - -# 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)" - +"$(INTDIR)\read_service_key.obj" : $(SOURCE) $(DEP_CPP_READ_) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_K_GETS=\ +SOURCE=.\realm_parse.c +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"\ - - -".\Debug\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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)" +"$(INTDIR)\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_K_LOC=\ +SOURCE=.\recvauth.c +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"\ - - -".\Debug\k_localtime.obj" : $(SOURCE) $(DEP_CPP_K_LOC) "$(INTDIR)" - - -!ENDIF - -# 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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)" - +"$(INTDIR)\recvauth.obj" : $(SOURCE) $(DEP_CPP_RECVA) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_KDC_R=\ +SOURCE=.\resolve.c +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\kdc_reply.obj" : $(SOURCE) $(DEP_CPP_KDC_R) "$(INTDIR)" - +"$(INTDIR)\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\kntoln.c -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_KNTOL=\ +SOURCE=.\rw.c +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"\ + "..\roken\err.h"\ + "..\roken\roken-common.h"\ + ".\krb-protos.h"\ ".\krb.h"\ ".\krb_locl.h"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\kntoln.obj" : $(SOURCE) $(DEP_CPP_KNTOL) "$(INTDIR)" +"$(INTDIR)\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C6a) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_KNTOL=\ +SOURCE=.\save_credentials.c +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"\ - - -".\Debug\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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\krb_check_auth.obj" : $(SOURCE) $(DEP_CPP_KRB_C) "$(INTDIR)" +"$(INTDIR)\save_credentials.obj" : $(SOURCE) $(DEP_CPP_SAVE_) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_KRB_C=\ +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\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"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)" - +"$(INTDIR)\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_GET_TF=\ +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\get_tf_realm.obj" : $(SOURCE) $(DEP_CPP_GET_TF) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\rd_safe.c +"$(INTDIR)\sendauth.obj" : $(SOURCE) $(DEP_CPP_SENDA) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_RD_SA=\ +SOURCE=.\stime.c +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"\ - ".\lsb_addr_comp.h"\ + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)" +"$(INTDIR)\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_RD_SA=\ +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"\ - ".\lsb_addr_comp.h"\ + ".\krb_log.h"\ ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\rd_safe.obj" : $(SOURCE) $(DEP_CPP_RD_SA) "$(INTDIR)" - - -!ENDIF + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -# End Source File -################################################################################ -# Begin Source File -SOURCE=.\krb_get_in_tkt.c +"$(INTDIR)\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_KRB_G=\ +SOURCE=.\ticket_memory.c +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"\ -".\Release\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)" +"$(INTDIR)\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_KRB_G=\ +SOURCE=.\time.c +DEP_CPP_TIME_=\ "..\..\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\krb_get_in_tkt.obj" : $(SOURCE) $(DEP_CPP_KRB_G) "$(INTDIR)" + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\lifetime.c +"$(INTDIR)\time.obj" : $(SOURCE) $(DEP_CPP_TIME_) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_LIFET=\ +SOURCE=.\tkt_string.c +DEP_CPP_TKT_S=\ "..\..\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)\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" -DEP_CPP_LIFET=\ +SOURCE=.\unparse_name.c +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\lifetime.obj" : $(SOURCE) $(DEP_CPP_LIFET) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\lsb_addr_comp.c +"$(INTDIR)\unparse_name.obj" : $(SOURCE) $(DEP_CPP_UNPAR) "$(INTDIR)" -!IF "$(CFG)" == "krb - Win32 Release" -DEP_CPP_LSB_A=\ +SOURCE=.\util.c +DEP_CPP_UTIL_=\ "..\..\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"\ - ".\lsb_addr_comp.h"\ + ".\krb_log.h"\ + ".\prot.h"\ + {$(INCLUDE)}"sys\stat.h"\ + {$(INCLUDE)}"sys\types.h"\ -".\Release\lsb_addr_comp.obj" : $(SOURCE) $(DEP_CPP_LSB_A) "$(INTDIR)" +"$(INTDIR)\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)" -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_LSB_A=\ +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"\ - ".\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)\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)" -!ENDIF - -# End Source File -################################################################################ -# Begin Source File +SOURCE=.\krb.rc -SOURCE=.\mk_auth.c +"$(INTDIR)\krb.res" : $(SOURCE) "$(INTDIR)" + $(RSC) $(RSC_PROJ) $(SOURCE) + !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)" +"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_MK_AU=\ - "..\..\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\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\mk_err.obj" : $(SOURCE) $(DEP_CPP_MK_ER) "$(INTDIR)" - - -!ENDIF - -# 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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\lsb_addr_comp.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\mk_req.obj" : $(SOURCE) $(DEP_CPP_MK_RE) "$(INTDIR)" - - -!ENDIF - -# 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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\lsb_addr_comp.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\netwrite.obj" : $(SOURCE) $(DEP_CPP_NETWR) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\one.c - -!IF "$(CFG)" == "krb - Win32 Release" - - -".\Release\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\lsb_addr_comp.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.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 - -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=\ - "..\..\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\krb_err_txt.obj" : $(SOURCE) $(DEP_CPP_KRB_ER) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -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_=\ - "..\..\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\send_to_kdc.obj" : $(SOURCE) $(DEP_CPP_SEND_) "$(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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\realm_parse.obj" : $(SOURCE) $(DEP_CPP_REALM) "$(INTDIR)" - - -!ENDIF - -# 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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\resolve.obj" : $(SOURCE) $(DEP_CPP_RESOL) "$(INTDIR)" - - -!ENDIF - -# 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=\ - "..\..\include\protos.h"\ - "..\..\include\sys/bitypes.h"\ - "..\..\include\sys/cdefs.h"\ - "..\..\include\win32\config.h"\ - "..\des\des.h"\ - "..\des\version.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\rw.obj" : $(SOURCE) $(DEP_CPP_RW_C68) "$(INTDIR)" - - -!ENDIF - -# 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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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_=\ - "..\..\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\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"\ - - -".\Release\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_VERIF=\ - "..\..\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\verify_user.obj" : $(SOURCE) $(DEP_CPP_VERIF) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\stime.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_STIME=\ - "..\..\include\protos.h"\ - "..\..\include\win32\config.h"\ - ".\krb_locl.h"\ - - -".\Release\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(INTDIR)" +"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" - -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_STIME=\ - "..\..\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\stime.obj" : $(SOURCE) $(DEP_CPP_STIME) "$(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"\ - ".\krb_locl.h"\ - ".\ticket_memory.h"\ - - -".\Debug\ticket_memory.obj" : $(SOURCE) $(DEP_CPP_TICKE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\tkt_string.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_TKT_S=\ - "..\..\include\protos.h"\ - "..\..\include\win32\config.h"\ - ".\krb_locl.h"\ - - -".\Release\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -DEP_CPP_TKT_S=\ - "..\..\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\tkt_string.obj" : $(SOURCE) $(DEP_CPP_TKT_S) "$(INTDIR)" - - -!ENDIF - -# 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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\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"\ - "..\des\des.h"\ - "..\roken\roken.h"\ - ".\krb.h"\ - ".\krb_locl.h"\ - ".\prot.h"\ - ".\resolve.h"\ - {$(INCLUDE)}"\sys\STAT.H"\ - {$(INCLUDE)}"\sys\TYPES.H"\ - - -".\Debug\util.obj" : $(SOURCE) $(DEP_CPP_UTIL_) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -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=\ - "..\..\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\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"\ - - -".\Release\logging.obj" : $(SOURCE) $(DEP_CPP_LOGGI) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "krb - Win32 Debug" - -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"\ - - -".\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)" - - -!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"\ +"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\ - -".\Debug\str2key.obj" : $(SOURCE) $(DEP_CPP_STR2K) "$(INTDIR)" - + cd "..\krb" !ENDIF -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\debug_decl.c - -!IF "$(CFG)" == "krb - Win32 Release" - -DEP_CPP_DEBUG=\ - "..\..\include\protos.h"\ - "..\..\include\win32\config.h"\ - ".\krb_locl.h"\ - - -".\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 -# 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 + +/* This doesn't belong here. */ +struct tm *localtime(const time_t *); +struct hostent *gethostbyname(const char *); + #endif #include @@ -127,37 +132,49 @@ #include #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 + +#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 -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 -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); +} -- cgit v1.1