16.05.2003 13:44:24Утилита командной строки VS. CSignData.vbs Ответов: 2
Сергей
В примере работы с 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, при проверке программой - этого нет.
Интересно, что один и тот же файл подписанный утилитой и программой имеют разные размеры. В чем проблема? Разве между ними не должно быть совместимости в форматах?
 
Ответы:
13.05.2005 19:17:14Vyaceslav Pogoreltsev
Встретил эту же проблему, похоже дело в кодеровках и/или в реализации интерфейсов на VB и в С. Если в утилите CSignData при открытии файла на запись выставить аттрибут unicode (-1) то файл сохраниться нормально, однако в начале появятся символы FF FE признак UTF-16.
14.05.2005 8:58:28Юрий
Советую почитать сообщения других пользователей.
Решения проблемы уже разъяснялось.