Документация

Установка/удаление плагина

Установка/удаление плагина для Firefox 60 и выше
Для скачивания плагина перейдите в раздел Загрузки и кликните на ссылку "Установить плагин для Firefox 60 и выше". В выпадающем окне появится запрос на установку плагина. Требуется нажать «Продолжить установку» и затем разрешить добавление плагина нажав "Добавить" в выпадающем окне. При успешной установке появится следующее сообщение: "ESMART Token Web Plugin было добавлено в Firefox." Закрытие выпадающего окна осуществляется нажатием "Ок, понятно".

Удаление плагина для Firefox 60 и выше
Удаление плагина выполняется стандартно через интерфейс в окне дополнений (about:addons или CTRL+Shift+A).

Установка/удаление плагина для Firefox 52 или ниже
Скачайте архив плагина в разделе Загрузки и и кликните на ссылку "Скачать плагин для Firefox до версии 52 включительно" распакуйте его в отдельный каталог. Закройте все окна браузера Firefox. В этом каталоге перейдите в firefox/npapi/install и запустите подходящий .bat или .sh скрипт (в зависимости от вашей операционной системы и ее битности).
При запуске скриптов "install_linux_x64.sh", "install_linux_x86.sh" для Linux, будет запрошен пароль root.
Запуск скрипта "install_windows.bat" для Windows необходимо выполнять с правами администратора.
Запустите Firefox, для Windows при первом запуске необходимо будет подтвердить установку плагина, отметив чекбокс.

Удаление плагина для Firefox 52 или ниже
Для удаления плагина в каталоге firefox/npapi/install находятся uninstall_* скрипты, под различные операционные системы. При запуске скриптов "uninstall_linux_x64.sh", "uninstall_linux_x86.sh" для Linux, будет запрошен пароль root.
Запуск скрипта "uninstall_windows.bat" для Windows необходимо выполнять с правами администратора.
Под Windows возможна работа только с 32 битной версии Firefox 52 или ниже.

После установки
Перейдите на страницу демонстрации работы плагина.

esmartTokenWeb

Класс esmartTokenWeb инкапсулирует в себе низкоуровневое взаимодействие в ESMART Token Web Плагин. Класс имеет несколько публичных методов, для выполнения различных операций, но с общей сигнатурой вызова, кроме метода init. Все публичные методы имеют как минимум два аргумента, которые всегда находятся в конце списка аргументов:

successHandler - callback метод, который будет вызван при успешном вызове метода класса (важно понимать, что под успешным вызовом понимается передача параметров в функции плагина и получения результата работы. Результат может быть и не успешным, анализ результата должен проводиться уже в callback методе). В параметр callback метода будет передана JSON строка вида: { resp: '...', ... }, если resp имеет значение 'OK' - вызов выполнился без ошибок, если resp имеет значение 'ERROR' - произошла ошибка, код ошибки и текст, находится в объекте error {resp: 'ERROR', error: { code: '...', message: '...' } ...}

errorHandler - callback метод, который будет вызван при невозможности вызвать необходимую функцию плагина. В параметр callback метода будет передан текст ошибки.

esmartTokenWeb.init

Сигнатура метода: function(successHandler, errorHandler)
Метод init выполняет процедуру инициализации доступа в ESMART Token Web Плагин, проверку браузера на совместимость и доступность самого плагина. Метод необходимо вызывать только один раз перед тем как использовать остальные методы класса, при повторном вызове будет возвращена ошибка о том, что инициализация уже проведена.

successHandler - callback метод, который будет вызван в случае успешной инициализации. В параметр callback метода будет передано название и версия плагина.

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.listSlots

Сигнатура метода: function(successHandler, errorHandler)
Метод listSlots запрашивает у ESMART Token Web Плагин доступные токены и смарт-карты, а также подробную информацию по ним.

successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа slot

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.listCerts

Сигнатура метода: function(successHandler, errorHandler) - Пример
Метод listCerts запрашивает у ESMART Token Web Плагин все доступные сертификаты на всех подключенных токенах и смарт-картах, а также подробную информацию по каждому сертификату.

successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа cert

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.listCertsEx

