IPSEC_OFFLOAD_V2_ADD_SA structure (ndis.h)

[La fonctionnalité de déchargement de tâche IPsec est déconseillée et ne doit pas être utilisée.]

La structure IPSEC_OFFLOAD_V2_ADD_SA définit des informations sur une association de sécurité (SA) qu’un pilote miniport doit ajouter à une carte réseau.

Syntaxe

typedef struct _IPSEC_OFFLOAD_V2_ADD_SA {
  NDIS_OBJECT_HEADER                    Header;
  PIPSEC_OFFLOAD_V2_ADD_SA              Next;
  ULONG                                 NumExtHdrs;
  ULONG                                 Flags;
  union {
    struct {
      IPAddr SrcAddr;
      IPAddr DestAddr;
    } IPv4Endpoints;
    struct {
      UCHAR SrcAddr[16];
      UCHAR DestAddr[16];
    } IPv6Endpoints;
  };
  NDIS_HANDLE                           OffloadHandle;
  ULONG                                 UdpEspEncapsulation;
  IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS];
  ULONG                                 KeyLength;
  UCHAR                                 KeyData[1];
} IPSEC_OFFLOAD_V2_ADD_SA, *PIPSEC_OFFLOAD_V2_ADD_SA;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure IPSEC_OFFLOAD_V2_ADD_SA. Définissez le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_DEFAULT, le membre Revision sur NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1 et le membre Size sur NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1.

Next

Pointeur vers une structure IPSEC_OFFLOAD_V2_ADD_SA qui est la structure suivante dans une liste liée. Si le pointeur a la valeur NULL, la structure actuelle est la dernière structure de la liste.

NumExtHdrs

Nombre d’en-têtes d’extension IPsec. Ce membre peut être l’une des valeurs suivantes.

Type de sécurité En-têtes d’extension
Authentification AH uniquement 1
Authentification ESP uniquement 1
Chiffrement ESP uniquement 1
Authentification ESP plus chiffrement 1
AH plus l’authentification ESP et le chiffrement 2
UDP ESP 1

Flags

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

IPSEC_OFFLOAD_V2_IPv6

Si cet indicateur est défini, les adresses sont IPv6. Sinon, les adresses sont IPv4

IPSEC_OFFLOAD_V2_INBOUND

Si cet indicateur est défini, l’AS est entrante. Sinon, l’AS est sortante.

IPv4Endpoints

Adresses de point de terminaison IPv4. Cette structure contient les membres suivants :

IPv4Endpoints.SrcAddr

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

IPv4Endpoints.DestAddr

Adresse IPv4 de l’hôte de destination (l’hôte qui reçoit les paquets).

IPv6Endpoints

Adresses de point de terminaison IPv6. Cette structure contient les membres suivants :

IPv6Endpoints.SrcAddr[16]

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

IPv6Endpoints.DestAddr[16]

Adresse IPv6 de l’hôte de destination (l’hôte qui reçoit les paquets).

OffloadHandle

Handle de l’AS nouvellement créée. Le pilote miniport fournit cette poignée avant de terminer le
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA demande. Le transport TCP/IP doit spécifier ce handle dans le
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO ou NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO structure avant de passer 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_OFFLOAD_V2_DELETE_SA demande.

UdpEspEncapsulation

Type d’encapsulation UDP ESP. Ce membre peut être un ou plusieurs des indicateurs suivants :

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE

Aucune encapsulation UDP n’est utilisée.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT

Un paquet esp-encapsulé en mode transport est encapsulé par UDP.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL

La partie en mode tunnel d’un paquet est encapsulée UDP. La partie en mode transport du paquet n’est pas encapsulée par UDP et n’est pas protégée par ESP.

IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL

La partie en mode tunnel d’un paquet est encapsulée UDP. La partie en mode transport d’un paquet n’est pas encapsulée udp, mais protégée par ESP.

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL

La partie en mode tunnel d’un paquet n’est pas encapsulée udp. La partie en mode transport d’un paquet est encapsulée udp et protégée par ESP.

SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]

Tableau avec deux éléments qui contiennent les informations sur les opérations IPsec (AH, ESP ou les deux) pour l’AS. Le nombre d’éléments fournis est spécifié dans le membre NumExtHdrs . Les informations relatives à chaque opération IPsec sont au format IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure, qui est décrite ci-dessous.

Le transport TCP/IP spécifie une ou deux structures IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION dans la mémoire tampon sur SecAssoc . Chaque structure IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION indique le type d’opération (authentification ou chiffrement/déchiffrement) pour lequel l’AS spécifiée dans la structure doit être utilisée. L’ordre des structures IPSEC_OFFLOAD_V2_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).

KeyLength

Longueur, en octets, de la mémoire tampon dans KeyData .

KeyData[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 chiffrement et un algorithme d’authentification sont spécifiés par les membres EncryptionAlgorithm et AuthenticationAlgorithm d’un IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure, la mémoire tampon dans KeyData contient des informations de clé pour l’une suivie de l’autre. Le début et la longueur de la clé sont spécifiés par les membres KeyOffsetBytes et KeyLength , respectivement.

Remarques

Cette structure est obsolète, utilisez IPSEC_OFFLOAD_V2_ADD_SA_EX à la place.

La structure IPSEC_OFFLOAD_V2_ADD_SA spécifie une SA de sécurité qui doit être ajoutée et un pointeur vers la structure de IPSEC_OFFLOAD_V2_ADD_SA suivante dans une liste liée. La structure IPSEC_OFFLOAD_V2_ADD_SA est utilisée avec le OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID.

La structure IPSEC_OFFLOAD_V2_ADD_SA spécifie la source et la destination, ainsi que les protocoles IP auxquels s’appliquent les autorités de certification. Ce filtre concerne une connexion en mode transport, c’est-à-dire une connexion de bout en bout entre deux hôtes. Si la connexion spécifiée est établie via un tunnel, les adresses source et de destination du tunnel sont spécifiées.

Si un membre est défini sur zéro, ce paramètre n’est pas utilisé pour filtrer les paquets pour les autorités de sécurité spécifiées. Par exemple, si SrcAddr est défini sur zéro, les autorités de sécurité spécifiées peuvent s’appliquer à un paquet qui contient n’importe quelle adresse source. Si tous les paramètres de filtre sont définis sur zéro, les autorités de certification spécifiées s’appliquent à n’importe quel hôte source qui envoie n’importe quel type de paquet à n’importe quel hôte de destination.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.1 et 6.20. Pour NDIS 6.30 et versions ultérieures, utilisez IPSEC_OFFLOAD_V2_ADD_SA_EX.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

IPSEC_OFFLOAD_V2_ADD_SA_EX

NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION IPSEC_OFFLOAD_V2_ALGORITHM_INFO

NDIS_OBJECT_HEADER

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA