estrutura IPSEC_OFFLOAD_V2_ADD_SA (ndis.h)
[O recurso de descarregamento de tarefas IPsec foi preterido e não deve ser usado.]
A estrutura IPSEC_OFFLOAD_V2_ADD_SA define informações sobre uma SA (associação de segurança) que um driver de miniporto deve adicionar a uma NIC.
Sintaxe
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;
Membros
Header
A estrutura NDIS_OBJECT_HEADER para a estrutura IPSEC_OFFLOAD_V2_ADD_SA. Defina o membro Type da estrutura especificada por Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT, o membro Revision como NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1 e o membro Size como NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1.
Next
Um ponteiro para uma estrutura IPSEC_OFFLOAD_V2_ADD_SA que é a próxima estrutura em uma lista vinculada. Se o ponteiro for NULL, a estrutura atual será a última estrutura na lista.
NumExtHdrs
O número de cabeçalhos de extensão IPsec. Esse membro pode ser um dos valores a seguir.
Tipo de segurança | Cabeçalhos de extensão |
---|---|
Somente autenticação AH | 1 |
Somente autenticação ESP | 1 |
Somente criptografia ESP | 1 |
Autenticação ESP mais criptografia | 1 |
Autenticação AH mais ESP mais criptografia | 2 |
UDP ESP | 1 |
Flags
Uma máscara de bits que indica se a SA que está sendo adicionada é uma SA de entrada ou saída da seguinte maneira:
IPSEC_OFFLOAD_V2_IPv6
Se esse sinalizador estiver definido, os endereços serão IPv6. Caso contrário, os endereços são IPv4
IPSEC_OFFLOAD_V2_INBOUND
Se esse sinalizador estiver definido, a SA será de entrada. Caso contrário, a SA será de saída.
IPv4Endpoints
Os endereços de ponto de extremidade IPv4. Essa estrutura contém os seguintes membros:
IPv4Endpoints.SrcAddr
O endereço IPv4 do host de origem (o host que está enviando os pacotes).
IPv4Endpoints.DestAddr
O endereço IPv4 do host de destino (o host que está recebendo os pacotes).
IPv6Endpoints
Os endereços de ponto de extremidade IPv6. Essa estrutura contém os seguintes membros:
IPv6Endpoints.SrcAddr[16]
O endereço IPv6 do host de origem (o host que está enviando os pacotes).
IPv6Endpoints.DestAddr[16]
O endereço IPv6 do host de destino (o host que está recebendo os pacotes).
OffloadHandle
O identificador para a SA recém-criada. O driver de miniporte fornece esse identificador antes de concluir o
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA solicitação. O transporte TCP/IP deve especificar esse identificador no
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO ou NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO estrutura antes de passar um pacote de envio para o driver de miniport. O transporte TCP/IP também deve especificar esse identificador ao excluir a SA com um OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA solicitação.
UdpEspEncapsulation
O tipo de encapsulamento UDP ESP. Esse membro pode ser um ou mais dos seguintes sinalizadores:
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
Nenhum encapsulamento UDP é usado.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
Um pacote de modo de transporte encapsulado por ESP é encapsulado pelo UDP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
A parte do modo de túnel de um pacote é encapsulada por UDP. A parte do modo de transporte do pacote não é encapsulada por UDP e não é protegida por ESP.
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
A parte do modo de túnel de um pacote é encapsulada por UDP. A parte do modo de transporte de um pacote não é encapsulada por UDP, mas é protegida por ESP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
A parte do modo de túnel de um pacote não é encapsulada por UDP. A parte do modo de transporte de um pacote é encapsulada por UDP e protegida por ESP.
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
Uma matriz com dois elementos que contêm as informações sobre as operações IPsec (AH, ESP ou ambos) para a SA. O número de elementos fornecidos é especificado no membro NumExtHdrs . As informações para cada operação IPsec são formatadas como um IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estrutura, que é descrita abaixo.
O transporte TCP/IP especifica uma ou duas estruturas IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION no buffer em SecAssoc . Cada estrutura IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION indica o tipo de operação – autenticação ou criptografia/descriptografia – para o qual a SA especificada na estrutura deve ser usada. A ordem das estruturas de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION na matriz indica a ordem em que o driver de miniporto deve executar as operações para cada SA. Há suporte apenas para uma combinação de operações: criptografia/descriptografia (ESP) seguida por AH (autenticação).
KeyLength
O comprimento, em bytes, do buffer em KeyData .
KeyData[1]
Uma matriz de comprimento variável que contém chaves para os SAs especificados em SecAssoc . Se um algoritmo de criptografia e um algoritmo de autenticação forem especificados pelos membros EncryptionAlgorithm e AuthenticationAlgorithm de um IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estrutura, o buffer em KeyData contém informações de chave para um seguido pelo outro. O início e o comprimento da chave são especificados pelos membros KeyOffsetBytes e KeyLength , respectivamente.
Comentários
Essa estrutura é obsoleta, use IPSEC_OFFLOAD_V2_ADD_SA_EX em vez disso.
A estrutura IPSEC_OFFLOAD_V2_ADD_SA especifica uma SA de segurança que deve ser adicionada e um ponteiro para a próxima estrutura IPSEC_OFFLOAD_V2_ADD_SA em uma lista vinculada. A estrutura IPSEC_OFFLOAD_V2_ADD_SA é usada com o OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID.
A estrutura IPSEC_OFFLOAD_V2_ADD_SA especifica a origem e o destino, bem como os protocolos IP aos quais os SAs se aplicam. Esse filtro pertence a uma conexão de modo de transporte, ou seja, uma conexão de ponta a ponta entre dois hosts. Se a conexão especificada for feita por meio de um túnel, os endereços de origem e de destino do túnel serão especificados.
Se um membro for definido como zero, esse parâmetro não será usado para filtrar pacotes para os SAs especificados. Por exemplo, se SrcAddr estiver definido como zero, os SAs especificados poderão ser aplicados a um pacote que contenha qualquer endereço de origem. Se todos os parâmetros de filtro forem definidos como zero, os SAs especificados se aplicarão a qualquer host de origem que esteja enviando qualquer tipo de pacote para qualquer host de destino.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.1 e 6.20. Para o NDIS 6.30 e posterior, use IPSEC_OFFLOAD_V2_ADD_SA_EX. |
Cabeçalho | ndis.h (inclua Ndis.h) |