Сигнатура метода: function(andOidFilterArray, orOidFilterArray, successHandler, errorHandler) - Пример
Метод listCertsEx в общем случае аналогичен методу esmartTokenWeb.listCerts, но позволяет указать список OID'ов по которым ESMART Token Web Плагин должен осуществить фильтрацию сертификатов на своей стороне.
Фильтрация осуществляется с использованием логического выражения:
(andOidFilterArray[0] AND ... AND andOidFilterArray[n] AND (orOidFilterArray[0] OR ... OR orOidFilterArray[m])).
Т.е. сначала идет поиск всех сертификатов в которых присутствуют все OID перечисленный в массиве andOidFilterArray, затем проверяется, что в найденных сертификатах присутствует хотя бы один OID из перечисленный в массиве orOidFilterArray.

andOidFilterArray - массив OID'ов для фильрации под предикату AND (логическое И).
orOidFilterArray - массив OID'ов для фильрации под предикату OR (логическое ИЛИ).
successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа cert

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.pkcs7Sign

Сигнатура метода: function(certid, slot, data, flag, successHandler, errorHandler) - Пример
Метод pkcs7Sign создает электронную подпись произвольных данных с использованием выбранного сертификата.

certid - id объекта сертификата в PKCS#11 (возвращается в объекте cert) используемого в ЭП.
slot - номер слота (возвращается в объекте cert), 0 - поиск сертификата на первом доступном токене или смарт-карте.
data - строка с данными для подписи.
flag - определяет тип подписи, 0 - присоединенная ЭП, 0x40 - отсоединённая ЭП.

successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан объект типа pkcs7

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.pkcs7Verify

Сигнатура метода: function(signature, data, verifychain, crls, slot, successHandler, errorHandler) - Пример
Метод pkcs7Verify выполняет проверку подписи, а также опционально может проверить цепочку сертификатов по CRL и нахождение корневого сертификата в доверенном хранилище.

signature - подпись в Base64.
data - строка с данными для подписи (только для отсоединенной подписи).
verifychain - значение true указывает, что необходимо проверить цепочку сертификатов, false - не проверять цепочку, в этом случае проверяется только подпись.
crls - массив CRL списков в Base64 для проверки цепочки сертификатов на отзыв.
slot - номер слота (возвращается в объекте cert) на котором будет произведен поиск корневого сертфикакта если verifychain=true, 0 - поиск сертификата на первом доступном токене или смарт-карте. Корневой сертификат должен быть помещен в доверенное хранилище для прохождения проверки.
successHandler - см общее описание successHandler для класса esmartTokenWeb.

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.pkcs7SignDsig

Сигнатура метода: function(certid, slot, data, dsigurl, flag, successHandler, errorHandler) - Пример
Метод pkcs7SignDsig создает электронную подпись произвольных данных с использованием выбранного сертификата в двух форматах, PKCS#7 и CAdES-T. Расширение подписи до CAdES-T производиться с использованием WEB сервиса, URL которого необходимо передать в параметре dsigurl.

certid - id объекта сертификата в PKCS#11 (возвращается в объекте cert) используемого в ЭП.
slot - номер слота (возвращается в объекте cert), 0 - поиск сертификата на первом доступном токене или смарт-карте.
data - строка с данными для подписи.
dsigurl - URL WEB сервиса для расширения подписи до формата CAdES-T.
flag - определяет тип подписи, 0 - присоединенная ЭП, 0x40 - отсоединённая ЭП.

successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан объект типа pkcs7

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.pkcs7BulkSign

Сигнатура метода: function(certid, slot, dsigurl, signParamArray, successGlobalHandler, errorHandle) - Пример
Метод pkcs7BulkSign создает электронные подписи для массива данных (пакетное подписание) с использованием выбранного сертификата в двух форматах, PKCS#7 и CAdES-T. Расширение подписи до CAdES-T производиться с использованием WEB сервиса, URL которого необходимо передать в параметре dsigurl (параметр не обязательный, если не задано, расширением подписи не производится).
Подпись данных производится последовательно, в порядке указанным в массиве signParamArray. После подписания каждого элемента массива, вызывается successHandler для этого элемента. Если во время подписания возникает ошибка, подпись прекращается для всех элементов массива.

certid - id объекта сертификата в PKCS#11 (возвращается в объекте cert) используемого в ЭП.
slot - номер слота (возвращается в объекте cert), 0 - поиск сертификата на первом доступном токене или смарт-карте.
dsigurl - URL WEB сервиса для расширения подписи до формата CAdES-T, необязательный параметр.
signParamArray - массив JSON объектов формата:

