OFFLOAD_IPSEC_ADD_SA structure (ntddndis.h)

La structure OFFLOAD_IPSEC_ADD_SA contient des informations pour chaque association de sécurité (SA) qu’un pilote miniport ajoute à une carte réseau.

Syntaxe

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;

Membres

SrcAddr

Adresse IP de l’hôte source (l’hôte qui envoie les paquets).

SrcMask

Masque de sous-réseau pour l’adresse IP source.

DestAddr

Adresse IP de l’hôte de destination (l’hôte recevant les paquets).

DestMask

Masque de sous-réseau pour l’adresse IP de destination.

Protocol

Protocole IP. Vous pouvez spécifier n’importe quelle combinaison de types de protocole IP (par exemple, TCP, UDP ou ICMP). L’encodage du protocole est identique à celui du champ Protocole dans un en-tête IP. Si Protocole est défini sur zéro, l’AS s’applique à n’importe quel protocole IP.

SrcPort

Port TCP ou UDP source. Si SrcPort est défini sur zéro, l’AS S’applique à n’importe quel port TCP/UDP source.

DestPort

Port TCP ou UDP de destination. Si DestPort est défini sur zéro, l’AS s’applique à n’importe quel port TCP/UDP source.

SrcTunnelAddr

Adresse IP du point de terminaison source, tel qu’un connecteur, d’un tunnel. Le pilote miniport utilise
SrcTunnelAddr comme adresse source pour l’en-tête IP du tunnel des paquets envoyés sur l’AS. SrcTunnelAddr est spécifié uniquement pour une SA qui s’applique à la partie tunnel d’un paquet. SrcTunnelAddr est défini sur zéro pour une SA qui s’applique à la partie transport d’un paquet.

DestTunnelAddr

Adresse IP du point de terminaison de destination, tel qu’un connecteur, d’un tunnel. Le pilote miniport utilise DestTunnelAddr comme adresse de destination pour l’en-tête IP du tunnel des paquets envoyés sur l’AS. DestTunnelAddr est spécifié uniquement pour une SA qui s’applique à la partie tunnel d’un paquet. DestTunnelAddr est défini sur zéro pour une SA qui s’applique à la partie transport d’un paquet.

Flags

Masque de bits qui indique si l’AS qui est ajoutée est une SA entrante ou sortante comme suit :

OFFLOAD_INBOUND_SA

Spécifie une SA entrante.

OFFLOAD_OUTBOUND_SA

Spécifie une SA sortante.

NumSAs

Nombre d’éléments dans le tableau SecAssoc . Chaque élément du tableau est un OFFLOAD_SECURITY_ASSOCIATION structure.

SecAssoc[OFFLOAD_MAX_SAS]

Tableau de longueur variable qui contient les informations sur les opérations de sécurité du protocole Internet (IPsec) (AH ou ESP) pour l’AS. Les informations relatives à chaque opération IPsec sont mises en forme en tant que structure OFFLOAD_SECURITY_ASSOCIATION.

Le transport TCP/IP spécifie une ou deux structures OFFLOAD_SECURITY_ASSOCIATION dans la mémoire tampon sur SecAssoc . Chaque structure OFFLOAD_SECURITY_ASSOCIATION indique le type d’opération (authentification ou chiffrement/déchiffrement) pour lequel l’accès partagé spécifié dans la structure doit être utilisé. L’ordre des structures OFFLOAD_SECURITY_ASSOCIATION dans le tableau indique l’ordre dans lequel le pilote miniport doit effectuer les opérations pour chaque SAP. Une seule combinaison d’opérations est prise en charge : chiffrement/déchiffrement (ESP) suivi de l’authentification (AH).

OffloadHandle

Handle de l’AS nouvellement créée. Le pilote miniport fournit cette poignée avant de terminer le
OID_TCP_TASK_IPSEC_ADD_SA demande. Le transport TCP/IP doit spécifier ce handle dans la structure NDIS_IPSEC_PACKET_INFO avant de transmettre un paquet d’envoi au pilote miniport. Le transport TCP/IP doit également spécifier ce handle lors de la suppression de l’AS avec un OID_TCP_TASK_IPSEC_DELETE_SA demande.

KeyLen

Longueur, en octets, de la mémoire tampon sur KeyMat .

KeyMat[1]

Tableau de longueur variable qui contient des clés pour les autorités de sécurité spécifiées dans SecAssoc . Si un algorithme de confidentialité (chiffrement/déchiffrement) et un algorithme d’intégrité (authentification) sont spécifiés par les membres ConfAlgo et IntegrityAlgo d’un OFFLOAD_SECURITY_ASSOCIATION structure, la mémoire tampon sur KeyMat contient d’abord des informations de clé pour l’algorithme de confirmation, suivies immédiatement d’informations de clé pour l’algorithme d’intégrité.

La longueur de chaque clé dans la mémoire tampon sur KeyMat est spécifiée par algoKeylen dans la structure OFFLOAD_ALGO_INFO qui spécifie l’algorithme de confidentialité ou d’intégrité. (Une structure OFFLOAD_ALGO_INFO est membre d’une structure OFFLOAD_SECURITY_ASSOCIATION.)

Remarques

La structure OFFLOAD_IPSEC_ADD_SA est utilisée dans l’OID OID_TCP_TASK_IPSEC_ADD_SA .

Configuration requise

Condition requise Valeur
En-tête ntddndis.h (include Ndis.h)

Voir aussi

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA