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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline yumylagger  
#1 Оставлено : 14 июня 2022 г. 14:12:58(UTC)
yumylagger

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

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

Добрый день.
Задача простая - реализовать формирование открепленной подписи на стороне клиента через КриптоПро browser plugin.
но не удается понять как с этим делом вообще работать.
Для начала пытаюсь получить список установленных сертификатов - создаем объект хранилища и уже через него получаем сертификаты, но даже до этого момента не удается дойти.
Заранее извиняюсь, опыта с js немного, возможно упускаю какие-то базовые вещи.

Win10, браузер Google Chrome 102.0.5005.63 (Официальная сборка), (64 бит).

На тестовой странице плагин работает корректно, сертификаты подгружаются, подпись также генерируется.
https://www.cryptopro.ru...ge/cades_bes_sample.html

Теперь начинаю собирать из примеров каркас функциональности:
1. Из ресурсов тестовой страницы забираю cadesplugin_api.js и подключаю к основной странице html.
2. На странице https://docs.cryptopro.r...plugin/plugin-activation беру пример кода страницы для работы с плагином.
Код:
var canPromise = !!window.Promise;
if(canPromise) {
    cadesplugin.then(function () {
               // прикладной код
           },
           function(error) {
               // сообщение об ошибке
           }
   );
} else {
    window.addEventListener("message", function (event){
        if (event.data == "cadesplugin_loaded") {
            // прикладной код
        } else if(event.data == "cadesplugin_load_error") {
            // сообщение об ошибке
        }
        },
    false);
    window.postMessage("cadesplugin_echo_request", "*");
}

3. Пытаюсь создать объекты КриптоПро ЭЦП browser plug-in:
Код:
var oStore = cadesplugin.CreateObject("CAdESCOM.Store");
var oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
var oPrivateKey = cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");

4. В итоге получаю такую вещь и ошибку Uncaught (in promise) TypeError: cadesplugin.CreateObject is not a function:
Код:
var canPromise = !!window.Promise;
if(canPromise) {
    cadesplugin.then(function () {
               // прикладной код
           var oStore = cadesplugin.CreateObject("CAdESCOM.Store");
           var oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
           var oPrivateKey = cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");
           },
           function(error) {
               // сообщение об ошибке
           }
   );
} else {
    window.addEventListener("message", function (event){
        if (event.data == "cadesplugin_loaded") {
            // прикладной код
        } else if(event.data == "cadesplugin_load_error") {
            // сообщение об ошибке
        }
        },
    false);
    window.postMessage("cadesplugin_echo_request", "*");
}



Собственно проблема в том, что не понимаю как к объектам обращаться:
предполагаю, что мне нужно смотреть именно в сторону асинхронных примеров, но:
1. почему не работают примеры с синхронным js?
2. может быть не подключил какие-то библиотеки или другие части кода? В примерах на форуме, да и в самом коде тестовой страницы есть подключение некого async_code.js.

Прошу помощи и пинка в какую сторону разбираться, сам не догоняю.
Offline Андрей *  
#2 Оставлено : 14 июня 2022 г. 14:38:54(UTC)
Андрей *

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

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

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Здравствуйте.

А сохранить тестовую страницу с зависимостями, async_code.js и начать на локальном веб-сервере разрабатывать\удалять лишнее и смотреть порядок вызова не вариант?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.