Статус: Участник
Группы: Участники
Зарегистрирован: 07.06.2013(UTC) Сообщений: 14
|
Подобная тема на форуме есть, но ответа в ней я не нашел. В общем проверяю заверяющую подпись как в примере на msdn, но проблема в том, что в примере в функции CryptMsgVerifyCountersignatureEncoded используется сертификат из хранилища. Естественно, что в реальной ситуации мы так поступить не можем. Отсюда вопрос, как достать CERT_INFO, для проверки заверяющей подписи.
Я начал разбираться в вопросе и пока застрял на одном месте. Из неподписанных атрибутов достаем CMSG_SIGNER_INFO. В ней хранится подписанный атрибут с оидом "1.2.840.113549.1.9.16.2.47" что соответствует ESS signing-certificate-v2 и вот на этом моменте я застрял.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
CryptMsgGetParam( ...CMSG_CERT_PARAM.. ) Дальше, надеюсь, разберетесь сами. |
С уважением, Юрий Строжевский |
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.06.2013(UTC) Сообщений: 14
|
Не понятно как определить индекс нужного нам сертификата. Вот допустим у нас файл содержит 3 подписи и одна из них заверена, как определить какой именно сертификат относится к заверенной подписи?
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
Можно вот так: 1) Определить номер SIGNER_INFO для заверенной подписи; 2) CryptMsgGetParam( ...CMSG_SIGNER_CERT_INFO_PARAM.. ) |
С уважением, Юрий Строжевский |
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.06.2013(UTC) Сообщений: 14
|
Но ведь у заверенной подписи нет номера, она хранится в неподписанных атрибутах подписи, которую заверяют. Переработав ваше предложение можно сделать так: 1. Достать заверяющую подпись 2. Сравнивать поля Issuer и Serial Number в сертификатах и искать нужный
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
Автор: AmDr  Но ведь у заверенной подписи нет номера, она хранится в неподписанных атрибутах подписи, которую заверяют. Переработав ваше предложение можно сделать так: 1. Достать заверяющую подпись 2. Сравнивать поля Issuer и Serial Number в сертификатах и искать нужный Отлично - сами вопрос задали, сами и ответили :) Так держать! |
С уважением, Юрий Строжевский |
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close