estructura IPSEC_OFFLOAD_V2_ADD_SA (ndis.h)
[La característica IPsec Task Offload está en desuso y no se debe usar.]
La estructura IPSEC_OFFLOAD_V2_ADD_SA define información sobre una asociación de seguridad (SA) que un controlador de miniporte debe agregar a una NIC.
Sintaxis
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;
Miembros
Header
Estructura NDIS_OBJECT_HEADER de la estructura IPSEC_OFFLOAD_V2_ADD_SA. Establezca el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_DEFAULT, el miembro Revision en NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1 y el miembro Size en NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1.
Next
Puntero a una estructura IPSEC_OFFLOAD_V2_ADD_SA que es la siguiente estructura de una lista vinculada. Si el puntero es NULL, la estructura actual es la última estructura de la lista.
NumExtHdrs
Número de encabezados de extensión IPsec. Este miembro puede ser uno de los siguientes valores.
Tipo de seguridad | Encabezados de extensión |
---|---|
Solo autenticación de AH | 1 |
Solo autenticación esp | 1 |
Solo cifrado esp | 1 |
Autenticación esp más cifrado | 1 |
Autenticación de AH plus ESP más cifrado | 2 |
UDP ESP | 1 |
Flags
Máscara de bits que indica si la SA que se va a agregar es una SA entrante o saliente como se indica a continuación:
IPSEC_OFFLOAD_V2_IPv6
Si se establece esta marca, las direcciones son IPv6. De lo contrario, las direcciones son IPv4.
IPSEC_OFFLOAD_V2_INBOUND
Si se establece esta marca, la SA será entrante. De lo contrario, la SA es saliente.
IPv4Endpoints
Direcciones del punto de conexión IPv4. Esta estructura contiene los siguientes miembros:
IPv4Endpoints.SrcAddr
Dirección IPv4 del host de origen (el host que envía los paquetes).
IPv4Endpoints.DestAddr
Dirección IPv4 del host de destino (el host que recibe los paquetes).
IPv6Endpoints
Direcciones del punto de conexión IPv6. Esta estructura contiene los siguientes miembros:
IPv6Endpoints.SrcAddr[16]
Dirección IPv6 del host de origen (el host que envía los paquetes).
IPv6Endpoints.DestAddr[16]
Dirección IPv6 del host de destino (el host que recibe los paquetes).
OffloadHandle
Identificador de la SA recién creada. El controlador de minipuerto proporciona este controlador antes de completar el
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA solicitud. El transporte TCP/IP debe especificar este identificador en el
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO o NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO estructura antes de pasar un paquete de envío al controlador de minipuerto. El transporte TCP/IP también debe especificar este identificador al eliminar la SA con un OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA solicitud.
UdpEspEncapsulation
Tipo de encapsulación de UDP ESP. Este miembro puede ser una o varias de las marcas siguientes:
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
No se usa ninguna encapsulación UDP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
UDP encapsula un paquete encapsulado en modo de transporte esp.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
La parte del modo de túnel de un paquete está encapsulada por UDP. La parte del modo de transporte del paquete no está encapsulada por UDP y no está protegida por ESP.
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
La parte del modo de túnel de un paquete está encapsulada por UDP. La parte del modo de transporte de un paquete no está encapsulada por UDP, pero está protegida por ESP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
La parte del modo de túnel de un paquete no está encapsulada por UDP. La parte del modo de transporte de un paquete está encapsulada por UDP y protegida por ESP.
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
Matriz con dos elementos que contienen la información sobre las operaciones IPsec (AH, ESP o ambas) para la SA. El número de elementos proporcionados se especifica en el miembro NumExtHdrs . La información de cada operación de IPsec tiene el formato de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estructura, que se describe a continuación.
El transporte TCP/IP especifica una o dos estructuras de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION en el búfer en SecAssoc . Cada estructura de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION indica el tipo de operación--autenticación o cifrado/descifrado- para el que se va a usar la SA especificada en la estructura. El orden de las estructuras de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION de la matriz indica el orden en el que el controlador de miniporte debe realizar las operaciones para cada SA. Solo se admite una combinación de operaciones: cifrado y descifrado (ESP) seguido de autenticación (AH).
KeyLength
Longitud, en bytes, del búfer en KeyData .
KeyData[1]
Matriz de longitud variable que contiene claves para las SAs que se especifican en SecAssoc . Si tanto un algoritmo de cifrado como un algoritmo de autenticación se especifican mediante los miembros EncryptionAlgorithm y AuthenticationAlgorithm de un IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estructura, el búfer de KeyData contiene información de clave para una seguida de la otra. Los miembros KeyOffsetBytes y KeyLength especifican el principio y la longitud de la clave, respectivamente.
Comentarios
Esta estructura está obsoleta, use IPSEC_OFFLOAD_V2_ADD_SA_EX en su lugar.
La estructura IPSEC_OFFLOAD_V2_ADD_SA especifica una SA de seguridad que se debe agregar y un puntero a la siguiente estructura IPSEC_OFFLOAD_V2_ADD_SA de una lista vinculada. La estructura de IPSEC_OFFLOAD_V2_ADD_SA se usa con OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID.
La estructura IPSEC_OFFLOAD_V2_ADD_SA especifica el origen y el destino, así como los protocolos IP a los que se aplican las SAs. Este filtro pertenece a una conexión en modo de transporte, es decir, una conexión de un extremo a otro entre dos hosts. Si la conexión especificada se realiza a través de un túnel, se especifican las direcciones de origen y destino del túnel.
Si un miembro se establece en cero, ese parámetro no se usa para filtrar los paquetes de las SAs especificadas. Por ejemplo, si SrcAddr se establece en cero, las SAs especificadas se pueden aplicar a un paquete que contenga cualquier dirección de origen. Si todos los parámetros de filtro se establecen en cero, las SAs especificadas se aplican a cualquier host de origen que envíe cualquier tipo de paquete a cualquier host de destino.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.1 y 6.20. Para NDIS 6.30 y versiones posteriores, use IPSEC_OFFLOAD_V2_ADD_SA_EX. |
Encabezado | ndis.h (incluya Ndis.h) |