Changeset 4703


Ignore:
Timestamp:
10/07/08 23:48:14 (5 years ago)
Author:
werner
Message:

Added generation of 128-bit keys with index > 0.

Location:
developers/werner/wep
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • developers/werner/wep/tests/foobar

    r4702 r4703  
    1111diff -u - _out <<EOF || fail 
    121249d68437b1ffb0db3fdf2d4a93 
     13a240f0feabe487bfcb2cfdb05b 
     140c81b0bfab27187ea7b5467c63 
     1580b0656e46bc81e0627a046701 
    1316a4beb3b8ec 
    1417b697e900c8 
  • developers/werner/wep/wep.c

    r4702 r4703  
    4343        if (argc != 2) 
    4444                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)); 
    4647        for (i = 0; i != 4; i++) 
    4748                dump(buf, wepkey_64(buf, sizeof(buf), argv[1], i)); 
  • developers/werner/wep/wepkey.c

    r4702 r4703  
    3030ssize_t wepkey_128(void *out, size_t size, const char *in, int n) 
    3131{ 
     32        const char extra[] = "#$%" "!@#" "%&^"; 
    3233        MD5_CTX ctx; 
    3334        char buf[64]; 
    3435        unsigned char tmp[16]; 
    35         int len, i; 
     36        int len, i, j; 
    3637 
    37         if (n) 
    38                 abort(); /* not yet implemented */ 
    3938        if (size < WEPKEY_128_BYTES) 
    4039                return -1; 
    4140        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        } 
    4445        MD5_Init(&ctx); 
    4546        MD5_Update(&ctx, buf, sizeof(buf)); 
    4647        MD5_Final(tmp, &ctx); 
    47         memcpy(out, tmp, WEPKEY_128_BYTES); 
     48        memcpy(out, tmp+n, WEPKEY_128_BYTES); 
    4849        return WEPKEY_128_BYTES; 
    4950} 
Note: See TracChangeset for help on using the changeset viewer.