1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2025-07-06 07:44:57 +03:00

Merge PR #129 into master.

This commit is contained in:
Moataz Elmasry
2018-01-25 02:55:11 +01:00
9 changed files with 73 additions and 12 deletions

View File

@ -4895,12 +4895,36 @@ DH_CTX *DhNewGroup5()
return DhNew(DH_GROUP5_PRIME_1536, 2);
}
// Creating a DH SIMPLE 160bits
DH_CTX *DhNewSimple160()
{
return DhNew(DH_SIMPLE_160, 2);
}
DH_CTX *DhNewFromBits(UINT bits)
{
switch (bits)
{
case 160:
return DhNewSimple160();
case 768:
return DhNewGroup1();
case 1024:
return DhNewGroup2();
case 1536:
return DhNewGroup5();
case 2048:
return DhNew2048();
case 3072:
return DhNew3072();
case 4096:
return DhNew4096();
default:
return DhNew2048();
}
}
// Convert the DH parameters to file
BUF *DhToBuf(DH_CTX *dh)
{

View File

@ -150,8 +150,8 @@ void RAND_Free_For_SoftEther();
// HMAC block size
#define HMAC_BLOCK_SIZE 64
// The block size for sha-384 and sha-512 as defined by rfc4868
#define HMAC_BLOCK_SIZE_1024 128
#define HMAC_BLOCK_SIZE_MAX 512
#define HMAC_BLOCK_SIZE_1024 128
#define HMAC_BLOCK_SIZE_MAX 512
#define DH_GROUP1_PRIME_768 \
"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" \
@ -540,6 +540,7 @@ DH_CTX *DhNewSimple160();
DH_CTX *DhNew2048();
DH_CTX *DhNew3072();
DH_CTX *DhNew4096();
DH_CTX *DhNewFromBits(UINT bits);
DH_CTX *DhNew(char *prime, UINT g);
void DhFree(DH_CTX *dh);
BUF *DhToBuf(DH_CTX *dh);

View File

@ -250,7 +250,7 @@ static UINT rand_port_numbers[256] = {0};
static bool g_use_privateip_file = false;
static bool g_source_ip_validation_force_disable = false;
static DH_CTX *dh_2048 = NULL;
static DH_CTX *dh_param = NULL;
typedef struct PRIVATE_IP_SUBNET
{
@ -17810,9 +17810,9 @@ DH *TmpDhCallback(SSL *ssl, int is_export, int keylength)
{
DH *ret = NULL;
if (dh_2048 != NULL)
if (dh_param != NULL)
{
ret = dh_2048->dh;
ret = dh_param->dh;
}
return ret;
@ -17932,9 +17932,6 @@ void InitNetwork()
disable_cache = false;
dh_2048 = DhNew2048();
Zero(rand_port_numbers, sizeof(rand_port_numbers));
SetGetIpThreadMaxNum(DEFAULT_GETIP_THREAD_MAX_NUM);
@ -18367,10 +18364,10 @@ void SetCurrentGlobalIP(IP *ip, bool ipv6)
void FreeNetwork()
{
if (dh_2048 != NULL)
if (dh_param != NULL)
{
DhFree(dh_2048);
dh_2048 = NULL;
DhFree(dh_param);
dh_param = NULL;
}
// Release of thread-related
@ -20282,6 +20279,8 @@ LABEL_RESTART:
if (u->PollMyIpAndPort)
{
// Create a thread to get a NAT-T IP address if necessary
if (u->GetNatTIpThread == NULL)
{
// Create a thread to get a NAT-T IP address if necessary
if (u->GetNatTIpThread == NULL)

View File

@ -1020,6 +1020,8 @@ int GetCurrentTimezone();
bool GetSniNameFromSslPacket(UCHAR *packet_buf, UINT packet_size, char *sni, UINT sni_size);
bool GetSniNameFromPreSslConnection(SOCK *s, char *sni, UINT sni_size);
void SetDhParam(DH_CTX *dh);
bool IsUseDnsProxy();
bool IsUseAlternativeHostname();