00001
00027 #ifndef EVACRYPT_H
00028 #define EVACRYPT_H
00029
00030 #define DECRYPT 0x00
00031 #define ENCRYPT 0x01
00032
00033 class EvaCrypt
00034 {
00035 public:
00036 EvaCrypt();
00037 ~EvaCrypt();
00038
00039 static void encrypt( unsigned char* instr, int instrlen, unsigned char* key,
00040 unsigned char* outstr, int* outstrlen_ptr);
00041
00042 static int decrypt(unsigned char* instr, int instrlen, unsigned char* key,
00043 unsigned char* outstr, int* outstrlen_ptr);
00044
00045 private:
00046 static int rand(void);
00047 static void teaEncipher(unsigned int *const v, const unsigned int *const k,
00048 unsigned int *const w);
00049 static void teaDecipher(unsigned int *const v, const unsigned int *const k,
00050 unsigned int *const w);
00051
00052 static int qq_crypt ( unsigned char flag, unsigned char* instr, int instrlen,
00053 unsigned char* key, unsigned char* outstr, int* outstrlen_ptr);
00054 };
00055
00056 #endif