Browse Source

Plan 9 from Bell Labs 2008-02-27

David du Colombier 16 years ago
parent
commit
a311b64bb6

+ 10 - 10
dist/replica/_plan9.db

@@ -46,10 +46,10 @@
 386/bin/auth/asn12rsa - 775 sys sys 1188446816 121912
 386/bin/auth/authsrv - 775 sys sys 1201753318 165370
 386/bin/auth/changeuser - 775 sys sys 1178568246 96020
-386/bin/auth/convkeys - 775 sys sys 1203712993 87362
+386/bin/auth/convkeys - 775 sys sys 1204057806 87642
 386/bin/auth/convkeys2 - 775 sys sys 1203712994 87421
 386/bin/auth/cron - 775 sys sys 1188446828 140446
-386/bin/auth/debug - 775 sys sys 1192762780 102504
+386/bin/auth/debug - 775 sys sys 1204057810 101408
 386/bin/auth/disable - 775 sys sys 1020319057 146
 386/bin/auth/enable - 775 sys sys 1020319057 134
 386/bin/auth/factotum - 775 sys sys 1203712996 321987
@@ -458,7 +458,7 @@
 386/bin/upas/bayes - 775 sys sys 1178568309 73372
 386/bin/upas/deliver - 775 sys sys 1192823253 99212
 386/bin/upas/filter - 775 sys sys 1200262782 146753
-386/bin/upas/fs - 775 sys sys 1188447307 331763
+386/bin/upas/fs - 775 sys sys 1204057817 331512
 386/bin/upas/isspam - 775 sys sys 1064598349 38
 386/bin/upas/list - 775 sys sys 1200262783 83036
 386/bin/upas/marshal - 775 sys sys 1184529906 132936
@@ -489,7 +489,7 @@
 386/bin/usb/probe - 775 sys sys 1203567409 173
 386/bin/usb/usbaudio - 775 sys sys 1202876962 188937
 386/bin/usb/usbd - 775 sys sys 1202876965 132270
-386/bin/usb/usbmouse - 775 sys sys 1202876967 129429
+386/bin/usb/usbmouse - 775 sys sys 1204057823 129465
 386/bin/usb/usbprint - 775 sys sys 1203567409 373
 386/bin/usb/usbprobe - 775 sys sys 1203567409 232
 386/bin/vac - 775 sys sys 1196742539 171330
@@ -9621,10 +9621,10 @@ sys/src/cmd/auth/authsrv.c - 664 sys sys 1172776678 18383
 sys/src/cmd/auth/challenge.c - 664 sys sys 1015008432 980
 sys/src/cmd/auth/changeuser.c - 664 sys sys 1155994851 2949
 sys/src/cmd/auth/convbio.c - 664 sys sys 1015008432 2212
-sys/src/cmd/auth/convkeys.c - 664 sys sys 1155994849 2387
+sys/src/cmd/auth/convkeys.c - 664 sys sys 1204007234 2707
 sys/src/cmd/auth/convkeys2.c - 664 sys sys 1155994849 2444
 sys/src/cmd/auth/cron.c - 664 sys sys 1186599442 12315
-sys/src/cmd/auth/debug.c - 664 sys sys 1143694911 7325
+sys/src/cmd/auth/debug.c - 664 sys sys 1204007269 8034
 sys/src/cmd/auth/disable - 775 sys sys 1015008431 146
 sys/src/cmd/auth/enable - 775 sys sys 1015008430 134
 sys/src/cmd/auth/factotum - 20000000775 sys sys 1140694896 0
@@ -9652,7 +9652,7 @@ sys/src/cmd/auth/keyfs.c - 664 sys sys 1191007186 19129
 sys/src/cmd/auth/lib - 20000000775 sys sys 1045504996 0
 sys/src/cmd/auth/lib/error.c - 664 sys sys 1155994850 318
 sys/src/cmd/auth/lib/fs.c - 664 sys sys 1015008430 228
-sys/src/cmd/auth/lib/getauthkey.c - 664 sys sys 1155994850 451
+sys/src/cmd/auth/lib/getauthkey.c - 664 sys sys 1204007339 448
 sys/src/cmd/auth/lib/getexpiration.c - 664 sys sys 1162844529 1574
 sys/src/cmd/auth/lib/keyfmt.c - 664 sys sys 1155994850 508
 sys/src/cmd/auth/lib/log.c - 664 sys sys 1155994850 618
