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