Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Ошибка на Вашей стороне. Отправил на Ваш почтовый адрес StreamVerify.cs |
С уважением, Александр. |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Подскажите , как правильно использовать StreamVerify.cs не вижу никаких функций или свойст показывающи верна ли подпись, а в случае подмены исходного файла (т.е. некорректности подписи) выдаётся ошибка, в блоке Catch, CryptMsgControl Error #-2146889721
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Подскажите как в коде StreamVerify.cs возвращать Сертификат подписавшего? Отредактировано пользователем 26 мая 2010 г. 22:49:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Цитата:Подскажите , как правильно использовать StreamVerify.cs не вижу никаких функций или свойст показывающи верна ли подпись, а в случае подмены исходного файла (т.е. некорректности подписи) выдаётся ошибка, в блоке Catch, CryptMsgControl Error #-2146889721 Собственно проверка подписи осуществляет - CryptMsgControl. Код ошибки -2146889721 == 0x80091007L == CRYPT_E_HASH_VALUE, неокрректное значение хеш-функции. Для того, чтобы функция вернула строго значение подпись не верна, необходимо искажать саму подпись; Можно конечно менять и документ, но тогда придется пересчитывать и подменять хеш, что гораздо сложнее. В любом случае, и неправильное значение хеш-функции и невозможность декодировать документ, и собственно непроверившаяся подпись - "подпись не верна". Цитата:Подскажите как в коде StreamVerify.cs возвращать Сертификат подписавшего? pSignerCertContext - контекст сертификата подписавшего. Если под "как в коде возвращать Сертификат подписавшего" Вы понимаете как его преобразовать в X509Certificate2, то есть конструктор X509Certificate2.X509Certificate2(IntPtr) от PCERT_CONTEXT |
С уважением, Александр. |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Спасибо что ответили, Про CryptMsgControl ясно, получается если CryptMsgControl возвращает FALSE - то подпись неверна.
Да я подразумеваю преобразование в X509Certificate2. этот контсруктор я использую. и всё нормально , можно просмотреть сертификат. но при закрытыии программы выскакивает ошибка. думаю этот происходит потомучто отправляется оригинал pSignerCertContext , который освобождается в блоке finally а также объект X509Certificate2 тоже его освобождать пытается. Поэтому я импортировал Win32 API функцию CertDuplicateCertificateContext. и воспользовался ей получив из pSignerCertContext копию контекста, однако всё равно выскакивает ошибка в конце программы. Думаю это потому что они пытаются освободить одну и туже память
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
В конструкторе X509Certificate2.X509Certificate2(IntPtr) есть дублирование контекста, поэтому его делать лишний раз не надо. Цитата:Думаю это потому что они пытаются освободить одну и туже память скорее дело в порядке освобождения. |
С уважением, Александр. |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2009(UTC) Сообщений: 119 Откуда: Moscow
|
Ок. Но если он копирует сам, то он работает с дубликатом, тогда какая разница в каком порядке освобождать - ведь это разные контексты в памяти....
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Есть разница, например, в порядке освобождения контекста сертификата и закрытия хранилища, из которого он получен. |
С уважением, Александр. |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close