@@ -9667,7 +9667,7 @@ sys/src/cmd/auth/lib/readn.c - 664 sys sys 1155994851 264
 sys/src/cmd/auth/lib/readwrite.c - 664 sys sys 1155994851 1441
 sys/src/cmd/auth/lib/wrbio.c - 664 sys sys 1015008430 755
 sys/src/cmd/auth/login.c - 664 sys sys 1140272942 4002
-sys/src/cmd/auth/mkfile - 664 sys sys 1176422844 1793
+sys/src/cmd/auth/mkfile - 664 sys sys 1204007370 1772
 sys/src/cmd/auth/netkey.c - 664 sys sys 1155994849 758
 sys/src/cmd/auth/newns.c - 664 sys sys 1179368218 979
 sys/src/cmd/auth/none.c - 664 sys sys 1179405289 970
@@ -14176,7 +14176,7 @@ sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1162952184 1319
 sys/src/cmd/upas/fs - 20000000775 sys sys 1143946985 0
 sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143929916 4189
 sys/src/cmd/upas/fs/fs.c - 664 sys sys 1175322795 26929
-sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1165967944 16484
+sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1204007092 16319
 sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1165967884 27070
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1175322803 7498
@@ -14290,7 +14290,7 @@ sys/src/cmd/usb/misc - 20000000775 sys sys 1091282306 0
 sys/src/cmd/usb/misc/mkfile - 664 sys sys 1203553011 356
 sys/src/cmd/usb/misc/print - 775 sys sys 1167253831 314
 sys/src/cmd/usb/misc/probe - 775 sys sys 1167253836 173
-sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1202702762 4804
+sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1204006880 4826
 sys/src/cmd/usb/mkfile - 664 sys sys 1203553384 366
 sys/src/cmd/usb/usbd - 20000000775 sys sys 1091204979 0
 sys/src/cmd/usb/usbd/dat.h - 664 sys sys 1091204979 675

+ 10 - 10
dist/replica/plan9.db

@@ -46,10 +46,10 @@
 386/bin/auth/asn12rsa - 775 sys sys 1188446816 121912
 386/bin/auth/authsrv - 775 sys sys 1201753318 165370
 386/bin/auth/changeuser - 775 sys sys 1178568246 96020
-386/bin/auth/convkeys - 775 sys sys 1203712993 87362
+386/bin/auth/convkeys - 775 sys sys 1204057806 87642
 386/bin/auth/convkeys2 - 775 sys sys 1203712994 87421
 386/bin/auth/cron - 775 sys sys 1188446828 140446
-386/bin/auth/debug - 775 sys sys 1192762780 102504
+386/bin/auth/debug - 775 sys sys 1204057810 101408
 386/bin/auth/disable - 775 sys sys 1020319057 146
 386/bin/auth/enable - 775 sys sys 1020319057 134
 386/bin/auth/factotum - 775 sys sys 1203712996 321987
@@ -458,7 +458,7 @@
 386/bin/upas/bayes - 775 sys sys 1178568309 73372
 386/bin/upas/deliver - 775 sys sys 1192823253 99212
 386/bin/upas/filter - 775 sys sys 1200262782 146753
-386/bin/upas/fs - 775 sys sys 1188447307 331763
+386/bin/upas/fs - 775 sys sys 1204057817 331512
 386/bin/upas/isspam - 775 sys sys 1064598349 38
 386/bin/upas/list - 775 sys sys 1200262783 83036
 386/bin/upas/marshal - 775 sys sys 1184529906 132936
@@ -489,7 +489,7 @@
 386/bin/usb/probe - 775 sys sys 1203567409 173
 386/bin/usb/usbaudio - 775 sys sys 1202876962 188937
 386/bin/usb/usbd - 775 sys sys 1202876965 132270
-386/bin/usb/usbmouse - 775 sys sys 1202876967 129429
+386/bin/usb/usbmouse - 775 sys sys 1204057823 129465
 386/bin/usb/usbprint - 775 sys sys 1203567409 373
 386/bin/usb/usbprobe - 775 sys sys 1203567409 232
 386/bin/vac - 775 sys sys 1196742539 171330
@@ -9621,10 +9621,10 @@ sys/src/cmd/auth/authsrv.c - 664 sys sys 1172776678 18383
 sys/src/cmd/auth/challenge.c - 664 sys sys 1015008432 980
 sys/src/cmd/auth/changeuser.c - 664 sys sys 1155994851 2949
 sys/src/cmd/auth/convbio.c - 664 sys sys 1015008432 2212
