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) |