{

   data: ...,// данные для подписи

   flag: ...,// определяет тип подписи, 0 - присоединенная ЭП, 0x40 - отсоединённая ЭП

   successHandler: ...,  // callback вызываемый после успешного подписания элемента массива данных
// см общее описание successHandler для класса esmartTokenWeb.
// В случае выполнения без ошибок, в JSON строке в поле result будет передан объект типа pkcs7.
// Параметр не обязателен. Если вызов callback возвращает false или ничего,
// подпись оставшихся документов прекращается
.
// Для продолжения подписания необходимо всегда возвращать true.
}

successGlobalHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result.signatures будет передан массив объект типа pkcs7, а также счетчики показывающие количество выполненных подписей (поле result.successSignatures) и сколько всего было передано элементов на подпись (поле result.totalSignatures).

errorHandler - см описание errorHandler для класса esmartTokenWeb.

Рекомендации по использованию функции:
- Рекомедуется получать значение подписи для элемента массива из вызова successHandler, а не вызова successGlobalHandler.
- Для того чтобы дать возможность пользователю отменить операцию пакетного подписания, необходимо использовать возможность остановки подписи, через возврат false из вызова successHandler.
- Не рекомендуется отправлять на подпись более 20 элементов т.к. это может привести в чрезмерному расходованию памяти и снижение общей производительности.

esmartTokenWeb.pkcs7VerifyEx

Сигнатура метода: function(signature, data, flag, dsigurl, successHandler, errorHandler) - Пример
Метод pkcs7VerifyEx выполняет проверку расширенной подписи, с использованием WEB сервиса, URL которого необходимо передать в параметре dsigurl.

signature - расширенная подпись в Base64.
data - строка с данными для подписи (только для отсоединенной подписи).
flag - определяет тип подписи, 0 - присоединенная ЭП, 0x40 - отсоединённая ЭП.
dsigurl - URL WEB сервиса для проверки расширенной подписи.
successHandler - см общее описание successHandler для класса esmartTokenWeb.

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.changeUserPin

Сигнатура метода: function(slot, successHandler, errorHandler) - Пример
Метод changeUserPin позволяет изменить ПИН доступа к смарт-карте или токену.

slot - номер слота, 0 - поиск сертификата на первом доступном токене или смарт-карте.
successHandler - см общее описание successHandler для класса esmartTokenWeb

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.listData

Сигнатура метода: function(isReadPrivateData, successHandler, errorHandler) - Пример
Метод listData запрашивает у ESMART Token Web Плагин все доступные объекты типа CKO_DATA на всех подключенных токенах и смарт-картах.

isReadPrivateData - флаг определяющий необходимость чтение закрытых данных, true - читать закрытые данные (начиная с версии 2.0.0 данный параметр игнорируется и всегда равен true).
successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа data

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.saveData

Сигнатура метода: function(slot, label, value, isPrivateData, successHandler, errorHandler) - Пример
Метод saveData позволяет изменить значение объекта типа CKO_DATA на смарт-карте или токене.

slot - номер слота, 0 - поиск сертификата на первом доступном токене или смарт-карте.
label - название объекта данные.
value - новое значение объекта данные.
isPrivateData - флаг определяющий являются ли обновляемые данные закрытыми, true - закрытые данные (начиная с версии 2.0.0 данный параметр игнорируется).
successHandler - см общее описание successHandler для класса esmartTokenWeb

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.setupHttpMode

Сигнатура метода: function(serverName, serverPort, successHandler, errorHandler) - Пример
Метод setupHttpMode переключает ESMART Token Web Плагин в режим работы с PKIClientCli, когда он запущен как HTTP сервер.

serverName - имя или IP сервера.
serverPort - TCP порт сервера.
successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа data

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.setupNativeMode

Сигнатура метода: function(successHandler, errorHandler) - Пример
Метод setupNativeMode переключает ESMART Token Web Плагин в режим работы через локальное подключение к PKCS#11.

successHandler - см общее описание successHandler для класса esmartTokenWeb

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.getMode

Сигнатура метода: function(successHandler, errorHandler) - Пример
Метод getMode запрашивает у ESMART Token Web Плагин текущий режим работы (HTTP или NATIVE).

isReadPrivateData - флаг определяющий необходимость чтение закрытых данных, true - читать закрытые данные.
successHandler - см общее описание successHandler для класса esmartTokenWeb. В случае выполнения без ошибок, в JSON строке в поле result будет передан массив объектов типа data

errorHandler - см описание errorHandler для класса esmartTokenWeb.

