| ||||
| ||||
В примере работы с CAPICOM имеется программа для подписи и проверки подписи на VBS CSignData.vbs. Проблема в следующем: Файл подписывается утилитой командной строки с параметрами: cryptcp.exe -sign -dn TestCert001 -nochain file file.out Эта подпись нормально проверяется утилитой командной строки с параметрами: cryptcp.exe -verify file.out file2.out При этом на экране отображается название сертификата, которым файл был подписан. Однако при попытке проверить файл при помощи программы CSignData.vbs: cscript csigndata.vbs Verify -v file.out file3.out мы получаем ошибку, хотя сертификат находится программой правильно. Но наоборот, если подписать файл при помощи программы CSignData.vbs, то подпись проверяется правильно как программой, так и утилитой. Однако, при проверки утилитой перед каждым символом (исходный файл - текстовый)появляется 0x00, при проверке программой - этого нет. Интересно, что один и тот же файл подписанный утилитой и программой имеют разные размеры. В чем проблема? Разве между ними не должно быть совместимости в форматах? | ||||
Ответы: | ||||
| ||||
Встретил эту же проблему, похоже дело в кодеровках и/или в реализации интерфейсов на VB и в С. Если в утилите CSignData при открытии файла на запись выставить аттрибут unicode (-1) то файл сохраниться нормально, однако в начале появятся символы FF FE признак UTF-16. | ||||
| ||||
Советую почитать сообщения других пользователей. Решения проблемы уже разъяснялось. | ||||