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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Космос2  
#1 Оставлено : 29 марта 2019 г. 15:20:00(UTC)
Космос2

Статус: Новичок

Группы: Участники
Зарегистрирован: 29.03.2019(UTC)
Сообщений: 1
Российская Федерация

Доброго времени суток!

Я не могу доподписать алгоритмом CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 файл больше 45МБ подписанный CADESCOM_HASH_ALGORITHM_CP_GOST_3411 вылетает ошибка "Lost connection to extension" на yield oSignedData1.propset_Content(Base64Data); тоже и при обратной последовательности алгоритмов.

В документации написано что в зависимости от конфигурации компьютера (используемая оперативная память, количество открытых вкладок браузера и т.п.) размер файлов, которые возможно будет подписать вариируется от 10 МБ до 60 МБ. Если есть необходимость подписания файлов большего размера, то рекомендуется использовать Подпись файла с использованием FileAPI. Что я и делаю как описано в Подпись файла с использованием FileAPI и чтением файла по частям т.е. кодированный файл частями добавляю в yield oHashedData1.Hash(Base64Data[i]); и далее само доподписание:

var oSignedData1 = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData1.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oSignedData1.propset_Content(Base64Data);
yield oSignedData1.VerifyCades(sign_message, cadesplugin.CADESCOM_CADES_BES, true);
var sSignedMessage1 = yield oSignedData1.CoSignHash(oHashedData1, oSigner1, cadesplugin.CADESCOM_CADES_BES);

Для файлов меньше 45МБ все проходит отлично вне зависимости от того каким алгоритмом был сначала подписан файл Алгоритмом ГОСТР34.11-94 или Алгоритмом ГОСТР34.10-2012. Или это третье подписание 3411 когда файл уже был подписан и 3411 и 3411_2012_256. Большой файл при этом выдает ошибку "Lost connection to extension" на yield oSignedData1.propset_Content(Base64Data); потому что просто не помешается. Раньше я использовал:

var oSignedData1 = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData1.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oSignedData1.VerifyHash(oHashedData1, sign_message, cadesplugin.CADESCOM_CADES_BES);
var sSignedMessage1 = yield oSignedData1.CoSignHash(oHashedData1, oSigner1, cadesplugin.CADESCOM_CADES_BES);

И это работает при доподписании файла любого размера но только одним алгоритмом заранее указанным в

var oHashedData1 = yield cadesplugin.CreateObjectAsync("CAdESCOM.HashedData");
yield oHashedData1.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oHashedData1.propset_Algorithm(oAlg);// 100 или 101

иначе ошибка "неправильное значение хэша".

Я вижу здесь не разрешимое противоречие Brick wall или доподписывать маленький файл(в моем случае <45МБ) любым из двух алгоритмом или любой файл но только алгоритмом первой подписи. Подскажите пожалуйста выход из данного тупика.



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