| ||||
| ||||
Добрый день! Пытаюсь создать усовершенствованную подпись с помощью низкоуровневых функций КриптоПро ЭЦП SDK на основе примера из Руководства разработчика. В CadesMsgEnhanceSignature для ГОСТ Р 34.11/34.10-2001 получаю ошибку 80090008 (указан неправильный алгоритм) Какой же должен быть алгоритм ?? Криптопровайдер: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider Подписываю по следующей схеме: //signer.HashAlgorithm.pszObjId = '1.2.643.2.2.3'; CadesMsgOpenToEncode // все отработыает нормально CryptMsgUpdate CryptMsgGetParam(hMsg,CMSG_CONTENT_PARAM,0,nil,@size_enc); CryptMsgGetParam(hMsg,CMSG_CONTENT_PARAM,0, mess_enc,@size_enc); CryptMsgClose; //получил подписанное сообщение //далее пытаюсь добавить усовершенствованную подпись cadesPara.dwSize := sizeof(CADES_SIGN_PARA); cadesPara.dwCadesType := CADES_X_LONG_TYPE_1; cadesPara.pSignerCert := cert1; cadesPara.szHashAlgorithm := '1.2.643.2.2.3' // ГОСТ Р 34.11/34.10-2001 cadesPara.hAdditionalStore := nil; cadesPara.pTspConnectionPara := nil; cadesPara.pProxyPara := nil; CadesMsgEnhanceSignature(hMsg,0, @cadesPara) // получаю ошибку 80090008 (указан неправильный алгоритм) // если в третий параметр передаю nil – та же ошибка // если алгоритм '1.2.643.2.2.9' - ошибка C2100121 | ||||
Ответы: | ||||
| ||||
Вы передаёте алгоритм подписи вместо алгоритма хеширования. В данном случае надо использовать 1.2.643.2.2.9: cadesPara.szHashAlgorithm := '1.2.643.2.2.9' // ГОСТ Р 34.11 Ошибка C2100121 означает, что не задан адрес службы штампов времени. Нужно указать адрес службы в параметре cadesPara.pTspConnectionPara, либо настроить адрес службы штампов времени по умолчанию в групповой политике "КриптоПро TSP Client". | ||||