udp2raw/encrypt.h

50 lines
1.3 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"
2017-07-30 08:57:24 +00:00
//using namespace std;
2018-06-22 18:22:26 +00:00
//extern char key[16];
2017-09-18 12:29:12 +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
int my_init_keys(const char *,int);
2018-06-22 18:22:26 +00:00
int my_encrypt(const char *data,char *output,int &len);
int my_decrypt(const char *data,char *output,int &len);
2017-07-22 15:39:35 +00:00
unsigned short csum(const unsigned short *ptr,int nbytes) ;
2018-06-22 18:22:26 +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
2018-07-21 07:06:15 +00:00
enum cipher_mode_t {cipher_none=0,cipher_aes128cbc,cipher_xor,cipher_aes128cfb,cipher_end};
2017-07-30 08:57:24 +00:00
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;
2019-07-15 17:00:16 +00:00
extern char gro_xor[256+100];
2017-09-18 11:34:03 +00:00
2017-09-18 12:29:12 +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
2020-07-14 15:46:02 +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