| ||||
| ||||
Проблема в следующем: Нужно в 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, помогите советом. | ||||
Ответы: | ||||
| ||||
Посмотрите http://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0204B&L=CAPICOM&P=R6596&I=-3 или другие разделы на http://discuss.microsoft.com CAPICOM | ||||
| ||||
Все дело в том, что на сервере Microsoft и даже на сервере OpenSSL я прочитал все! Там много всего написано про проблему с проверкой подписанных с помощью Capicom данных на OpenSSL. А у меня проблема с точностью до наоборот! Я не могу проверить В Capicom данные подписанные с помощью OpenSSL. И об этом, к сожалению ничего не нашел в вышеуказанных местах. Мой предидущий вопрос остается в силе. | ||||
| ||||
Может проблемя в кодировке? OpenSSL когда делает pkcs#7 вложения читает как бинарные данные. А CAPICOM любит unicode. | ||||
| ||||
Может быть Вы правы!!! Только вот я не знаю, как теперь это побороть??? | ||||
| ||||
А как (какие функции) в windows пользуются для чтения файла? | ||||
| ||||
Я тут переписал Microsoft-овский пример на vbscript по-своему, и сумел получить данные о подписях из файла сформированного с помощью OpenSSL, однако вместо подписанного текста получаю "??????>?????????". Уж больно это похоже на то, о чем написано выше (насчет бинарных данных и unicode). Однако насколько я понял ситуацию, OpenSSL только лишь текст который нужно зашивает как бинарные данные, и видимо именно по этому Capicom не может этот текст разобрать. Думаю... | ||||
| ||||
CAPICOM вызыватете из VB или C? Какими функциями читаете файл? | ||||
| ||||
Использую Vbscript, т.к. планирую все это дело прикрутить к MSIE. Для чтения подписанного файла беру функцию из примера: Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile(FileName, ForReading) Buffer = ts.ReadAll В файле подписанный текст в PEM - формате. Мне кажется, надо с Microsoft пообщаться, потому, как с подписанной с помощью OpenSSL почтой все нормально, а вот просто текст не проверяется, что-то здесь не так. | ||||
| ||||
Проблема с Capicom и OpenSSL решена! Теперь все работает так, как надо, с соблюдением всех норм и стандартов. OpenSSL понимает то, что подписано Capicom и наоборот. Русскоязычные наборы проходят туда-сюда без проблем. Жаль, что разработчики и с одной и с другой стороны не уделили внимания моему вопросу и мне пришлось убить 2 недели на поиск решения. Вот вам и поддержка! Спасибо этому форому за уделенное мне внимание! У кого возникнут вопросы по этому поводу, обращайтесь на e-mail, помогу. | ||||
| ||||
вместо max@dise.donbass.com пишите на max at douweb . org | ||||
| ||||
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: | ||||
| ||||
еще информация, провел еще несколько тестов эта ошбка нге зависит от прав пользователя она выходит и на машинах где пользователь и ест локальный админ ? Мистика. Нужен срочно ваш совет. | ||||