This library implements some hash and cryptographic algorithms.
Dependents: ES_CW2_Starter_JIN EMBEDDED_CW2 EMBEDDED_CW2_Final Spinnybois ... more
Fork of Crypto by
cipher/RC4.cpp
- Committer:
- estott
- Date:
- 2018-03-09
- Revision:
- 15:634f9c4cbab1
- Parent:
- 8:a090264e9b2d
File content as of revision 15:634f9c4cbab1:
#include "RC4.h" RC4::RC4(uint8_t *key, uint8_t keyLength): StreamCipher(), s(), i(0), j(0) { for(int k = 0; k < 256; ++k) s[k] = k; int l = 0; for(int k = 0; k < 256; ++k) { l = (l + s[k] + key[k % keyLength]) % 256; uint8_t tmp = s[l]; s[l] = s[k]; s[k] = tmp; } } uint8_t RC4::encryptByte(uint8_t in) { ++i; j += s[i]; uint8_t tmp = s[i]; s[i] = s[j]; s[j] = tmp; uint8_t c = s[(s[i]+s[j])%256]; return in^c; } uint8_t RC4::decryptByte(uint8_t in) { return encryptByte(in); }