| ||||
| ||||
Добрый день. Подскажите пожалуйста, как можно получить сертификат из подписи созданной в формате PKCS7. Если можно, то с примером. | ||||
Ответы: | ||||
| ||||
А какие действия по поиску решения данного вопроса УЖЕ проведены с ВАШЕЙ стороны? Какие-то соображения по построению подобной "программы" есть? | ||||
| ||||
Добрый день, Юрий. Извините за расплывчатый вопрос. Я пытаюсь получить контекст сертификата (PCCERT_CONTEXT) из массива (BYTE*) подписи созданной в формате PKCS7 (с помещением в нее сертификата). Нашел функцию CryptQueryObject, но так и не удалось правильно расставить параметры для решения задачи. | ||||
| ||||
Тогда посоветую последовательность: 1) CryptMsgOpenToDecode; 2) CryptMsgUpdate; 3) CryptMsgGetParam; 4) CryptMsgClose; Примеров на использование такой последовательности в MSDN масса. Необходимые сертификаты можно получить путем выставления правильного параметра для функции CryptMsgGetParam. P.S.: Функция CryptQueryObject делает точно такие же шаги (вызовы тех же функций), но только в своем внутреннем коде. | ||||
| ||||
после последнего вызова CryptMsgUpdate(); Вызываете CryptMsgGetParam(...CMSG_CERT_PARAM...); получаете массив BYTE, который передаёте на вход функции CertCreateCertificateContext(...) и получаете PCCERT_CONTEXT (Только потом не забудьте его освободить) Желаю удачи :) | ||||
| ||||
Спасибо за помощь. Все получилось. | ||||