структура OFFLOAD_IPSEC_ADD_SA (ntddndis.h)
Структура OFFLOAD_IPSEC_ADD_SA содержит сведения для каждой ассоциации безопасности (SA), которую мини-драйвер добавляет в сетевой адаптер.
Синтаксис
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;
Члены
SrcAddr
IP-адрес исходного узла (узел, отправляя пакеты).
SrcMask
Маска подсети для исходного IP-адреса.
DestAddr
IP-адрес конечного узла (узел, получая пакеты).
DestMask
Маска подсети для целевого IP-адреса.
Protocol
Протокол IP. Можно указать любое сочетание типов IP-протоколов (например, TCP, UDP или ICMP). Кодировка протокола идентична кодировке поля Протокола в заголовке IP. Если протокола равно нулю, sa применяется к любому ПРОТОКОЛу IP.
SrcPort
Исходный ПОРТ TCP или UDP. Если SrcPort задано нулевое значение, SA применяется к любому исходному порту TCP/UDP.
DestPort
Конечный ПОРТ TCP или UDP. Если DestPort равно нулю, SA применяется к любому исходному порту TCP/UDP.
SrcTunnelAddr
IP-адрес исходной конечной точки, например соединителя, туннеля. Используется минипорт-драйвер
SrcTunnelAddr в качестве исходного адреса заголовка IP-адресов туннеля пакетов, отправляемых в SA.
SrcTunnelAddr указывается только для SA, который применяется к части туннеля пакета.
SrcTunnelAddr равно нулю для SA, применяемого к транспортной части пакета.
DestTunnelAddr
IP-адрес конечной точки назначения, например соединителя, туннеля. Драйвер минипорта использует DestTunnelAddr в качестве адреса назначения для заголовка IP-адреса туннеля пакетов, отправленных в SA. DestTunnelAddr указывается только для SA, который применяется к части туннеля пакета. DestTunnelAddr равно нулю для SA, применяемого к транспортной части пакета.
Flags
Битовая маска, указывающая, является ли добавленный SA входящий или исходящий SA следующим образом:
OFFLOAD_INBOUND_SA
Указывает входящий SA.
OFFLOAD_OUTBOUND_SA
Указывает исходящий SA.
NumSAs
Количество элементов в массиве SecAssoc. Каждый элемент в массиве является элементом структура OFFLOAD_SECURITY_ASSOCIATION.
SecAssoc[OFFLOAD_MAX_SAS]
Массив переменной длины, содержащий сведения об операциях безопасности протокола Интернета (IPsec) (AH или ESP) для SA. Сведения для каждой операции IPsec форматируются как структура OFFLOAD_SECURITY_ASSOCIATION.
Транспорт TCP/IP указывает одну или две структуры OFFLOAD_SECURITY_ASSOCIATION в буфере в SecAssoc. Каждая OFFLOAD_SECURITY_ASSOCIATION структура указывает тип операции-аутентификации или шифрования или расшифровки, для которого используется SA, указанный в структуре. Порядок структур OFFLOAD_SECURITY_ASSOCIATION в массиве указывает порядок, в котором драйвер мини-порта должен выполнять операции для каждого SA. Поддерживается только одно сочетание операций: шифрование и расшифровка (ESP), за которым следует проверка подлинности (AH).
OffloadHandle
Дескриптор только что созданного SA. Минипорт драйвер предоставляет этот дескриптор перед завершением
запрос OID_TCP_TASK_IPSEC_ADD_SA.
Транспорт TCP/IP должен указать этот дескриптор в структуре NDIS_IPSEC_PACKET_INFO перед передачей пакета отправки в мини-драйвер. Транспорт TCP/IP также должен указать этот дескриптор при удалении SA с помощью запрос OID_TCP_TASK_IPSEC_DELETE_SA.
KeyLen
Длина буфера в байтах в KeyMat.
KeyMat[1]
Массив переменной длины, содержащий ключи для SAs, указанных в SecAssoc. Если алгоритм конфиденциальности (шифрование или расшифровка) и алгоритм целостности (аутентификация) задаются ConfAlgo и IntegrityAlgo членов объекта OFFLOAD_SECURITY_ASSOCIATION структура буфера KeyMat содержит ключевые сведения для алгоритма подтверждения, а затем сразу же ключевые сведения для алгоритма целостности.
Длина каждого ключа в буфере в KeyMat определяется algoKeylen в структуре OFFLOAD_ALGO_INFO, указывающей алгоритм конфиденциальности или целостности. (Структура OFFLOAD_ALGO_INFO является членом OFFLOAD_SECURITY_ASSOCIATION структуры.)
Замечания
Структура OFFLOAD_IPSEC_ADD_SA используется в OID_TCP_TASK_IPSEC_ADD_SA OID.
Требования
Требование | Ценность |
---|---|
заголовка | ntddndis.h (include Ndis.h) |