После успешного Creating a Secure Connection Using Schannel, я получаю его атрибуты подключения с использованием QueryContextAttributes(), минуя SECPKG_ATTR_CONNECTION_INFO
.Определить атрибуты соединения Schannel -> возвращает неизвестное значение
Возвращенная структура SecPkgContext_ConnectionInfo
содержит поле aiExch
, в котором хранится информация, которую я ищу, а именно используемый алгоритм обмена ключами.
Я использую это в течение нескольких месяцев, и он всегда возвращается один из двух заданных значений CALG_RSA_KEYX
или CALG_DH_EPHEM.
Но так как через пару недель (когда я считаю, что патч обновления Schannel был выдан Microsoft) возвращает неизвестное значение: 0x0000ae06
Используя эти макросы, то ALG_ID можно разделить на составляющие:
#define GET_ALG_CLASS(x) (x & (7 << 13))
#define GET_ALG_TYPE(x) (x & (15 << 9))
#define GET_ALG_SID(x) (x & (511))
в соответствии с этим, 0x0000ae06
будет означать:
Класс: ALG_CLASS_KEY_EXCHANGE
Тип: (7 << 9)
-> который не определен
SID: 6
->, значение которого зависит от типа алгоритма
Любой столкнулся с той же проблемой? Может ли кто-нибудь объяснить, что произошло, или что такое 0x0000ae06
?