Class: CryptoPlugin
Главный класс, реализующий всю функциональность Рутокен Плагин.
Подсказка
Для работы с Рутокен Плагином рекомендуется использовать модуль-обертку.
Для обращения к классу используется асинхронный интерфейс, возвращающий Promise. Подробнее об интерфейсе на странице Способы вызова методов.
Универсальный метод добавления обработчиков: Promise.then(onFulfilled, onRejected), где:
- onFulfilled – функция, которая будет вызвана при успешном выполнении метода;
- onRejected – функция, которая будет вызвана при ошибке выполнения метода.
Примеры:
// Пример инициализации Рутокен Плагина window.onload = function () { rutoken.ready // Проверка установки расширение 'Адаптера Рутокен Плагина' в Google Chrome .then(function () { if (window.chrome || typeof InstallTrigger !== 'undefined') { return rutoken.isExtensionInstalled(); } else { return Promise.resolve(true); } }) // Проверка установки Рутокен Плагина .then(function (result) { if (result) { return rutoken.isPluginInstalled(); } else { return Promise.reject("Не удаётся найти расширение 'Адаптер Рутокен Плагина'"); } }) // Загрузка Рутокен Плагина .then(function (result) { if (result) { return rutoken.loadPlugin(); } else { return Promise.reject("Не удаётся найти Рутокен Плагин"); } }) // Можно начинать работать с Рутокен Плагином .then(function (result) { if (!result) { return Promise.reject("Не удаётся загрузить Рутокен Плагин"); } else { plugin = result; return Promise.resolve(); } }); }
// Пример функции обработки ошибок от Рутокен Плагина // В разделе Сlass: errorCodes описаны все возможные ошибки function handleError(reason) { if (isNaN(reason.message)) { alert(reason); } else { var errorCodes = plugin.errorCodes; switch (parseInt(reason.message)) { case errorCodes.PIN_INCORRECT: alert("Неверный PIN"); break; default: alert("Неизвестная ошибка"); } } }
Резюме
Свойства
Название | Тип | Описание |
---|---|---|
errorCodes | ErrorCodesApi | Объект с константами ошибок |
valid | bool | Правильно созданный объект всегда возвращает true |
version | string | Версия Рутокен Плагина в формате 1.2.3.4 |
Методы
Название | Описание |
---|---|
authenticate | Аутентификация по сертификату |
changePin | Изменение PIN-кода Пользователя |
cmsDecrypt | Расшифрование данных в формате CMS |
cmsEncrypt | Шифрование данных в формате CMS |
createBinaryFile | Создание бинарного файла на устройстве |
createPkcs10 | Формирование самоподписанного PKCS#10 запроса |
createTsRequest | Создание запроса на метку времени |
deleteBinaryFile | Удаление бинарного файла с устройства |
deleteCertificate | Удаление сертификата с устройства |
deleteKeyPair | Удаление ключевой пары |
derive | Выработка ключа обмена |
digest | Вычисление хеша |
enumerateBinaryFiles | Получение перечня идентификаторов бинарных файлов |
enumerateCertificates | Получение массива с идентификаторами сертификатов |
enumerateDevices | Получение идентификаторов доступных устройств |
enumerateKeys | Получение массива с идентификаторами закрытых ключей в HEX |
enumerateStoreCertificates | Получение массива с идентификаторами установленных в системном хранилище сертификатов |
formatToken | Форматирование токена |
generateKeyPair | Генерация ключевой пары на устройстве |
getBinaryFileInfo | Получение информации о бинарном файле |
getCertificate | Получение тела сертификата в формате PEM |
getCertificateInfo | Получение информации о сертификате |
getCertLabel | Получение метки сертификата |
getDeviceInfo | Получение информации об устройстве |
getJournal | Получение журнала операций устройства и журнала, сформированного на соответствующем ГОСТ-ключе |
getKeyByCertificate | Получение идентификатора ключевой пары по сертификату |
getKeyInfo | Получение информации о ключе |
getKeyLabel | Получение метки закрытого ключа |
getLicence | Получение лицензии с токена |
getPublicKeyValue | Получение значения открытого ключа |
getStoreCertificate | Получение тела сертификата из системного хранилища в формате PEM |
importCertificate | Импорт сертификата на устройство |
login | Авторизация на устройстве |
logout | Закрытие сессии |
parseCertificate | Получение ассоциативного массива с разобранными полями из сертификата |
parseCertificateFromString | Получение ассоциативного массива с разобранными полями из сертификата из строки |
rawSign | Подпись на ключе |
readBinaryFile | Чтение бинарного файла |
removePin | Удаление закешированного PIN-кода из файла |
savePin | Сохранение PIN-кода в файл для автоматической аутентификации |
setCertLabel | Установка метки сертификата |
setKeyLabel | Установка метки закрытого ключа |
setLicence | Запись лицензии на токен |
sign | Вычисление электронной подписи |
unblockUserPin | Разблокировка заблокированного PIN-кода Пользователя |
verify | Криптографическая проверка электронной подписи сообщения в формате CMS, а также опциональная проверка цепочки сертификатов подписанта |
verifyTsResponse | Проверка метки доверенного времени |
Подробно
Методы
- authenticate(deviceId, certId, salt) → {string}
Аутентификация по сертификату.
Предупреждение
С версии Рутокен Плагин 2.8.5 метод считается устаревшим и не рекомендуется к применению. В будущих обновлениях он может быть удален из состава продукта. Используйте метод rawSign.
- changePin(deviceId, authPin, newPin, options)
Изменение PIN-кода Пользователя.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2authPin string Текущий PIN-код Пользователя или PIN-код Администратора 3newPin string Новый PIN-код Пользователя 4options object Объект, содержащий дополнительные параметры в виде пар "опция: значение" Параметры (опции) аргумента options:
- cmsDecrypt(deviceId, keyId, cmsData, options) → {string}
Расшифрование данных в формате CMS.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа для расшифрования 3cmsData string CMS-сообщение в формате PEM или Base64, содержащее зашифрованные данные 4options object Объект, содержащий параметры расшифрования в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Расшифрованные данные
- cmsEncrypt(deviceId, certId, recipientCerts, data, options) → {string}
Шифрование данных в формате CMS.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата. Зарезервировано для будущего использования 3recipientCerts object Массив, содержащий сертификаты получателей в PEM-формате 4data string Данные для шифрования (текстовая строка или Base64-encoded бинарные данные) 5options object Объект, содержащий параметры шифрования в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Зашифрованные данные в формате CMS
- createBinaryFile(deviceId, fileName, fileBuffer, isPrivate) → {string}
Создание бинарного файла на устройстве.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Примечание
При создании бинарных файлов альтернативными способами (например, через библиотеку rtPKCS11ECP) необходимо придерживаться ограничений.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2fileName string Имя (идентификатор) создаваемого файла 3fileBuffer string Тело создаваемого файла в Base64 4isPrivate bool Идентификатор доступа (доступен ли файл только из приватной сессии) Возвращает:
Строка с идентификатором созданного бинарного файла
- createPkcs10(deviceId, keyId, subject, extensions, options) → {string}
Формирование самоподписанного PKCS#10 запроса.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3subject object Массив, содержащий объекты вида: {rdn: "commonName", value: "значение"} 4extensions object Ассоциативный массив, содержащий массивы расширений: - keyUsage: ["digitalSignature",...];
- extKeyUsage: ["oid", "longName" ];
- certificatePolicies: ["OID", ...];
- privateKeyUsagePeriod: { notBefore: number, notAfter: number} – объект, содержащий опциональные поля в формате Unix-время (целое число секунд, прошедших с 1970.01.01.00:00:00):
- notBefore – дата начала валидности закрытого ключа;
- notAfter – дата окончания валидности закрытого ключа;
- требования к полям privateKeyUsagePeriod (несоблюдение хотя бы одного приведет к ошибке):
- дата начала/окончания валидности закрытого ключа должна принадлежать диапазону от 1970.01.01.00:00:00 до 9999.12.31.23:59:59 включительно;
- если поля notBefore и notAfter заданы одновремено, то значение в поле notBefore должно быть меньше значения в поле notAfter;
- атрибуты закрытого ключа CKA_START_DATE/CKA_END_DATE должны быть не заданы.
5options object Дополнительные опции Параметры (опции) аргумента options:
Возвращает:
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: "pseudonym" } ,{ 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 privateKeyUsagePeriod = { notBefore: 1714510800, // 2024.04.30 21:00:00 notAfter: 1809118800, // 2027.04.30 21:00:00 }; var extensions = { "keyUsage": keyUsageVal, "extKeyUsage": extKeyUsageVal, "certificatePolicies": certificatePolicies "privateKeyUsagePeriod": privateKeyUsagePeriod }; var options = { "subjectSignTool": 'СКЗИ "РУТОКЕН ЭП"', "hashAlgorithm": plugin.HASH_TYPE_GOST3411_12_256, "customExtensions": [ { oid: "1.3.6.1.4.1.311.21.7", value: "MA0GCCqFAwICLgAIAgEB", criticality: false } ] }; plugin.createPkcs10(deviceID, keyID, subject, extensions, options); }
- createTsRequest(data, dataFormat, hashType, options) → {string}
Создание запроса на метку времени.
Параметры:
Название Тип Описание 1data string Данные, для которых нужно создать метку времени 2dataFormat number Формат данных.
Если формат данных – DATA_FORMAT_HASH, то в параметр data передается посчитанный хеш от данных (hex-строка)3hashType number Алгоритм хеширования 4options object Дополнительные опции Параметры (опции) аргумента options:
Возвращает:
Запрос (Base64)
- deleteBinaryFile(deviceId, fileName)
Удаление бинарного файла с устройства.
Шаблон поиска аналогичен шаблону поиска бинарного файла с добавлением CKA_LABEL = <имя файла>.Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2fileName string Имя (идентификатор) бинарного файла, полученное в результате вызова enumerateBinaryFiles - deleteCertificate(deviceId, certId)
Удаление сертификата с устройства.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата, полученный в результате вызова enumerateCertificates - deleteKeyPair(deviceId, keyId)
Удаление ключевой пары.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор закрытого ключа из ключевой пары - derive(deviceId, keyId, publicKey, options) → {string}
Выработка ключа обмена.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор закрытого ключа 3publicKey string Открытый ключ (hex-строка) (для ECDSA uncompressed форма) 4options object Объект, содержащий параметры подписи в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Выработанный ключ (hex)
- digest(deviceId, hashType, data, options) → {string}
Вычисление хеша.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2hashType number Алгоритм хеширования.
Следующие алгоритмы хеширования доступны только при опции useHardwareHash=false:3data string Хешируемые данные 4options object Объект, содержащий параметры хеширования в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Хеш (hex)
- enumerateBinaryFiles(deviceId) → {string[]}
Получение перечня идентификаторов бинарных файлов.
Поиск бинарных файлов осуществляется по шаблону.Примечание
Приватные бинарные файлы доступны только из приватной сессий.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства Возвращает:
Массив строк с идентификаторами бинарных файлов
- enumerateCertificates(deviceId, category) → {string[]}
Получение массива с идентификаторами сертификатов.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2category number Тип сертификата Возвращает:
Массив строк с идентификаторами сертификатов
- enumerateDevices(options) → {number[]}
Получение идентификаторов доступных устройств.
Параметры:
Название Тип Описание 1options object Объект, содержащий дополнительные параметры в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Список идентификаторов устройств
- enumerateKeys(deviceId, marker) → {string[]}
Получение массива с идентификаторами закрытых ключей в HEX.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2marker string Идентификатор группы ключей, "" – все ключи Возвращает:
Массив строк с идентификаторами закрытых ключей (hex)
- enumerateStoreCertificates(options) → {string[]}
Получение массива с идентификаторами установленных в системном хранилище сертификатов.
Предупреждение
С версии Рутокен Плагин 4.11.0 метод считается устаревшим и не рекомендуется к применению. В будущих обновлениях он может быть удален из состава продукта. Используйте метод enumerateCertificates.
- formatToken(deviceId, options)
Форматирование токена.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2options object Объект, содержащий дополнительные параметры в виде пар "опция: значение" Параметры (опции) аргумента options:
- generateKeyPair(deviceId, reserved, marker, options) → {string}
Генерация ключевой пары на устройстве.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2reserved string Зарезервировано для будущего использования (необходимо передавать undefined) 3marker string Идентификатор группы ключей 4options object Объект, содержащий дополнительные свойства ключевой пары в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
ID ключа (hex)
Примеры:
// Преобразование шестнадцатеричного id ключевой пары в формат для ЕГАИС function asciitohex(str){ var result = []; for (var n = 0, l = str.length; n < l; n++) { var code = str.charCodeAt(n); if(code > 128 || code == 32) continue; var hex = code.toString(16); result.push(hex); } return result.join(':'); }
// Генерация ключевой пары c возможностью обмена только на поддерживающих это токенах // Генерация ключевой пары будет производиться на устройстве с этим // идентификатором, полученным из enumerateDevices() var deviceId = 0; var info = plugin.TOKEN_INFO_SUPPORTED_MECHANISMS; plugin.pluginObject.getDeviceInfo(deviceId, info).then(function (result) { // Определение, поддерживает ли устройство генерацию симметричного ключа // по алгоритмам ГОСТ var supportedMechs = result["keyExchange"]["hardware"]; var exchangeSupported = supportedMechs.includes( plugin.PUBLIC_KEY_ALGORITHM_EXCHANGE_VKO_GOST3410_2012_256) || supportedMechs.includes( plugin.PUBLIC_KEY_ALGORITHM_EXCHANGE_VKO_GOST3410_2012_512); // Авторизация на устройстве plugin.pluginObject.login(deviceId, "12345678").then(function () { var algorithm = plugin.PUBLIC_KEY_ALGORITHM_GOST3410_2012_256; var options = { "publicKeyAlgorithm": algorithm }; // Параметры ключевой пары ГОСТ options.paramset = "TC26-A"; options.signatureSize = 512; options.id = "AA:BB:CC"; // Идентификатор ключевой пары // Если Рутокен поддерживает генерацию симметричного ключа, // тогда назначение ключевой пары должно быть // "обмен сообщениями (шифрование) и подпись". // Если поддержка отсутствует, то назначение следует указать как // "подпись" if (exchangeSupported) options.keySpec = plugin.KEY_SPEC_SIGN_AND_EXCHANGE; else options.keySpec = plugin.KEY_SPEC_SIGN; var marker = "Test"; // Метка // Генерация ключевой пары с выбранным назначением plugin.pluginObject.generateKeyPair(deviceId, undefined, marker, options). then(function () { console.info("Success"); // Закрытие сессии plugin.pluginObject.logout(deviceId).then(function () { }, function (errorCode) { console.error(errorCode) }); }, function (errorCode) { console.error(errorCode) }); }, function (errorCode) { console.error(errorCode) }); }, function (errorCode) { console.error(errorCode) });
- getBinaryFileInfo(deviceId, fileName, option) → {object}
Получение информации о бинарном файле.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2fileName string Имя (идентификатор) бинарного файла 3option number Тип запрашиваемой информации.
Задается константой BINARY_FILE_INFO_PRIVATE, передача которой возвращает флаг приватности бинарного файлаВозвращает:
Информация о бинарном файле
- getCertificate(deviceId, certId) → {string}
Получение тела сертификата в формате PEM.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата Возвращает:
Описатель сертификата в виде объекта
- getCertificateInfo(deviceId, certId, option) → {object}
Получение информации о сертификате.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата 3option number Тип запрашиваемой информации.
Задается константой CERT_INFO_SERIAL_NUMBER, передача которой возвращает серийный номер сертификата в формате hex-строкиВозвращает:
Для серийного номера сертификата – строка (hex)
- getCertLabel(deviceId, certId) → {string}
Получение метки сертификата.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата Возвращает:
Метка сертификата
- getDeviceInfo(deviceId, option) → {object}
Получение информации об устройстве.
Тип возвращаемой информации задается константами в параметре options.Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2option number Тип запрашиваемой информации Возвращает:
Информация об устройстве в зависимости от типа запрашиваемой информации
- getJournal(deviceId, keyId, options) → {object}
Получение журнала операций устройства и журнала, сформированного на соответствующем ГОСТ-ключе.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3options object Объект, содержащий дополнительные параметры. Зарезервирован для будущего использования Возвращает:
Ассоциативный массив с полями "journal" и "signature". Если с момента подключения токена никаких операций не производилось, то возвращается null
- getKeyByCertificate(deviceId, certId) → {string}
Получение идентификатора ключевой пары по сертификату.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата Возвращает:
Идентификатор ключа (hex)
- getKeyInfo(deviceId, keyId, option) → {object}
Получение информации о ключе.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3option number Тип запрашиваемой информации Возвращает:
Информация о ключе в зависимости от типа запрашиваемой информации
- getKeyLabel(deviceId, keyId) → {string}
Получение метки закрытого ключа.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа Возвращает:
Метка закрытого ключа
- getLicence(deviceId, licenceId) → {string}
Получение лицензии с токена.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2licenceId number Идентификатор лицензии (значения 1, 2) Возвращает:
Лицензия (hex)
- getPublicKeyValue(deviceId, keyId, options) → {string}
Получение значения открытого ключа.
Предупреждение
Не поддерживается для ключей RSA.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3options object Объект, содержащий дополнительные параметры. Зарезервирован для будущего использования Возвращает:
Открытый ключ (hex) (для ECDSA uncompressed форма)
- getStoreCertificate(certId, options) → {string}
Получение тела сертификата из системного хранилища в формате PEM.
Предупреждение
С версии Рутокен Плагин 4.11.0 метод считается устаревшим и не рекомендуется к применению. В будущих обновлениях он может быть удален из состава продукта. Используйте метод getCertificate.
- importCertificate(deviceId, certificate, category) → {string}
Импорт сертификата на устройство.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certificate string Тело сертификата в PEM-формате 3category number Тип сертификата Возвращает:
Идентификатор сертификата (hex)
- login(deviceId, pin)
Авторизация на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2pin string PIN-код доступа к устройству - logout(deviceId)
Закрытие сессии.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства - parseCertificate(deviceId, certId) → {object}
Получение ассоциативного массива с разобранными полями из сертификата.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата, полученный в результате вызова enumerateCertificates Возвращает:
Ассоциативный массив объектов
- parseCertificateFromString(text) → {object}
Получение ассоциативного массива с разобранными полями из сертификата из строки.
Параметры:
Название Тип Описание 1text string Тело сертификата в PEM-формате Возвращает:
Ассоциативный массив объектов
- rawSign(deviceId, keyId, data, options) → {string}
Подпись на ключе.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор закрытого ключа 3data string Подписываемый хеш (hex-строка) или текстовые данные 4options object Объект, содержащий параметры подписи в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Электронная подпись (hex)
- readBinaryFile(deviceId, fileName) → {string}
Чтение бинарного файла.
Примечание
Приватные бинарные файлы доступны только из приватной сессий.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2fileName string Имя (идентификатор) бинарного файла, полученное в результате вызова enumerateBinaryFiles Возвращает:
Тело считанного бинарного файла
- removePin(deviceId)
Удаление закешированного PIN-кода из файла.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства - savePin(deviceId)
Сохранение PIN-кода в файл для автоматической аутентификации.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства - setCertLabel(deviceId, certId, label)
Установка метки сертификата.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата 3label string Новая метка сертификата - setKeyLabel(deviceId, keyId, label)
Установка метки закрытого ключа.
Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3label string Новая метка закрытого ключа - setLicence(deviceId, licenceId, licence)
Запись лицензии на токен.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2licenceId number Идентификатор лицензии (значения 1, 2) 3licence string 72 байта данных, представленные в hex-строке - sign(deviceId, certId, data, dataFormat, options) → {string}
Вычисление электронной подписи.
В зависимости от параметров можно получить подпись в форматах CMS (RFC5652), CAdES-BES (RFC5126, 4.3.1), CAdES-T (RFC5126, 4.4.1).Примечание
Для выполнения этого метода требуется авторизоваться на устройстве.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата 3data string Подписываемые данные (текстовая строка или Base64-encoded бинарные данные) 4dataFormat number Формат данных.
Если формат данных – DATA_FORMAT_HASH, то в параметр data передается посчитанный хеш сообщения (hex-строка), при этом необходимо присвоить опции detached значение true5options object Объект, содержащий параметры подписи в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
Электронная подпись (в формате Base64 или PEM)
- unblockUserPin(deviceId, adminPin)
Разблокировка заблокированного PIN-кода Пользователя.
Примечание
Пользователь не должен быть авторизован.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2adminPin string PIN-код Администратора - verify(deviceId, cms, options) → {bool}
Криптографическая проверка электронной подписи сообщения в формате CMS, а также опциональная проверка цепочки сертификатов подписанта.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2cms string Контейнер с электронной подписью в формате CMS (RFC5652) (PEM-формат или Base64) 3options object Объект, содержащий параметры проверки подписи в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
true – подпись верна / false – не верна
- verifyTsResponse(deviceId, response, data, dataFormat, options) → {bool}
Проверка метки доверенного времени.
Параметры:
Название Тип Описание 1deviceId number Идентификатор устройства 2response string Base64-encoded метка доверенного времени (TSResponse) 3data string Запрос метки доверенного времени (TSRequest) 4dataFormat number Формат данных. Задается константой DATA_FORMAT_BASE64 5options object Объект, содержащий параметры проверки подписи в виде пар "опция: значение" Параметры (опции) аргумента options:
Возвращает:
true – метка верна / false – метка не верна