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 ヘッダーの [プロトコル] フィールドと同じです。 プロトコル が 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 に対してのみ指定されます。 DestTunnelAddr は、パケットのトランスポート部分に適用される SA に対して 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 で使用されます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddndis.h (Ndis.h を含む) |