#ifndef UDP2RAW_ENCRYPTION_H_ #define UDP2RAW_ENCRYPTION_H_ //#include "aes.h" //#include "md5.h" #include "common.h" // using namespace std; // extern char key[16]; const int aes_key_optimize = 1; // if enabled,once you used a key for aes,you cant change it anymore extern int aes128cfb_old; int my_init_keys(const char *, int); int my_encrypt(const char *data, char *output, int &len); int my_decrypt(const char *data, char *output, int &len); unsigned short csum(const unsigned short *ptr, int nbytes); enum auth_mode_t { auth_none = 0, auth_md5, auth_crc32, auth_simple, auth_hmac_sha1, auth_end }; enum cipher_mode_t { cipher_none = 0, cipher_aes128cbc, cipher_xor, cipher_aes128cfb, cipher_end }; extern auth_mode_t auth_mode; extern cipher_mode_t cipher_mode; extern unordered_map auth_mode_tostring; extern unordered_map cipher_mode_tostring; extern char gro_xor[256 + 100]; int cipher_decrypt(const char *data, char *output, int &len, char *key); // internal interface ,exposed for test only int cipher_encrypt(const char *data, char *output, int &len, char *key); // internal interface ,exposed for test only void aes_ecb_encrypt(const char *data, char *output); void aes_ecb_decrypt(const char *data, char *output); void aes_ecb_encrypt1(char *data); void aes_ecb_decrypt1(char *data); #endif