Главный класс плагина. Реализует всю функциональность плагина. Интерфейсные функции плагина могут вызываться двумя способами: асинхронно и синхронно. Настоятельно рекомендуется использовать асинхронный интерфейс, поскольку при использовании синхронных вызовов происходит блокирование интерфейса браузера на время выполнения функции.
Асинхронный интерфейс.
Все функции принимают 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 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата | ||
3 | salt | string | Аутентификационные данные |
Строка для аутентификации в формате CMS
Изменение PIN. Если переданып параметры oldPin и newPin, то будет изменен PIN пользователя. Если эти параметры не переданы, то будет изменен PIN2 (только на PINPad2)
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | oldPin | string | Старый PIN пользователя | ||
3 | newPin | string | Новый PIN пользователя | ||
4 | options | object | Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
Расшифрование данных в формате CMS. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа для расшифровыания | ||
3 | cmsData | string | CMS-сообщение, содержащие зашифрованные данные | ||
4 | options | object | Массив, содержащий параметры расшифрования - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
Расшифрованные данные
Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата, зарезервированно для будущего использования | ||
3 | recipientCert | string | Тело сертификата сервера | ||
4 | data | string | Зашифровываемые данные (текстовая строка или base64-encoded бинарные данные) | ||
5 | options | object | Массив, содержащий параметры шифрования - объекты вида {параметр:значение} |
Зашифрованные данные в формате 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 |
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 |
Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор секретного ключа из ключевой пары |
Вычисления хеша. Аргумент options принимает параметры хеширования. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | hashType | number | Идентификатор алгоритма хеширования | ||
3 | data | string | Хешируемые данные | ||
4 | options | object | Массив, содержащий параметры хеширования - объекты вида {параметр:true/false} |
Хеш (hex)
Получение массива с идентификаторами сертификатов.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | category | number | Тип сертификата: "user", "other" или "CA" |
Массив строк с идентификаторами сертификатов
Получение идентификаторов доступных устройств
Список идентификаторов подключенных устройств
Получение массива с идентификаторами секретных ключей в HEX.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | marker | string | Идентификатор группы ключей, "" - все ключи |
Массив строк с идентификаторами закрытых ключей (hex)
Генерация ключевой пары ГОСТ Р 34.10-2001 на устройстве. Для выполнения этой функции требуется авторизоваться на устройстве. Аргумент options задает различные свойства ключа. Доступны следующие опции: id:string("") - уникальный идентификатор ключевой пары (hex). Если опция не задана, или в качестве значения указана пустая строка, будет сгенерирован автоматически. keyType:enum(KEY_TYPE_COMMON) - тип ключевой пары, доступны варианты: KEY_TYPE_COMMON - обычная ключевая пара; KEY_TYPE_JOURNAL - журнальная ключевая пара (может быть использована только для подписи журнала) Для ключевой пары типа KEY_TYPE_COMMON так же доступны следующие атрибуты: 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 | Дополнительные свойтва ключевой пары в виде ассоциативного массива, см. подробное описание функции |
ID ключа (hex)
Получение тела сертификата в PEM.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата |
Описатель сертификата в виде объекта
Получение информации об устройстве.
Тип информации задается константами: TOKEN_INFO_MODEL, TOKEN_INFO_READER, TOKEN_INFO_LABEL, TOKEN_INFO_DEVICE_TYPE, TOKEN_INFO_SERIAL, TOKEN_INFO_IS_LOGGED_IN, TOKEN_INFO_FORMATS, TOKEN_INFO_FEATURES.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | option | number | Тип запрашиваемой информации (тип устройства, метка, серийный номер или наличие лицензии) |
Текстовая строка для метки и серийного номера, число для типа устройства или true/false в случае лицензии. В случае передачи в качестве параметра TOKEN_INFO_FORMATS возвращается список форматов, которые поддерживает устройство, в виде массива констант:
Получение метки устройства
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
Метка устройства
Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
Тип устройства в виде человеко-понятной строки
Получение константы, обозначающей тип устройства.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
deviceType Тип устройства в виде числовой константы
Получение журнала операций на токене и его журнала, сформированной на соответствующем ключе. Если с момента подключения токена никаких операций не производилось будет возвращен null
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | options | object | Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
Ассоциативный массив с полями journal и signature
Получение идентификатора ключевой пары по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата |
Идентификатор ключа (hex)
Получение метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа |
Метка закрытого ключа
Получение значения открытого ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | options | object | Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
Открытый ключ (hex)
Импорт сертификата на устройство. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certificate | string | Тело сертификата в формате BASE64 | ||
3 | category | number | Тип сертификата: "user", "other" или "CA" |
Идентификатор сертификата (hex)
Авторизация на устройстве
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | pin | string | PIN-код доступа к устройству |
Закрытие сессии
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | certId | string | Идентификатор сертификата, полученный в результате вызова enumerateCertificates |
Ассоциативный массив объектов
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | text | string | Тело сертификата в BASE64 |
Ассоциативный массив объектов
Подпись на ключе. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | data | string | Подписываемый хеш (hex-строка) или текстовые данные | ||
4 | options | object | Массив, содержащий параметры подписи - объекты вида {параметр:true/false} |
Электронно-цифровая подпись (hex)
Удаление закешированного PIN-кода из файла.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
Сохранение PIN-кода в файл для автоматической аутентификации.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
Установка метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | keyId | string | Идентификатор ключа | ||
3 | label | string | Новая метка закрытого ключа |
Вычисление цифровой подписи. Аргумент 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} |
Электронно-цифровая подпись (base64)
Проверка цифровой подписи. Аргумент options принимает параметры проверки подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
Name | Type | Attributes | Default | Description | |
---|---|---|---|---|---|
1 | deviceId | number | Идентификатор устройства | ||
2 | cms | string | Контейнер с цифровой подписью | ||
3 | options | object | Массив, содержащий параметры проверки подписи - объекты вида {параметр:значение} |
true - подпись верна / false - не верна