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 de 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 tipo da estrutura que de Cabeçalho especifica para NDIS_OBJECT_TYPE_DEFAULT, o membro de Revisão de para NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1 e o membro tamanho do para 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 da lista.
NumExtHdrs
O número de cabeçalhos de extensão IPsec. Esse membro pode ser um dos seguintes valores.
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 e 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 de 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 miniporto 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 miniporto. 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 de ESP UDP. 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 está encapsulada em 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 ambas) para a SA. O número de elementos fornecidos é especificado no membro NumExtHdrs. As informações de 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 na qual o driver de miniporto deve executar as operações para cada SA. Há suporte apenas para uma combinação de operações: ESP (criptografia/descriptografia) seguido de autenticação (AH).
KeyLength
O comprimento, em bytes, do buffer em KeyData .
KeyData[1]
Uma matriz de comprimento variável que contém chaves para as SAs especificadas em SecAssoc. Se um algoritmo de criptografia e um algoritmo de autenticação forem especificados pelo EncryptionAlgorithm e AuthenticationAlgorithm membros 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 membros, respectivamente.
Observações
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 for definido como zero, os SAs especificados poderão se aplicar 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 |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.1 e 6.20. Para NDIS 6.30 e posterior, use IPSEC_OFFLOAD_V2_ADD_SA_EX. |
cabeçalho | ndis.h (inclua Ndis.h) |