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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline IOFeed  
#1 Оставлено : 7 мая 2015 г. 9:51:48(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
Подскажите, поддерживается ли шифрование средствами плагина на Linux?

Мой пример отлично работает на Windows - шифрование и дешифрование проходит без проблем... Однако на Linux я получаю ошибку:
Цитата:
Error: Error calling method on NPObject!

При этом сам плагин у меня рабочий, так как на ваших тестовых страницах успешно проходит подписание.

Собственно код:
Код:

    try {
        var oEnvelop = ObjCreator("CAdESCOM.CPEnvelopedData");   
    } catch (err) {
        alert('Failed to create CAdESCOM.CPEnvelopedData: ' + err.number);
        return;
    }
    var CADESCOM_BASE64_TO_BINARY=0x01;  
    var certificateTo = GetCertificate(certListBoxId);
    var dataToCrypt = document.getElementById("InputTxtBox").value;

    try {
        oEnvelop.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
        oEnvelop.Content = dataToCrypt;
        oEnvelop.Recipients.Clear(); 
        oEnvelop.Recipients.Add(certificateTo); 
        var EncryptedData = oEnvelop.Encrypt(); 
        document.getElementById("OutputTxtBox").innerHTML = EncryptedData;
    }
    catch(ex) {
        document.getElementById("OutputTxtBox").innerHTML = ex;
    }


Версия плагина: 2.0.2051
Версия CSP: 4.0.9518
Версия браузера: Mozilla Firefox 37.0.2 64bit
Версия ОС: Ubuntu 14.04.2 LTS 3.13.0-51-generic x86_64

