mirror of
https://github.com/wangyu-/udp2raw.git
synced 2025-01-19 14:29:34 +08:00
change gro scheme
This commit is contained in:
parent
5340f0726e
commit
779ebdd37a
@ -497,9 +497,16 @@ int send_safer(conn_info_t &conn_info,char type,const char* data,int len) //saf
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
write_u16(send_data_buf2,new_len);
|
write_u16(send_data_buf2,new_len);
|
||||||
|
new_len+=2;
|
||||||
|
if(cipher_mode==cipher_xor)
|
||||||
|
{
|
||||||
send_data_buf2[0]^=gro_xor[0];
|
send_data_buf2[0]^=gro_xor[0];
|
||||||
send_data_buf2[1]^=gro_xor[1];
|
send_data_buf2[1]^=gro_xor[1];
|
||||||
new_len+=2;
|
}
|
||||||
|
else if(cipher_mode==cipher_aes128cbc||cipher_mode==cipher_aes128cbc)
|
||||||
|
{
|
||||||
|
aes_ecb_encrypt1(send_data_buf2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -662,8 +669,15 @@ int recv_safer_multi(conn_info_t &conn_info,vector<char> &type_arr,vector<string
|
|||||||
int single_len_no_xor;
|
int single_len_no_xor;
|
||||||
single_len_no_xor=read_u16(recv_data);
|
single_len_no_xor=read_u16(recv_data);
|
||||||
int single_len;
|
int single_len;
|
||||||
|
if(cipher_mode==cipher_xor)
|
||||||
|
{
|
||||||
recv_data[0]^=gro_xor[0];
|
recv_data[0]^=gro_xor[0];
|
||||||
recv_data[1]^=gro_xor[1];
|
recv_data[1]^=gro_xor[1];
|
||||||
|
}
|
||||||
|
else if(cipher_mode==cipher_aes128cbc||cipher_mode==cipher_aes128cbc)
|
||||||
|
{
|
||||||
|
aes_ecb_decrypt1(recv_data);
|
||||||
|
}
|
||||||
single_len=read_u16(recv_data);
|
single_len=read_u16(recv_data);
|
||||||
recv_len-=2;
|
recv_len-=2;
|
||||||
recv_data+=2;
|
recv_data+=2;
|
||||||
|
14
encrypt.cpp
14
encrypt.cpp
@ -53,7 +53,7 @@ int my_init_keys(const char * user_passwd,int is_client)
|
|||||||
|
|
||||||
if(auth_mode==auth_hmac_sha1)
|
if(auth_mode==auth_hmac_sha1)
|
||||||
is_hmac_used=1;
|
is_hmac_used=1;
|
||||||
if(is_hmac_used||g_fix_gro)
|
if(is_hmac_used||g_fix_gro||1)
|
||||||
{
|
{
|
||||||
unsigned char salt[400]="";
|
unsigned char salt[400]="";
|
||||||
char salt_text[400]="udp2raw_salt1";
|
char salt_text[400]="udp2raw_salt1";
|
||||||
@ -308,6 +308,12 @@ void aes_ecb_encrypt(const char *data,char *output)
|
|||||||
}
|
}
|
||||||
AES_ECB_encrypt_buffer((uint8_t*)data,(uint8_t*)key,(uint8_t*)output);
|
AES_ECB_encrypt_buffer((uint8_t*)data,(uint8_t*)key,(uint8_t*)output);
|
||||||
}
|
}
|
||||||
|
void aes_ecb_encrypt1(char *data)
|
||||||
|
{
|
||||||
|
char buf[16];
|
||||||
|
memcpy(buf,data,16);
|
||||||
|
aes_ecb_encrypt(buf,data);
|
||||||
|
}
|
||||||
void aes_ecb_decrypt(const char *data,char *output)
|
void aes_ecb_decrypt(const char *data,char *output)
|
||||||
{
|
{
|
||||||
static int first_time=1;
|
static int first_time=1;
|
||||||
@ -319,6 +325,12 @@ void aes_ecb_decrypt(const char *data,char *output)
|
|||||||
}
|
}
|
||||||
AES_ECB_decrypt_buffer((uint8_t*)data,(uint8_t*)key,(uint8_t*)output);
|
AES_ECB_decrypt_buffer((uint8_t*)data,(uint8_t*)key,(uint8_t*)output);
|
||||||
}
|
}
|
||||||
|
void aes_ecb_decrypt1(char *data)
|
||||||
|
{
|
||||||
|
char buf[16];
|
||||||
|
memcpy(buf,data,16);
|
||||||
|
aes_ecb_decrypt(buf,data);
|
||||||
|
}
|
||||||
int cipher_aes128cbc_encrypt(const char *data,char *output,int &len,char * key)
|
int cipher_aes128cbc_encrypt(const char *data,char *output,int &len,char * key)
|
||||||
{
|
{
|
||||||
static int first_time=1;
|
static int first_time=1;
|
||||||
|
@ -41,4 +41,8 @@ int cipher_encrypt(const char *data,char *output,int &len,char * key);//internal
|
|||||||
|
|
||||||
void aes_ecb_encrypt(const char *data,char *output);
|
void aes_ecb_encrypt(const char *data,char *output);
|
||||||
void aes_ecb_decrypt(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
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user