Changeset 4703
- Timestamp:
- 10/07/08 23:48:14 (5 years ago)
- Location:
- developers/werner/wep
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
developers/werner/wep/tests/foobar
r4702 r4703 11 11 diff -u - _out <<EOF || fail 12 12 49d68437b1ffb0db3fdf2d4a93 13 a240f0feabe487bfcb2cfdb05b 14 0c81b0bfab27187ea7b5467c63 15 80b0656e46bc81e0627a046701 13 16 a4beb3b8ec 14 17 b697e900c8 -
developers/werner/wep/wep.c
r4702 r4703 43 43 if (argc != 2) 44 44 usage(*argv); 45 dump(buf, wepkey_128(buf, sizeof(buf), argv[1], 0)); 45 for (i = 0; i != 4; i++) 46 dump(buf, wepkey_128(buf, sizeof(buf), argv[1], i)); 46 47 for (i = 0; i != 4; i++) 47 48 dump(buf, wepkey_64(buf, sizeof(buf), argv[1], i)); -
developers/werner/wep/wepkey.c
r4702 r4703 30 30 ssize_t wepkey_128(void *out, size_t size, const char *in, int n) 31 31 { 32 const char extra[] = "#$%" "!@#" "%&^"; 32 33 MD5_CTX ctx; 33 34 char buf[64]; 34 35 unsigned char tmp[16]; 35 int len, i ;36 int len, i, j; 36 37 37 if (n)38 abort(); /* not yet implemented */39 38 if (size < WEPKEY_128_BYTES) 40 39 return -1; 41 40 len = strlen(in); 42 for (i = 0; i != sizeof(buf); i++) 43 buf[i] = in[i % len]; 41 for (i = 0; i != sizeof(buf); i++) { 42 j = i % (len+n*3); 43 buf[i] = j < len ? in[j] : extra[j-len]; 44 } 44 45 MD5_Init(&ctx); 45 46 MD5_Update(&ctx, buf, sizeof(buf)); 46 47 MD5_Final(tmp, &ctx); 47 memcpy(out, tmp , WEPKEY_128_BYTES);48 memcpy(out, tmp+n, WEPKEY_128_BYTES); 48 49 return WEPKEY_128_BYTES; 49 50 }
Note: See TracChangeset
for help on using the changeset viewer.
