logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Ozzy  
#1 Оставлено : 28 декабря 2018 г. 19:11:29(UTC)
Ozzy

Статус: Участник

Группы готовые для захвата: Участники
Зарегистрирован: 26.12.2011(UTC)
Сообщений: 22
Откуда: Москва

Добрый день.

Происходит ошибка при попытке расшифровать зашифрованные данные с помощью плагина для браузеров под MacOS. Ниже- пример, в котором осуществляется зашифровывание и тут же расшифровывание.

Код:
        
function decodeTest2() {
    cadesplugin.then(function() {
        var sn = document.getElementById("certSnInput").value;
        var text = "0J/QvtCx0LXQtNCw";
        getCertBySn(sn.toUpperCase()).then(function(cert) {
                return encryptData(text, cert);
            })
            .then(function(enc) {
                return decryptData(enc); // <------------ ошибка происходит тут
            })
            .then(function(data) {
                alert('Исходный=' + text + " Результат=" + data);
            })
            .catch(function(e) {
                alert(getErrorText(e));
            });
    });
}

function decryptData(dataToDecrypt) {
    return new Promise(function(resolve, reject) {
        cadesplugin.async_spawn(function*() {
            try {
                var oEnvelopedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
                yield oEnvelopedData.propset_ContentEncoding(1);
                yield oEnvelopedData.propset_Content(dataToDecrypt);
                yield oEnvelopedData.Decrypt(dataToDecrypt); // <------------ ошибка происходит тут
                resolve(yield oEnvelopedData.Content);
            } catch (fatalError) {
                console.log('Ошибка  => ', fatalError);
                reject(fatalError.message);
            }

        });
    });
}

function encryptData(data, cert) {
    return new Promise(function(resolve, reject) {
        cadesplugin.async_spawn(function*() {
            try {
                var oEnvelopedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
                yield oEnvelopedData.propset_ContentEncoding(1);
                yield oEnvelopedData.propset_Content(data);
                console.error(oEnvelopedData);
                var recipients = yield oEnvelopedData.Recipients;
                console.error(recipients);
                yield recipients.Clear();
                yield recipients.Add(cert);
                resolve(yield oEnvelopedData.Encrypt());
            } catch (e) {
                reject(e);
            }
        });
    });
}



Под виндой этот скрипт отрабатывает норм. Что делать, куда копать, какие данные ещё нужно предоставить?

Отредактировано пользователем 5 января 2019 г. 11:39:17(UTC)  | Причина: Не указана

Offline Андрей Емельянов  
#2 Оставлено : 10 января 2019 г. 8:30:20(UTC)
Андрей Емельянов

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 136 раз в 133 постах
Добрый день.
Уточните, пожалуйста, версии установленных сборок КриптоПро CSP, КриптоПро ЭЦП Browser plug-in. Какой алгоритм у ключа шифрования (сертификата)? Укажите какие ошибки в консоли браузера.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.