From owner-freebsd-alpha Thu Jul 9 21:26:50 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id VAA17304 for freebsd-alpha-outgoing; Thu, 9 Jul 1998 21:26:50 -0700 (PDT) (envelope-from owner-freebsd-alpha@FreeBSD.ORG) Received: from mixer.visi.com (root@mixer.visi.com [209.98.98.1]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id VAA17299 for ; Thu, 9 Jul 1998 21:26:49 -0700 (PDT) (envelope-from nordquis@visi.com) Received: from thumper.visi.com (nordquis@thumper.visi.com [209.98.98.3]) by mixer.visi.com (8.8.8/8.7.5) with ESMTP id XAA21481 for ; Thu, 9 Jul 1998 23:26:46 -0500 (CDT) Posted-Date: Thu, 9 Jul 1998 23:26:46 -0500 (CDT) Received: (from nordquis@localhost) by thumper.visi.com (8.8.5/8.8.8) id XAA27506 for freebsd-alpha@freebsd.org; Thu, 9 Jul 1998 23:26:45 -0500 (CDT) Message-Id: <199807100426.XAA27506@thumper.visi.com> Subject: Alpha S/Key fixed/verified To: freebsd-alpha@FreeBSD.ORG Date: Thu, 9 Jul 1998 23:26:44 -0500 (CDT) From: "Brent J. Nordquist" Reply-to: "Brent J. Nordquist" X-Mailer: ELM [version 2.4ME+ PL31H (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org I have fixed/verified the following: lib/libmd ? [MD4 and MD5 seem to work] lib/libskey Green usr.bin/key Green usr.bin/keyinfo Green [bright green--it's a perl script :-)] usr.bin/keyinit Green I've tested the S/Key tools, verified that they're interoperable with the i386 ones (see below), and verified that S/Key authentication works in su. (I expect login and ftpd to work also; on the list for tomorrow.) Enclosed are the following: (1) A patch to lib/libskey/skeysubr.c -- u_long was used to select a 32-bit quantity, which breaks on the Alpha. I'm sure we're going to see a lot of these. Do we have an agreed-on method of handling them? (Is there a type that's mapped to 32 bits on all systems, or are we just going to use unsigned int as that type?) If there's a type that should be used, then this patch should change. (2) A patch to usr.bin/keyinit/skeyinit.c -- FreeBSD's gethostname() will give you as many characters as it can, given the limit of the passed buffer. NetBSD's gethostname() returns -1 if the full name won't fit. This patch solves the problem, and seems like a good idea in general, apart from the Alpha effort (it's much more consistent with how gethostname() is handled in su, login, etc.). (3) A patch to usr.bin/su/Makefile -- was missing -lmd after -lskey (non-Alpha-specific, but tripped us up:) (4) A patch to lib/libskey/Makefile -- is the comment below because of the MD4 unresolved links, above? MD5 was probably being found in -lcrypt, and that's why it worked whereas MD4 needed -lmd. revision 1.12 date: 1998/05/11 09:15:03; author: jb; state: Exp; lines: +6 -1 [...] And for some reason, alpha needs MD5. Find that out later! I changed the Makefile back to use MD4 like i386 does, and ended up with a set of key* tools that are interoperable with my i386 box. I think this is a desirable goal. Index: lib/libskey/skeysubr.c =================================================================== RCS file: /var/cvs/src/lib/libskey/skeysubr.c,v retrieving revision 1.8 diff -u -r1.8 skeysubr.c --- skeysubr.c 1998/02/27 22:36:51 1.8 +++ skeysubr.c 1998/07/10 03:18:39 @@ -21,7 +21,7 @@ { char *buf; MDX_CTX md; - u_long results[4]; + unsigned int results[4]; unsigned int buflen; buflen = strlen(seed) + strlen(passwd); @@ -51,7 +51,7 @@ char *x; { MDX_CTX md; - u_long results[4]; + unsigned int results[4]; MDXInit(&md); MDXUpdate(&md,(unsigned char *)x,8); Index: usr.bin/keyinit/skeyinit.c =================================================================== RCS file: /var/cvs/src/usr.bin/keyinit/skeyinit.c,v retrieving revision 1.7 diff -u -r1.7 skeyinit.c --- skeyinit.c 1997/07/17 06:42:26 1.7 +++ skeyinit.c 1998/07/10 03:43:17 @@ -1,6 +1,8 @@ /* change password or add user to S/KEY authentication system. * S/KEY is a tradmark of Bellcore */ +#include + #include #include #include @@ -24,7 +26,7 @@ char seed[18],tmp[80],key[8]; struct passwd *ppuser,*pp; char defaultseed[17], passwd[256],passwd2[256] ; - + char localhost[MAXHOSTNAMELEN]; time_t now; struct tm *tm; @@ -39,8 +41,10 @@ #else sprintf(tbuf, "%05ld", (long) (now % 100000)); #endif - gethostname(defaultseed,NAMELEN); - strcpy(&defaultseed[NAMELEN],tbuf); + gethostname(localhost,sizeof(localhost)); + strncpy(defaultseed,localhost,NAMELEN); + defaultseed[NAMELEN] = '\0'; + strcat(defaultseed,tbuf); pp = ppuser = getpwuid(getuid()); strcpy(me,pp->pw_name); Index: usr.bin/su/Makefile =================================================================== RCS file: /var/cvs/src/usr.bin/su/Makefile,v retrieving revision 1.15 diff -u -r1.15 Makefile --- Makefile 1997/09/28 09:02:15 1.15 +++ Makefile 1998/07/10 03:48:23 @@ -10,7 +10,7 @@ .if !defined(LC_AUTH) COPTS+= -DSKEY -LDADD+= -lskey -lcrypt +LDADD+= -lskey -lmd -lcrypt DPADD+= ${LIBSKEY} ${LIBCRYPT} .endif Index: lib/libskey/Makefile =================================================================== RCS file: /var/cvs/src/lib/libskey/Makefile,v retrieving revision 1.12 diff -u -r1.12 Makefile --- Makefile 1998/05/11 09:15:03 1.12 +++ Makefile 1998/07/10 04:10:55 @@ -13,8 +13,6 @@ CFLAGS+=-W -Wall .if ${MACHINE_ARCH} == "i386" CFLAGS+=-Werror -.else -CFLAGS+=-DMD5 .endif .if ${BINFORMAT} == elf -- Brent J. Nordquist / bjn@visi.com W: +1 612 905-7806 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message