25.05.2005 15:22:24Получение сертификата из подписи PKCS7 Ответов: 5
Леонид
Добрый день.
Подскажите пожалуйста, как можно получить сертификат из подписи созданной в формате PKCS7.
Если можно, то с примером.
 
Ответы:
25.05.2005 17:45:54Юрий
А какие действия по поиску решения данного вопроса УЖЕ проведены с ВАШЕЙ стороны? Какие-то соображения по построению подобной "программы" есть?
26.05.2005 10:32:04Леонид
Добрый день, Юрий.
Извините за расплывчатый вопрос.
Я пытаюсь получить контекст сертификата (PCCERT_CONTEXT) из массива (BYTE*) подписи созданной в формате PKCS7 (с помещением в нее сертификата).
Нашел функцию CryptQueryObject, но так и не удалось правильно расставить параметры для решения задачи.
26.05.2005 12:50:31Юрий
Тогда посоветую последовательность:
1) CryptMsgOpenToDecode;
2) CryptMsgUpdate;
3) CryptMsgGetParam;
4) CryptMsgClose;

Примеров на использование такой последовательности в MSDN масса. Необходимые сертификаты можно получить путем выставления правильного параметра для функции CryptMsgGetParam.

P.S.: Функция CryptQueryObject делает точно такие же шаги (вызовы тех же функций), но только в своем внутреннем коде.
26.05.2005 13:26:09Александр
после последнего вызова CryptMsgUpdate(); Вызываете CryptMsgGetParam(...CMSG_CERT_PARAM...); получаете массив BYTE, который передаёте на вход функции CertCreateCertificateContext(...) и получаете PCCERT_CONTEXT (Только потом не забудьте его освободить)
Желаю удачи :)
26.05.2005 17:13:57Леонид
Спасибо за помощь. Все получилось.