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