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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline fed_or  
#1 Оставлено : 25 января 2018 г. 12:26:40(UTC)
fed_or

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

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

Добрый день!
Написал скрипт проверки установленных сертификатов с использованием ЭЦП Browser plug-in
Код:
        let CAPICOM_CURRENT_USER_STORE = 2;
        let CAPICOM_INFO_SUBJECT_SIMPLE_NAME = 0;
        let CAPICOM_INFO_ISSUER_SIMPLE_NAME = 1;
        let CAPICOM_MY_STORE = "My";
        let CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;

    function SignCreate(certSubjectName, dataToSign) {
        return new Promise(function(resolve, reject){
            cadesplugin.async_spawn(function *(args) {
                try {
                    var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
                    yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
                        CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

                    var certs = yield oStore.Certificates;
                    var certCnt = yield certs.Count;
                    var certificates = [];
                    for (var i = 1; i <= certCnt; i++) {
                        var cert = yield certs.Item(i);

                        var issuer_name = yield cert.GetInfo(CAPICOM_INFO_ISSUER_SIMPLE_NAME);
                        certificates.push({
                            cert: cert,
                            title: (yield cert.GetInfo(CAPICOM_INFO_SUBJECT_SIMPLE_NAME))
                            + ' (' + (yield cert.GetInfo(CAPICOM_INFO_ISSUER_SIMPLE_NAME)) + ')',
                            thumbprint: yield cert.Thumbprint
                        });
                    }
                }
                catch (e)
                {
                    args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(e));
                }
            }, certSubjectName, dataToSign, resolve, reject);
        });
    }

В chrome 63 на windows 10
Цитата:
DEBUG: nmcades_plugin_api.js: Sent message:{"destination":"nmcades","requestid":20,"objid":6,"method":"GetInfo","params":[{"type":"number","value":0}]}
nmcades_plugin_api.js:36
DEBUG: nmcades_plugin_api.js: Received message: {"data":{"requestid":20,"retval":{"type":"string","value":"Наименование организации"},"type":"result"},"tabid":"c8760b0e-1582-5b9d-bc44-6f1bc9a2eeec"}


При выполнении того же скрипта на chromium 63 в ubuntu 16
Цитата:
DEBUG: background.js: Sent native message:{"tabid":"557b1106-9ade-d212-b794-c17c2d351fa5","data":{"destination":"nmcades","requestid":34,"objid":9,"method":"GetInfo","params":[{"type":"number","value":1}]}}
background.js:12
DEBUG: background.js: Received native message:{"data":{"requestid":34,"retval":{"type":"string","value":"�� ������������ ������������"},"type":"result"},"tabid":"557b1106-9ade-d212-b794-c17c2d351fa5"}

Знаки вопросов приходят из плагина и раскодировать их уже не получается.
Код:
user@user-test:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=ru
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

Выполнение
Код:
certmgr -list -store uroot
Показывает информацию о сертификатах в читабельном виде
На windows и ubuntu Версия плагина: 2.0.13064 Версия криптопровайдера: 4.0.9842
Причем если зайти на страницу для проверки работы плагина (/products/cades/demopage/simple.html) на обеих ОС русский текст отображается нормально.
Подскажите, пожалуйста, что я делаю не так?
Offline cross  
#2 Оставлено : 25 января 2018 г. 17:33:08(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Можете сертификат приложить? Я правильно понимаю что на тестовой странице (cryptopro.ru/cadesplugin) данный сертификат тоже отображается не правильно?
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline fed_or  
#3 Оставлено : 26 января 2018 г. 12:26:39(UTC)
fed_or

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

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

Нет, в том-то и дело, что в моем скрипте данные сертификата выводятся вопросами, а на странице cryptopro для проверки плагина и ЭП -
все отображается нормальными русскими буквами.
Собственно я разобрался сам, все дело было в
Код:
yield cert.GetInfo(CAPICOM_INFO_ISSUER_SIMPLE_NAME)

Если заменить на
Код:
yield cert.IssuerName

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