esmartTokenWeb.regExternalCallback

Сигнатура метода: function(handlersArray) - Пример
Технология WebExtensions не позволяет запрашивать какие либо данные у пользователя напрямую из плагина. Это ограничение не позволяет, например, запрашивать ПИН код, поэтому задача запросить ПИН возлагается на прикладное ПО. Метод regExternalCallback позволяет зарегистрировать несколько callback функций, которые будут вызываться ESMART Token Web Плагин при необходимости получить от пользователя ПИН.

handlersArray - массив оъектов в формате

[
   {

      name: ..., // зарезервированное имя callback функции
      cb: ..., // callback функция
   },....
]

name может принимать значения:
userpin - запрос ПИН пользователя, Сигнатура метода: function(label, successCb, cancelCb), где
   label - имя карты/токена для которого запрашивается ПИН
   successCb - callback функция, которая должна быть вызвана, когда пользователь закончит ввод ПИН, значение ПИН необходимо передать единственным параметром
   cancelCb - callback функция, которая должна быть вызвана, если пользователь отменил ввод ПИН
changeuserpin - запрос смены ПИН пользователя, Сигнатура метода: function(label, successCb, cancelCb), где
   label - имя карты/токена для которого меняется ПИН
   successCb - callback функция, которая должна быть вызвана, когда пользователь закончит ввод ПИН нового и текущего ПИН, значения текущего ПИН необходимо передать 1-м параметром, новое значение вторым параметром
   cancelCb - callback функция, которая должна быть вызвана, если пользователь отменил ввод ПИН
Объект типа slot

{

   slot: ..., // номер слота
   flags: ..., // флаги CKF_... в соответствии со спецификацией PKCS#11 версии 2.40
   slotDescription: ..., // название слота
   validTokenPresent: ..., // true - если слот совместим с ESMART Token Web Плагин или false, если ее совместим
   // Параметры ниже заполняются только для validTokenPresent: true
   label: ..., // название токена или смарт карты заданной при его инициализации
   manufacturerID: ..., // производитель
   model: ..., // модель
   serialNumber: ..., // серийный номер токена или смарт карты
}

Объект типа cert

{

   slot: ..., // номер слота
   id: ..., // id объекта сертификата в PKCS#11
   label: ..., // название объекта сертификата в PKCS#11
   serial: ..., // серийный номер указанный в сертификате
   fingerprint: ..., // SHA-1 отпечаток сертификата
   notbefore: ..., // дата начала действия сертификата
   notafter: ..., // дата окончания действия сертификата
   pubkeytype: ..., // тип публичного ключа
   subjectcn: ..., // Common name для сертификата
   issuercn: ..., // Common name УЦ выпустившего сертификат
   subjectemail: ..., // emailAddress из сертификата
   smartcardLogon: ..., // Флаг указывающий присутствует ли в сертификате расширение smartcardLogon
   content: ..., // Содержимое сертификата в кодировке BASE64
}

Объект типа pkcs7

{

   pkcs7sign: ..., // строка содержащая Base64 представление подписи
   dsigSignature: ..., // строка содержащая Base64 представление расширенной подписи (только для pkcs7SignDsig)
   dsigStatus: ..., // код ошибки при расширении подписи (0 - ошибки нет), подробнее
   dsigError: ..., // текст ошибки при расширении подписи
}

Объект типа data

{

   slot: ..., // номер слота
   id: ..., // ID объекта данные в PKCS#11 (доступен начиная с версии 2.0.0 и только для Firefox 60 и выше)
   label: ..., // название объекта данные в PKCS#11
   application: ..., // название приложения создавших данные
   is_modifiable: ..., // разрешено ли редактирование для объекта
   is_private: ..., // если true - доступ к объекту возможен только после авторизации по ПИН, false - доступ возможен без авторизации
   value: ..., // значение данных декодированное как UTF-8 строка
   valueBase64: ..., // значение данных декодированное в Base64
}

Коды ошибок

Код ошибки возвращается в поле error.code JSON ответа callback метода, если поле resp имеет значение 'ERROR'. Пример {resp: 'ERROR', error: { code: -1, message: 'Платформа ... не поддерживается.' } ...}

