Статус: Новичок
Группы: Участники
Зарегистрирован: 13.02.2013(UTC) Сообщений: 7 Сказал «Спасибо»: 1 раз
|
Windows XP Крипто Про 3.6.6497 (КС2 3.6.5359). Лицензия действительна. Создаём подпись CAdES-BES Используем cades.dll (низкоуровневые или высокоуровневые функции). Сертификат и вся цепочка (3 шт.) действительны. Ключи лежат на ruToken или eToken. То же при использовании сертификата с тестового УЦ с сайта. Криптопровайдер Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider. Алгоритм: 1.2.643.2.2.3 или 1.2.643.2.2.4 Ошибка: 0x80092004 Лог: 00000001 0.00000000 [5832] cades.dll: {4136} /CadesSignMessage/ cades.cpp(2108) : (pSignPara=0x020FC7A8, fDetachedSignature=-1, cToBeSigned=1, rgpbToBeSigned=0x0012FCFC, rgcbToBeSigned=0x0012FCF8, ppSignedBlob=0x0012FD00) 00000002 0.14050500 [5832] cades.dll: {4136} /CadesSignMessageImpl/ cades.cpp(1990) : Signer updating start 00000003 0.14053182 [5832] cades.dll: {4136} /CadesSignMessageImpl/ cades.cpp(1993) : Hash algorithm deduced 00000004 0.14055976 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::AttributeExists/ cades.cpp(185) : (pAttr=0) 00000005 0.14058742 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(381) : Signer does not have any of signing-certificate attributes 00000006 0.14061843 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(387) : Attributes copied 00000007 0.14178115 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(390) : signing-certificate(-v2) attribute assembled 00000008 0.14180852 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::UpdateSignedAttributes/ cades.cpp(393) : Signer is updated successfully 00000009 0.14183982 [5832] cades.dll: {4136} /CadesMsgOpenToEncode/ cades.cpp(495) : (dwMsgEncodingType=0x00010001, dwFlags=0x00000004, pvMsgEncodeInfo=0x0012F76C, pszInnerContentObjID=0, pStreamInfo=0x00000000) 00000010 0.14186524 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImpl/ cades.cpp(443) : Start 00000011 0.14189233 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImpl/ cades.cpp(447) : Input parameters checked 00000012 0.14191915 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImpl/ cades.cpp(456) : Copy of input structures is ready 00000013 0.14194654 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImpl/ cades.cpp(462) : Signers updating start 00000014 0.14197139 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImpl/ cades.cpp(467) : Signer #0 00000015 0.45925865 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(411) : Public key info is exported successfully 00000016 0.45929468 [5832] cades.dll: {4136} /CadesMsgOpenToEncodeImplNamespace::CheckAlgorithms/ cades.cpp(417) : Exception thrown: _hr 00000017 0.45934862 [5832] cades.dll: {4136} /CadesMsgOpenToEncode/ cades.cpp(514) : COleException, m_sc=0x80092004 00000018 0.45937765 [5832] cades.dll: {4136} /CadesMsgOpenToEncode/ cades.cpp(526) : (hMsg=0x00000000, GetLastError=0x80092004) 00000019 0.45940393 [5832] cades.dll: {4136} /CadesSignMessageImpl/ cades.cpp(2050) : Last win32 error thrown as exception 00000020 0.45970061 [5832] cades.dll: {4136} /CadesSignMessage/ cades.cpp(2128) : COleException, m_sc=0x80092004 00000021 0.45972827 [5832] cades.dll: {4136} /CadesSignMessage/ cades.cpp(2140) : (res=0, GetLastError=0x80092004 Точно такой же ситуации на форуме не нашёл – похоже, но не совсем то… ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ С другими криптопровайдерами подпись CAdES-BES формируется нормально, например: Aktiv ruToken CSP v1.0 eToken Base Cryptographic Provider Также нормально создаётся подпись с сертификатом Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider средствами Crypto API CryptCreateHash, CryptHashData, CryptSignHash; алгоритм CALG_GR3411.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Цитата:Алгоритм: 1.2.643.2.2.3 или 1.2.643.2.2.4 Это OID'ы алгоритмов подписи. Вы куда эти алгоритмы передаете? В функциях cades.dll среди входных параметров присутствует только алгоритм хэширования. Алгоритм подписи определяется на основе алгоритма хэширования и алгоритма открытого ключа в сертификате. Попробуйте с этим алгоритмом: #define szOID_CP_GOST_R3411 "1.2.643.2.2.9"
|
1 пользователь поблагодарил Новожилова Елена за этот пост.
|
s-pro оставлено 14.02.2013(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 13.02.2013(UTC) Сообщений: 7 Сказал «Спасибо»: 1 раз
|
Спасибо за быстрый ответ. Из него проистекает дополнительный вопрос…
Хочется, чтобы приложение было максимально универсальным. Посему, формирование параметров подписи не жёстко прибито гвоздями в коде, а происходит в зависимости от используемого сертификата. 1. Сначала определяем алгоритмы хэширования, поддерживаемые провайдером: CryptGetProvParam(PP_ENUMALGS) по условиию GET_ALG_CLASS = ALG_CLASS_HASH. В случае с криптопровайдером Crypto-Pro GOST получается значение ALG_ID=32798. Пока всё нормально. 2. Далее вычисляем OID этого алгоритма (поскольку никакие функции библиотеки CAdES, вроде как, напрямую не переваривают уже готовый ALG_ID) при помощи CryptFindOIDInfo(CRYPT_OID_INFO_ALGID_KEY). Он нам возвращает "1.2.643.2.2.3" вместо ожидаемого "1.2.643.2.2.9". Получается, такой способ нельзя использовать для Crypto-Pro GOST?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
Для ALG_ID CALG_GR3411 (= 32798) зарегистрирован не только OID "1.2.643.2.2.9", но и "1.2.643.2.2.3". Функция CryptFindOIDInfo находит первый зарегистрированный OID для данного ALG_ID.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close