[Madwifi-cvs] madwifi/net80211 rc4.c,1.1.4.2,1.1.4.3 rc4.h,1.1.4.1,1.1.4.2
Status: Beta
Brought to you by:
otaku
From: Sam L. <sam...@us...> - 2004-06-09 19:12:30
|
Update of /cvsroot/madwifi/madwifi/net80211 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv730 Modified Files: Tag: WPA rc4.c rc4.h Log Message: add parameter to skip initial data; needed for WPA Index: rc4.h =================================================================== RCS file: /cvsroot/madwifi/madwifi/net80211/Attic/rc4.h,v retrieving revision 1.1.4.1 retrieving revision 1.1.4.2 diff -C2 -d -r1.1.4.1 -r1.1.4.2 *** rc4.h 24 Feb 2004 23:33:21 -0000 1.1.4.1 --- rc4.h 9 Jun 2004 19:12:21 -0000 1.1.4.2 *************** *** 48,54 **** extern void rc4_init(struct rc4_state *state, const u_char *key, int keylen); ! extern void rc4_crypt(struct rc4_state *state, ! const u_char *inbuf, u_char *outbuf, int buflen); ! #endif --- 48,53 ---- extern void rc4_init(struct rc4_state *state, const u_char *key, int keylen); ! extern void rc4_crypt_skip(struct rc4_state *state, ! const u_char *inbuf, u_char *outbuf, int buflen, int skip); #endif Index: rc4.c =================================================================== RCS file: /cvsroot/madwifi/madwifi/net80211/Attic/rc4.c,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -C2 -d -r1.1.4.2 -r1.1.4.3 *** rc4.c 14 May 2004 06:30:30 -0000 1.1.4.2 --- rc4.c 9 Jun 2004 19:12:21 -0000 1.1.4.3 *************** *** 38,41 **** --- 38,42 ---- */ + #include <linux/types.h> #include <linux/config.h> #include <linux/version.h> *************** *** 85,94 **** */ void ! rc4_crypt(struct rc4_state *const state, ! const u_char *inbuf, u_char *outbuf, int buflen) { int i; u_char j; for (i = 0; i < buflen; i++) { --- 86,108 ---- */ void ! rc4_crypt_skip(struct rc4_state *const state, ! const u_char *inbuf, u_char *outbuf, int buflen, int skip) { int i; u_char j; + for (i = 0; i < skip; i++) { + + /* Update modification indicies */ + state->index1++; + state->index2 += state->perm[state->index1]; + + /* Modify permutation */ + swap_bytes(&state->perm[state->index1], + &state->perm[state->index2]); + + /* Encrypt/decrypt next byte */ + j = state->perm[state->index1] + state->perm[state->index2]; + } for (i = 0; i < buflen; i++) { *************** *** 106,108 **** } } ! EXPORT_SYMBOL(rc4_crypt); --- 120,122 ---- } } ! EXPORT_SYMBOL(rc4_crypt_skip); |