Код Описание
-1 Не поддерживаемая платформа.
Список поддерживаемых платформ: Windows x86/x64, Linux x86/x64/arm, Mac OS 10.7 и выше.
-2 Не найдено совместимых токенов или смарт-карт
-3 Ошибка доступа к библиотеки PKCS#11, проверьте что библиотека установлена и доступна для пользователя.
-4 Указанный сертификат не найден.
-5 Сертификат используемый для подписи истек.
-6 Не найден закрытый ключ соответствующий открытому ключу в сертификате.
-7 Пользователь нажал отмену в окне ввода ПИН.
-8 Новый ПИН не совпадет его повторным вводом.
-9 Данные не найдены.
-10 Ошибка сервиса работы с расширенной подписью.
-11 ПИН не удовлетворяет требованием к его длине.
-12 Режим HTTP не активирован.
-13 Данная функция для режима HTTP не реализована.
-14 Данная функция для режима NATIVE не реализована, используйте HTTP режим.
-15 Ошибка подключения к серверу.
-16 Неизвестный ответ от сервера.
-17 Ошибка в запросе.
-18 Ошибка сервера.
-19 Запрошенная команда не найдена или не поддерживается.
-20 Неожиданная ошибка.
-21 Запрос к WEB серверу завершился ошибкой.
1 Операция в функции PKCS#11 отменена.
3 Не верный номер слота.
5 Общая ошибка функции PKCS#11.
6 Сбой функции. Текст ошибки содержит название функции PKCS#11 в которой произошел сбой.
84 Фукнции PKCS#11 не поддерживается. Текст ошибки содержит название функции PKCS#11.
160 или 161 Не верный ПИН пользователя.
162 Не верная длина ПИН пользователя.
164 ПИН заблокирован, для разблокировки обратитесь к администратору.
192 Подпись не верна.
336 Не достаточный размер буфера для выполнения операции в PKCS#11.
2147484930 Не найден сертификат издателя в доверенном хранилище. Сертификат издателя должен быть загружен на токен или смарт-карту как TRUSTED.
2147484931 Не все списки отзывов CRL найдены. Вы должны передать CRL для корневого и всех промежуточных сертификатов цепочки.
2147484932 Невозможно расшифровать подпись сертификата. Это значит, что невозможно получить само значение подписи, а не то, что это значение не соответствует ожидаемому. Применяется только для алгоритма RSA.
2147484933 Невозможно расшифровать подпись CRL. Это значит, что невозможно получить само значение подписи, а не то, что это значение не соответствует ожидаемому.
2147484934 Невозможно декодировать открытый ключ издателя сертификата. Невозможно прочитать параметр SubjectPublicKeyInfo.
2147484935 Проверка подписи сертификата завершилась с ошибкой.
2147484936 Проверка подписи CRL завершилась с ошибкой.
2147484937 Сертификат не действителен: срок действия сертификата не вступил в силу.
2147484938 Сертификат не действителен: срок действия сертификата истек.
2147484939 Список отзыва недействителен: срок действия списка (CRL) не вступил в силу.
2147484940 Список отзыва недействителен: срок действия списка (CRL) истек.
2147484941 Недопустимое значение в поле сертификата notBefore, которое определяет начальный срок действия сертификата.
2147484942 Недопустимое значение в поле сертификата notAfter, которое определяет срок истечения сертификата.
2147484943 Недопустимое значение в поле lastUpdate, которое определяет дату и время последнего обновления списка отзыва.
2147484944 Недопустимое значение в поле nextUpdate, которое определяет дату и время следующего обновления списка отзыва.
2147484945 Возникла ошибка при выделении памяти. Код ошибки предусмотрен, но фактически не возвращается.
2147484946 Проверка завершилась ошибкой, т.к. переданный сертификат является самоподписанным и при этом не найден в списке доверенных сертификатов на карте/токене (имеющих атрибут CKA_TRUSTED).
2147484947 Не найден сертификат издателя в доверенном хранилище. Сертификат издателя должен быть загружен на токен или смарт-карту как TRUSTED.
2147484948 Сертификат издателя недоверенный. Вероятно, отсутствуют один или несколько промежуточных сертификатов в цепочке. Сертификат издателя должен быть загружен на токен или смарт-карту как TRUSTED.
2147484949 Сертификат издателя не найден в цепочке сертификатов.
2147484950 Превышена максимальная длина цепочки.
2147484951 Сертификат отозван.
2147484952 Недопустимый сертификат удостоверяющего центра. Возможно, в сертификате нет необходимых расширений (ext) для запрашиваемого способа использования сертификата.
2147484953 Превышено допустимое значение параметра длины пути basicConstraints pathlength.
2147484954 Проверяемый сертификат не может использоваться для указанной операции.
2147484955 Сертификат корневого центра сертификации не помечен как доверенный для указанной операции. Сертификат издателя должен быть загружен на токен или смарт-карту как TRUSTED.
2147484956 Сертификат корневого центра сертификации имеет запрет на использование для данной операции.
2147484957 Текущий сертификат издателя не прошел проверку соответствия имени издателя (subject) в данном сертификате с именем издателя в проверяемом сертификате, хранящемся локально. Не считается ошибкой проверки.
2147484958 Текущий сертификат издателя не прошел проверку соответствия идентификатора ключа в данном сертификате с идентификатором ключа издателя в проверяемом сертификате, хранящемся локально. Не считается ошибкой проверки.
2147484959 Текущий сертификат издателя не прошел проверку соответствия серийного номера и идентификатора ключа в данном сертификате с серийным номером и идентификатором ключа издателя в проверяемом сертификате, хранящемся локально. Не считается ошибкой проверки.
2147484960 Сертификат издателя был отклонен, т.к. он не содержит значений в разделе расширений keyUsage extension для подписи сертификата. Не считается ошибкой проверки.
2147484961 Невозможно получить сертификат издателя списка отзывов CRL.
2147484962 Не может быть обработано одно из критических расширений.
2147484963 В расширениях сертификата отсутствует разрешением для подписи списка отзывов.
2147484964 Не может быть обработано одно из критических расширений списка отзывов CRL.
2147484965 Попытка использовать в качестве сертификата издателя сертификат, не являющийся сертификатом издателя.
2147484966 Превышена максимально допустимая длина цепочки прокси-серверов. Используется только в соответствии с RFC 3820.
2147484967 Сертификат не имеет привилегии подписи Digital Signature в расширении Enhanced Key Usage (EKU).
2147484968 Сертификаты прокси-серверов не разрешены.
2147484969 Расширение сертификата содержит недопустимое значение (например, неверно закодировано) или одновременно добавлены взаимоисключающие расширения.
2147484970 Расширение политики сертификата содержит недопустимое значение (например, неверно закодировано) или одновременно добавлены взаимоисключающие расширения.
2147484971 Выставлен флаг требовать принудительной проверки политик сертификата, но политики отсутствует.
2147484972 В переданном списке отзывов CRL недопустимый набор сертификатов.
2147484973 Не поддерживается свойство расширения сертификата.
2147484975 Нарушение ограничений форматов для имен в разрешенной части.
2147484976 Нарушение ограничений форматов для имен в исключенной части.
2147484979 Неподдерживаемое ограничение для данного типа имени. Поддерживаются только проверка следующих типов имен: имя директории, имя DNS, email и URI.
2147484980 Формат ограничения имени не может быть распознан, например, при попытке проверки формата, не указанного в RFC3280 для адреса электронной почты.
2147484981 Неподдерживаемый синтаксис имени.
2147484982 Ошибка проверки пути к списку отзыва сертификата.