-sys/src/cmd/auth/convkeys.c - 664 sys sys 1155994849 2387
+sys/src/cmd/auth/convkeys.c - 664 sys sys 1204007234 2707
 sys/src/cmd/auth/convkeys2.c - 664 sys sys 1155994849 2444
 sys/src/cmd/auth/cron.c - 664 sys sys 1186599442 12315
-sys/src/cmd/auth/debug.c - 664 sys sys 1143694911 7325
+sys/src/cmd/auth/debug.c - 664 sys sys 1204007269 8034
 sys/src/cmd/auth/disable - 775 sys sys 1015008431 146
 sys/src/cmd/auth/enable - 775 sys sys 1015008430 134
 sys/src/cmd/auth/factotum - 20000000775 sys sys 1140694896 0
@@ -9652,7 +9652,7 @@ sys/src/cmd/auth/keyfs.c - 664 sys sys 1191007186 19129
 sys/src/cmd/auth/lib - 20000000775 sys sys 1045504996 0
 sys/src/cmd/auth/lib/error.c - 664 sys sys 1155994850 318
 sys/src/cmd/auth/lib/fs.c - 664 sys sys 1015008430 228
-sys/src/cmd/auth/lib/getauthkey.c - 664 sys sys 1155994850 451
+sys/src/cmd/auth/lib/getauthkey.c - 664 sys sys 1204007339 448
 sys/src/cmd/auth/lib/getexpiration.c - 664 sys sys 1162844529 1574
 sys/src/cmd/auth/lib/keyfmt.c - 664 sys sys 1155994850 508
 sys/src/cmd/auth/lib/log.c - 664 sys sys 1155994850 618
@@ -9667,7 +9667,7 @@ sys/src/cmd/auth/lib/readn.c - 664 sys sys 1155994851 264
 sys/src/cmd/auth/lib/readwrite.c - 664 sys sys 1155994851 1441
 sys/src/cmd/auth/lib/wrbio.c - 664 sys sys 1015008430 755
 sys/src/cmd/auth/login.c - 664 sys sys 1140272942 4002
-sys/src/cmd/auth/mkfile - 664 sys sys 1176422844 1793
+sys/src/cmd/auth/mkfile - 664 sys sys 1204007370 1772
 sys/src/cmd/auth/netkey.c - 664 sys sys 1155994849 758
 sys/src/cmd/auth/newns.c - 664 sys sys 1179368218 979
 sys/src/cmd/auth/none.c - 664 sys sys 1179405289 970
@@ -14176,7 +14176,7 @@ sys/src/cmd/upas/filterkit/token.c - 664 sys sys 1162952184 1319
 sys/src/cmd/upas/fs - 20000000775 sys sys 1143946985 0
 sys/src/cmd/upas/fs/dat.h - 664 sys sys 1143929916 4189
 sys/src/cmd/upas/fs/fs.c - 664 sys sys 1175322795 26929
-sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1165967944 16484
+sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1204007092 16319
 sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1165967884 27070
 sys/src/cmd/upas/fs/mkfile - 664 sys sys 1047490336 321
 sys/src/cmd/upas/fs/plan9.c - 664 sys sys 1175322803 7498
@@ -14290,7 +14290,7 @@ sys/src/cmd/usb/misc - 20000000775 sys sys 1091282306 0
 sys/src/cmd/usb/misc/mkfile - 664 sys sys 1203553011 356
 sys/src/cmd/usb/misc/print - 775 sys sys 1167253831 314
 sys/src/cmd/usb/misc/probe - 775 sys sys 1167253836 173
-sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1202702762 4804
+sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1204006880 4826
 sys/src/cmd/usb/mkfile - 664 sys sys 1203553384 366
 sys/src/cmd/usb/usbd - 20000000775 sys sys 1091204979 0
 sys/src/cmd/usb/usbd/dat.h - 664 sys sys 1091204979 675

+ 10 - 0
dist/replica/plan9.log

@@ -18578,3 +18578,13 @@
 1203982205 2 d sys/src/9/pc/ether82598.c - 664 sys sys 1202489363 0
 1203984004 0 c sys/man/8/pci - 664 sys sys 1203983723 591
 1203984004 1 a sys/src/9/pc/ether82598.c - 664 sys sys 1203982856 18364
