r4703 - in developers/werner/wep: . tests

werner at docs.openmoko.org werner at docs.openmoko.org
Tue Oct 7 23:48:15 CEST 2008


Author: werner
Date: 2008-10-07 23:48:14 +0200 (Tue, 07 Oct 2008)
New Revision: 4703

Modified:
   developers/werner/wep/tests/foobar
   developers/werner/wep/wep.c
   developers/werner/wep/wepkey.c
Log:
Added generation of 128-bit keys with index > 0.



Modified: developers/werner/wep/tests/foobar
===================================================================
--- developers/werner/wep/tests/foobar	2008-10-07 21:30:44 UTC (rev 4702)
+++ developers/werner/wep/tests/foobar	2008-10-07 21:48:14 UTC (rev 4703)
@@ -10,6 +10,9 @@
 ../wep foobar >_out || fail
 diff -u - _out <<EOF || fail
 49d68437b1ffb0db3fdf2d4a93
+a240f0feabe487bfcb2cfdb05b
+0c81b0bfab27187ea7b5467c63
+80b0656e46bc81e0627a046701
 a4beb3b8ec
 b697e900c8
 b5d2bb755b

Modified: developers/werner/wep/wep.c
===================================================================
--- developers/werner/wep/wep.c	2008-10-07 21:30:44 UTC (rev 4702)
+++ developers/werner/wep/wep.c	2008-10-07 21:48:14 UTC (rev 4703)
@@ -42,8 +42,9 @@
 
 	if (argc != 2)
 		usage(*argv);
-	dump(buf, wepkey_128(buf, sizeof(buf), argv[1], 0));
 	for (i = 0; i != 4; i++)
+		dump(buf, wepkey_128(buf, sizeof(buf), argv[1], i));
+	for (i = 0; i != 4; i++)
 		dump(buf, wepkey_64(buf, sizeof(buf), argv[1], i));
 	return 0;
 }

Modified: developers/werner/wep/wepkey.c
===================================================================
--- developers/werner/wep/wepkey.c	2008-10-07 21:30:44 UTC (rev 4702)
+++ developers/werner/wep/wepkey.c	2008-10-07 21:48:14 UTC (rev 4703)
@@ -29,22 +29,23 @@
 
 ssize_t wepkey_128(void *out, size_t size, const char *in, int n)
 {
+	const char extra[] = "#$%" "!@#" "%&^";
 	MD5_CTX ctx;
 	char buf[64];
 	unsigned char tmp[16];
-	int len, i;
+	int len, i, j;
 
-	if (n)
-		abort(); /* not yet implemented */
 	if (size < WEPKEY_128_BYTES)
 		return -1;
 	len = strlen(in);
-	for (i = 0; i != sizeof(buf); i++)
-		buf[i] = in[i % len];
+	for (i = 0; i != sizeof(buf); i++) {
+		j = i % (len+n*3);
+		buf[i] = j < len ? in[j] : extra[j-len];
+	}
 	MD5_Init(&ctx);
 	MD5_Update(&ctx, buf, sizeof(buf));
 	MD5_Final(tmp, &ctx);
-	memcpy(out, tmp, WEPKEY_128_BYTES);
+	memcpy(out, tmp+n, WEPKEY_128_BYTES);
 	return WEPKEY_128_BYTES;
 }
 




More information about the commitlog mailing list