alexpav@inbox.ru Posted September 9, 2016 Report Share Posted September 9, 2016 Здравствуйте! Реализую подпись файлов программно в своем приложении (приложение, разработанное на языке C#, .NET Framework 4.5). Проблема такая. Формирую подпись файлов в формате PKCS7/CMS (открепленная подпись). На компьютере, на котором установлено ПО VipNET CSP 4.2 при подписании файла с нуля (файл еще не был подписан) все проходит нормально. Если же файл уже был кем то другим подписан, то при добавлении подписи происходит сбой приложения (даже блок перехватки ошибок не помогает, идет сбой на уровне ядра). В отчете об ошибке указывается, что произошел сбой модуля ntdll.dll. На компьютере, на котором установлено ПО КриптоПРО CSP таких ситуаций не возникает. При подписи учитываю, чтобы сертификаты были с одними и теми же алгоритмами подписи (ГОСТЫ). Сертификаты получил в тестовых УЦ как КриптоПРО так и Инфотекс. Подскажите, в чем может быть проблема??? Кстати, если уже подписанный файл подписать с помощью VipNet CryptoFile, то никаких проблем не возникает... Quote Link to comment Share on other sites More sharing options...
Vintik Posted September 9, 2016 Report Share Posted September 9, 2016 Вы пробовали другие сборки CSP и на других ОС? Думаю вы понимаете, что CSP очень "нежные" к любым обновлениям ОС, потому часто вроде одна и та же версия, но другой билд в "третьем звене" - и уже всё работает. Для примера, совсем недавно требовалось подписание.... было постоянно ошибки.. подпись была на Якарте... установили новый ЕК - крипто после этого совсем потерял все стороние контейнеры и также в ЕК не видно, что там записано (показывал данные карты, но данные нет)... В ИТОГЕ обновили КриптоПро 4 до по последней серт. версии и О ЧУДО - всё стало видеться, и в крипто и в самом ЕК. Т.е. то что вы сейчас даже добьётесь положительного результата, совсем не означает, что на другой ОС где есть некие драйвера ключей и др. обновление - будет работать. Quote Link to comment Share on other sites More sharing options...
alexpav@inbox.ru Posted September 12, 2016 Author Report Share Posted September 12, 2016 Ясно... Спасибо за ответ! Все равно попробую другую версию сборки CSP. Quote Link to comment Share on other sites More sharing options...
cav Posted September 13, 2016 Report Share Posted September 13, 2016 Low Message или Simplified? Падает где? CMSG_CTRL_ADD_SIGNER? Давайте перейдем в личку. Quote Link to comment Share on other sites More sharing options...
alexpav@inbox.ru Posted September 13, 2016 Author Report Share Posted September 13, 2016 Здравствуйте! До CryptoAPI я не дошел, использую стандартные классы C# для работы с PKCS7 CMS: SignedCms, CmsSigner, ContentInfo. Подписание осуществляется при помощи SignedCms.ComputeSignature. Если покопать (что я и сделал), то можно увидеть, что этот класс использует Low Message функции CryptoAPI. Quote Link to comment Share on other sites More sharing options...
cav Posted September 13, 2016 Report Share Posted September 13, 2016 Тогда вышлите кусок кода (можно на .Net) посмотрим. Quote Link to comment Share on other sites More sharing options...
alexpav@inbox.ru Posted September 14, 2016 Author Report Share Posted September 14, 2016 Здравствуйте! Извините, что долго не отвечал... Реализовал подписание с помощью CryptoAPI (Low Message / Simplified ) и все стало работать! Quote Link to comment Share on other sites More sharing options...
cav Posted September 15, 2016 Report Share Posted September 15, 2016 Хорошо, но если вышлите кусок кода, будем благодарны. Посмотрим у нас падает (и действительно есть ошибка при вызове через .Net), или ошибка при вызове. Quote Link to comment Share on other sites More sharing options...
alexpav@inbox.ru Posted September 15, 2016 Author Report Share Posted September 15, 2016 Я сейчас пытаюсь побороть проблему соподписи при использовании сертификатов с разными алгоритмами (например ГОСТ и sha1rsa). Как только справлюсь, поделюсь без проблем! Quote Link to comment Share on other sites More sharing options...
alexpav@inbox.ru Posted September 21, 2016 Author Report Share Posted September 21, 2016 В 15.09.2016в09:15, cav сказал: Хорошо, но если вышлите кусок кода, будем благодарны. Посмотрим у нас падает (и действительно есть ошибка при вызове через .Net), или ошибка при вызове. Добрый день! Извините, что так долго... Не смог пока я побороть случай подписания файла несколькими сертификатами с разными алгоритмами (случай отсоединенной подписи)... Да и на работе запарка, некогда этим заниматься. Подойдет пока и такой вариант. В общем все работает хорошо, подписывается любым криптопровайдером (КриптоПРО CSP и VipNet CSP), но в случае отсоединенной подписи подписывать можно только сертификатами с одинаковыми алгоритмами. Если нужно посмотреть исходный код, напишите свой адрес электронной почты, я скину проект. Quote Link to comment Share on other sites More sharing options...
cav Posted September 21, 2016 Report Share Posted September 21, 2016 Спасибо, пока этого достаточно попытаемся сами проэмулировать. На всякий случай свой адрес скинул в личку. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.