Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline cyrill  
#1 Оставлено : 22 января 2019 г. 14:23:32(UTC)
cyrill

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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
..
Offline cyrill  
#2 Оставлено : 22 января 2019 г. 14:39:58(UTC)
cyrill

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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
Offline cyrill  
#3 Оставлено : 23 января 2019 г. 9:13:02(UTC)
cyrill

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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

После этого подпись заработала
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.