Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2008(UTC) Сообщений: 50   Сказал «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день. При переходе пользователей на подписи ГОСТ 2012 возникает ошибка при подписи файла по хешу (хеш приходит с сервера) Исключение: Invalid algorithm specified. (0x80090008) Вот участок кода: Код:
...
cadesplugin.async_spawn(function*(arg) {
var oSigner;
var oSignedData;
var sSignedData = '';
try {
oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
} catch (e) {
return;
}
if (oSigner) {
yield oSigner.propset_Certificate(params['certificate']);
} else {
return;
}
try {
oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSigner.propset_Options(me.CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY); //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
yield oSignedData.propset_ContentEncoding(0x01);
var oHashedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.HashedData");
yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512);
yield oHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oHashedData.Hash(params['hash']);
var CADES_BES = 1;
try {
sSignedData = yield oSignedData.SignHash(oHashedData, oSigner, CADES_BES);
}
catch (err) {
failureCallback(err.message);
return
}
if (!isEmpty(sSignedData)) {
me.user_certificate = params['certificate'];
successCallback(sSignedData);
return true;
}
return false;
} catch (e) {
failureCallback(e.message);
}
}); //cadesplugin.async_spawn
..
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2008(UTC) Сообщений: 50   Сказал «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Подпись выглядит так: Код:
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : E=test@test2012.ru, CN=Тестовый серт 2012, OU=Main, O=EETP ORG, L=Moskow, S=District, C=RU
Serial : 0x1200319C0CBA0A404E3D33C5A0000000319C0C
SHA1 Hash : ce3fd57f141b5857989cbbe0ba625599557ffcfd
SubjKeyID : 17e0fbdd7fa3e6be140823befe75820242dde4a9
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before : 22/01/2019 08:25:24 UTC
Not valid after : 22/04/2019 08:35:24 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\500320a5.000\65B7
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2008(UTC) Сообщений: 50   Сказал «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Было 2 ошибки: 1. Вместо yield oHashedData.Hash(params['hash']); надо использовать yield oHashedData.SetHashValue(params['hash']); 2. Хоть и написано в ЭП PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits) но алгоритм вычисления хеш функции работает только CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256
После этого подпись заработала
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close