Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2019(UTC) Сообщений: 6
|
Имеется небольшая самописная утилита для формирования цифровой подписи, написанная с использованием cades. В версии криптопро 4 работает замечательно, при переходе на версию 5 функция CadesSignMessage стала возвращать ошибку 0x80090008 - Invalid algorithm specified
Алгоритм хэширования используется - szOID_CP_GOST_R3411_12_256 (1.2.643.7.1.1.2.2) Тип усовершенствованной подписи - CADES_X_LONG_TYPE_1
CryptAcquireContext вызывается с dwProvType = 81 (гост 2012)
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,040 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 226 раз в 213 постах
|
Автор: xxxivanov667 Имеется небольшая самописная утилита для формирования цифровой подписи, написанная с использованием cades. В версии криптопро 4 работает замечательно, при переходе на версию 5 функция CadesSignMessage стала возвращать ошибку 0x80090008 - Invalid algorithm specified
Алгоритм хэширования используется - szOID_CP_GOST_R3411_12_256 (1.2.643.7.1.1.2.2) Тип усовершенствованной подписи - CADES_X_LONG_TYPE_1
CryptAcquireContext вызывается с dwProvType = 81 (гост 2012)
szOID_CP_GOST_R3411_12_256 "1.2.643.7.1.1.2.2" Функция хэширования ГОСТ Р 34.11-2012, длина выхода 256 бит provtype 80 szOID_CP_GOST_R3411_12_512 "1.2.643.7.1.1.2.3" Функция хэширования ГОСТ Р 34.11-2012, длина выхода 512 бит provtype 81 для 2012 с длиной 256 это тип 80 2012 с 512 тип 81 |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2019(UTC) Сообщений: 6
|
К сожалению тип провайдера 80 не помог. Проверено на ключе типа Rutoken S (работает под криптопро 4)
На ключе свойства сертификата такие:
Версия - v3 Алгоритм подписи - ГОСТ Р 34.11-2012/34.10-2012 256 бит Алгоритм хэширования подписи - ГОСТ Р 34.11-2012 256 бит Открытый ключ - ГОСТ Р 34.10-2012 256 бит (512 бит)
Улучшенный ключ - Пользователь службы штампов времени (1.2.643.2.2.34.25) Пользователь службы актуальных статусов (1.2.643.2.2.34.26) Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6) Неизвестное использование ключа (1.2.643.2.64.1.1.1) Неизвестное использование ключа (1.2.643.3.157.2.13) Неизвестное использование ключа (1.2.643.6.37.1.1) Неизвестное использование ключа (1.2.643.6.40.1) Неизвестное использование ключа (1.2.643.6.41.1.1.1) Неизвестное использование ключа (1.2.643.6.42.5.5.5) Неизвестное использование ключа (1.2.643.6.44.1.1.1) Неизвестное использование ключа (1.2.643.6.45.1.1.1) Неизвестное использование ключа (1.2.643.7.2.21.1.2) Проверка подлинности клиента (1.3.6.1.5.5.7.3.2) Защищенная электронная почта (1.3.6.1.5.5.7.3.4)
Формирование подписи в программе реализовано так:
HCRYPTPROV hCertContainer = 0; if( !CryptAcquireContext( &hCertContainer, container_name, NULL, 80, 0 )) return -1; PCCERT_CONTEXT context = GetCertificatFromContainer(hCertContainer); if( !context ) return -1; CRYPT_SIGN_MESSAGE_PARA signPara = { sizeof(signPara) }; signPara.dwMsgEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING; signPara.pSigningCert = context; signPara.HashAlgorithm.pszObjId = szOID_CP_GOST_R3411_12_256;
CADES_SERVICE_CONNECTION_PARA tspConnectionPara = { sizeof(tspConnectionPara) }; tspConnectionPara.wszUri = "http://tax4.tensor.ru/tsp/tsp.srf";
CADES_SIGN_PARA cadesSignPara = { sizeof(cadesSignPara) }; cadesSignPara.dwCadesType = CADES_X_LONG_TYPE_1; cadesSignPara.pTspConnectionPara = &tspConnectionPara;
CADES_SIGN_MESSAGE_PARA para = { sizeof(para) }; para.pSignMessagePara = &signPara; para.pCadesSignPara = &cadesSignPara;
const unsigned char *pbToBeSigned[] = { (unsigned char*)data }; DWORD cbToBeSigned[] = { size };
PCRYPT_DATA_BLOB pSignedMessage = 0;
if( !CadesSignMessage( ¶, 0, 1, pbToBeSigned, cbToBeSigned, &pSignedMessage ) ) { printf( "%x\n", GetLastError() ); }
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Очень странно. Какая платформа? Библиотеки CAdES достаточно свежие? CADES_BES создаётся? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2019(UTC) Сообщений: 6
|
Windows 7 ultimate 64bit КриптоПро CSP - 5.0.11453 КриптоПро ЭЦП Runtime - 2.0.12777 Драйвер Рутокен - 4.7.0.0 Цитата:CADES_BES создаётся? Вы имеете в виду попробовать cadesSignPara.dwCadesType = CADES_BES; ? С таким вариантом та же ошибка 80090008 в версии 5. Версия 4 нормально отработала и в таком варианте.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Включите аудит: Код:[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Cryptography\CurrentVersion\Debug]
"capi10"=dword:0000003f
"capi20"=dword:0000003f
Сообщения об ошибках искать в DbgView |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2019(UTC) Сообщений: 6
|
DbgView выдал
00000001 0.00000000 [2584] Externs.cpp(33) : /Init/ 00000002 0.00014053 [2584] CPSettings.cpp(305) : /Init/ 00000003 0.00504390 [2584] Externs.cpp(33) : /Init/ 00000004 0.00597235 [2584] CPSettings.cpp(305) : /Init/ 00000005 0.04973917 [2584] Externs.cpp(33) : /Init/ 00000006 0.07150251 [2584] CPSettings.cpp(305) : /Init/ 00000007 0.73902947 [2584] <cloud>test.exe:Thread:function text xcode(dcode) (file:line)level: 3000000
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Как-то маловато. Вы установили компонент совместимости с продуктами MSFT? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2019(UTC) Сообщений: 6
|
Ну КриптоПро 5 ставился в режиме "все по умолчанию". Сейчас запустил установщик в режиме "изменить" - "Компонент совместимости с продуктами Microsoft" был не установлен. При попытке доустановить установщик выдал ошибку: Цитата:Ошибка 577: Системе Windows не удается проверить цифровую подпись этого файла. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения Файл CSPSetup-5.0.11453.exe размером 7121608 байт, его MD5 - 43077d4074ac5f77f9a793102f749e39, цифровая подпись LLC Crypto-Pro от 7 мая 2019 г. 0:35:06 путь сертификации DigiCert -> DigiCert EV Code Signing CA -> LLC Crypto-Pro
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Странно, попробуйте удалить и установить заново. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close