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