16.11.2003 10:40:17Как заставить заботать CAPICOM и OpenSSL Ответов: 12
Max
Проблема в следующем:
Нужно в MSIE проверять валидность документов подписаных на Linux-сервере с помощью Open SSL.
Пробовал множество вариантов подписи, формируемой OpenSSL из них нашел единственный, похожий на то, что формирует сам CAPICOM (через openssl smime -sign -nodetach -outform PEM). Однако столкнулся с проблемой:
При проверке, CAPICOM пишет ошибку - "Неправильное значение хэша"! С одной стороны команда openssl smime -sign предназначена только для подписывание e-mail, и эти подписанные e-mail Outlook понимает, но с другой стороны, это единственный вариант, на который CAPICOM хоть как то реагирует.
Обьясните, что означает "Неправильное значение хэша"???
И, может кто работал с Open SSL и CAPICOM, помогите советом.
 
Ответы:
17.11.2003 13:52:59kure
Посмотрите
http://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0204B&L=CAPICOM&P=R6596&I=-3

или другие разделы на http://discuss.microsoft.com CAPICOM
17.11.2003 14:39:07Max
Все дело в том, что на сервере Microsoft и даже на сервере OpenSSL я прочитал все! Там много всего написано про проблему с проверкой подписанных с помощью Capicom данных на OpenSSL. А у меня проблема с точностью до наоборот! Я не могу проверить В Capicom данные подписанные с помощью OpenSSL. И об этом, к сожалению ничего не нашел в вышеуказанных местах.
Мой предидущий вопрос остается в силе.
17.11.2003 18:48:52kure
Может проблемя в кодировке?
OpenSSL когда делает pkcs#7 вложения читает как бинарные данные.
А CAPICOM любит unicode.
17.11.2003 19:17:09Max
Может быть Вы правы!!!
Только вот я не знаю, как теперь это побороть???
17.11.2003 19:59:37kure
А как (какие функции) в windows пользуются для чтения файла?
17.11.2003 21:49:59Max
Я тут переписал Microsoft-овский пример на vbscript по-своему, и сумел получить данные о подписях из файла сформированного с помощью OpenSSL, однако вместо подписанного текста получаю "??????>?????????". Уж больно это похоже на то, о чем написано выше (насчет бинарных данных и unicode). Однако насколько я понял ситуацию, OpenSSL только лишь текст который нужно зашивает как бинарные данные, и видимо именно по этому Capicom не может этот текст разобрать. Думаю...
18.11.2003 9:27:22kure
CAPICOM вызыватете из VB или C?
Какими функциями читаете файл?
18.11.2003 11:42:36Max
Использую Vbscript, т.к. планирую все это дело прикрутить к MSIE.
Для чтения подписанного файла беру функцию из примера:
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(FileName, ForReading)
Buffer = ts.ReadAll
В файле подписанный текст в PEM - формате.
Мне кажется, надо с Microsoft пообщаться, потому, как с подписанной с помощью OpenSSL почтой все нормально, а вот просто текст не проверяется, что-то здесь не так.
19.11.2003 14:58:29Max
Проблема с Capicom и OpenSSL решена! Теперь все работает так, как надо, с
соблюдением всех норм и стандартов. OpenSSL понимает то, что подписано
Capicom и наоборот. Русскоязычные наборы проходят туда-сюда без проблем.
Жаль, что разработчики и с одной и с другой стороны не уделили внимания
моему вопросу и мне пришлось убить 2 недели на поиск решения. Вот вам и
поддержка!
Спасибо этому форому за уделенное мне внимание!
У кого возникнут вопросы по этому поводу, обращайтесь на e-mail, помогу.
30.01.2006 17:20:53Max
вместо max@dise.donbass.com пишите на max at douweb . org
20.02.2006 16:56:21Дмитрий
Max спаиабо за ответы :)
очень помогли,

вот столкнулся с такой проблемной,
подписываю capicomom на клиентской машине под Win,
отправляю на юникс проверяю openssl-ом все работает,
как только на машине подписывает пользователь не имеющий
админских прав то openssl выдает

Verification failure
17460:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:pk7_doit.c:808:
17460:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:265:




22.02.2006 9:08:10Дмитрий
еще информация, провел еще несколько тестов эта ошбка нге зависит от прав пользователя она выходит и на машинах где пользователь и ест локальный админ ?

Мистика.

Нужен срочно ваш совет.