+1204007405 0 c sys/src/cmd/auth/convkeys.c - 664 sys sys 1204007234 2707
+1204007405 1 c sys/src/cmd/auth/debug.c - 664 sys sys 1204007269 8034
+1204007405 2 c sys/src/cmd/auth/lib/getauthkey.c - 664 sys sys 1204007339 448
+1204007405 3 c sys/src/cmd/auth/mkfile - 664 sys sys 1204007370 1772
+1204007405 4 c sys/src/cmd/upas/fs/imap4.c - 664 sys sys 1204007092 16319
+1204007405 5 c sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1204006880 4826
+1204057804 0 c 386/bin/usb/usbmouse - 775 sys sys 1204057823 129465
+1204057804 1 c 386/bin/auth/convkeys - 775 sys sys 1204057806 87642
+1204057804 2 c 386/bin/auth/debug - 775 sys sys 1204057810 101408
+1204057804 3 c 386/bin/upas/fs - 775 sys sys 1204057817 331512

+ 24 - 3
sys/src/cmd/auth/convkeys.c

@@ -1,5 +1,6 @@
 #include <u.h>
 #include <libc.h>
+#include <ctype.h>
 #include <authsrv.h>
 #include <mp.h>
 #include <libsec.h>
@@ -22,12 +23,12 @@ main(int argc, char *argv[])
 	int fd, len;
 
 	ARGBEGIN{
-	case 'v':
-		verb = 1;
-		break;
 	case 'p':
 		usepass = 1;
 		break;
+	case 'v':
+		verb = 1;
+		break;
 	default:
 		usage();
 	}ARGEND
@@ -112,6 +113,20 @@ oldCBCdecrypt(char *key7, char *p, int len)
 
 }
 
+static int
+badname(char *s)
+{
+	int n;
+	Rune r;
+
+	for (; *s != '\0'; s += n) {
+		n = chartorune(&r, s);
+		if (n == 1 && r == Runeerror)
+			return 1;
+	}
+	return 0;
+}
+
 int
 convert(char *p, char *key, int len)
 {
@@ -125,9 +140,15 @@ convert(char *p, char *key, int len)
 	}
 	len += KEYDBOFF;
 	oldCBCdecrypt(authkey, p, len);
+	for(i = KEYDBOFF; i < len; i += KEYDBLEN)
+		if (badname(&p[i])) {
+			print("bad name %.30s... - aborting\n", &p[i]);
+			return 0;
+		}
 	if(verb)
 		for(i = KEYDBOFF; i < len; i += KEYDBLEN)
 			print("%s\n", &p[i]);
+
 	randombytes((uchar*)p, 8);
 	oldCBCencrypt(key, p, len);
 	return len;

+ 28 - 0
sys/src/cmd/auth/debug.c

@@ -9,6 +9,34 @@
 #include <auth.h>
 #include <authsrv.h>
 
