Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.08.2009(UTC) Сообщений: 60
|
Добрый день, помогите побороть ошибку в методе (IXMLDSigKey)pKey->getVerifyingCertificate(IUknown **)) Дело в том, что один и тот же код на одной из машин не хочет никак работать. И там где код работает и там где не работает использую CSP 3.6 R2, MSXML 5.0, CAPICOM 2.1.0.2. Работает на машинах с OS Vista. Не работает на Windos Server 2003. На вход подается один и тот же xml файл. Понятное дело что все упирается в версии dll, но в какие? Какая из dll может влиять на данный процесс? Привожу списки dll взятые из консоли управления CSP: ---------- Server 2003 Цитата: accord.dll 3.6.4336.0 x86 C:\Program Files\Crypto Pro\CSP\accord.dll advapi32.dll 5.2.3790.3959 x86 C:\WINDOWS\system32\advapi32.dll bio.dll 3.6.4367.0 x86 C:\Program Files\Crypto Pro\CSP\bio.dll charismathics.dll 4.8.0.1 x86 C:\Program Files\Crypto Pro\CSP\charismathics.dll cpadvai.dll 3.6.4581.0 x86 C:\Program Files\Crypto Pro\CSP\cpadvai.dll cpcertocm.dll 3.6.4305.0 x86 C:\Program Files\Crypto Pro\CSP\cpcertocm.dll
cpconfig.cpl 3.6.4724.0 x86 C:\Program Files\Crypto Pro\CSP\cpconfig.cpl cpcrypt.dll 3.6.4439.0 x86 C:\Program Files\Crypto Pro\CSP\cpcrypt.dll cpcsp.dll 3.6.4073.0 x86 C:\Program Files\Crypto Pro\CSP\cpcsp.dll cpcspi.dll 3.6.5467.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspi.dll cpcspr.dll 3.6.4471.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspr.dll cpExSec.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpExSec.dll cpext.dll 3.6.4554.0 x86 C:\Program Files\Crypto Pro\CSP\cpext.dll cpintco.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpintco.dll cpkrb.dll 3.6.4474.0 x86 C:\Program Files\Crypto Pro\CSP\cpkrb.dll cpmail.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpmail.dll cpMSO.dll 3.6.4293.0 x86 C:\Program Files\Crypto Pro\CSP\cpMSO.dll cpoutlm.dll 3.6.4360.0 x86 C:\Program Files\Crypto Pro\CSP\cpoutlm.dll cprastls.dll 3.6.4363.0 x86 C:\Program Files\Crypto Pro\CSP\cprastls.dll cprdr.dll 3.6.4369.0 x86 C:\Program Files\Crypto Pro\CSP\cprdr.dll cprndm.dll 3.6.4325.0 x86 C:\Program Files\Crypto Pro\CSP\cprndm.dll CProCtrl.sys 3.6.4374.0 x86 C:\Program Files\Crypto Pro\CSP\CProCtrl.sys cpschan.dll 3.6.4403.0 x86 C:\Program Files\Crypto Pro\CSP\cpschan.dll cpssl.dll 3.0.3051.1 x86 C:\WINDOWS\system32\cpssl.dll cpsslsdk.dll 3.6.4364.0 x86 C:\Program Files\Crypto Pro\CSP\cpsslsdk.dll cpsspap.dll 3.6.4878.0 x86 C:\WINDOWS\system32\cpsspap.dll cpsuprt.dll 3.6.4402.0 x86 C:\Program Files\Crypto Pro\CSP\cpsuprt.dll cpui.dll 3.6.4448.0 x86 C:\Program Files\Crypto Pro\CSP\cpui.dll cpverify.exe 3.6.3674.0 x86 C:\Program Files\Crypto Pro\CSP\cpverify.exe cpwinet.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpwinet.dll cpXML5.dll 3.6.4299.0 x86 C:\Program Files\Crypto Pro\CSP\cpXML5.dll crypt32.dll 5.131.3790.3959 x86 C:\WINDOWS\system32\crypt32.dll csptest.exe 3.6.4845.0 x86 C:\Program Files\Crypto Pro\CSP\csptest.exe dallas.dll 3.6.4316.0 x86 C:\Program Files\Crypto Pro\CSP\dallas.dll ds199x.dll 3.6.4312.0 x86 C:\Program Files\Crypto Pro\CSP\ds199x.dll dsrf.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\dsrf.dll emv.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\emv.dll etok.dll 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\etok.dll fat12.dll 3.6.4343.0 x86 C:\Program Files\Crypto Pro\CSP\fat12.dll genkpim.exe 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\genkpim.exe inetcomm.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\inetcomm.dll inpaspot.dll 1.0.0.1 x86 C:\Program Files\Crypto Pro\CSP\inpaspot.dll jcard.dll 3.0.3294.1 x86 C:\Program Files\Crypto Pro\CSP\jcard.dll pcsc.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\pcsc.dll reg.dll 3.6.4321.0 x86 C:\Program Files\Crypto Pro\CSP\reg.dll ric.dll 3.6.4417.0 x86 C:\Program Files\Crypto Pro\CSP\ric.dll rtSupCP.dll 1.62.3.0 x86 C:\Program Files\Crypto Pro\CSP\rtSupCP.dll sable.dll 3.6.4320.0 x86 C:\Program Files\Crypto Pro\CSP\sable.dll schannel.dll 5.2.3790.3959 x86 C:\WINDOWS\system32\schannel.dll security.dll 5.2.3790.0 x86 C:\WINDOWS\system32\security.dll shdocvw.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\shdocvw.dll snet.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\snet.dll wininet.dll 6.0.3790.3959 x86 C:\WINDOWS\system32\wininet.dll wipefile.exe 3.6.4152.0 x86 C:\Program Files\Crypto Pro\CSP\wipefile.exe
msxml5.dll 5.20.1087.0 C:\Program Files\Common Files\Microsoft Shared\OFFICE11
------Vista Цитата: accord.dll 3.6.4336.0 x86 C:\Program Files\Crypto Pro\CSP\accord.dll advapi32.dll 6.0.6002.18005 x86 C:\Windows\system32\advapi32.dll bio.dll 3.6.4367.0 x86 C:\Program Files\Crypto Pro\CSP\bio.dll charismathics.dll 4.8.0.1 x86 C:\Program Files\Crypto Pro\CSP\charismathics.dll cpadvai.dll 3.6.4581.0 x86 C:\Program Files\Crypto Pro\CSP\cpadvai.dll cpcertocm.dll 3.6.4305.0 x86 C:\Program Files\Crypto Pro\CSP\cpcertocm.dll cpcng.dll 3.6.4405.0 x86 C:\Windows\system32\cpcng.dll cpconfig.cpl 3.6.4724.0 x86 C:\Program Files\Crypto Pro\CSP\cpconfig.cpl cpcrypt.dll 3.6.4439.0 x86 C:\Program Files\Crypto Pro\CSP\cpcrypt.dll cpcsp.dll 3.6.4073.0 x86 C:\Program Files\Crypto Pro\CSP\cpcsp.dll cpcspi.dll 3.6.5467.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspi.dll cpcspr.dll 3.6.4471.0 x86 C:\Program Files\Crypto Pro\CSP\cpcspr.dll cpExSec.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpExSec.dll cpext.dll 3.6.4554.0 x86 C:\Program Files\Crypto Pro\CSP\cpext.dll cpintco.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpintco.dll cpkrb.dll 3.6.4474.0 x86 C:\Program Files\Crypto Pro\CSP\cpkrb.dll cpmail.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\cpmail.dll cpMSO.dll 3.6.4293.0 x86 C:\Program Files\Crypto Pro\CSP\cpMSO.dll cpoutlm.dll 3.6.4360.0 x86 C:\Program Files\Crypto Pro\CSP\cpoutlm.dll cprastls.dll 3.6.4363.0 x86 C:\Program Files\Crypto Pro\CSP\cprastls.dll cprdr.dll 3.6.4369.0 x86 C:\Program Files\Crypto Pro\CSP\cprdr.dll cprndm.dll 3.6.4325.0 x86 C:\Program Files\Crypto Pro\CSP\cprndm.dll CProCtrl.sys 3.6.4374.0 x86 C:\Program Files\Crypto Pro\CSP\CProCtrl.sys cpschan.dll 3.6.4403.0 x86 C:\Program Files\Crypto Pro\CSP\cpschan.dll cpssl.dll 3.0.3051.1 x86 C:\Windows\system32\cpssl.dll cpsslsdk.dll 3.6.4364.0 x86 C:\Program Files\Crypto Pro\CSP\cpsslsdk.dll cpsspap.dll 3.6.4878.0 x86 C:\Windows\system32\cpsspap.dll cpsuprt.dll 3.6.4402.0 x86 C:\Program Files\Crypto Pro\CSP\cpsuprt.dll cpui.dll 3.6.4448.0 x86 C:\Program Files\Crypto Pro\CSP\cpui.dll cpverify.exe 3.6.3674.0 x86 C:\Program Files\Crypto Pro\CSP\cpverify.exe cpwinet.dll 3.6.4289.0 x86 C:\Program Files\Crypto Pro\CSP\cpwinet.dll cpXML5.dll 3.6.4299.0 x86 C:\Program Files\Crypto Pro\CSP\cpXML5.dll crypt32.dll 6.0.6002.18005 x86 C:\Windows\system32\crypt32.dll csptest.exe 3.6.4845.0 x86 C:\Program Files\Crypto Pro\CSP\csptest.exe dallas.dll 3.6.4316.0 x86 C:\Program Files\Crypto Pro\CSP\dallas.dll ds199x.dll 3.6.4312.0 x86 C:\Program Files\Crypto Pro\CSP\ds199x.dll dsrf.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\dsrf.dll emv.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\emv.dll etok.dll 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\etok.dll fat12.dll 3.6.4343.0 x86 C:\Program Files\Crypto Pro\CSP\fat12.dll genkpim.exe 3.6.49.0 x86 C:\Program Files\Crypto Pro\CSP\genkpim.exe inetcomm.dll 6.0.6002.18263 x86 C:\Windows\system32\inetcomm.dll inpaspot.dll 1.0.0.1 x86 C:\Program Files\Crypto Pro\CSP\inpaspot.dll jcard.dll 3.0.3294.1 x86 C:\Program Files\Crypto Pro\CSP\jcard.dll pcsc.dll 3.6.4345.0 x86 C:\Program Files\Crypto Pro\CSP\pcsc.dll reg.dll 3.6.4321.0 x86 C:\Program Files\Crypto Pro\CSP\reg.dll ric.dll 3.6.4417.0 x86 C:\Program Files\Crypto Pro\CSP\ric.dll rtSupCP.dll 1.62.3.0 x86 C:\Program Files\Crypto Pro\CSP\rtSupCP.dll sable.dll 3.6.4320.0 x86 C:\Program Files\Crypto Pro\CSP\sable.dll schannel.dll 6.0.6002.18290 x86 C:\Windows\system32\schannel.dll security.dll 6.0.6000.16386 x86 C:\Windows\system32\security.dll shdocvw.dll 6.0.6002.18005 x86 C:\Windows\system32\shdocvw.dll snet.dll 3.6.4315.0 x86 C:\Program Files\Crypto Pro\CSP\snet.dll wininet.dll 9.0.7930.16406 x86 C:\Windows\system32\wininet.dll wipefile.exe 3.6.4152.0 x86 C:\Program Files\Crypto Pro\CSP\wipefile.exe
msxml5.dll 5.20.1087.0 C:\Program Files\Common Files\microsoft shared\OFFICE11
Отредактировано пользователем 3 ноября 2010 г. 18:07:23(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
Этот вопрос связан с предыдущей темой? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.08.2009(UTC) Сообщений: 60
|
Нет, поэтому я о нем в прошлой теме и не спрашивал.
Итак! Мы решили встроить проверку наличия подписи для файлов помещенных в базу данных. Но результат работы программы проверки подписей на сервере поверг в уныние. Я проверил наличие одинаковых версий CSP, CAPICOM и MSXML. Сравнив версии dll для CSP я увидел у них небольшое отличие в версиях, которое я списал на: 1) то что на сервере не устанавливался драйвер для ключевого носителя, который во время установки изменяет некоторые файлы CSP. Т.к. ключевой носитель на сервере не нужен и там будет только проверка файлов в базе данных, то я посчитал что это может быть несущественным. 2) разница в операционных системах. это также могло повлиять на версии dll.
Поэтому я задал вопрос на форуме, чтобы с вашей помощью локализовать ошибку.
Схема работы программы проста. Она связывается с сервером находит в таблице записанный туда xml-файл, проверяет в нем подпись и возвращает результат. На операционных системах Vista проверки с подписанными, неподписанными, измененными и файлами не содержащими тегов Signature проходят нормально и выдают те результаты, которые ожидаются. На server 2003 программа ведет себя практически также как и на Vista за исключением случая, когда проверяется реально подписанный и неизмененный xml. Она возвращает ошибку, что не может получить сертификат из открытого ключа.
Т.е. сначала вызывается
xmldsig->verify(pKey, &pKeyOut) , который отрабатывает без ошибок, но уже далее
pKeyOut->getVerifyingCertificate(&certUnk)
возвращает FAIL, хотя pKeyOut != NULL
Т.е. из сертификата, который находится в xml получается создать ключ и проверить им xml, но не получается вытащить сам сертификат. Все.
П.С. в прошлой теме я сейчас продолжу дисскуссию, но уже по тому вопросу.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
Поставьте везде для начала одинаковую версию CSP 3.6.6497. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.08.2009(UTC) Сообщений: 60
|
Цитата:Поставьте везде для начала одинаковую версию CSP 3.6.6497. Это уже было сделано. Везде стоит версия 3.6.6497 Цитата:Я проверил наличие одинаковых версий CSP, CAPICOM и MSXML.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
А можете выложить проблемный подписанный xml? На чистой 2003 тоже не работает? Отредактировано пользователем 6 ноября 2010 г. 15:51:23(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.08.2009(UTC) Сообщений: 60
|
Вот например такие xml: out_signature.xmlout_signature_test3.xmlПравда я не думаю, что эти xml проблемные, т.к. они проходят проверку на нескольких машинах, кроме сервера. Цитата:На чистой 2003 тоже не работает? Не понял вопрос про чистую 2003. Имеется в виду сервер без установленного csp КриптоПро?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
Имеется в виду свежеустановленный Windows с CSP. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.08.2009(UTC) Сообщений: 60
|
Нет, это проверить не смогу, т.к. нет свободных машин для этого. Могу проверить на другом сервере с такой же ОС, на котором до этого CSP не устанавливался.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
На тестовых машинах проверил out_signature.xml - сертификат возвращается на windows 2008 и windows 2003. Пришлите список установленного ПО на сервере, экспортируйте промежуточные и доверенные CA, пользователя под которым проверяется файл и выложите ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close