Развернуть все
Свернуть все

Активация объектов КриптоПро ЭЦП Browser plug-in

Для активации объектов КриптоПро ЭЦП Browser plug-in следует подключить к странице файл cadesplugin_api.js:

HTML
<script language="javascript" src="cadesplugin_api.js"></script>

Скрипт cadesplugin_api.js добавляет в window обьект cadesplugin. В браузерах которые поддерживают работу с обьектами Promise, cadesplugin имеет тип Promise. По окончанию загрузки плагина в браузер состояние обьекта будет изменено в resolved. При возникновении ошибок при загрузке плагина обьект cadesplugin перейдет в состояние rejected. В браузерах, которые не поддерживают работу с типом Promise, необходимо дождаться сообщения с строкой "plugin_loaded" или "plugin_loaded_error".

Пример создания объектов КриптоПро ЭЦП Browser plug-in:

JavaScript
// Создание объектов КриптоПро ЭЦП Browser plug-in
var oStore =  cadesplugin.CreateObject("CAdESCOM.Store");
var oSigner =  cadesplugin.CreateObject("CAdESCOM.CPSigner");
var oPrivateKey =  cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");

Пример кода страницы для работы с плагином:

JavaScript
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", "*");
}

Подробное описание методов и свойств обьекта cadesplugin доступно на странице описания обьекта cadesplugin. Для пробной работы с КриптоПро ЭЦП Browser plug-in доступна демо-страница.

JavaScript
var canAsync = !!cadesplugin.CreateObjectAsync;
if(canAsync)
{
    cadesplugin.async_spawn(function *(args) {
        var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
        var dataToSign = "dataToSign";
        yield oSignedData.propset_Content(dataToSign);
    });
}else
{
    var oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
    var dataToSign = "dataToSign";
    oSignedData.Content = dataToSign;
}

Замечание

Использование Microsoft CertEnroll в Internet Explorer разрешено только на сайтах со схемой доступа https или включенных в зону безопасности Internet Explorer, в которой разрешено выполнение небезопасных ActiveX.

Особенности работы с КриптоПро ЭЦП Browser plug-in на платформе IOS

Использование функциональности КриптоПро ЭЦП Browser plug-in на платформе iOS (iPad/iPod/iPhone) требует поддержки как со стороны сервера, так и со стороны клиента. На стороне клиента требуется использование специализированного браузера. В состав дистрибутива КриптоПро CSP для iOS входит пример браузера NpcadesBrowser, позволяющий использовать функциональность КриптоПро ЭЦП Browser plug-in на платформе iOS.