Статус: Новичок
Группы: Участники
Зарегистрирован: 24.07.2017(UTC) Сообщений: 6  Откуда: Санкт-Петербург Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте! Помогите пожалуйста разобраться. Искал на форуме решение проблемы. Нашёл похожую: https://www.cryptopro.ru...ts&m=25794#post25794Делаю всё как описано: Цитата: Установлено КриптоПро CSP. Лицензии действующие. Получил сертификат УЦ: 1. Зашел сюда "https://www.cryptopro.ru/certsrv/". 2. Получить сертификат Удостоверяющего Центра или действующий список отозванных сертификатов 3. Загрузка сертификата ЦС 4. сохранил на диск 5. запустил и установил в "Доверенные корневые центры сертификации". Формирую ключи: 1. Зашел сюда "https://www.cryptopro.ru/certsrv/". 2. Сформировать ключи и отправить запрос на сертификат 3. Создать и выдать запрос к этому ЦС. 4. Имя "test_my", остальное все по умолчанию. 5. выбираю"Реестр", ввожу пароль, нажимаю "Установить сертификат" 6. Уаля: Новый сертификат успешно установлен.
беру тестовый пример SimplifiedSignCasesBes.cpp всё прекрасно работает, создаётся файлик sign.dat Далее, если я правильно понимаю, проверить подпись нужно при помощи SimplifiedVerifyCadesBes.cpp, которая выдаёт ошибку: CadesVeryfiMessage() failed В DebugView такие строки: Код:
[9208] Externs.cpp(33) : /Init/
[9208] CPSettings.cpp(305) : /Init/
[9208] Externs.cpp(33) : /Init/
[9208] CPSettings.cpp(305) : /Init/
[9208] Externs.cpp(33) : /Init/
[9208] CPSettings.cpp(305) : /Init/
[9208] cades.dll: {5148} /CCadesApp::InitInstance/ CadesApp.cpp(16) : hInstance=5E600000
[9208] cades.dll: {5148} /CadesVerifyMessage/ cades.cpp(2823) : (pVerifyPara=0x0034F82C, dwSignerIndex=0, pbSignedBlob=0x006541F8, cbSignedBlob=1112, ppDecodedBlob=0x0034F814, ppVerificationInfo=0x0034F820)
[9208] cpcspi: Thread: file:line function text xcode(dcode) level: 0
[9208] cpcsp: Thread: file:line text level: 0
[9208] cpui: Thread: file:line function text xcode(dcode) level: 0
[9208] cades.dll: {5148} /CadesMsgVerifySignatureImpl/ cades.cpp(1751) : Input parameters checked
[9208] cades.dll: {5148} /ExtractReferencedValidationData/ ValidationEvidence.h(1175) : Signer certificate not found
[9208] cades.dll: {5148} /CadesVerifyMessage/ cades.cpp(2843) : COleException, m_sc=0x80070490
[9208] cades.dll: {5148} /CadesVerifyMessage/ cades.cpp(2855) : (res=0, GetLastError=0x80070490
[9208] cades.dll: {5148} /CadesFreeVerificationInfo/ cades.cpp(2918) : (pVerificationInfo=0x006486C8)
[9208] cades.dll: {5148} /CadesFreeVerificationInfo/ cades.cpp(2946) : (res=1, GetLastError=0x80070490
Если же проверить из командной строки, то говорит что всё ок: Код:
csptest -sfsign -verify -in D:\vs_tests\cades_samples\SimplifiedSignCadesBes\sign.dat -my "Илья"
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6590 OS:Windows CPU:IA32 FastCode:RE
ADY,DISABLED (CContextG28147EncryptECB; CContextG28147DecryptECB; CContextG28147
EncryptCBC; CContextG28147DecryptCBC; CContextG28147G
#0:
Subject: CN=Илья
Valid : 24.07.2017 - 24.10.2017
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO
Test Center 2
#0:
Subject: CN=Илья
Valid : 24.07.2017 - 24.10.2017
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO
Test Center 2
Signature was verified OK
Total: SYS: 0,016 sec USR: 0,000 sec UTC: 0,062 sec
[ErrorCode: 0x00000000]
Система и компоненты:Windows 7 64 sp1 КриптоПро ЭЦП Browser plug-in 2.0.12888 КриптоПро CSP 3.6.6590 КриптоПро ЭЦП SDK 2.0.12746
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.03.2013(UTC) Сообщений: 805   Откуда: Оттуда Сказал «Спасибо»: 4 раз Поблагодарили: 148 раз в 144 постах
|
Добрый день. Приложите получившийся файл sign.dat посмотреть. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.07.2017(UTC) Сообщений: 6  Откуда: Санкт-Петербург Сказал(а) «Спасибо»: 1 раз
|
Цитата:Добрый день. Приложите получившийся файл sign.dat посмотреть. С этим разобрался. Оказывается нужно было поставить ещё и файл certnew.p7b (цепочка сертификатов) Но теперь есть ещё одна проблема. Может поможете заодно. Там в коде можно передать Имя сертификата и тогда программа его выберет без всяких проверок, а можно ничего не передавать и тогда программа выберет первый удовлетворяющий условиям. Так вот если я пишу имя, то выбирается соответствующий сертификат, и то всё работает хорошо, и подпись и верификация подписи. А вот если имя сертификата не задать, он переберёт все, в том числе и тот, на котором работает, но не найдёт подходящего, т.к. не выполняется условие: Код:
inline bool isGostType(unsigned long dwProvType) {
return (dwProvType == PROV_GOST_2001_DH);//здесь dwProvType == 1
}
P.S. Работает всё в режиме CADES_BES в режиме CADES_X_LONG_TYPE_1 не работает, но это наверно уже следующий вопрос. Отредактировано пользователем 31 июля 2017 г. 9:29:24(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
пример предназначен для работы с ГОСТ сертификатами. Если у вас там тип 1 то у вас RSA сертификат. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.07.2017(UTC) Сообщений: 6  Откуда: Санкт-Петербург Сказал(а) «Спасибо»: 1 раз
|
Спасибо за ответ, но у меня сертификат который на сайте https://www.cryptopro.ru/certsrv/по-умолчанию - Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider. вот его экспорт  export_cert_des.zip (1kb) загружен 4 раз(а).А вот некоторые из его свойств: Код:Алгоритм подписи:
ГОСТ Р 34.11/34.10-2001
Алгоритм хэширования подписи:
ГОСТ Р 34.11-94
Издатель:
CN = CRYPTO-PRO Test Center 2
O = CRYPTO-PRO LLC
L = Moscow
C = RU
E = support@cryptopro.ru
Открытый ключ:
ГОСТ Р 34.10-2001(512 bits)
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.03.2013(UTC) Сообщений: 805   Откуда: Оттуда Сказал «Спасибо»: 4 раз Поблагодарили: 148 раз в 144 постах
|
Приложите ветку реестра посмотреть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults Сертификатов много в личном хранилище? Приложите результат выполнения Код:csptest -certkey -store my -nochange -provt 75 -v
|
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.07.2017(UTC) Сообщений: 6  Откуда: Санкт-Петербург Сказал(а) «Спасибо»: 1 раз
|
Цитата:Приложите ветку реестра посмотреть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults Вот ветка  cryptography_defaults.reg (11kb) загружен 2 раз(а).Цитата:Сертификатов много в личном хранилище? Приложите результат выполнения csptest -certkey -store my -nochange -provt 75 -v а вот результат выполнения команды: Код:
C:\Program Files (x86)\Crypto Pro\CSP>csptest -certkey -store my -nochange -prov
t 75 -v
CSP (Type:75) v3.6.5359 KC1 Release Ver:3.6.6590 OS:Windows CPU:IA32 FastCode:RE
ADY,DISABLED (CContextG28147EncryptECB; CContextG28147DecryptECB; CContextG28147
EncryptCBC; CContextG28147DecryptCBC; CContextG28147G
No changes will be made!
Src ProvType: 75
Src ProvName: (any)
New ProvName: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Cert: OID.1.2.643.100.1=1037828047872, OID.1.2.643.100.3=00570200691, OID.1.2.64
3.3.131.1.1=007813185022, E=irina.xxxxxxxxx@xxxxxxxx.spb.ru, OID.1.2.840.113549.
1.9.2="INN=.....
Cont: SCARD\rutoken_347f60bc\0A00\0BFD
Prov: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
Type: 75, Spec: 1, Flags: 0x0
Total: SYS: 0,031 sec USR: 0,031 sec UTC: 0,318 sec
[ErrorCode: 0x00000000]
C:\Program Files (x86)\Crypto Pro\CSP>
(Во втором сертификате убрал из вывода инфу об организации.)
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.03.2013(UTC) Сообщений: 805   Откуда: Оттуда Сказал «Спасибо»: 4 раз Поблагодарили: 148 раз в 144 постах
|
Попробуйте переустановить личные сертификаты через панель КриптоПро CSP с привязкой к закрытому ключу. Судя по выводу csptest - нашим провайдером (Crypto-Pro GOST R 34.10-2001) установлен только один сертификат, и это не тот, который был приложен (export_cert_des.cer), возможно поэтому тестовый пример не находит ничего подходящего для подписи. |
|
 1 пользователь поблагодарил Андрей Емельянов за этот пост.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.07.2017(UTC) Сообщений: 6  Откуда: Санкт-Петербург Сказал(а) «Спасибо»: 1 раз
|
Цитата:Попробуйте переустановить личные сертификаты через панель КриптоПро CSP с привязкой к закрытому ключу. Судя по выводу csptest - нашим провайдером (Crypto-Pro GOST R 34.10-2001) установлен только один сертификат, и это не тот, который был приложен (export_cert_des.cer), возможно поэтому тестовый пример не находит ничего подходящего для подписи. Переустановил. Заработало. Спасибо огромное. А по поводу усовершенствованной подписи ( CADES_X_LONG_TYPE_1) не подскажете почему может не работать? Или это лучше отдельный вопрос создать?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.03.2013(UTC) Сообщений: 805   Откуда: Оттуда Сказал «Спасибо»: 4 раз Поблагодарили: 148 раз в 144 постах
|
Цитата:А по поводу усовершенствованной подписи ( CADES_X_LONG_TYPE_1) не подскажете почему может не работать? Опишите, пожалуйста, подробнее каким образом подпись ставите и какие ошибки. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close