udp2raw/encrypt.h

52 lines
1.5 KiB
C
Raw Normal View History

#ifndef UDP2RAW_ENCRYPTION_H_
#define UDP2RAW_ENCRYPTION_H_
2017-07-29 12:32:26 +00:00
2017-07-30 08:57:24 +00:00
//#include "aes.h"
//#include "md5.h"
2017-07-29 12:32:26 +00:00
#include "common.h"
2023-02-07 12:11:49 +00:00
// using namespace std;
// extern char key[16];
2017-07-30 08:57:24 +00:00
2023-02-07 12:11:49 +00:00
const int aes_key_optimize = 1; // if enabled,once you used a key for aes,you cant change it anymore
2020-07-15 05:37:47 +00:00
extern int aes128cfb_old;
2017-09-18 12:29:12 +00:00
2023-02-07 12:11:49 +00:00
int my_init_keys(const char *, int);
2023-02-07 12:11:49 +00:00
int my_encrypt(const char *data, char *output, int &len);
int my_decrypt(const char *data, char *output, int &len);
2017-07-30 08:57:24 +00:00
2023-02-07 12:11:49 +00:00
unsigned short csum(const unsigned short *ptr, int nbytes);
2023-02-07 12:11:49 +00:00
enum auth_mode_t { auth_none = 0,
auth_md5,
auth_crc32,
auth_simple,
auth_hmac_sha1,
auth_end };
2017-07-30 08:57:24 +00:00
2023-02-07 12:11:49 +00:00
enum cipher_mode_t { cipher_none = 0,
cipher_aes128cbc,
cipher_xor,
cipher_aes128cfb,
cipher_end };
2017-07-26 00:51:05 +00:00
extern auth_mode_t auth_mode;
extern cipher_mode_t cipher_mode;
2017-07-30 08:57:24 +00:00
extern unordered_map<int, const char *> auth_mode_tostring;
extern unordered_map<int, const char *> cipher_mode_tostring;
2023-02-07 12:11:49 +00:00
extern char gro_xor[256 + 100];
2017-09-18 11:34:03 +00:00
2023-02-07 12:11:49 +00:00
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
2017-09-18 11:34:03 +00:00
2023-02-07 12:11:49 +00:00
void aes_ecb_encrypt(const char *data, char *output);
void aes_ecb_decrypt(const char *data, char *output);
2020-07-14 16:30:20 +00:00
void aes_ecb_encrypt1(char *data);
void aes_ecb_decrypt1(char *data);
2017-07-18 16:52:33 +00:00
#endif