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

275 lines
4.4 KiB
C

//
// List of weak and semi-weak DES keys from
// Applied Cryptography: Protocols, Algorithms, and Source Code in C,
// second edition by Bruce Schneier.
//
#define NUM_WEAK_KEYS 16
BOOLEAN
IPSecInitRandom(
VOID
);
VOID
IPSecRngRekey(
IN PVOID Context
);
BOOLEAN
IPSecGenerateRandom(
IN PUCHAR pBuf,
IN ULONG BytesNeeded
);
VOID
IPSecCleanupOutboundSA(
IN PSA_TABLE_ENTRY pInboundSA,
IN PSA_TABLE_ENTRY pOutboundSA,
IN BOOLEAN fNoDelete
);
VOID
IPSecCleanupLarvalSA(
IN PSA_TABLE_ENTRY pSA
);
VOID
IPSecDeleteLarvalSA(
IN PSA_TABLE_ENTRY pSA
);
VOID
IPSecDeleteInboundSA(
IN PSA_TABLE_ENTRY pInboundSA
);
VOID
IPSecExpireInboundSA(
IN PSA_TABLE_ENTRY pInboundSA
);
NTSTATUS
IPSecCheckInboundSA(
IN PSA_STRUCT pSAStruct,
IN PSA_TABLE_ENTRY pSA
);
BOOLEAN
IPSecIsWeakDESKey(
IN PUCHAR Key
);
BOOLEAN
IPSecIsWeak3DESKey(
IN PUCHAR Key
);
NTSTATUS
IPSecPopulateSA(
IN PSA_STRUCT pSAStruct,
IN ULONG KeyLen,
IN PSA_TABLE_ENTRY pSA
);
NTSTATUS
IPSecCreateSA(
OUT PSA_TABLE_ENTRY *ppSA
);
PSA_TABLE_ENTRY
IPSecLookupSABySPI(
IN tSPI SPI,
IN IPAddr DestAddr
);
PSA_TABLE_ENTRY
IPSecLookupSABySPIWithLock(
IN tSPI SPI,
IN IPAddr DestAddr
);
NTSTATUS
IPSecLookupSAByAddr(
IN ULARGE_INTEGER uliSrcDstAddr,
IN ULARGE_INTEGER uliProtoSrcDstPort,
OUT PFILTER *ppFilter,
OUT PSA_TABLE_ENTRY *ppSA,
OUT PSA_TABLE_ENTRY *ppNextSA,
OUT PSA_TABLE_ENTRY *ppTunnelSA,
IN BOOLEAN fOutbound,
IN BOOLEAN fFWPacket,
IN BOOLEAN fBypass
);
NTSTATUS
IPSecLookupTunnelSA(
IN ULARGE_INTEGER uliSrcDstAddr,
IN ULARGE_INTEGER uliProtoSrcDstPort,
OUT PFILTER *ppFilter,
OUT PSA_TABLE_ENTRY *ppSA,
IN BOOLEAN fOutbound
);
NTSTATUS
IPSecLookupMaskedSA(
IN ULARGE_INTEGER uliSrcDstAddr,
IN ULARGE_INTEGER uliProtoSrcDstPort,
OUT PFILTER *ppFilter,
OUT PSA_TABLE_ENTRY *ppSA,
IN BOOLEAN fOutbound
);
NTSTATUS
IPSecAllocateSPI(
OUT tSPI * pSpi,
IN PSA_TABLE_ENTRY pSA
);
NTSTATUS
IPSecNegotiateSA(
IN PFILTER pFilter,
IN ULARGE_INTEGER uliSrcDstAddr,
IN ULARGE_INTEGER uliProtoSrcDstPort,
IN ULONG NewMTU,
OUT PSA_TABLE_ENTRY *ppSA,
IN UCHAR DestType
);
VOID
IPSecFlushQueuedPackets(
IN PSA_TABLE_ENTRY pSA,
IN NTSTATUS status
);
NTSTATUS
IPSecInsertOutboundSA(
IN PSA_TABLE_ENTRY pSA,
IN PIPSEC_ACQUIRE_CONTEXT pAcquireCtx,
IN BOOLEAN fTunnelFilter
);
NTSTATUS
IPSecAddSA(
IN PIPSEC_ADD_SA pAddSA,
IN ULONG TotalSize
);
NTSTATUS
IPSecUpdateSA(
IN PIPSEC_UPDATE_SA pUpdateSA,
IN ULONG TotalSize
);
VOID
IPSecRefSA(
IN PSA_TABLE_ENTRY pSA
);
VOID
IPSecDerefSA(
IN PSA_TABLE_ENTRY pSA
);
VOID
IPSecStopSATimers(
);
VOID
IPSecFlushLarvalSAList(
);
NTSTATUS
IPSecDeleteSA(
IN PIPSEC_DELETE_SA pDeleteSA
);
NTSTATUS
IPSecExpireSA(
IN PIPSEC_EXPIRE_SA pExpireSA
);
VOID
IPSecSAExpired(
IN PIPSEC_TIMER pTimer,
IN PVOID Context
);
VOID
IPSecFillSAInfo(
IN PSA_TABLE_ENTRY pSA,
OUT PIPSEC_SA_INFO pBuf
);
NTSTATUS
IPSecEnumSAs(
IN PIRP pIrp,
OUT PULONG pBytesCopied
);
VOID
IPSecReaper(
IN PIPSEC_TIMER pTimer,
IN PVOID Context
);
VOID
IPSecReapIdleSAs(
);
VOID
IPSecFlushEventLog(
IN PIPSEC_TIMER pTimer,
IN PVOID Context
);
NTSTATUS
IPSecQuerySpi(
IN OUT PIPSEC_QUERY_SPI pQuerySpi
);
NTSTATUS
IPSecSetOperationMode(
IN PIPSEC_SET_OPERATION_MODE pSetOperationMode
);
NTSTATUS
IPSecInitializeTcpip(
IN PIPSEC_SET_TCPIP_STATUS pSetTcpipStatus
);
NTSTATUS
IPSecDeinitializeTcpip(
VOID
);
NTSTATUS
IPSecSetTcpipStatus(
IN PIPSEC_SET_TCPIP_STATUS pSetTcpipStatus
);
NTSTATUS
IPSecResetCacheTable(
VOID
);
NTSTATUS
IPSecPurgeFilterSAs(
IN PFILTER pFilter
);
NTSTATUS
IPSecSetupSALifetime(
IN PSA_TABLE_ENTRY pSA
);
BOOLEAN
IPSecMatchSATemplate(
IN PSA_TABLE_ENTRY pSA,
IN PIPSEC_QM_SA pSATemplate
);