В составе дистрибутива инсталлируются 2 плагина, которые отличаются MIME-типами и методами возврата.
Первый плагин имеет тип x-rutoken-pki, результат или ошибка возвращаются посредством функций обратного вызова (асинхронно), либо же с помощью исключений (синхронно). Данный плагин может использоваться в браузерах Interrnet Explorer/Mozilla Firefox.
Второй плагин имеет тип x-rutoken-pki-2, результат или ошибка возвращаются посредством promise (асинхронно). Данный плагин может использоваться в браузерах Google Chrome/Mozilla Firefox.
Для работы второго плагина в браузере Google Chrome должно быть установлено расширение https://chrome.google.com/webstore/detail/%D1%80%D1%83%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD/ajkjmgdmgaeacamdgdbkcbkhoecjkfmk?hl=ru и включена галочка "Разрешить открывать файлы по ссылкам".
Асинхронный интерфейс c использованием функций обратного вызова
Все функции принимают resultCallback и errorCallback двумя последними параметрами и работают асинхронно. Сразу после вызова все функции возвращают управление. Функция вызывает resultCallback в случае успешного выполнения и errorCallback в случае ошибки. resultCallback принимает один параметр - результат выполнения операции. errorCallback - принимает код ошибки первым параметром.
<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> |
Асинхронный интерфейс с использованием promise
<object type="application/x-rutoken-pki-2" id="plugin"></object> <script type="text/javascript"> // получение объекта плагина var plugin = document.getElementById("plugin"); plugin.valid.then(function() { // ok! Plugin loaded; Goahead(); }, function(){ alert("Couldn't load plugin"); }); // использование асинхронного интерфейса function Goahead() { plugin.enumerateDevices().then( function(devices) { console.log(devices); }, function(error) { console.log(error); }) }; </script> |
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"); } // использование синхронного интерфейса var devices = Array(); try { devices = plugin.enumerateDevices(); } catch (error) { console.log(error); } </script> |
Главный класс плагина. Реализует всю функциональность плагина.
errorCodes
Объект с константами ошибок.
errorCodes.UNKNOWN_ERROR: "Неизвестная ошибка";
errorCodes.BAD_PARAMS: "Неправильные параметры";
errorCodes.DEVICE_NOT_FOUND: "Устройство не найдено";
errorCodes.CERTIFICATE_CATEGORY_BAD: "Недопустимый тип сертификата";
errorCodes.CERTIFICATE_EXISTS: "Сертификат уже существует на устройстве";
errorCodes.PKCS11_LOAD_FAILED: "Не удалось загрузить PKCS#11 библиотеку";
errorCodes.NOT_ENOUGH_MEMORY: "Недостаточно памяти";
errorCodes.PIN_LENGTH_INVALID: "Некорректная длина PIN-кода";
errorCodes.PIN_INCORRECT: "Некорректный PIN-код";
errorCodes.PIN_LOCKED: "PIN-код заблокирован";
errorCodes.PIN_CHANGED: "PIN-код был изменен";
errorCodes.SESSION_INVALID: "Состояние токена изменилось";
errorCodes.USER_NOT_LOGGED_IN: "Выполните вход на устройство";
errorCodes.KEY_NOT_FOUND: "Соответствующая сертификату ключевая пара не найдена";
errorCodes.KEY_ID_NOT_UNIQUE: "Идентификатор ключевой пары не уникален";
errorCodes.CERTIFICATE_NOT_FOUND: "Сертификат не найден";
errorCodes.CERTIFICATE_HASH_NOT_UNIQUE: "Хэш сертификата не уникален";
errorCodes.TOKEN_INVALID: "Ошибка чтения/записи устройства. Возможно, устройство было извлечено";
errorCodes.BASE64_DECODE_FAILED: "Ошибка декодирования данных из BASE64";
errorCodes.PEM_ERROR: "Ошибка разбора PEM";
errorCodes.ASN1_ERROR: "Ошибка декодирования ASN1 структуры";
errorCodes.WRONG_KEY_TYPE: "Неправильный тип ключа";
errorCodes.NO_CA_CERTIFICATES_FOUND: "Сертификат УЦ не найден";
errorCodes.FILE_READ_ERROR: "Ошибка чтения файла";
errorCodes.FILE_WRITE_ERROR: "Ошибка записи файла";
errorCodes.FILE_ALREADY_EXISTS_ERROR: "Файл с таким именем уже существует".
. errorCodes.X509_UNABLE_TO_GET_ISSUER_CERT: "Невозможно получить сертификат подписанта";
errorCodes.X509_UNABLE_TO_GET_CRL: "Невозможно получить CRL";
errorCodes.X509_UNABLE_TO_DECRYPT_CERT_SIGNATURE: "Невозможно расшифровать подпись сертификата";
errorCodes.X509_UNABLE_TO_DECRYPT_CRL_SIGNATURE: "Невозможно расшифровать подпись CRL";
errorCodes.X509_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: "Невозможно раскодировать открытый ключ эмитента";
errorCodes.X509_CERT_SIGNATURE_FAILURE: "Неверная подпись сертификата";
errorCodes.X509_CRL_SIGNATURE_FAILURE: "Неверная подпись CRL";
errorCodes.X509_CERT_NOT_YET_VALID: "Срок действия сертификата еще не начался";
errorCodes.X509_CRL_NOT_YET_VALID: "Срок действия CRL еще не начался";
errorCodes.X509_CERT_HAS_EXPIRED: "Срок действия сертификата истек";
errorCodes.X509_CRL_HAS_EXPIRED: "Срок действия CRL истек";
errorCodes.X509_ERROR_IN_CERT_NOT_BEFORE_FIELD: "Некорректные данные в поле \"notBefore\" у сертификата";
errorCodes.X509_ERROR_IN_CERT_NOT_AFTER_FIELD: "Некорректные данные в поле \"notAfter\" у сертификата";
errorCodes.X509_ERROR_IN_CRL_LAST_UPDATE_FIELD: "Некорректные данные в поле \"lastUpdate\" у CRL";
errorCodes.X509_ERROR_IN_CRL_NEXT_UPDATE_FIELD: "Некорректные данные в поле \"nextUpdate\" у CRL";
errorCodes.X509_OUT_OF_MEM: "Не хватает памяти";
errorCodes.X509_DEPTH_ZERO_SELF_SIGNED_CERT: "Недоверенный самоподписанный сертификат";
errorCodes.X509_SELF_SIGNED_CERT_IN_CHAIN: "В цепочке обнаружен недоверенный самоподписанный сертификат";
errorCodes.X509_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: "Невозможно получить локальный сертификат подписанта";
errorCodes.X509_UNABLE_TO_VERIFY_LEAF_SIGNATURE: "Невозможно проверить первый сертификат";
errorCodes.X509_CERT_CHAIN_TOO_LONG: "Слишком длинная цепочка сертификатов";
errorCodes.X509_CERT_REVOKED: "Сертификат отозван";
errorCodes.X509_INVALID_CA: "Неверный корневой сертификат";
errorCodes.X509_INVALID_NON_CA: "Неверный некорневой сертфикат, помеченный как корневой";
errorCodes.X509_PATH_LENGTH_EXCEEDED: "Превышена длина пути";
errorCodes.X509_PROXY_PATH_LENGTH_EXCEEDED: "Превышено количество промежуточных сертификатов";
errorCodes.X509_PROXY_CERTIFICATES_NOT_ALLOWED: "Промежуточные сертификаты недопустимы";
errorCodes.X509_INVALID_PURPOSE: "Неподдерживаемое назначение сертификата";
errorCodes.X509_CERT_UNTRUSTED: "Недоверенный сертификат";
errorCodes.X509_CERT_REJECTED: "Сертификат отклонен";
errorCodes.X509_APPLICATION_VERIFICATION: "Ошибка проверки приложения";
errorCodes.X509_SUBJECT_ISSUER_MISMATCH: "Несовпадения субьекта и эмитента";
errorCodes.X509_AKID_SKID_MISMATCH: "Несовпадение идентификатора ключа у субьекта и доверенного центра";
errorCodes.X509_AKID_ISSUER_SERIAL_MISMATCH: "Несовпадение серийного номера субьекта и доверенного центра";
errorCodes.X509_KEYUSAGE_NO_CERTSIGN: "Ключ не может быть использован для подписи сертификатов";
errorCodes.X509_UNABLE_TO_GET_CRL_ISSUER: "Невозможно получить CRL подписанта";
errorCodes.X509_UNHANDLED_CRITICAL_EXTENSION: "Неподдерживаемое расширение";
errorCodes.X509_KEYUSAGE_NO_CRL_SIGN: "Ключ не может быть использован для подписи CRL";
errorCodes.X509_KEYUSAGE_NO_DIGITAL_SIGNATURE: "Ключ не может быть использован для цифровой подписи";
errorCodes.X509_UNHANDLED_CRITICAL_CRL_EXTENSION: "Неподдерживаемое расширение CRL";
errorCodes.X509_INVALID_EXTENSION: "Неверное или некорректное расширение сертификата";
errorCodes.X509_INVALID_POLICY_EXTENSION: "Неверное или некорректное расширение политик сертификата";
errorCodes.X509_NO_EXPLICIT_POLICY: "Явные политики отсутствуют";
errorCodes.X509_DIFFERENT_CRL_SCOPE: "Другая область CRL";
errorCodes.X509_UNSUPPORTED_EXTENSION_FEATURE: "Неподдерживаемое расширение возможностей";
errorCodes.X509_UNNESTED_RESOURCE: "RFC 3779 неправильное наследование ресурсов";
errorCodes.X509_PERMITTED_VIOLATION: "Неправильная структура сертификата";
errorCodes.X509_EXCLUDED_VIOLATION: "Неправильная структура сертификата";
errorCodes.X509_SUBTREE_MINMAX: "Неправильная структура сертификата";
errorCodes.X509_UNSUPPORTED_CONSTRAINT_TYPE: "Неправильная структура сертификата";
errorCodes.X509_UNSUPPORTED_CONSTRAINT_SYNTAX: "Неправильная структура сертификата";
errorCodes.X509_UNSUPPORTED_NAME_SYNTAX: "Неправильная структура сертификата";
errorCodes.X509_CRL_PATH_VALIDATION_ERROR: "Неправильный путь CRL".
valid {bool}
Правильно созданный объект всегда возвращает true
version {string}
Версия плагина в формате 1.2.3.4
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, salt, resultCallback, errorCallback) → {string}
Аутентификация по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
cmsDecrypt(deviceId, keyId, cmsData, options, resultCallback, errorCallback) → {string}
Расшифрование данных в формате CMS.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, recipientCert, data, options, resultCallback, errorCallback) → {string}
Шифрование данных в формате CMS.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, subject, extensions, includeSubjSignTool, resultCallback, errorCallback) → {string}
Формирование самоподписанного запроса в формате PKCS#10.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(filePath, password, resultCallback, errorCallback) → {bool}
Добавить виртуальное устройство с поддержкой алгоритма RSA
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyLabel, data, resultCallback, errorCallback) → {string}
Расшифрование данных в формате CMS.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, resultCallback, errorCallback)
Удаление сертификата из токена.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, resultCallback, errorCallback)
Удаление ключевой пары.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, hashType, data, options, resultCallback, errorCallback)
Вычисление хеш-значения по заданному алгоритму от данных.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyLabel, data, resultCallback, errorCallback) → {string}
Шифрование данных на симметричном ключе.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, category, resultCallback, errorCallback) → {string[]}
Получение массива с идентификаторами сертификатов.
Рутокен Плагин. Описание программного интерфейса.(resultCallback, errorCallback) → {number[]}
Получение идентификаторов доступных устройств
Рутокен Плагин. Описание программного интерфейса.(deviceId, marker, resultCallback, errorCallback) → {string[]}
Получение массива с идентификаторами секретных ключей в HEX .
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, params, marker, specialKey, resultCallback, errorCallback) → {string}
Генерация ключевой пары в устройстве.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, resultCallback, errorCallback) → {string}
Получение тела сертификата в PEM.
Рутокен Плагин. Описание программного интерфейса.(deviceId, option, resultCallback, errorCallback) → {object}
Получение информации об устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, resultCallback, errorCallback, deviceId) → {string}
Получение метки устройства
getDeviceModel(deviceId, resultCallback, errorCallback) → {string}
Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.
Рутокен Плагин. Описание программного интерфейса.(deviceId, resultCallback, errorCallback) → {number}
Получение константы, обозначающей тип устройства.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, options, resultCallback, errorCallback) → {object}
Получение журнала операций на устройстве и его подписи, сформированной на соответствующем ключе. Если с момента подключения устройства никаких операций не производилось будет возвращен null.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, resultCallback, errorCallback) → {string}
Получение ключа по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, resultCallback, errorCallback) → {string}
Получение метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, options, resultCallback, errorCallback) → {string}
Получение значения открытого ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certificate, category, resultCallback, errorCallback) → {string}
Импорт сертификата на токен.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, pin, resultCallback, errorCallback)
Авторизация на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, resultCallback, errorCallback)
Закрытие сессии с устройством.
Рутокен Плагин. Описание программного интерфейса.(filePath, resultCallback, errorCallback) → {bool}
Ассоциирование существующего PKCS#12-контейнера с виртуальным устройством.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, resultCallback, errorCallback) → {object}
Получение ассоциативного массива с разобранными полями из сертификата.
Рутокен Плагин. Описание программного интерфейса.(text, resultCallback, errorCallback) → {object}
Получение ассоциативного массива с разобранными полями из сертификата.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, data, options, resultCallback, errorCallback) → {string}
Вычисление "сырой" подписи.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, resultCallback, errorCallback)
Удаление закешированного PIN-кода из файла.
Рутокен Плагин. Описание программного интерфейса.(deviceId, resultCallback, errorCallback)
Сохранение PIN-кода в файл для автоматической аутентификации.
Рутокен Плагин. Описание программного интерфейса.(deviceId, keyId, label, resultCallback, errorCallback)
Установка метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, certId, data, isBase64, object, resultCallback, options) → {string}
Вычисление цифровой подписи в формате CMS.
Для выполнения этой функции требуется авторизоваться на устройстве.
Рутокен Плагин. Описание программного интерфейса.(deviceId, cms, options, resultCallback, errorCallback) → {bool}
Проверка цифровой подписи.
Аутентификация по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата |
3 | salt | string | Аутентификационные данные |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Строка для аутентификации
Расшифрование данных в формате CMS. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования.
Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа для расшифровыания |
3 | cmsData | string | CMS-сообщение, содержащие зашифрованные данные |
4 | options | object | Массив, содержащий параметры расшифрования - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Расшифрованные данные
Шифрование данных в формате CMS.
Параметры:
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата, зарезервированно для будущего использования |
3 | recipientCert | string | Тело сертификата сервера |
4 | data | string | Зашифровываемые данные (текстовая строка или base64-encoded бинарные данные) |
5 | options | object | Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
|
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Зашифрованные данные в формате CMS
Формирование самоподписанного запроса PKCS#10.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | subject | object[] | Массив, содержащий объекты вида: {rdn: "commonName", value: "значение"} |
4 | extensions | object | Ассоциативный массив, содержащий массивы расширений: {keyUsage: ["digitalSignature",...], extKeyUsage: ["oid", "longName" ]} |
5 | includeSubjSignTool | boolean | Флаг, включать или нет в запрос расширение SubjectSignTool |
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Запрос PKCS#10 в PEM-формате.
* 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 extensions = { "keyUsage": keyUsageVal, "extKeyUsage": extKeyUsageVal }; plugin.createPkcs10(deviceID, keyID, subject, extensions, includeSubjectSignToolExt, this.printResult, this.printError); } |
Функция ассоциирует файл-контейнер формата PKCS#12 с виртуальным устройством с поддержкой алгоритма RSA.
При дальнейшем использовании устройства, например, для генерации ключей или импорта сертификатов, ключи и сертификаты будут сохранены в этом файле. После вызова функции последующий вызов функции enumerateDevices вернет массив идентификаторов, в который будет добавлен и идентификатор виртуального устройства. Вызов getDeviceInfo для данного устройства вернет в качестве модели "PKCS12", в качестве label - путь к файлу.
Name | Type | Description | |
---|---|---|---|
1 | filePath | string | Путь к файлу PKCS#12-контейнеру, с которым будет ассоциировано виртуальное устройство. Если null, то путь будет запрошен диалогом. |
2 | password | string | Пароль, на котором будет зашифрован PKCS#12-контейнер |
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
7 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Если контейнер успешно создан, то true. Если пользователь в диалоге выбора нажал кнопку "Отмена", то false.
Расшифрование данных на симметричном ключе.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyLabel | string | Метка ключа для шифрования (если такого ключа нет, будет возвращена ошибка) |
3 | data | string | Расшифровываемые данные |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Расшифрованные данные.
Удаление сертификата из токена.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата, полученный в результате вызова enumerateCertificates |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Удаление ключевой пары
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор секретного ключа из ключевой пары |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Вычисление хеш-значения по заданному алгоритму от данных
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | hashType | string | Идентификатор алгоритма хеширования |
3 | data | string | данные для хеширования |
4 | options | object | Массив, содержащий параметры хеширования - объекты вида {параметр:true/false}.
|
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Хеш-значение в hex
Шифрование данных.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyLabel | string | Метка ключа для шифрования (если такого ключа нет, он будет сгенерирован) |
3 | data | string | Зашифровываемые данные |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Зашифрованные данные
Получение массива с идентификаторами сертификатов.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | category | number | Тип сертификата: "user", "other" или "CA" |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Массив строк с идентификаторами сертификатов
Получение идентификаторов доступных устройств
Name | Type | Description | |
---|---|---|---|
1 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
2 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Список идентификаторов подключенных устройств
Получение массива с идентификаторами секретных ключей в HEX.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | marker | string | Идентификатор группы ключей, "" - все ключи |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Массив строк с идентификаторами закрытых ключей
Генерация ключевой пары в устройстве.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | params | string | Параметры ключа |
3 | marker | string | Идентификатор группы ключей |
4 | options | object | Доступны следующие опции:
Для ключевой пары типа KEY_TYPE_COMMON так же доступны следующие атрибуты:
|
5 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
ID ключа в HEX
Получение тела сертификата в PEM.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Строку, содержащую сертификат в PEM-формате.
Получение информации об устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | option | number | Тип запрашиваемой информации:
|
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Текстовая строка для метки и серийного номера, число для типа устройства.
В случае передачи в качестве параметра TOKEN_INFO_FORMATS возвращается список форматов, которые поддерживает устройство, в виде массива констант:
В случае передачи в качестве параметра TOKEN_INFO_FEATURES возвращается ассоциативный массив, определяющий возможности устройства, со следующими полями:
В случае передачи в качестве параметра TOKEN_INFO_DEVICE_TYPE возвращает тип устройства в виде числовой константы. Возможные типы устройства:
Получение метки устройства
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Метка устройства
Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Тип устройства в виде человеко-понятной строки
Получение константы, обозначающей тип устройства.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Тип устройства в виде числовой константы. Возможные типы устройства:
Получение журнала операций на устройстве и его подписи, сформированной на соответствующем ключе. Если с момента подключения устройства никаких операций не производилось будет возвращен null
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | options | object | Зарезервировано для будущего использования |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
6 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Ассоциативный массив с полями journal и signature
Получение ключа по сертификату.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Идентификатор ключа
Получение метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Метка закрытого ключа.
Получение значения открытого ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | options | object | Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Открытый ключ (hex-строка)
Импорт сертификата на токен.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certificate | string | Тело сертификата в формате BASE64 |
3 | category | number | Тип сертификата: "user", "other" или "CA" |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Идентификатор сертификата
Авторизация на устройстве
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | pin | string | PIN-код доступа к устройству |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Закрытие сессии с устройством
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Открытие контейнера PKCS#12 и ассоциирование его с виртуальным устройством.
Name | Type | Description | |
---|---|---|---|
1 | filePath | string | Путь к файлу PKCS#12-контейнеру, с которым будет ассоциировано виртуальное устройство. Если null, то путь будет запрошен диалогом. |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Если контейнер успешно открыт, то true. Если пользователь в диалоге выбора нажал кнопку "Отмена", то false.
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата, полученный в результате вызова enumerateCertificates |
3 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
4 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Ассоциативный массив объектов
Получение ассоциативного массива с разобранными полями из сертификата.
Name | Type | Description | |
---|---|---|---|
1 | text | string | Тело сертификата в BASE64 |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Ассоциативный массив объектов
Подпись на ключе. Аргумент options принимает параметры подписи.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | data | string | Подписываемый хеш (hex-строка) или текстовые данные |
4 | options | object | Массив, содержащий параметры подписи - объекты вида {параметр:true/false}. Доступны следующие параметры:
|
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
Электронно-цифровая подпись в hex-формате.
Удаление закешированного PIN-кода из файла.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибкиboolean |
savePin(deviceId, resultCallback, errorCallback)
Сохранение PIN-кода в файл для автоматической аутентификации.
Параметры:
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
3 | errorCallback | function | Функция обратного вызова для случая возникновения ошибкиvoid |
Установка метки секретного ключа.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | keyId | string | Идентификатор ключа |
3 | label | string | Новая метка закрытого ключа |
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки void |
Вычисление цифровой подписи.
Для выполнения этой функции требуется авторизоваться на устройстве.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | certId | string | Идентификатор сертификата |
3 | data | string | Подписываемые данные (текстовая строка или base64-encoded бинарные данные) |
4 | isBase64 | boolean | Флаг, данные передаются в кодировке base64 или нет |
5 | object | options Параметры подписи - объект {параметр:true/false} (по умолчанию все значение false) доступны следующие параметры: detached - генерировать отсоединенную подпись addUserCertificate - включить в подпись сертификат пользователя addSignTime - включить в подпись время подписи useHardwareHash - производить хеширование на "борту" токена | |
6 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
7 | options | string[] | undefined |
Электронную подпись в формате CMS в base64
Проверка цифровой подписи.
Name | Type | Description | |
---|---|---|---|
1 | deviceId | number | Идентификатор устройства |
2 | cms | string | Контейнер с цифровой подписью |
3 | options | object | Аргумент options принимает параметры проверки подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
|
4 | resultCallback | function | Функция обратного вызова для случая успешного выполнения |
5 | errorCallback | function | Функция обратного вызова для случая возникновения ошибки |
true - подпись верна / false - не верна