Настройка IPSec с помощью IPSEC_CIPHER_TRANSFORM_ID_GCM_AES_128 - PullRequest
0 голосов
/ 14 февраля 2019

Я рассматриваю возможность добавления поддержки алгоритма GCM_AES в приложение, которое использует WFP для настройки IPSec.В настоящее время код поддерживает CBC_AES и использует функции IPsecSaContextAddInbound1 / Outbound1 для определения ассоциаций безопасности.

Для CBC_AES ключи указываются в структуре IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0.Для этого алгоритма в качестве входных данных требуется только ключ.

Однако для GCM_AES_128 (который описан в RFC 4106) два входа - это 128-битный ключ (или 192 или 256) и четыре октета.соленость.Значение соли используется для построения одноразового номера.

Я хотел бы указать значение соли, которое будет использоваться ВПП, как это делается?

В RFC 4106 упоминается, что материал ключа состоит изсам ключ (128 бит), за которым следуют 4 октета солт-значения.

При указании ключа в структуре IPSEC_SA_AUTH_AND_CIPHER_INFORMATION0 я должен установить длину ключа равной 20 байтам и указать ключ и соль в виде сцепленной строки байтов в структуре FWP_BYTE_BLOB?

...