Главный класс плагина. Реализует всю функциональность плагина.
Интерфейсные функции плагина могут вызываться двумя способами: асинхронно и синхронно. Настоятельно рекомендуется использовать асинхронный интерфейс, поскольку при использовании синхронных вызовов происходит блокирование интерфейса браузера на время выполнения функции.
Асинхронный интерфейс.
Все функции принимают resultCallback и errorCallback двумя последними параметрами и работают асинхронно. Сразу после вызова все функции возвращают управление. Функция вызывает resultCallback в случае успешного выполнения и errorCallback в случае ошибки. resultCallback принимает один параметр - результат выполнения операции. errorCallback - принимает код ошибки первым параметром.
Cинхронный интерфейс.
Для вызова методов плагина синхронно достаточно не передавать в качестве последних двух параметров функции обратного вызова. На время выполнения метода происходит передача управления плагину, и блокируется пользовательский интерфейс браузера. При успешном завершении функции результат будет возвращен из вызванного метода, в случае ошибки будет создано исключение.
<object type="application/x-rutoken-pki" id="plugin"></object> <script type="text/javascript"> // получение объекта плагина var plugin = document.getElementById("plugin"); if (!plugin.valid) { alert("Couldn't load plugin"); } // использование асинхронного интерфейса plugin.enumerateDevices( function(devices) { console.log(devices); }, function(error) { console.log(error); }); </script>
<object type="application/x-rutoken-pki" id="plugin"></object> <script type="text/javascript"> // получение объекта плагина var plugin = document.getElementById("plugin"); if (!plugin.valid) { alert("Couldn't load plugin"); } // использование синхронного интерфейса var devices = Array(); try { devices = plugin.enumerateDevices(); } catch (error) { console.log(error); } </script>
Объект с константами ошибок
Правильно созданный объект всегда возвращает true
Версия плагина в формате 1.2.3.4
Добавление лицензии для текущего домена.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | domain | string | Доменное имя, для которого выдана лицензия | ||
2 | license | string | Строка с лицензией | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
true - лицензия успешно проверена / false - лицензия не подходит
Аутентификация по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата | ||
3 | salt | string | Аутентификационные данные | ||
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Строка для аутентификации
Изменение PIN пользователя.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | oldPin | string | Старый PIN пользователя | ||
3 | newPin | string | Новый PIN пользователя | ||
4 | options | object | Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) | ||
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Расшифрование данных в формате CMS. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа для расшифровыания | ||
3 | cmsData | string | CMS-сообщение, содержащие зашифрованные данные | ||
4 | options | object | Массив, содержащий параметры расшифрования - объекты вида {параметр:значение} (зарезервирован для будущего использования) | ||
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Расшифрованные данные
Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата, зарезервированно для будущего использования | ||
3 | recipientCert | string | Тело сертификата сервера | ||
4 | data | string | Зашифровываемые данные (текстовая строка или base64-encoded бинарные данные) | ||
5 | options | object | Массив, содержащий параметры шифрования - объекты вида {параметр:значение} | ||
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Зашифрованные данные в формате CMS
Формирование самоподписанного PKCS#10 запроса Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | subject | object | Массив, содержащий объекты вида: {rdn: "commonName", value: "значение"} | ||
4 | extensions | object | Ассоциативный массив, содержащий массивы расширений: {keyUsage: ["digitalSignature",...], extKeyUsage: ["oid", "longName" ], certificatePolicies: ["OID", ...]} | ||
5 | includeSubjSignTool | boolean | Флаг, включать или нет в запрос расширение SubjectSignTool | ||
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
PKCS#10 запрос
* var subject = [ { rdn: "countryName", value: "RU" } ,{ rdn: "stateOrProvinceName", value: "moscow" } ,{ rdn: "localityName", value: "locality" } ,{ rdn: "streetAddress", value: "street" } ,{ rdn: "organizationName", value: "Aktiv" } ,{ rdn: "organizationalUnitName", value: "IT" } ,{ rdn: "title", value: "должность" } ,{ rdn: "commonName", value: "Фамилия Имя Очество" } ,{ rdn: "postalAddress", value: "postal address" } ,{ rdn: "pseudonym", value: "pseudonymus" } ,{ rdn: "surname", value: "surname" } ,{ rdn: "givenName", value: "given name" } ,{ rdn: "emailAddress", value: "example@example.com" } ]; var keyUsageVal = [ "digitalSignature" ,"nonRepudiation" ,"keyEncipherment" ,"dataEncipherment" ,"keyAgreement" ,"keyCertSign" ,"cRLSign" ,"encipherOnly" ,"decipherOnly" ]; var extKeyUsageVal = [ "emailProtection" ,"clientAuth" ,"serverAuth" ,"codeSigning" ,"timeStamping" ,"msCodeInd" ,"msCodeCom" ,"msCTLSign" ,"1.3.6.1.5.5.7.3.9" // OSCP ,"1.2.643.2.2.34.6" // CryptoPro RA user // ,"anyExtendedKeyUsage" ]; var certificatePolicies = [ "1.2.643.100.113.1", // КС1 "1.2.643.100.113.2", // КС2 "1.2.643.100.113.3", // КС3 "1.2.643.100.113.4", // КВ1 "1.2.643.100.113.5", // КВ2 "1.2.643.100.113.6" // КА1 ]; var extensions = { "keyUsage": keyUsageVal, "extKeyUsage": extKeyUsageVal, "certificatePolicies": certificatePolicies }; plugin.createPkcs10(deviceID, keyID, subject, extensions, includeSubjectSignToolExt, this.printResult, this.printError); }
Удаление сертификата с устройства.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата, полученный в результате вызова enumerateCertificates | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор секретного ключа из ключевой пары | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Получение массива с идентификаторами сертификатов.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | category | number | Тип сертификата: "user", "other" или "CA" | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Массив строк с идентификаторами сертификатов
Получение идентификаторов доступных устройств
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
2 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Список идентификаторов подключенных устройств
Получение массива с идентификаторами секретных ключей в HEX.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | marker | string | Идентификатор группы ключей, "" - все ключи | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Массив строк с идентификаторами закрытых ключей
Генерация ключевой пары ГОСТ Р 34.10-2001 на устройстве.
Для выполнения этой функции требуется авторизоваться на устройстве. Аргумент options задает различные свойства ключа. Доступны следующие опции: needPin:bool(false) - если ключевая пара создана на PINPad 2, для каждого ее использования потребуется ввести PIN на устройстве; needConfirm:bool(false) - если ключевая пара создана на PINPad 2, для каждого ее использования потребуется подтверждение на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | params | string | Параметры ключа | ||
3 | marker | string | Идентификатор группы ключей | ||
4 | options | object | Дополнительные свойтва ключевой пары в виде ассоциативного массива, см. подробное описание функции | ||
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
ID ключа в HEX
Получение тела сертификата в PEM.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Описатель сертификата в виде объекта
Получение информации об устройстве.
Тип информации задается константами: TOKEN_INFO_MODEL, TOKEN_INFO_LABEL, TOKEN_INFO_DEVICE_TYPE, TOKEN_INFO_SERIAL, TOKEN_INFO_IS_LICENSED
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | option | number | Тип запрашиваемой информации (тип устройства, метка, серийный номер или наличие лицензии) | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
текстовая строка для метки и серийного номера, число для типа устройства или true/false в случае лицензии
Получение метки устройства
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Метка устройства
Получение строки с моделью устройства, понятной для человека.
Внимание: возвращаемая строка может меняться в будущем.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Тип устройства в виде человеко-понятной строки
Получение константы, обозначающей тип устройства.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
deviceType Тип устройства в виде числовой константы
Получение идентификатора ключевой пары по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Идентификатор ключа
Получение метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Метка закрытого ключа
Импорт сертификата на устройство.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certificate | string | Тело сертификата в формате BASE64 | ||
3 | category | number | Тип сертификата: "user", "other" или "CA" | ||
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Идентификатор сертификата
Проверка подлинности лицензии устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
true, если устройство лицензировано и false в противном случае
Авторизация на устройстве
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | pin | string | PIN-код доступа к устройству | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Закрытие сессии
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата, полученный в результате вызова enumerateCertificates | ||
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Ассоциативный массив объектов
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | text | string | Тело сертификата в BASE64 | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Ассоциативный массив объектов
Подпись заранее вычисленного хеша. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | data | string | Подписываемый хеш (hex-строка) | ||
4 | options | object | Массив, содержащий параметры подписи - объекты вида {параметр:true/false} | ||
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Электронно-цифровая подпись
Удаление закешированного PIN-кода из файла.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки boolean |
Сохранение PIN-кода в файл для автоматической аутентификации.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Установка метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | label | string | Новая метка закрытого ключа | ||
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Вычисление цифровой подписи. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата | ||
3 | data | string | Подписываемые данные (текстовая строка или base64-encoded бинарные данные) | ||
4 | isBase64 | boolean | Флаг, данные передаются в кодировке base64 или нет | ||
5 | options | object | Массив, содержащий параметры подписи - объекты вида {параметр:true/false} | ||
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Электронно-цифровая подпись
Проверка цифровой подписи. Аргумент options принимает параметры проверки подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | cms | string | Контейнер с цифровой подписью | ||
3 | options | object | Массив, содержащий параметры проверки подписи - объекты вида {параметр:значение} | ||
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения | ||
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
true - подпись верна / false - не верна