OFFLOAD_IPSEC_ADD_SA 結構 (ntddndis.h)
OFFLOAD_IPSEC_ADD_SA結構包含迷你埠驅動程式新增至 NIC 的每個安全性關聯 (SA) 資訊。
語法
typedef struct _OFFLOAD_IPSEC_ADD_SA {
IPAddr SrcAddr;
IPMask SrcMask;
IPAddr DestAddr;
IPMask DestMask;
ULONG Protocol;
USHORT SrcPort;
USHORT DestPort;
IPAddr SrcTunnelAddr;
IPAddr DestTunnelAddr;
USHORT Flags;
SHORT NumSAs;
OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
HANDLE OffloadHandle;
ULONG KeyLen;
UCHAR KeyMat[1];
} OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;
成員
SrcAddr
來源主機的IP位址 (傳送封包的主機) 。
SrcMask
來源IP位址的子網掩碼。
DestAddr
目的地主機的IP位址 (接收封包的主機) 。
DestMask
目的地 IP 位址的子網掩碼。
Protocol
IP 通訊協定。 您可以指定 IP 通訊協定類型的任何組合, (例如 TCP、UDP 或 ICMP) 。 通訊 協定 的編碼方式與IP標頭中 [通訊協定] 字段的編碼方式相同。 如果 Protocol 設定為零,則 SA 會套用至任何 IP 通訊協定。
SrcPort
來源 TCP 或 UDP 連接埠。 如果 SrcPort 設定為零,則 SA 會套用至任何來源 TCP/UDP 埠。
DestPort
目的地 TCP 或 UDP 連接埠。 如果 DestPort 設定為零,SA 會套用至任何來源 TCP/UDP 埠。
SrcTunnelAddr
通道的來源端點IP位址,例如連接器。 迷你埠驅動程式會使用
SrcTunnelAddr 作為 SA 上傳送之封包之通道 IP 標頭的來源位址。
只有套用至封包通道部分的 SA 才會指定 SrcTunnelAddr。
針對套用至封包之傳輸部分的SA,SrcTunnelAddr 會設定為零。
DestTunnelAddr
通道的目的地端點IP位址,例如連接器。 迷你埠驅動程式會使用 DestTunnelAddr 作為SA上所傳送封包之通道IP標頭的目的地位址。 DestTunnelAddr 只會針對套用至封包通道部分的 SA 指定。 適用於封包傳輸部分的 SA,DestTunnelAddr 會設定為零。
Flags
位掩碼,指出要新增的 SA 是輸入或輸出 SA,如下所示:
OFFLOAD_INBOUND_SA
指定輸入 SA。
OFFLOAD_OUTBOUND_SA
指定輸出SA。
NumSAs
SecAssoc 陣列中的項目數目。 陣列中的每個元素都是 OFFLOAD_SECURITY_ASSOCIATION 結構。
SecAssoc[OFFLOAD_MAX_SAS]
可變長度陣列,其中包含SA (AH或ESP) 之因特網通訊協定安全性 (IPsec) 作業的相關信息。 每個 IPsec 作業的資訊會格式化為OFFLOAD_SECURITY_ASSOCIATION結構。
TCP/IP 傳輸會在 SecAssoc 的緩衝區中指定一或兩個OFFLOAD_SECURITY_ASSOCIATION結構。 每個OFFLOAD_SECURITY_ASSOCIATION結構都會指出要使用結構中所指定 SA 的作業驗證或加密/解密類型。 陣列中OFFLOAD_SECURITY_ASSOCIATION結構的順序表示迷你埠驅動程序應該針對每個 SA 執行作業的順序。 僅支援一種作業組合:加密/解密 (ESP) 後面接著驗證 (AH) 。
OffloadHandle
新建立之 SA 的句柄。 迷你埠驅動程式會在完成 之前提供此句柄
OID_TCP_TASK_IPSEC_ADD_SA 要求。
TCP/IP 傳輸必須在 NDIS_IPSEC_PACKET_INFO 結構中指定此句柄,才能將傳送封包傳遞至迷你埠驅動程式。 使用 刪除 SA 時,TCP/IP 傳輸也必須指定此句柄 OID_TCP_TASK_IPSEC_DELETE_SA 要求。
KeyLen
KeyMat 緩衝區的長度,以位元組為單位。
KeyMat[1]
可變長度陣列,包含 SecAssoc 所指定之 SA 的索引鍵。 如果機密性 (加密/解密) 演算法和完整性 (驗證) 演算法是由 的 ConfAlgo 和 IntegrityAlgo 成員所指定 OFFLOAD_SECURITY_ASSOCIATION 結構中, KeyMat 的緩衝區會先包含確認演算法的重要資訊,然後緊接著完整性演算法的重要資訊。
在 KeyMat 緩衝區中每個金鑰的長度是由指定機密性或完整性演算法之OFFLOAD_ALGO_INFO結構中的 algoKeylen 所指定。 (OFFLOAD_ALGO_INFO 結構是 OFFLOAD_SECURITY_ASSOCIATION structure 的成員。)
備註
OFFLOAD_IPSEC_ADD_SA 結構用於 OID_TCP_TASK_IPSEC_ADD_SA OID。
規格需求
需求 | 值 |
---|---|
標頭 | ntddndis.h (包含 Ndis.h) |