// ndis.h
typedef struct _IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION {
ULONG Flags;
IPSEC_OFFLOAD_V2_OPERATION Operation;
IPSEC_OFFLOAD_V2_SPI_TYPE Spi;
IPSEC_OFFLOAD_V2_ALGORITHM_INFO AuthenticationAlgorithm;
IPSEC_OFFLOAD_V2_ALGORITHM_INFO EncryptionAlgorithm;
ULONG SequenceNumberHighOrder;
} IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION, *PIPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION;
View the official Windows Driver Kit DDI referenceNo description available.
[The IPsec Task Offload feature is deprecated and should not be used.]
The IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure specifies a single security association (SA).
FlagsA set of flags that can be combined with a bitwise OR operation. Otherwise, set this member to zero. The following values are valid:
Specifies ESN SA.
OperationThe IPsec operation for which the SA is to be used. The IPSEC_OFFLOAD_V2_OPERATION enumeration defines the supported operations.
SpiA 32 bit security parameters index (SPI) for the SA.
AuthenticationAlgorithmThe integrity (authentication) algorithm for the SA, formatted as an IPSEC_OFFLOAD_V2_ALGORITHM_INFO structure.
EncryptionAlgorithmThe confidentiality (encryption/decryption) algorithm for the SA, formatted as an IPSEC_OFFLOAD_V2_ALGORITHM_INFO structure.
Note For AES-GCM, the EncryptionAlgorithm member contains the key information. The AuthenticationAlgorithm member of IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION, and the key length and offset in IPSEC_OFFLOAD_V2_ALGORITHM_INFO, should not be used.
SequenceNumberHighOrderThe sequence number high-order extension. This sequence number high-order extension is defined in RFC 4304. This member represents the high-order portion of the sequence number that is not included in the IPsec header.
The IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure is an element in the SecAssoc variable-length array in the IPSEC_OFFLOAD_V2_ADD_SA structure. The number of SAs in the IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION structure is specified in the NumExtHdrs member of IPSEC_OFFLOAD_V2_ADD_SA.
A SecAssoc element that is specified for use in processing authentication headers (AH) will have an operation type (the Operation member) of IPsecOffloadV2Ah and will have the authentication algorithm in the AuthenticationAlgorithm member. The SA will not have an encryption algorithm in the EncryptionAlgorithm member, so EncryptionAlgorithm will contain zeros.
Note For AES-GCM, the EncryptionAlgorithm member contains the key information. The AuthenticationAlgorithm member of IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION, and the key length and offset in IPSEC_OFFLOAD_V2_ALGORITHM_INFO, should not be used.
A SecAssoc element that is specified for use in processing encapsulating security payloads (ESPs) will have an operation type (the Operation member) of IPsecOffloadV2Esp and can have an authentication algorithm, an encryption algorithm, or both. Note that for combined mode algorithms, only the EncryptionAlgorithm member will be specified.
IPSEC_OFFLOAD_V2_ALGORITHM_INFO