Статус: Новичок
Группы: Участники
Зарегистрирован: 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. Прошу помощи и пинка в какую сторону разбираться, сам не догоняю.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,162   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Здравствуйте.
А сохранить тестовую страницу с зависимостями, async_code.js и начать на локальном веб-сервере разрабатывать\удалять лишнее и смотреть порядок вызова не вариант? |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close