Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
2.5 KiB

#include "precomp.h"
ULONG IPSecNumResets = 0;
#if DBG
ULONG NumAddSA = 0;
ULONG NumAddSU = 0;
ULONG NumAddFA = 0;
ULONG NumDelSA = 0;
ULONG NumDelSU = 0;
ULONG NumDelFA = 0;
ULONG NumReset = 0;
#endif
//
// Max timeout value (in seconds) for each class.
//
ULONG IPSecMaxTimerValue[IPSEC_CLASS_MAX] = {
IPSEC_MAX_TIMER_SHORT_DURATION,
IPSEC_MAX_TIMER_LONG_DURATION,
IPSEC_MAX_TIMER_SUPER_LONG_DURATION
};
//
// Size of each timer wheel.
//
ULONG IPSecTimerListSize[IPSEC_CLASS_MAX] = {
SECONDS_TO_SHORT_TICKS(IPSEC_MAX_TIMER_SHORT_DURATION),
SECONDS_TO_LONG_TICKS(IPSEC_MAX_TIMER_LONG_DURATION),
SECONDS_TO_SUPER_LONG_TICKS(IPSEC_MAX_TIMER_SUPER_LONG_DURATION)
};
//
// Interval between ticks, in seconds, for each class.
//
ULONG IPSecTimerPeriod[IPSEC_CLASS_MAX] = {
IPSEC_SHORT_DURATION_TIMER_PERIOD,
IPSEC_LONG_DURATION_TIMER_PERIOD,
IPSEC_SUPER_LONG_DURATION_TIMER_PERIOD
};
#if GPC
ULONG DebugGPC = 0;
#endif
#if DBG
ULONG IPSecDebug = 0;
#endif
UCHAR DefaultPad[MAX_PAD_LEN] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
#if DBG
IPAddr DebugSrc = 0;
IPAddr DebugDst = 0;
UCHAR DebugPro = 0;
ULONG DebugPkt = 0;
ULONG DebugOff = 0;
ULONG DebugQry = 1;
#endif
RC4_KEYSTRUCT IPSecRngKey;
WORK_QUEUE_ITEM IPSecRngQueueItem;
ULONG IPSecRngBytes = 0;
#if DBG
ULONG IPSecRngInRekey = 0;
#endif
unsigned char weak_keys[][DES_BLOCKLEN] = {
/* the weak keys */
{ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
{ 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe },
{ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f },
{ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0 },
/* the semi-weak keys */
{ 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe },
{ 0x1f, 0xe0, 0x1f, 0xe0, 0x1f, 0xe0, 0x1f, 0xe0 },
{ 0x01, 0xe0, 0x01, 0xe0, 0x01, 0xe0, 0x01, 0xe0 },
{ 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe },
{ 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f },
{ 0xe0, 0xfe, 0xe0, 0xfe, 0xe0, 0xfe, 0xe0, 0xfe },
{ 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01 },
{ 0xe0, 0x1f, 0xe0, 0x1f, 0xe0, 0x1f, 0xe0, 0x1f },
{ 0xe0, 0x01, 0xe0, 0x01, 0xe0, 0x01, 0xe0, 0x01 },
{ 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f },
{ 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x1f, 0x01 },
{ 0xfe, 0xe0, 0xfe, 0xe0, 0xfe, 0xe0, 0xfe, 0xe0 }
};
PDEVICE_OBJECT IPSecDevice = NULL;
ULONG IPSecInitFlag = 0;
IPSEC_GLOBAL g_ipsec;
LARGE_INTEGER IPSecDelayInterval;
DWORD gdwInitEsp = 0;
DWORD gdwInitAh = 0;