+/* private copy with added debugging */
+int
+authdial(char *netroot, char *dom)
+{
+	char *p;
+	int rv;
+	
+	if(dom != nil){
+		/* look up an auth server in an authentication domain */
+		p = csgetvalue(netroot, "authdom", dom, "auth", nil);
+
+		/* if that didn't work, just try the IP domain */
+		if(p == nil)
+			p = csgetvalue(netroot, "dom", dom, "auth", nil);
+		if(p == nil){
+			werrstr("no auth server found for %s", dom);
+			return -1;
+		}
+		print("\tdialing auth server %s\n",
+			netmkaddr(p, netroot, "ticket"));
+		rv = dial(netmkaddr(p, netroot, "ticket"), 0, 0, 0);
+		free(p);
+		return rv;
+	} else
+		/* look for one relative to my machine */
+		return dial(netmkaddr("$auth", netroot, "ticket"), 0, 0, 0);
+}
+
 void
 usage(void)
 {

+ 1 - 1
sys/src/cmd/auth/lib/getauthkey.c

@@ -21,7 +21,7 @@ getauthkey(char *authkey)
 {
 	if(getkey(authkey) == 0)
 		return 1;
-	print("can't read /dev/key, please enter machine key\n");
+	print("can't read NVRAM, please enter machine key\n");
 	getpass(authkey, nil, 0, 1);
 	return 1;
 }

+ 1 - 1
sys/src/cmd/auth/mkfile

@@ -44,7 +44,7 @@ OTHEROFILES=\
 
 HFILES=/sys/include/auth.h /sys/include/authsrv.h authcmdlib.h
 
-LIB=lib.$O.a /$objtype/lib/libc.a
+LIB=lib.$O.a
 BIN=/$objtype/bin/auth
 CLIB=`{ls lib/*.c}
 

+ 34 - 47
sys/src/cmd/upas/fs/imap4.c

@@ -377,38 +377,6 @@ imap4login(Imap *imap)
 	return nil;
 }
 
-//
-// push tls onto a connection
-//
-int
-mypushtls(int fd)
-{
-	int p[2];
-	char buf[10];
-
-	if(pipe(p) < 0)
-		return -1;
-
-	switch(fork()){
-	case -1:
-		close(p[0]);
-		close(p[1]);
-		return -1;
-	case 0:
-		close(p[1]);
-		dup(p[0], 0);
-		dup(p[0], 1);
-		sprint(buf, "/fd/%d", fd);
-		execl("/bin/tlsrelay", "tlsrelay", "-f", buf, nil);
-		_exits(nil);
-	default:
-		break;
-	}
-	close(fd);
-	close(p[0]);
-	return p[1];
-}
-
 static char*
 imaperrstr(char *host, char *port)
 {
@@ -421,6 +389,36 @@ imaperrstr(char *host, char *port)
 	return mess;
 }
 
+static int
+starttls(Imap *imap, TLSconn *connp)
+{
+	int sfd;
+	uchar digest[SHA1dlen];
+
+	fmtinstall('H', encodefmt);
+	memset(connp, 0, sizeof *connp);
+	sfd = tlsClient(imap->fd, connp);
+	if(sfd < 0) {
+		werrstr("tlsClient: %r");
+		return -1;
+	}
+	if(connp->cert==nil || connp->certlen <= 0) {
+		close(sfd);
+		werrstr("server did not provide TLS certificate");
+		return -1;
+	}
+	sha1(connp->cert, connp->certlen, digest, nil);
+	if(!imap->thumb || !okThumbprint(digest, imap->thumb)){
+		close(sfd);
+		werrstr("server certificate %.*H not recognized",
+			SHA1dlen, digest);
+		return -1;
+	}
+	close(imap->fd);
+	imap->fd = sfd;
+	return sfd;
+}
+
 //
 // dial and handshake with the imap server
 //
@@ -428,7 +426,6 @@ static char*
 imap4dial(Imap *imap)
 {
 	char *err, *port;
-	uchar digest[SHA1dlen];
 	int sfd;
 	TLSconn conn;
 
@@ -449,21 +446,11 @@ imap4dial(Imap *imap)
 		return imaperrstr(imap->host, port);
 
 	if(imap->mustssl){
-		memset(&conn, 0, sizeof conn);
-		sfd = tlsClient(imap->fd, &conn);
-		if(sfd < 0)
-			sysfatal("tlsClient: %r");
-		if(conn.cert==nil || conn.certlen <= 0)
-			sysfatal("server did not provide TLS certificate");
-		sha1(conn.cert, conn.certlen, digest, nil);
-		if(!imap->thumb || !okThumbprint(digest, imap->thumb)){
-			fmtinstall('H', encodefmt);
-			sysfatal("server certificate %.*H not recognized", SHA1dlen, digest);
+		sfd = starttls(imap, &conn);
+		if (sfd < 0) {
+			free(conn.cert);
+			return imaperrstr(imap->host, port);
 		}
-		free(conn.cert);
-		close(imap->fd);
-		imap->fd = sfd;
-
 		if(imap->debug){
 			char fn[128];
 			int fd;

+ 10 - 10
sys/src/cmd/usb/misc/usbmouse.c

@@ -132,7 +132,7 @@ char maptab[] = {
 void
 usage(void)
 {
-	fprint(2, "usage: %s [-fsv] [-a accel] [ctlrno usbport]\n", argv0);
+	fprint(2, "usage: %s [-dfsv] [-a accel] [ctlrno usbport]\n", argv0);
 	threadexitsall("usage");
 }
 
@@ -146,20 +146,20 @@ threadmain(int argc, char *argv[])
 	Mouseinfo mouse;
 
 	ARGBEGIN{
+	case 'a':
+		accel = strtol(EARGF(usage()), nil, 0);
+		break;
 	case 'd':
-		debug=1;
+		debug = usbdebug = 1;
+		break;
+	case 'f':
+		nofork = 1;
 		break;
 	case 's':
-		scroll=1;
+		scroll = 1;
 		break;
 	case 'v':
-		verbose=1;
-		break;
-	case 'f':
-		nofork=1;
-		break;
-	case 'a':
-		accel=strtol(EARGF(usage()), nil, 0);
+		verbose = 1;
 		break;
 	default:
 		usage();