| ||||
| ||||
Здравствуйте. Нигде не смог найти ответ на вопрос, хотя похожие темы у вас уже были. Я использую сертификат, выпущенный нашим центром сертификации с использованием майкросвовского криптопровайдера (с вашим у меня проблемы - я тогда писал вам - сошлись на том, что у меня кривая винда и надо все переставлять - поэтому тренируюсь на майкрософте). Все работает - подписываю текст скриптом (CAPICOM) (подпись отделенная), проверяю подпись на сервере с использованием CAPICOM. Подпись верна. Собственно сейчас задача - в случае конфликтных ситуаций дать человеку файл подписи и подписанный текст, чтобы он мог предоставить это в суд при необходимости. Я сохраняю подпись и текст в файлы. Проблема в том, что когда я сам проверяю правильность подписи, зачитывая из файлов (программой на C# с использованием CAPICOM) - она правильная (при изменении одного байта в тексте - неправильная) - т.е. все вроде корректно работает. Но эксперты, привлеченные для проверки правильности подписи в суде не будут же использовать мою программу. Наверное они должны использовать какие-то стандартные средства. Вот я и пробовал искать стандартное средство для проверки подписи. Пробовал КРИПТО-АРМ - говорит - неправильная Пробовал ваш csptest.exe -sfsign -base64 -in C:\temp\content.txt -my "AAAforWWWSign" -alg SHA1 -detached -verify -signature C:\temp\sign.txt Тоже неправильная. Подскажите пожалуйста, что неправильно может быть в параметрах и что можно использовать для проверки, если ваша утилита не может проверять подпись не ваших сертификатов | ||||
Ответы: | ||||
| ||||
Проблема не в нашей утилите и наших сертификатах, а в том, как Ваша прорамма на С# работает с юникодом. Файл C:\temp\content.txt наверное ансишный, как Вы его содержимое передаете в SignedData? Сделайте присоединенную подпись и посмотрите что именно Вы подписываете. PS Тема это уже много раз обсуждалась, может и не про C#, но про Дельфи и VB точно. | ||||
| ||||
Спасибо за ответ. Так и есть. Я до этого пробовал сохранять данные в файл в юникоде. Но проверка не прошла и я поешл искать дальше. Но теперь еще в эту сторону покопал и увидел в начале файла два лишние байта, говорящие о том, что файл в формате юникода. Обрезал их и проверка прошла... Криво конечно, но работает теперь. Спасибо еще раз | ||||