3 static void swap_byte(unsigned char *a, unsigned char *b);
4 void prepare_key(unsigned char *key_data_ptr, int key_data_len,
7 unsigned char swapByte;
13 state = &key->state[0];
14 for(counter = 0; counter < 256; counter++)
15 state[counter] = counter;
20 for(counter = 0; counter < 256; counter++)
22 index2 = (key_data_ptr[index1] + state[counter] +
24 swap_byte(&state[counter], &state[index2]);
26 index1 = (index1 + 1) % key_data_len;
30 void rc4(unsigned char *buffer_ptr, int buffer_len, rc4_key
36 unsigned char xorIndex;
42 state = &key->state[0];
43 for(counter = 0; counter < buffer_len; counter ++)
46 y = (state[x] + y) % 256;
47 swap_byte(&state[x], &state[y]);
49 xorIndex = (state[x] + state[y]) % 256;
51 buffer_ptr[counter] ^= state[xorIndex];
57 static void swap_byte(unsigned char *a, unsigned char *b)
59 unsigned char swapByte;