Changeset 4705
- Timestamp:
- 10/08/08 07:17:05 (5 years ago)
- Location:
- developers/werner/wep
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
developers/werner/wep/Makefile
r4704 r4705 24 24 clean: 25 25 rm -f $(OBJS) .depend 26 $(MAKE) -C tests clean 26 27 27 28 spotless: clean -
developers/werner/wep/tests/Makefile
r4702 r4705 1 1 .PHONY: tests clean 2 2 3 # We list all lower-case letter explicitly to keep localization from messing 4 # with us. 5 3 6 all: 4 ./foobar7 for n in [abcdefghijklmnopqrstuvwxyz]*; do ./$$n || exit; done 5 8 6 9 clean: -
developers/werner/wep/wepkey.c
r4704 r4705 26 26 27 27 #include "wepkey.h" 28 29 30 ssize_t wepkey_128(void *out, size_t size, const char *in, int n)31 {32 const char extra[] = "#$%" "!@#" "%&^";33 MD5_CTX ctx;34 char buf[64];35 unsigned char tmp[16];36 int len, i, j;37 38 if (size < WEPKEY_128_BYTES)39 return -1;40 if (n < 0 || n >= 4)41 return -1;42 43 len = strlen(in);44 if (!len)45 return -1;46 47 for (i = 0; i != sizeof(buf); i++) {48 j = i % (len+n*3);49 buf[i] = j < len ? in[j] : extra[j-len];50 }51 MD5_Init(&ctx);52 MD5_Update(&ctx, buf, sizeof(buf));53 MD5_Final(tmp, &ctx);54 memcpy(out, tmp+n, WEPKEY_128_BYTES);55 return WEPKEY_128_BYTES;56 }57 28 58 29 … … 86 57 return WEPKEY_64_BYTES; 87 58 } 59 60 61 ssize_t wepkey_128(void *out, size_t size, const char *in, int n) 62 { 63 const char extra[] = "#$%" "!@#" "%&^"; 64 MD5_CTX ctx; 65 char buf[64]; 66 unsigned char tmp[16]; 67 int len, i, j; 68 69 if (size < WEPKEY_128_BYTES) 70 return -1; 71 if (n < 0 || n >= 4) 72 return -1; 73 74 len = strlen(in); 75 if (!len) 76 return -1; 77 78 for (i = 0; i != sizeof(buf); i++) { 79 j = i % (len+n*3); 80 buf[i] = j < len ? in[j] : extra[j-len]; 81 } 82 MD5_Init(&ctx); 83 MD5_Update(&ctx, buf, sizeof(buf)); 84 MD5_Final(tmp, &ctx); 85 memcpy(out, tmp+n, WEPKEY_128_BYTES); 86 return WEPKEY_128_BYTES; 87 } -
developers/werner/wep/wepkey.h
r4704 r4705 23 23 24 24 25 #define WEPKEY_64_BYTES 5 25 26 #define WEPKEY_128_BYTES 13 26 #define WEPKEY_64_BYTES 527 27 28 28 … … 32 32 */ 33 33 34 ssize_t wepkey_64(void *out, size_t size, const char *in, int n); 34 35 ssize_t wepkey_128(void *out, size_t size, const char *in, int n); 35 ssize_t wepkey_64(void *out, size_t size, const char *in, int n);36 36 37 37 #endif /* !WEPKEY_H */
Note: See TracChangeset
for help on using the changeset viewer.
