estrutura OFFLOAD_IPSEC_ADD_SA (ntddndis.h)

A estrutura OFFLOAD_IPSEC_ADD_SA contém informações para cada SA (associação de segurança) que um driver de miniporto adiciona a uma NIC.

Sintaxe

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;

Membros

SrcAddr

O endereço IP do host de origem (o host que envia os pacotes).

SrcMask

A máscara de sub-rede para o endereço IP de origem.

DestAddr

O endereço IP do host de destino (o host que recebe os pacotes).

DestMask

A máscara de sub-rede para o endereço IP de destino.

Protocol

O protocolo IP. Você pode especificar qualquer combinação de tipos de protocolo IP (como TCP, UDP ou ICMP). A codificação de Protocolo é idêntica à do campo Protocolo em um cabeçalho IP. Se Protocol for definido como zero, a SA se aplicará a qualquer protocolo IP.

SrcPort

Uma porta TCP ou UDP de origem. Se SrcPort estiver definido como zero, a SA se aplicará a qualquer porta TCP/UDP de origem.

DestPort

Uma porta TCP ou UDP de destino. Se DestPort for definido como zero, a SA se aplicará a qualquer porta TCP/UDP de origem.

SrcTunnelAddr

O endereço IP do ponto de extremidade de origem, como um conector, de um túnel. O driver de miniporte usa
SrcTunnelAddr como o endereço de origem do cabeçalho IP do túnel de pacotes enviados na SA. SrcTunnelAddr é especificado apenas para uma SA que se aplica à parte do túnel de um pacote. SrcTunnelAddr é definido como zero para uma SA que se aplica à parte de transporte de um pacote.

DestTunnelAddr

O endereço IP do ponto de extremidade de destino, como um conector, de um túnel. O driver de miniporto usa DestTunnelAddr como o endereço de destino para o cabeçalho IP do túnel de pacotes enviados na SA. DestTunnelAddr é especificado apenas para uma SA que se aplica à parte do túnel de um pacote. DestTunnelAddr é definido como zero para uma SA que se aplica à parte de transporte de um pacote.

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:

OFFLOAD_INBOUND_SA

Especifica uma SA de entrada.

OFFLOAD_OUTBOUND_SA

Especifica uma SA de saída.

NumSAs

O número de elementos na matriz SecAssoc . Cada elemento na matriz é um OFFLOAD_SECURITY_ASSOCIATION estrutura.

SecAssoc[OFFLOAD_MAX_SAS]

Uma matriz de comprimento variável que contém as informações sobre as operações de segurança de protocolo IPsec (AH ou ESP) para a SA. As informações para cada operação IPsec são formatadas como uma estrutura OFFLOAD_SECURITY_ASSOCIATION.

O transporte TCP/IP especifica uma ou duas estruturas OFFLOAD_SECURITY_ASSOCIATION no buffer em SecAssoc . Cada estrutura OFFLOAD_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 OFFLOAD_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: criptografia/descriptografia (ESP) seguida por AH (autenticação).

OffloadHandle

O identificador para a SA recém-criada. O driver de miniporte fornece esse identificador antes de concluir o
OID_TCP_TASK_IPSEC_ADD_SA solicitação. O transporte TCP/IP deve especificar esse identificador na estrutura NDIS_IPSEC_PACKET_INFO 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_DELETE_SA solicitação.

KeyLen

O comprimento, em bytes, do buffer em KeyMat .

KeyMat[1]

Uma matriz de comprimento variável que contém chaves para os SAs especificados em SecAssoc . Se um algoritmo de confidencialidade (criptografia/descriptografia) e um algoritmo de integridade (autenticação) forem especificados pelos membros ConfAlgo e IntegrityAlgo de um OFFLOAD_SECURITY_ASSOCIATION estrutura, o buffer em KeyMat contém informações importantes para o algoritmo de confirmação primeiro, seguido imediatamente por informações de chave para o algoritmo de integridade.

O comprimento de cada chave no buffer em KeyMat é especificado por algoKeylen na estrutura OFFLOAD_ALGO_INFO que especifica o algoritmo de confidencialidade ou integridade. (Uma estrutura OFFLOAD_ALGO_INFO é membro de uma estrutura OFFLOAD_SECURITY_ASSOCIATION.)

Comentários

A estrutura OFFLOAD_IPSEC_ADD_SA é usada no OID OID_TCP_TASK_IPSEC_ADD_SA .

Requisitos

Requisito Valor
Cabeçalho ntddndis.h (inclua Ndis.h)

Confira também

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA