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 など) の任意の組み合わせを指定できます。 Protocol のエンコードは、IP ヘッダーの [プロトコル] フィールドと同じです。 Protocol が 0 に設定されている場合、SA はすべての IP プロトコルに適用されます。
SrcPort
ソース TCP または UDP ポート。 SrcPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。
DestPort
宛先 TCP または UDP ポート。 DestPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。
SrcTunnelAddr
トンネルのソース エンドポイント (コネクタなど) の IP アドレス。 ミニポート ドライバーは、次を使用します。
SrcTunnelAddr は、SA で送信されるパケットのトンネル IP ヘッダーの送信元アドレスです。
SrcTunnelAddr は、パケットのトンネル部分に適用される SA に対してのみ指定されます。
SrcTunnelAddr は、パケットのトランスポート部分に適用される SA に対して 0 に設定されます。
DestTunnelAddr
トンネルの宛先エンドポイント (コネクタなど) の IP アドレス。 ミニポート ドライバーは、SA で送信されるパケットのトンネル IP ヘッダーの宛先アドレスとして DestTunnelAddr を使用します。 DestTunnelAddr は、パケットのトンネル部分に適用される SA に対してのみ指定されます。 パケットのトランスポート部分に適用される SA の場合、DestTunnelAddr は 0 に設定されます。
Flags
追加される SA が受信 SA か送信 SA かを示すビットマスクを次に示します。
OFFLOAD_INBOUND_SA
受信 SA を指定します。
OFFLOAD_OUTBOUND_SA
送信 SA を指定します。
NumSAs
SecAssoc 配列内の要素の数。 配列内の各要素は、 OFFLOAD_SECURITY_ASSOCIATION 構造体。
SecAssoc[OFFLOAD_MAX_SAS]
SA のインターネット プロトコル セキュリティ (IPsec) 操作 (AH または ESP) に関する情報を含む可変長配列。 各 IPsec 操作の情報は、OFFLOAD_SECURITY_ASSOCIATION構造として書式設定されます。
TCP/IP トランスポートは、 SecAssoc のバッファー内の 1 つまたは 2 つのOFFLOAD_SECURITY_ASSOCIATION構造体を指定します。 各OFFLOAD_SECURITY_ASSOCIATION構造体は、構造体で指定された SA を使用する操作認証または暗号化/復号化の種類を示します。 配列内のOFFLOAD_SECURITY_ASSOCIATION構造体の順序は、ミニポート ドライバーが各 SA の操作を実行する順序を示します。 サポートされている操作の組み合わせは、暗号化/復号化 (ESP) とそれに続く認証 (AH) の 1 つだけです。
OffloadHandle
新しく作成された SA へのハンドル。 ミニポート ドライバーは、完了する前に、このハンドルを提供します。
OID_TCP_TASK_IPSEC_ADD_SA 要求。
TCP/IP トランスポートは、ミニポート ドライバーに送信パケットを渡す前に 、NDIS_IPSEC_PACKET_INFO 構造体でこのハンドルを指定する必要があります。 TCP/IP トランスポートでは、 を使用して SA を削除するときにも、このハンドルを指定する必要があります。 OID_TCP_TASK_IPSEC_DELETE_SA 要求。
KeyLen
KeyMat のバッファーの長さ (バイト単位)。
KeyMat[1]
SecAssoc で指定された CA のキーを含む可変長配列。 機密性 (暗号化/暗号化解除) アルゴリズムと整合性 (認証) アルゴリズムの両方が、 の ConfAlgo メンバーと IntegrityAlgo メンバーによって指定されている場合 構造OFFLOAD_SECURITY_ASSOCIATION 、 KeyMat のバッファーには、最初に確認アルゴリズムのキー情報が含まれており、その直後に整合性アルゴリズムのキー情報が格納されます。
KeyMat のバッファー内の各キーの長さは、機密性または整合性アルゴリズムを指定するOFFLOAD_ALGO_INFO構造体で algoKeylen によって指定されます。 (OFFLOAD_ALGO_INFO構造体は、OFFLOAD_SECURITY_ASSOCIATION構造体のメンバーです。
注釈
OFFLOAD_IPSEC_ADD_SA構造体は、 OID_TCP_TASK_IPSEC_ADD_SA OID で使用されます。
要件
要件 | 値 |
---|---|
Header | ntddndis.h (Ndis.h を含む) |