структура IPSEC_OFFLOAD_V2_ADD_SA (ndis.h)
[Функция разгрузки задачи IPsec устарела и не должна использоваться.]
Структура IPSEC_OFFLOAD_V2_ADD_SA определяет сведения об ассоциации безопасности (SA), которую должен добавить в сетевой адаптер драйвер минипорта.
Синтаксис
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;
Члены
Header
Структура NDIS_OBJECT_HEADER для структуры IPSEC_OFFLOAD_V2_ADD_SA. Задайте элемент типа структуры, заголовка, указывает NDIS_OBJECT_TYPE_DEFAULT, элемент редакции NDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1 и член размера NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1.
Next
Указатель на IPSEC_OFFLOAD_V2_ADD_SA структуру, которая является следующей структурой в связанном списке. Если указатель null, текущая структура является последней структурой в списке.
NumExtHdrs
Количество заголовков расширения IPsec. Этот элемент может быть одним из следующих значений.
Тип безопасности | Заголовки расширений |
---|---|
Только проверка подлинности AH | 1 |
Только проверка подлинности ESP | 1 |
Только шифрование ESP | 1 |
Проверка подлинности ESP и шифрование | 1 |
Проверка подлинности AH и ESP плюс шифрование | 2 |
UDP ESP | 1 |
Flags
Битовая маска, указывающая, является ли добавленный SA входящий или исходящий SA следующим образом:
IPSEC_OFFLOAD_V2_IPv6
Если этот флаг задан, адреса — IPv6. В противном случае адреса — IPv4
IPSEC_OFFLOAD_V2_INBOUND
Если этот флаг задан, sa входящий. В противном случае sa исходящий.
IPv4Endpoints
Адреса конечной точки IPv4. Эта структура содержит следующие элементы:
IPv4Endpoints.SrcAddr
IPv4-адрес исходного узла (узел, отправляющий пакеты).
IPv4Endpoints.DestAddr
IPv4-адрес конечного узла (узел, получающий пакеты).
IPv6Endpoints
Адреса конечной точки IPv6. Эта структура содержит следующие элементы:
IPv6Endpoints.SrcAddr[16]
IPv6-адрес исходного узла (узел, отправляющий пакеты).
IPv6Endpoints.DestAddr[16]
IPv6-адрес конечного узла (узел, получающий пакеты).
OffloadHandle
Дескриптор только что созданного SA. Минипорт драйвер предоставляет этот дескриптор перед завершением
запрос OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA. Транспорт TCP/IP должен указать этот дескриптор в
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO или
NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO структуру перед передачей пакета отправки в драйвер минипорта. Транспорт TCP/IP также должен указать этот дескриптор при удалении SA с помощью запрос OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA.
UdpEspEncapsulation
Тип инкапсуляции UDP ESP. Этот элемент может быть одним или несколькими из следующих флагов:
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
Не используется инкапсуляция UDP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
Инкапсулированный пакет режима транспорта инкапсулируется UDP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
Часть пакета в режиме туннеля инкапсулируется. Часть пакета в режиме транспорта не инкапсулирована инкапсулирована и не защищается ОТ ESP.
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
Часть пакета в режиме туннеля инкапсулируется. Часть транспортного режима пакета не является инкапсулированной, но защищенной ESP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
Часть пакета в режиме туннеля не инкапсулирована. Часть транспортного режима пакета инкапсулируется инкапсулируется и защищает ESP.
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
Массив с двумя элементами, содержащими сведения об операциях IPsec (AH, ESP или обоих) для SA. Число предоставленных элементов указывается в элементе NumExtHdrs. Сведения для каждой операции IPsec форматируются как IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структуру, описанную ниже.
Транспорт TCP/IP задает одну или две структуры IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION в буфере в SecAssoc. Каждая IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структура указывает тип операции-аутентификации или шифрования или расшифровки, для которого используется SA, указанный в структуре. Порядок структур IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION в массиве указывает порядок, в котором драйвер мини-порта должен выполнять операции для каждого SA. Поддерживается только одно сочетание операций: шифрование и расшифровка (ESP), за которым следует проверка подлинности (AH).
KeyLength
Длина буфера в байтах в KeyData.
KeyData[1]
Массив переменной длины, содержащий ключи для SAs, указанных в SecAssoc. Если алгоритм шифрования и алгоритм проверки подлинности задаются encryptionAlgorithm и AuthenticationAlgorithm членов объекта IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION структура буфера в KeyData содержит ключевые сведения для одного, за которым следует другая. Начало и длина ключа указываются keyOffsetBytes и элементах KeyLength соответственно.
Замечания
Эта структура устарела, вместо этого используйте IPSEC_OFFLOAD_V2_ADD_SA_EX.
Структура IPSEC_OFFLOAD_V2_ADD_SA указывает sa безопасности, которая должна быть добавлена и указатель на следующую IPSEC_OFFLOAD_V2_ADD_SA структуру в связанном списке. Структура IPSEC_OFFLOAD_V2_ADD_SA используется с OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID.
Структура IPSEC_OFFLOAD_V2_ADD_SA указывает источник и назначение, а также IP-протоколы, к которым применяются SAs. Этот фильтр относится к подключению в режиме транспорта, т. е. сквозное подключение между двумя узлами. Если указанное соединение выполняется через туннель, указываются исходные и целевые адреса туннеля.
Если для элемента задано нулевое значение, этот параметр не используется для фильтрации пакетов для указанных SAS. Например, если SrcAddr равно нулю, указанные SAs могут применяться к пакету, который содержит любой исходный адрес. Если для всех параметров фильтра задано нулевое значение, указанные SAs применяются к любому исходному узлу, который отправляет любой тип пакета любому конечному узлу.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.1 и 6.20. Для NDIS 6.30 и более поздних версий используйте IPSEC_OFFLOAD_V2_ADD_SA_EX. |
заголовка | ndis.h (include Ndis.h) |