Date: Thu, 9 Jul 1998 23:26:44 -0500 (CDT) From: "Brent J. Nordquist" <bjn@visi.com> To: freebsd-alpha@FreeBSD.ORG Subject: Alpha S/Key fixed/verified Message-ID: <199807100426.XAA27506@thumper.visi.com>
index | next in thread | raw e-mail
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 <sys/param.h>
+
#include <ctype.h>
#include <err.h>
#include <pwd.h>
@@ -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
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199807100426.XAA27506>
