|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
ipsecshr.h
Abstract:
Header file for IPSec Shared lib
Author:
BrianSw 10-19-2000
Environment:
User Level: Win32 / kernel
Revision History:
--*/
#ifndef _IPSECSHR_
#define _IPSECSHR_
#ifdef __cplusplus
extern "C" { #endif
#define IN_CLASSE(i) (((long)(i) & 0xF0000000) == 0xF0000000)
BOOL WINAPI CmpBlob(IPSEC_BYTE_BLOB* c1, IPSEC_BYTE_BLOB *c2); BOOL WINAPI CmpData(BYTE* c1, BYTE *c2, DWORD size); BOOL WINAPI CmpAddr(ADDR *Template, ADDR *a2); BOOL WINAPI CmpTypeStruct(BYTE *Template, BYTE *comp, DWORD dwTypeSize, DWORD dwStructSize); BOOL WINAPI CmpFilter(IPSEC_QM_FILTER *Template, IPSEC_QM_FILTER* f2); BOOL WINAPI CmpQMAlgo(PIPSEC_QM_ALGO Template, PIPSEC_QM_ALGO a2); BOOL WINAPI CmpQMOffer(PIPSEC_QM_OFFER Template, PIPSEC_QM_OFFER o2); BOOL WINAPI MatchQMSATemplate(IPSEC_QM_SA *Template,IPSEC_QM_SA *CurInfo); BOOL WINAPI MatchMMSATemplate(IPSEC_MM_SA *MMTemplate, IPSEC_MM_SA *SaData);
DWORD ValidateMMPolicy( PIPSEC_MM_POLICY pMMPolicy );
DWORD ValidateMMOffers( DWORD dwOfferCount, PIPSEC_MM_OFFER pOffers );
DWORD ValidateMMAuthMethods( PMM_AUTH_METHODS pMMAuthMethods );
DWORD ValidateQMPolicy( PIPSEC_QM_POLICY pQMPolicy );
DWORD ValidateQMOffers( DWORD dwOfferCount, PIPSEC_QM_OFFER pOffers );
DWORD ValidateMMFilter( PMM_FILTER pMMFilter );
DWORD VerifyAddresses( ADDR Addr, BOOL bAcceptMe, BOOL bIsDesAddr );
DWORD VerifySubNetAddress( ULONG uSubNetAddr, ULONG uSubNetMask, BOOL bIsDesAddr );
BOOL bIsValidIPMask( ULONG uMask );
BOOL bIsValidIPAddress( ULONG uIpAddr, BOOL bAcceptMe, BOOL bIsDesAddr );
BOOL bIsValidSubnet( ULONG uIpAddr, ULONG uMask, BOOL bIsDesAddr );
BOOL AddressesConflict( ADDR SrcAddr, ADDR DesAddr );
DWORD ValidateTransportFilter( PTRANSPORT_FILTER pTransportFilter );
DWORD ValidateIPSecQMFilter( PIPSEC_QM_FILTER pQMFilter );
DWORD VerifyProtocols( PROTOCOL Protocol );
DWORD VerifyPortsForProtocol( PORT Port, PROTOCOL Protocol );
DWORD ValidateMMFilterTemplate( PMM_FILTER pMMFilter );
DWORD ValidateTxFilterTemplate( PTRANSPORT_FILTER pTxFilter );
DWORD ValidateTunnelFilter( PTUNNEL_FILTER pTunnelFilter );
DWORD ValidateTnFilterTemplate( PTUNNEL_FILTER pTnFilter );
DWORD ApplyMulticastFilterValidation( ADDR Addr, BOOL bCreateMirror );
#ifdef __IPSEC_VALIDATE
DWORD ValidateInitiateIKENegotiation( STRING_HANDLE pServerName, PQM_FILTER_CONTAINER pQMFilterContainer, DWORD dwClientProcessId, ULONG uhClientEvent, DWORD dwFlags, IKENEGOTIATION_HANDLE * phIKENegotiation );
DWORD ValidateQueryIKENegotiationStatus( IKENEGOTIATION_HANDLE hIKENegotiation, SA_NEGOTIATION_STATUS_INFO *NegotiationStatus );
DWORD ValidateCloseIKENegotiationHandle( IKENEGOTIATION_HANDLE * phIKENegotiation );
DWORD ValidateEnumMMSAs( STRING_HANDLE pServerName, PMM_SA_CONTAINER pMMTemplate, PMM_SA_CONTAINER *ppMMSAContainer, LPDWORD pdwNumEntries, LPDWORD pdwTotalMMsAvailable, LPDWORD pdwEnumHandle, DWORD dwFlags );
DWORD ValidateDeleteMMSAs( STRING_HANDLE pServerName, PMM_SA_CONTAINER pMMTemplate, DWORD dwFlags );
DWORD ValidateQueryIKEStatistics( STRING_HANDLE pServerName, IKE_STATISTICS *pIKEStatistics );
DWORD ValidateRegisterIKENotifyClient( STRING_HANDLE pServerName, DWORD dwClientProcessId, ULONG uhClientEvent, PQM_SA_CONTAINER pQMSATemplateContainer, IKENOTIFY_HANDLE *phNotifyHandle, DWORD dwFlags );
DWORD ValidateQueryNotifyData( IKENOTIFY_HANDLE uhNotifyHandle, PDWORD pdwNumEntries, PQM_SA_CONTAINER *ppQMSAContainer, DWORD dwFlags );
DWORD ValidateCloseNotifyHandle( IKENOTIFY_HANDLE *phHandle );
DWORD ValidateIPSecAddSA( STRING_HANDLE pServerName, PIPSEC_QM_POLICY_CONTAINER pQMPolicyContainer, PQM_FILTER_CONTAINER pQMFilterContainer, DWORD *uhLarvalContext, DWORD dwInboundKeyMatLen, BYTE *pInboundKeyMat, DWORD dwOutboundKeyMatLen, BYTE *pOutboundKeyMat, BYTE *pContextInfo, DWORD dwFlags);
#endif //__IPSEC_VALIDATE
#ifdef __cplusplus
} #endif
#endif // _WINIPSEC_
|