| ||||
| ||||
Пользуюсь MS SDK Security с криптопровайдером CryptoPro. Открываю контекст, ф-ей CryptExportPublicKeyInfo получаю CERT_PUBLIC_KEY_INFO, которая содержит, в числе прочего какое-то поле Algorithm.Parameters. Что это такое и как его прочитать? Если с помощью CryptDecodeObject, надо знать тип структуры. Это не праздное любопытство, дело в том что в этом поле для одного контейнера возвращаются разные значения (в зависимости от способов вызова), а мне надо считать хэш от CERT_PUBLIC_KEY_INFO, чтобы сравнить с SUBJECT_KEY_IDENTIFIER. Хэш тоже получается разный, в общем фигня полная | ||||
Ответы: | ||||
| ||||
Структура содержит объектный идентификатор алгоритма для открытого ключа и параметры этого алгоритма. typedef struct _CRYPT_ALGORITHM_IDENTIFIER { LPSTR pszObjId; CRYPT_OBJID_BLOB Parameters; } CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER; Описание ключевого блоба посмотрите в WinCryptEx.h, поставлямого вместе с CSP и проекте simple на сайте www.cryptopro.ru | ||||
| ||||
Излазил весь WinCryptEx.h и MSDN, пришёл к выводу, что параметры надо извлекать ф-ей CryptDecodeObject. В WinCryptEx.h нашёл единственный подходящий (на мой взгляд) идентификатор - X509_GR3410_PARAMETERS, воспользовался им, но как интерперетировать полученное значение - по-прежнему загадка. | ||||