esmartTokenWebVersionInfo

Глобальный объект esmartTokenWebVersionInfo содержит информацию о названии в версии ESMART Token Web Плагин. {

   major: ..., // Мажорная версия плагина
   minor: ..., // Минорная версия плагина
   build: ..., // Номер сборки плагина
   fullVersion: ..., // Полный номер версии плагина
   fullName: ..., // Название плагина
}

Коды ошибок сервиса расширения подписи

Код ошибки возвращается в поле pkcs7.dsigStatus JSON ответа callback метода.

Код Описание
0 Проверка прошла успешно.
1 Внутренняя ошибка.
2 Представленные данные не являются сертификатом/файлом подписи/штампом времени.
3 Подпись не верна.
4 Не найден сертификат подписи.
5 Срок действия одного из сертификатов цепочки истек, или еще не наступил.
7 Один из сертификатов цепочки отозван.
8 Не удалось найти подписи.
9 Сообщение не подписано.
10 Неверная конфигурация сервиса
13 Сертификат подписи не валиден.
14 Не удалось проверить на отзыв один или несколько сертификатов цепочки.
15 Сертификат был издан не аккредитованным УЦ.
16 Сертификат был издан не аккредитованным УЦ.
17 Сертификат был издан аккредитованным УЦ не в период действующей аккредитации.
18 Подпись содержит недействительный штамп времени.