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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline varenikAA  
#1 Оставлено : 20 марта 2023 г. 10:09:03(UTC)
varenikAA

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

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

В статье https://docs.cryptopro.r.../plugin/content-encoding указывается, что существует ограничение на размер подписываемых данных.
У меня реализовано шифрование, я и также столкнулся с тем, что файл более 60МБ не шифруется. Хотя причину я точно определить не могу,
все что есть, это сообщение в консоли браузера
Цитата:
Uncaught (in promise) {type: 'error', requestid: 8, message: 'Lost connection to extension'}

У меня два вопроса:
1) если эта ошибка также как и подписание связана с ограничениями плагина возможно ли шифрование файла по частям. Если не сложно с примером))
2) зашифрованные данные возвращаются в кодировке base64. Нельзя их сразу возвращать в двоичном виде? Решение обходное отправить шифрованный файл на сервер и там перекодировать, но хтелось бы по возможности избежать лишних операций.
Заранее спасибо!

Код:

<script language="javascript" src="cadesplugin_api.js"></script>
<script>
    async function enc() {
        var oFile = document.getElementById("uploadFile").files[0];
        var selectedCert = await cadesplugin.CreateObjectAsync("CAdESCOM.Certificate");
        var dataCert = await fetch("m.cer");
        await selectedCert.Import(await dataCert.text());

        var reader = new FileReader();

        reader.onload = async function (ev) {
            console.log(ev);
            var header = ";base64,";
            var sFileData = reader.result;
            var sBase64Data = sFileData.substr(sFileData.indexOf(header) + header.length);
            var oEnvelop = await cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
            await oEnvelop.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
            await oEnvelop.propset_Content(sBase64Data);
            await (await oEnvelop.Recipients).Add(selectedCert);
            var data = await oEnvelop.Encrypt();
            var a = document.createElement("a");
            document.body.appendChild(a);
            let blob = new Blob([data], {
                type: "octet/stream",
            });

            let url = window.URL.createObjectURL(blob);
            a.href = url;
            a.download = oFile.name + ".p7e";
            a.click();
            window.URL.revokeObjectURL(url);
            document.body.removeChild(a);
        };
        reader.readAsDataURL(oFile);
    }

</script>
<input type="file" id="uploadFile" />
<button type="button" onclick="enc();">enc</button>
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.