windows-nt/Source/XPSP1/NT/net/tcpip/driver/ipsec/sys/ipseceng.h
2020-09-26 16:20:57 +08:00

195 lines
3.9 KiB
C

#define IPSEC_ISAKMP_PORT 0xf401 // 500 in NBO
#define IPSEC_KERBEROS_PORT 0x5800 // 88 in NBO
#define IPSEC_LDAP_PORT 0x8501 // 389 in NBO
IPSEC_ACTION
IPSecHandlePacket(
IN PUCHAR pIPHeader,
IN PVOID pData,
IN PVOID IPContext,
IN PNDIS_PACKET Packet,
IN OUT PULONG pExtraBytes,
IN OUT PULONG pMTU,
OUT PVOID *pNewData,
IN OUT PULONG pIpsecFlags,
IN UCHAR DestType
);
IPSEC_ACTION
IPSecSendPacket(
IN PUCHAR pIPHeader,
IN PVOID pData,
IN PVOID IPContext,
IN PNDIS_PACKET Packet,
IN OUT PULONG pExtraBytes,
IN OUT PULONG pMTU,
OUT PVOID *pNewData,
IN OUT PULONG pIpsecFlags,
OUT PIPSEC_DROP_STATUS pDropStatus,
IN UCHAR DestType
);
IPSEC_ACTION
IPSecRecvPacket(
IN PUCHAR *pIPHeader,
IN PVOID pData,
IN PVOID IPContext,
IN PNDIS_PACKET Packet,
IN OUT PULONG pExtraBytes,
IN OUT PULONG pIpsecFlags,
OUT PIPSEC_DROP_STATUS pDropStatus,
IN UCHAR DestType
);
VOID
IPSecCalcHeaderOverheadFromSA(
IN PSA_TABLE_ENTRY pSA,
OUT PULONG pOverhead
);
NTSTATUS
IPSecParsePacket(
IN PUCHAR pIPHeader,
IN PVOID *pData,
OUT tSPI *pSPI
);
PSA_TABLE_ENTRY
IPSecLookupSAInLarval(
IN ULARGE_INTEGER uliSrcDstAddr,
IN ULARGE_INTEGER uliProtoSrcDstPort
);
NTSTATUS
IPSecClassifyPacket(
IN PUCHAR pHeader,
IN PVOID pData,
OUT PSA_TABLE_ENTRY *ppSA,
OUT PSA_TABLE_ENTRY *ppNextSA,
OUT USHORT *pFilterFlags,
#if GPC
IN CLASSIFICATION_HANDLE GpcHandle,
#endif
IN BOOLEAN fOutbound,
IN BOOLEAN fFWPacket,
IN BOOLEAN fDoBypassCheck,
IN UCHAR DestType
);
VOID
IPSecSendComplete(
IN PNDIS_PACKET Packet,
IN PVOID pData,
IN PIPSEC_SEND_COMPLETE_CONTEXT pContext,
IN IP_STATUS Status,
OUT PVOID *ppNewData
);
VOID
IPSecProtocolSendComplete (
IN PVOID pContext,
IN PNDIS_BUFFER pMdl,
IN IP_STATUS Status
);
NTSTATUS
IPSecChkReplayWindow(
IN ULONG Seq,
IN PSA_TABLE_ENTRY pSA,
IN ULONG Index
);
NTSTATUS
IPSecReinjectPacket(
IN PVOID pData,
IN PNDIS_PACKET_EXTENSION pPktExt
);
NTSTATUS
IPSecQueuePacket(
IN PSA_TABLE_ENTRY pSA,
IN PVOID pDataBuf
);
VOID
IPSecIPAddrToUnicodeString(
IN IPAddr Addr,
OUT PWCHAR UCIPAddrBuffer
);
VOID
IPSecCountToUnicodeString(
IN ULONG Count,
OUT PWCHAR UCCountBuffer
);
VOID
IPSecESPStatus(
IN UCHAR StatusType,
IN IP_STATUS StatusCode,
IN IPAddr OrigDest,
IN IPAddr OrigSrc,
IN IPAddr Src,
IN ULONG Param,
IN PVOID Data
);
VOID
IPSecAHStatus(
IN UCHAR StatusType,
IN IP_STATUS StatusCode,
IN IPAddr OrigDest,
IN IPAddr OrigSrc,
IN IPAddr Src,
IN ULONG Param,
IN PVOID Data
);
VOID
IPSecProcessPMTU(
IN IPAddr OrigDest,
IN IPAddr OrigSrc,
IN tSPI SPI,
IN OPERATION_E Operation,
IN ULONG NewMTU
);
IPSEC_ACTION
IPSecRcvFWPacket(
IN PCHAR pIPHeader,
IN PVOID pData,
IN UINT DataLength,
IN UCHAR DestType
);
NTSTATUS
IPSecRekeyInboundSA(
IN PSA_TABLE_ENTRY pSA
);
NTSTATUS
IPSecRekeyOutboundSA(
IN PSA_TABLE_ENTRY pSA
);
NTSTATUS
IPSecPuntInboundSA(
IN PSA_TABLE_ENTRY pSA
);
NTSTATUS
IPSecPuntOutboundSA(
IN PSA_TABLE_ENTRY pSA
);
BOOLEAN
IPSecQueryStatus(
IN CLASSIFICATION_HANDLE GpcHandle
);