diff options
| author | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-11-26 14:19:43 +0000 |
|---|---|---|
| committer | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-11-26 14:19:43 +0000 |
| commit | 7aff1e4cb053394db57c2814d5fe1e6493e0cc75 (patch) | |
| tree | c8585e44049b37e4da152495c954242204c2c38d /dbx_mmap_sa/cryptors/rc4/cryptor.c | |
| parent | 6f3d69266933ef120d229e0daf2da164b77214d0 (diff) | |
Project folders rename part 2
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@214 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'dbx_mmap_sa/cryptors/rc4/cryptor.c')
| -rw-r--r-- | dbx_mmap_sa/cryptors/rc4/cryptor.c | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/dbx_mmap_sa/cryptors/rc4/cryptor.c b/dbx_mmap_sa/cryptors/rc4/cryptor.c deleted file mode 100644 index 1f5f617..0000000 --- a/dbx_mmap_sa/cryptors/rc4/cryptor.c +++ /dev/null @@ -1,133 +0,0 @@ -#include <windows.h>
-
-#define buf_size 1024
-
-typedef struct{
- void* (__stdcall *GenerateKey)(char* key);
- void (__stdcall *FreeKey)(void* key);
- void (__stdcall *EncryptMem)(BYTE* data, int size, void* key);
- void (__stdcall *DecryptMem)(BYTE* data, int size, void* key);
-
- char* Name;
- char* Info;
- char* Author;
- char* Site;
- char* Email;
-
- DWORD Version;
-
- WORD uid;
-} Cryptor;
-
-typedef struct rc4_key
-{
- BYTE state[256];
- BYTE x;
- BYTE y;
-} rc4_key;
-
-#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t
-
-void prepare_key(BYTE *key_data_ptr, size_t key_data_len, rc4_key *key)
-{
- int i = 0;
- BYTE t = 0;
- BYTE index1 = 0;
- BYTE index2 = 0;
- BYTE* state = 0;
- unsigned long counter = 0;
-
- state = &key->state[0];
- for(counter = 0; counter < 256; counter++)
- state[counter] = (BYTE)counter;
- key->x = 0;
- key->y = 0;
- index1 = 0;
- index2 = 0;
- for(counter = 0; counter < 256; counter++)
- {
- index2 = (key_data_ptr[index1] + state[counter] + index2) % 256;
- swap_byte(&state[counter], &state[index2]);
- index1 = (index1 + 1) % key_data_len;
- }
-}
-
-void rc4(BYTE *buffer_ptr, int buffer_len, rc4_key *key)
-{
- BYTE t = 0;
- BYTE x = 0;
- BYTE y = 0;
- BYTE* state = 0;
- BYTE xorIndex = 0;
- DWORD counter = 0;
- BYTE old_state[256];
-
- x = key->x;
- y = key->y;
- state = &key->state[0];
- memcpy(old_state, key->state, 256);
- for(counter = 0; counter < (DWORD)buffer_len; counter++)
- {
- x = (x + 1) % 256;
- y = (state[x] + y) % 256;
- swap_byte(&state[x], &state[y]);
- xorIndex = (state[x] + state[y]) % 256;
- buffer_ptr[counter] ^= state[xorIndex];
- }
- memcpy(key->state, old_state, 256);
- //key->x = x;
- //key->y = y;
-}
-
-
-void zero_fill(BYTE * pBuf, size_t bufSize)
-{
- size_t i;
- for(i = 0; i < bufSize; i++)
- pBuf[i] = 0;
-}
-
-void* __stdcall GenerateKey(char* pwd)
-{
- rc4_key* key;
- key = (rc4_key*)malloc(sizeof(rc4_key));
- zero_fill((BYTE*)key, sizeof(key));
- prepare_key(pwd, strlen(pwd), key);
- return key;
-}
-
-void __stdcall FreeKey(void* key)
-{
- free(key);
-}
-
-void __stdcall EncryptMem(BYTE* data, int size, void* key)
-{
- rc4(data, size, key);
-}
-
-void __stdcall DecryptMem(BYTE* data, int size, void* key)
-{
- rc4(data, size, key);
-}
-
-Cryptor cryptor =
- {
- GenerateKey,
- FreeKey,
- EncryptMem,
- DecryptMem,
- "RC4",
- "Old, very easy to crack stream cipher",
- "Unknown",
- "http://ru.wikipedia.org/wiki/RC4",
- "nomail",
- 0x00000100,
- 0xDEAD
- };
-
-
-__declspec(dllexport) Cryptor* GetCryptor()
-{
- return &cryptor;
-}
\ No newline at end of file |
