mirror of
https://github.com/wangyu-/udp2raw.git
synced 2025-01-19 14:29:34 +08:00
52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
#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<int, const char *> auth_mode_tostring;
|
|
extern unordered_map<int, const char *> 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
|