Вывод dpkg -l | grep csp:
Цитата:
ii cprocsp-npcades-64 4.0.0-4 amd64 CryptoPro CAdES NPAPI plugin library. Build 9549.
ii cprocsp-rdr-gui-gtk-64 4.0.0-4 amd64 GUI components for CryptoPro CSP readers. Build 9518.
ii lsb-cprocsp-base 4.0.0-4 all Crypto-Pro CSP library. Build 9518.
ii lsb-cprocsp-cades-64 4.0.0-4 amd64 CryptoPro CAdES shared library. Build 9549.
ii lsb-cprocsp-capilite-64 4.0.0-4 amd64 CryptoAPI lite. Build 9518.
ii lsb-cprocsp-kc1-64 4.0.0-4 amd64 Crypto-Pro CSP library. Build 9518.
ii lsb-cprocsp-kc2-64 4.0.0-4 amd64 CryptoPro CSP KC2. Build 9518.
ii lsb-cprocsp-ocsp-util-64 4.0.0-4 amd64 CryptoPro PKI shared library. Build 9549.
ii lsb-cprocsp-rdr-64 4.0.0-4 amd64 CryptoPro CSP readers. Build 9518.
ii lsb-cprocsp-tsp-util-64 4.0.0-4 amd64 CryptoPro TSP client. Build 9549.
Offline cross  
#2 Оставлено : 8 мая 2015 г. 11:09:11(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
На каком вызове ломается?
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline cross  
#3 Оставлено : 8 мая 2015 г. 11:10:34(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Вот тут у вас именно base64 данные?
var dataToCrypt = document.getElementById("InputTxtBox").value;
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline IOFeed  
#4 Оставлено : 22 мая 2015 г. 17:56:15(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
cross, спасибо за ответы, проблемы удалось побороть - данные действительно передавал на в base64 виде.
Однако, возник новый вопрос, не получается заставить работать функцию проверки подписи (делал в строгом соотвествии с примерами http://cpdn.cryptopro.ru...tent/cades/plugin.html).
Код:

	function VerifySignCades(signatureBody, dataToVerify) {
      var oSignedData = ObjCreator("CAdESCOM.CadesSignedData");
	    var CADESCOM_CADES_BES = 1;
	    var CADESCOM_BASE64_TO_BINARY = 1;

        try {
            oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
            oSignedData.Content = StringToBase64(dataToVerify);
            oSignedData.VerifyCades(signatureBody, CADESCOM_CADES_BES);
        } catch (ex) {
            throw "Failed to verify signature. Error: " + GetErrorMessage(ex);
            return false;
        }
        return true;
	}


На выходе получаю точно такую же ошибку:
Цитата:
Error: Error calling method on NPObject!


Что любопытно, данный код работает в Internet Explorer, но на любом другом браузере (вне зависимости от ОС) - возвращает описанную выше ошибку.
Offline cross  
#5 Оставлено : 26 мая 2015 г. 11:25:46(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
У вас отсоединеная подпись ведь? Нужен третий параметр в VerifyCades()
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline IOFeed  
#6 Оставлено : 26 мая 2015 г. 16:22:55(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
Да, вы правы, не хватало третьего параметра:
Код:

oSignedData.VerifyCades(signatureBody, CADESCOM_CADES_BES, true);

Теперь проверка подписи корректно работает во всех браузерах на Windows, однако, на Linux проблема осталась: "Error calling method on NPObject!"

Для диагностики проблемы я добавил проверочный вывод данных, хранящихся в свойствах объекта oSignedData.Content и заметил интересуню особеннесть.
Так выглядит вывод лога на Windows:
Цитата:
Переданы данные для проверки: VGVzdF90ZXh0
Данные записаны в свойство Content: VGVzdF90ZXh0

Результат провери подписи: true

А так выглядит уже на Linux:
Цитата:
Переданы данные для проверки: VGVzdF90ZXh0
Данные записаны в свойство Content: VGVzdF90ZXh0


Failed to verify signature. Error: Error calling method on NPObject!

Таким образом, видим что на Linux в свойтсве oSignedData.Content хранится дополнительный символ новой строки. Может ли это быть причиной проблемы? В таком случае это недоработка плагина?

Собственно код:
Код:

      var oSignedData = ObjCreator("CAdESCOM.CadesSignedData");
	    var CADESCOM_CADES_BES = 1;
	    var CADESCOM_BASE64_TO_BINARY = 1;
	    dataToVerify = StringToBase64(dataToVerify);
	    log("Переданы данные для проверки: " + dataToVerify);

        try {
            oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
            oSignedData.Content = dataToVerify;
            log("Данные записаны в свойство Content: " + oSignedData.Content);
            log("----------------------------------------------------------")
            oSignedData.VerifyCades(signatureBody, CADESCOM_CADES_BES, true);
        } catch (ex) {
            throw "Failed to verify signature. Error: " + GetErrorMessage(ex);
            return false;
        }
        return true;

Отредактировано пользователем 27 мая 2015 г. 10:43:02(UTC)  | Причина: Не указана

Offline IOFeed  
#7 Оставлено : 26 мая 2015 г. 16:46:29(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
Автор: cross Перейти к цитате
У вас отсоединеная подпись ведь?

Подпись создаю так:
Код:
	    
			var certObject = GetCertificate(certThumbprint);
	    try {
	        var oSigner = ObjCreator("CAdESCOM.CPSigner");
	    } catch (ex) {
	        throw "Failed to create CAdESCOM.CPSigner: " + ex.number;
	    }
	    if (oSigner) {
	        oSigner.Certificate = certObject;
	    }
	    else {
	        throw "Failed to create CAdESCOM.CPSigner";
	    }

	    var oSignedData = ObjCreator("CAdESCOM.CadesSignedData");
	    var CADES_BES = 1;
	    var CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;
	    var CADESCOM_BASE64_TO_BINARY = 1;
	    var Signature;

	    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
        oSignedData.Content = StringToBase64(dataToSign);
        oSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN;
        try {
            Signature = oSignedData.SignCades(oSigner, CADES_BES, true);
        } catch (ex) {
            throw "Failed to create signature. Error: " + GetErrorMessage(ex);
        }
	    return Signature;	
Offline IOFeed  
#8 Оставлено : 2 июня 2015 г. 11:05:47(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
Проблема решилась удалением и повторной установкой пакетов КриптоПро...
Offline IOFeed  
#9 Оставлено : 30 июля 2015 г. 14:30:45(UTC)
IOFeed

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 6 раз в 5 постах
Помимо установки стандартных пакетов может помочь установка cprocsp-curl-64-4.0.0-4.x86_64.rpm
Offline SantaKlaus  
#10 Оставлено : 6 октября 2017 г. 12:01:11(UTC)
SantaKlaus

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: IOFeed Перейти к цитате
Подскажите, поддерживается ли шифрование средствами плагина на Linux?

Мой пример отлично работает на Windows - шифрование и дешифрование проходит без проблем... Однако на Linux я получаю ошибку:
Цитата:
Error: Error calling method on NPObject!

При этом сам плагин у меня рабочий, так как на ваших тестовых страницах успешно проходит подписание.

Собственно код:
Код:

    try {
        var oEnvelop = ObjCreator("CAdESCOM.CPEnvelopedData");   
    } catch (err) {
        alert('Failed to create CAdESCOM.CPEnvelopedData: ' + err.number);
        return;
    }
    var CADESCOM_BASE64_TO_BINARY=0x01;  
    var certificateTo = GetCertificate(certListBoxId);
    var dataToCrypt = document.getElementById("InputTxtBox").value;

    try {
        oEnvelop.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
        oEnvelop.Content = dataToCrypt;
        oEnvelop.Recipients.Clear(); 
        oEnvelop.Recipients.Add(certificateTo); 
        var EncryptedData = oEnvelop.Encrypt(); 
        document.getElementById("OutputTxtBox").innerHTML = EncryptedData;
    }
    catch(ex) {
        document.getElementById("OutputTxtBox").innerHTML = ex;
    }


Версия плагина: 2.0.2051
Версия CSP: 4.0.9518
Версия браузера: Mozilla Firefox 37.0.2 64bit
Версия ОС: Ubuntu 14.04.2 LTS 3.13.0-51-generic x86_64

Вывод dpkg -l | grep csp:
Цитата:
ii cprocsp-npcades-64 4.0.0-4 amd64 CryptoPro CAdES NPAPI plugin library. Build 9549.
ii cprocsp-rdr-gui-gtk-64 4.0.0-4 amd64 GUI components for CryptoPro CSP readers. Build 9518.
ii lsb-cprocsp-base 4.0.0-4 all Crypto-Pro CSP library. Build 9518.
ii lsb-cprocsp-cades-64 4.0.0-4 amd64 CryptoPro CAdES shared library. Build 9549.
ii lsb-cprocsp-capilite-64 4.0.0-4 amd64 CryptoAPI lite. Build 9518.
ii lsb-cprocsp-kc1-64 4.0.0-4 amd64 Crypto-Pro CSP library. Build 9518.
ii lsb-cprocsp-kc2-64 4.0.0-4 amd64 CryptoPro CSP KC2. Build 9518.
ii lsb-cprocsp-ocsp-util-64 4.0.0-4 amd64 CryptoPro PKI shared library. Build 9549.
ii lsb-cprocsp-rdr-64 4.0.0-4 amd64 CryptoPro CSP readers. Build 9518.
ii lsb-cprocsp-tsp-util-64 4.0.0-4 amd64 CryptoPro TSP client. Build 9549.



Привет, друг!

Скажи как у тебя получилось в линукс подцепить комовскую библиотеку CAdESCOM?
На сколько я знаю API BrowserPlugin не позволяет шифровать и дешифровать сообщения, там только доступны функции для создания подписи?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.