## This makefile was modified March 1994 at the Naval Research Laboratory. ## NRL additions/modifications to the standard S/Key distribution include: ## * A modified BSD FTP daemon that does S/Key ## * The "su" binary always does S/Key, even on the console. ## This was a hole on rlogin/telnet sessions in the original software. ## * MD5 support (MD5 seemed to work out of the box.) ## MD5 is believed by many to be stronger than MD4, see the RFCs. ## * Cosmetic changes ## ## Additional modifications from Marcus Ranum are described ## in the README.MJR file included in this distribution. Those mods are ## only enabled if you add the text "-DMJR" to the CFLAGS. ## ## Search for "NRL" to see the various changes done by Dan McD. at NRL. CONSTANTS = -D'_PATH_LASTLOG="/var/adm/lastlog"' -D'_PATH_UTMP="/etc/utmp"' \ -D'_PATH_WTMP="/var/adm/wtmp"' ## CONFIGURATION PARAMETERS. Change these to suit your machine. # LBIN is the place where user-installed binaries reside. LBIN=/usr/local/bin # FTPDIR is where the FTP daemon resides. FTPDNAME is the name of the # daemon which resides in FTPDIR. FTPDIR = /usr/etc FTPDNAME = in.ftpd # SYSBIN is where the system binaries "su" and "login" reside. SYSBIN = /bin # Uncomment the lines below beginning with "DES" if you are using the MJR # variant. See README.MJR for more details. #DESINCLUDE= ../libdes #DESLIB= $(DESINCLUDE)/libdes.a #DESFLAGS= -I$(DESINCLUDE) ### Note: To select between MD4 and MD5, look at the "Take your pick" ### comments scattered throughout. Some lines need to be uncommented ### and other to be commented. # If you have an ANSI C compiler, uncomment the top line. #CDEBUGFLAGS= -DPROTOTYPES=1 CDEBUGFLAGS= $(CONSTANTS) #CDEBUGFLAGS= -O --- do NOT use -O, it causes different output ## END OF CONFIGURATION PARAMETERS # if this machine uses shared libraries, (such as Suns), uncomment the first # line, otherwise, uncomment the second # LDFLAGS=-Bstatic LDFLAGS= # if this machine has /usr/include/stdlib.h, uncomment the first line, # otherwise, uncomment the second HASSTDLIB=-DHASSTDLIB #HASSTDLIB= LIB=libskey.a # Take your pick: MD4, MD5 (NRL), or MD4+DES (MJR) # MD4 LIBOBJS=skeylogin.o skeysubr.o md4c.o put.o skey.o # MD5 #LIBOBJS=skeylogin.o skeysubr.o md5c.o put.o skey.o # MD4+DES (MJR) #LIBOBJS= skeylogin.o skeysubr.o md4c.o put.o skey.o deskeyc.o # Take your pick, MD4 or MD5 (NRL), or MD4+DES (MJR) # NOTE: -DSKEY is for the FTP daemon # MD4 CFLAGS=$(CDEBUGFLAGS) $(HASSTDLIB) -DSKEY # MD5 #CFLAGS=$(CDEBUGFLAGS) $(HASSTDLIB) -DSKEY -DMD5 # MD4+DES #CFLAGS=$(CDEBUGFLAGS) $(HASSTDLIB) -DSKEY -DMJR all: key keylogin skey.init keysu ftpd $(LIB) install: all man chmod 755 key keylogin skey.init keysu keyinfo keyinit chown root.bin keylogin skey.init keysu keyinit cp keyinit skey.init key keylogin keysu keyinfo $(LBIN) chmod 4755 $(LBIN)/keylogin $(LBIN)/skey.init $(LBIN)/keysu cp $(SYSBIN)/login $(SYSBIN)/Ologin.$$ rm $(SYSBIN)/login ln -s $(LBIN)/keylogin $(SYSBIN)/login # su and ftpd-related lines put in by Dan McD. (NRL) cp $(SYSBIN)/su $(SYSBIN)/Osu.$$ rm $(SYSBIN)/su ln -s $(LBIN)/keysu $(SYSBIN)/su cp $(FTPDIR)/$(FTPDNAME) $(FTPDIR)/Oftpd.$$ rm $(FTPDIR)/$(FTPDNAME) cp ftpd $(FTPDIR)/$(FTPDNAME) touch /etc/skeykeys chmod 644 /etc/skeykeys man: cp *.1 /usr/local/man/man1 $(LIB): $(LIBOBJS) ar rc $(LIB) $(LIBOBJS) ranlib $(LIB) clean: rm *.o key keylogin skey.init keysu ftpd y.tab.c libskey.a suid: all chown root keylogin skey.init keysu chmod 4755 keylogin skey.init keysu key: skey.o $(LIB) $(CC) $(CFLAGS) $(LDFLAGS) -o key skey.o $(LIB) # Take your pick, MD4 or MD5 (Dan McD., NRL) # MD4 ftpd: ftpd.o glob.o logwtmp.o md4c.o popen.o put.o skeylogin.o skeysubr.o vers.o y.tab.o # MD5 #ftpd: ftpd.o glob.o logwtmp.o md5c.o popen.o put.o skeylogin.o skeysubr.o vers.o y.tab.o $(CC) $(CFLAGS) $(LDFLAGS) -o ftpd \ ftpd.o glob.o logwtmp.o popen.o put.o vers.o y.tab.o $(LIB) # Take your pick, MD4 or MD5 (Dan McD., NRL) # MD4 keylogin: login.o skeylogin.o skeysubr.o md4c.o put.o setenv.o getenv.o # MD5 #keylogin: login.o skeylogin.o skeysubr.o md5c.o put.o setenv.o getenv.o $(CC) $(CFLAGS) $(LDFLAGS) -o keylogin \ login.o getenv.o setenv.o skeylogin.o $(LIB) # comment out line above and uncomment line below for MJR stuff # login.o getenv.o setenv.o skeylogin.o $(LIB) $(DESLIB) # Take your pick, MD4 or MD5 (Dan McD., NRL) # MD4 skey.init: skeyinit.o skeylogin.o skeysubr.o md4c.o put.o # MD5 #skey.init: skeyinit.o skeylogin.o skeysubr.o md5c.o put.o $(CC) $(CFLAGS) $(LDFLAGS) -o skey.init \ skeyinit.o $(LIB) # Take your pick, MD4 or MD5 (Dan McD., NRL) # MD4 keysu: su.o skeylogin.o skeysubr.o md4c.o put.o # MD5 #keysu: su.o skeylogin.o skeysubr.o md5c.o put.o $(CC) $(CFLAGS) $(LDFLAGS) -o keysu su.o $(LIB) login.o: login.c skey.h # Take your pick, MD4 or MD5 (Dan McD., NRL) # MD4 md4c.o: md4c.c md4.h # MD5 #md5c.o: md5c.c md5.h skey.o: skey.c md5.h skey.h skeylogin.o: skeylogin.c skey.h skeysubr.o: skeysubr.c md5.h skey.h put.o: put.c skey.h ftpd.o: ftpd.c glob.o: glob.c logwtmp.o: logwtmp.c popen.o: popen.c put.o: put.c y.tab.o: y.tab.c y.tab.c: ftpcmd.y $(YACC) ftpcmd.y