20.08.2003 15:39:29Параметры алгоритма GOST_R3411_R3410EL Ответов: 2
sekasan
Пользуюсь MS SDK Security с криптопровайдером CryptoPro. Открываю контекст, ф-ей CryptExportPublicKeyInfo получаю CERT_PUBLIC_KEY_INFO, которая содержит, в числе прочего какое-то поле Algorithm.Parameters. Что это такое и как его прочитать? Если с помощью CryptDecodeObject, надо знать тип структуры. Это не праздное любопытство, дело в том что в этом поле для одного контейнера возвращаются разные значения (в зависимости от способов вызова), а мне надо считать хэш от CERT_PUBLIC_KEY_INFO, чтобы сравнить с SUBJECT_KEY_IDENTIFIER. Хэш тоже получается разный, в общем фигня полная
 
Ответы:
21.08.2003 11:12:12uri
Структура содержит объектный идентификатор алгоритма для открытого ключа и параметры этого алгоритма.

typedef struct _CRYPT_ALGORITHM_IDENTIFIER {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Parameters;
} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER;

Описание ключевого блоба посмотрите в WinCryptEx.h, поставлямого вместе с CSP и проекте simple на сайте www.cryptopro.ru
21.08.2003 16:43:45sekasan
Излазил весь WinCryptEx.h и MSDN, пришёл к выводу, что параметры надо извлекать ф-ей CryptDecodeObject. В WinCryptEx.h нашёл единственный подходящий (на мой взгляд) идентификатор - X509_GR3410_PARAMETERS, воспользовался им, но как интерперетировать полученное значение - по-прежнему загадка.