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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline dronlinux  
#1 Оставлено : 19 марта 2015 г. 14:08:17(UTC)
dronlinux

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

Группы: Участники
Зарегистрирован: 21.02.2012(UTC)
Сообщений: 9

Здравствуйте!

Использую:
1. СКЗИ КриптоПро CSP 3.6.7491 (ЖТЯИ.00050-03).
2. КриптоАрм 4.3.17 (для тестирования подписи)
3. cadessdk.msi (2.0.1865)

Пытаюсь в .NET(4.5) наладить автоматическую обработку файлов - подписание/снятие подписи CADES-BES через CADESCOM
Мне необходимо подписывать/снимать подпись с файлов типа: zip, docx, txt, xml - вообщем весь набор

Почитал на форуме проблемы с кодировками в .NET после чего в проекте стал использовать Interop.CAdESCOM.dll и Interop.CAPICOM.dll с форума.

Проблема:

Проверяю подпись, сделанную в КриптоАрм - файл размером - 32,9 мб

Код:
Код:

          public byte[] VerifySign(byte[] content)
         {
           try
            {
                CadesSignedData signedData = new CadesSignedDataClass();
             
                signedData.VerifyCades(
                    content,
                    CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false);
                return signedData.Content;
            }
            catch (Exception ex)
            {
                throw new CryptoException(GetErrorString(ex.Message));
            }
           
        }


Возникает ошибка: Нехватка памяти для ASN1. (0x80093106)

На файлах менее 20 мб все в порядке.

Помогите, как работать с файлами больших размеров(или есть какие то ограничения)?

Как исправить данную ошибку?

Можно ли получить подпись CADES-BES средствами Крипто .NET SDK?
Offline deniska68  
#2 Оставлено : 27 марта 2015 г. 15:09:28(UTC)
deniska68

Статус: Сотрудник

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

Поблагодарили: 1 раз в 1 постах
Добрый день.

Вы подписываете файлы, которые могут быть большими. Для обработки больших объемов данных существуют потоковые функции. Рекомендуем использовать их, как для подписания, так и для проверки подписи. Алгоритм следующий. Сначала вычисляете хеш (в цикле порциями до конца файла), затем хеш подписываете. Таким образом, получаете отсоединенную подпись. Чтобы проверить подпись, аналогично вычисляете хеш и передаете хеш на проверку подписи. Для этого вам дополнительно понадобится объект HashedData.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.