229 lines
4.4 KiB
C
229 lines
4.4 KiB
C
|
|
||
|
|
||
|
#define IPSEC_REGISTRY_PROVIDER 0
|
||
|
#define IPSEC_DIRECTORY_PROVIDER 1
|
||
|
#define IPSEC_FILE_PROVIDER 2
|
||
|
|
||
|
|
||
|
typedef struct _IPSEC_AUTH_METHOD {
|
||
|
DWORD dwAuthType;
|
||
|
DWORD dwAuthLen;
|
||
|
LPWSTR pszAuthMethod;
|
||
|
DWORD dwAltAuthLen;
|
||
|
PBYTE pAltAuthMethod;
|
||
|
} IPSEC_AUTH_METHOD, *PIPSEC_AUTH_METHOD;
|
||
|
|
||
|
typedef struct _IPSEC_FILTER_SPEC {
|
||
|
LPWSTR pszSrcDNSName;
|
||
|
LPWSTR pszDestDNSName;
|
||
|
LPWSTR pszDescription;
|
||
|
GUID FilterSpecGUID;
|
||
|
DWORD dwMirrorFlag;
|
||
|
IPSEC_FILTER Filter;
|
||
|
} IPSEC_FILTER_SPEC, *PIPSEC_FILTER_SPEC;
|
||
|
|
||
|
typedef struct _IPSEC_FILTER_DATA {
|
||
|
GUID FilterIdentifier;
|
||
|
DWORD dwNumFilterSpecs;
|
||
|
PIPSEC_FILTER_SPEC * ppFilterSpecs;
|
||
|
DWORD dwWhenChanged;
|
||
|
LPWSTR pszIpsecName;
|
||
|
LPWSTR pszDescription;
|
||
|
} IPSEC_FILTER_DATA, *PIPSEC_FILTER_DATA;
|
||
|
|
||
|
typedef IPSEC_ALG_TYPE IPSEC_SECURITY_METHOD, *PIPSEC_SECURITY_METHOD;
|
||
|
|
||
|
typedef struct _IPSEC_NEGPOL_DATA {
|
||
|
GUID NegPolIdentifier;
|
||
|
GUID NegPolAction;
|
||
|
GUID NegPolType;
|
||
|
DWORD dwSecurityMethodCount;
|
||
|
IPSEC_SECURITY_METHOD * pIpsecSecurityMethods;
|
||
|
DWORD dwWhenChanged;
|
||
|
LPWSTR pszIpsecName;
|
||
|
LPWSTR pszDescription;
|
||
|
} IPSEC_NEGPOL_DATA, *PIPSEC_NEGPOL_DATA;
|
||
|
|
||
|
typedef struct _IPSEC_ISAKMP_DATA {
|
||
|
GUID ISAKMPIdentifier;
|
||
|
ISAKMP_POLICY ISAKMPPolicy;
|
||
|
DWORD dwNumISAKMPSecurityMethods;
|
||
|
PCRYPTO_BUNDLE pSecurityMethods;
|
||
|
DWORD dwWhenChanged;
|
||
|
} IPSEC_ISAKMP_DATA, *PIPSEC_ISAKMP_DATA;
|
||
|
|
||
|
typedef struct _IPSEC_NFA_DATA {
|
||
|
LPWSTR pszIpsecName;
|
||
|
GUID NFAIdentifier;
|
||
|
DWORD dwAuthMethodCount;
|
||
|
PIPSEC_AUTH_METHOD * ppAuthMethods;
|
||
|
DWORD dwInterfaceType;
|
||
|
LPWSTR pszInterfaceName;
|
||
|
DWORD dwTunnelIpAddr;
|
||
|
DWORD dwTunnelFlags;
|
||
|
DWORD dwActiveFlag;
|
||
|
LPWSTR pszEndPointName;
|
||
|
PIPSEC_FILTER_DATA pIpsecFilterData;
|
||
|
PIPSEC_NEGPOL_DATA pIpsecNegPolData;
|
||
|
DWORD dwWhenChanged;
|
||
|
GUID NegPolIdentifier;
|
||
|
GUID FilterIdentifier;
|
||
|
LPWSTR pszDescription;
|
||
|
} IPSEC_NFA_DATA, *PIPSEC_NFA_DATA;
|
||
|
|
||
|
typedef struct _IPSEC_POLICY_DATA{
|
||
|
GUID PolicyIdentifier;
|
||
|
DWORD dwPollingInterval;
|
||
|
PIPSEC_ISAKMP_DATA pIpsecISAKMPData;
|
||
|
PIPSEC_NFA_DATA * ppIpsecNFAData;
|
||
|
DWORD dwNumNFACount;
|
||
|
DWORD dwWhenChanged;
|
||
|
LPWSTR pszIpsecName;
|
||
|
LPWSTR pszDescription;
|
||
|
GUID ISAKMPIdentifier;
|
||
|
} IPSEC_POLICY_DATA, *PIPSEC_POLICY_DATA;
|
||
|
|
||
|
|
||
|
LPVOID
|
||
|
AllocPolMem(
|
||
|
DWORD cb
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
FreePolMem(
|
||
|
LPVOID pMem
|
||
|
);
|
||
|
|
||
|
LPWSTR
|
||
|
AllocPolStr(
|
||
|
LPCWSTR pStr
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
FreePolStr(
|
||
|
LPWSTR pStr
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ReallocatePolMem(
|
||
|
LPVOID * ppOldMem,
|
||
|
DWORD cbOld,
|
||
|
DWORD cbNew
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
ReallocPolStr(
|
||
|
LPWSTR *ppStr,
|
||
|
LPWSTR pStr
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecPolicyData(
|
||
|
PIPSEC_POLICY_DATA pIpsecPolicyData
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecNegPolData(
|
||
|
PIPSEC_NEGPOL_DATA pIpsecNegPolData
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecFilterData(
|
||
|
PIPSEC_FILTER_DATA pIpsecFilterData
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecISAKMPData(
|
||
|
PIPSEC_ISAKMP_DATA pIpsecISAKMPData
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecNFAData(
|
||
|
PIPSEC_NFA_DATA pIpsecNFAData
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecPolicyData(
|
||
|
PIPSEC_POLICY_DATA pIpsecPolicyData,
|
||
|
PIPSEC_POLICY_DATA * ppIpsecPolicyData
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecNFAData(
|
||
|
PIPSEC_NFA_DATA pIpsecNFAData,
|
||
|
PIPSEC_NFA_DATA * ppIpsecNFAData
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecAuthMethod(
|
||
|
PIPSEC_AUTH_METHOD pAuthMethod,
|
||
|
PIPSEC_AUTH_METHOD * ppAuthMethod
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecISAKMPData(
|
||
|
PIPSEC_ISAKMP_DATA pIpsecISAKMPData,
|
||
|
PIPSEC_ISAKMP_DATA * ppIpsecISAKMPData
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecFilterData(
|
||
|
PIPSEC_FILTER_DATA pIpsecFilterData,
|
||
|
PIPSEC_FILTER_DATA * ppIpsecFilterData
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecFilterSpec(
|
||
|
PIPSEC_FILTER_SPEC pFilterSpecs,
|
||
|
PIPSEC_FILTER_SPEC * ppFilterSpecs
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
CopyIpsecNegPolData(
|
||
|
PIPSEC_NEGPOL_DATA pIpsecNegPolData,
|
||
|
PIPSEC_NEGPOL_DATA * ppIpsecNegPolData
|
||
|
);
|
||
|
|
||
|
|
||
|
void
|
||
|
FreeMulIpsecFilterData(
|
||
|
PIPSEC_FILTER_DATA * ppIpsecFilterData,
|
||
|
DWORD dwNumFilterObjects
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeMulIpsecNegPolData(
|
||
|
PIPSEC_NEGPOL_DATA * ppIpsecNegPolData,
|
||
|
DWORD dwNumNegPolObjects
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeMulIpsecPolicyData(
|
||
|
PIPSEC_POLICY_DATA * ppIpsecPolicyData,
|
||
|
DWORD dwNumPolicyObjects
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeMulIpsecNFAData(
|
||
|
PIPSEC_NFA_DATA * ppIpsecNFAData,
|
||
|
DWORD dwNumNFAObjects
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecFilterSpecs(
|
||
|
PIPSEC_FILTER_SPEC * ppIpsecFilterSpecs,
|
||
|
DWORD dwNumFilterSpecs
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeIpsecFilterSpec(
|
||
|
PIPSEC_FILTER_SPEC pIpsecFilterSpec
|
||
|
);
|
||
|
|
||
|
void
|
||
|
FreeMulIpsecISAKMPData(
|
||
|
PIPSEC_ISAKMP_DATA * ppIpsecISAKMPData,
|
||
|
DWORD dwNumISAKMPObjects
|
||
|
);
|
||
|
|