Class: CryptoPlugin
Главный класс плагина. Реализует всю функциональность плагина. Интерфейсные функции плагина могут вызываться двумя способами: асинхронно и синхронно. Настоятельно рекомендуется использовать асинхронный интерфейс, поскольку при использовании синхронных вызовов происходит блокирование интерфейса браузера на время выполнения функции.
Асинхронный интерфейс.
Все функции принимают 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>
Резюме
Методы
- authenticate(deviceId, certId, salt) → {string}
- Аутентификация по сертификату. Не поддерживается для ключей RSA. Для выполнения этой функции требуется авторизоваться на устройстве.
- changePin(deviceId, oldPin, newPin, options)
- Изменение PIN. Если переданып параметры oldPin и newPin, то будет изменен PIN пользователя. Если эти параметры не переданы, то будет изменен PIN2 (только на PINPad2)
- cmsDecrypt(deviceId, keyId, cmsData, options) → {string}
- Расшифрование данных в формате CMS. Не поддерживается для ключей RSA. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования. Для выполнения этой функции требуется авторизоваться на устройстве.
- cmsEncrypt(deviceId, certId, recipientCert, data, options) → {string}
- Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
- base64:bool (false) - закодированы ли переданные данные в base64
- useHardwareEncryption:bool (false) - производить шифрование на устройстве
- createPkcs10(deviceId, keyId, subject, extensions, options) → {string}
- Формирование самоподписанного PKCS#10 запроса Для выполнения этой функции требуется авторизоваться на устройстве.
- deleteCertificate(deviceId, certId)
- Удаление сертификата с устройства. Для выполнения этой функции требуется авторизоваться на устройстве.
- deleteKeyPair(deviceId, keyId)
- Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.
- digest(deviceId, hashType, data, options) → {string}
- Вычисления хеша. Аргумент options принимает параметры хеширования. Доступны следующие опции (в скобках указано значение по умолчанию):
- useHardwareHash:bool (false) - производить аппаратное хеширование данных
- base64:bool (false) - указывает, закодированы ли данные, переданные в data, в base64;
- enumerateCertificates(deviceId, category) → {string[]}
- Получение массива с идентификаторами сертификатов.
- enumerateDevices() → {number[]}
- Получение идентификаторов доступных устройств
- enumerateKeys(deviceId, marker) → {string[]}
- Получение массива с идентификаторами секретных ключей в HEX. Для выполнения этой функции требуется авторизоваться на устройстве.
- generateKeyPair(deviceId, reserved, marker, options) → {string}
- Генерация ключевой пары ГОСТ Р 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, для каждого ее использования потребуется подтверждение на устройстве; publicKeyAlgorithm:enum(GOST3410_2001) - алгоритм, варианты: GOST3410_2001, RSA; signatureSize:number - размер подписи в битах, значения по умолчанию: ГОСТ Р 34.10-2001 - 512, RSA - 2048. paramset - задает параметры ГОСТ 34.10-2001
- getCertificate(deviceId, certId) → {string}
- Получение тела сертификата в PEM.
- getDeviceInfo(deviceId, option) → {object}
- Получение информации об устройстве. Тип информации задается константами: 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.
- getDeviceLabel(deviceId) → {string}
- Получение метки устройства
- getDeviceModel(deviceId) → {string}
- Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.
- getDeviceType(deviceId) → {Promise< Pkcs11DeviceBase::DeviceType >}
- Получение константы, обозначающей тип устройства.
- getJournal(deviceId, keyId, options) → {object}
- Получение журнала операций на токене и его журнала, сформированной на соответствующем ключе. Если с момента подключения токена никаких операций не производилось будет возвращен null
- getKeyByCertificate(deviceId, certId) → {string}
- Получение идентификатора ключевой пары по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.
- getKeyLabel(deviceId, keyId) → {string}
- Получение метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
- getLicence(deviceId, licenceId) → {object}
- Получение лицензии с токена
- getPublicKeyValue(deviceId, keyId, options) → {string}
- Получение значения открытого ключа. Не поддерживается для ключей RSA. Для выполнения этой функции требуется авторизоваться на устройстве.
- importCertificate(deviceId, certificate, category) → {string}
- Импорт сертификата на устройство. Для выполнения этой функции требуется авторизоваться на устройстве.
- login(deviceId, pin)
- Авторизация на устройстве
- logout(deviceId)
- Закрытие сессии
- parseCertificate(deviceId, certId) → {object}
- Получение ассоциативного массива с разобранными полями из сертификата.
- parseCertificateFromString(text) → {object}
- Получение ассоциативного массива с разобранными полями из сертификата.
- rawSign(deviceId, keyId, data, options) → {string}
- Подпись на ключе. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- computeHash:bool (false) - производить хеширование переданных данных
- useHardwareHash:bool (false) - производить аппаратное хеширование данных, только если computeHash = true
- invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
- hashAlgorithm:enum - алгоритм хэширования (необходимо указывать для ключей RSA, даже если computeHash выставлен в false), варианты: GOST3411_94, MD5, SHA1, SHA256, SHA512.
- removePin(deviceId)
- Удаление закешированного PIN-кода из файла.
- savePin(deviceId)
- Сохранение PIN-кода в файл для автоматической аутентификации.
- setKeyLabel(deviceId, keyId, label)
- Установка метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
- setLicence(deviceId, licenceId, licence)
- Запись лицензии на токен
- sign(deviceId, certId, data, isBase64, options) → {string}
- Вычисление цифровой подписи. Не поддерживается для ключей RSA. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- detached:bool (false) - генерировать отсоединенную подпись
- addUserCertificate:bool (false) - включить в подпись сертификат пользователя
- addSignTime:bool (false) - включить в подпись время подписи
- useHardwareHash:bool (false) - производить аппаратное хеширование данных
- invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
- verify(deviceId, cms, options) → {bool}
- Проверка цифровой подписи. Аргумент options принимает параметры проверки подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- data:string (null) - подписанные данные (текстовые или base64-encoded), только в случае detached подписи;
- base64:bool (false) - указывает, закодированы ли данные, переданные в data, в base64;
- certificates:string[] (null) - набор сертификатов, на которых необходимо проверять подпись, при этом сертификаты, которые содержатся в cms, будут проигнорированы;
- CA:string[] (null) - список дополнительных корневых сертификатов для проверки сертификата, кроме них берутся сертификаты с устройства;
- CRL:string[] (null) - список отозванных сертификатов;
- useHardwareHash:bool (false) - производить хеширование на устройстве (игнорируется для алгоритмов отличных от ГОСТ Р 34.10-2001);
- verifyCertificate:bool (true) - проверить сертификат пользователя;
Подробно
Свойства
- errorCodes :weak_ptr< ErrorCodesApi >
Объект с константами ошибок
- valid :boolean
Правильно созданный объект всегда возвращает true
- version :string
Версия плагина в формате 1.2.3.4
Методы
- authenticate(deviceId, certId, salt) → {string}
Аутентификация по сертификату. Не поддерживается для ключей RSA. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата 3salt string Аутентификационные данные Возвращает:
Строка для аутентификации в формате CMS
- changePin(deviceId, oldPin, newPin, options)
Изменение PIN. Если переданып параметры oldPin и newPin, то будет изменен PIN пользователя. Если эти параметры не переданы, то будет изменен PIN2 (только на PINPad2)
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2oldPin string Старый PIN пользователя 3newPin string Новый PIN пользователя 4options object Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) - cmsDecrypt(deviceId, keyId, cmsData, options) → {string}
Расшифрование данных в формате CMS. Не поддерживается для ключей RSA. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа для расшифровыания 3cmsData string CMS-сообщение, содержащие зашифрованные данные 4options object Массив, содержащий параметры расшифрования - объекты вида {параметр:значение} (зарезервирован для будущего использования) Возвращает:
Расшифрованные данные
- cmsEncrypt(deviceId, certId, recipientCert, data, options) → {string}
Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
- base64:bool (false) - закодированы ли переданные данные в base64
- useHardwareEncryption:bool (false) - производить шифрование на устройстве
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата, зарезервированно для будущего использования 3recipientCert string Тело сертификата сервера 4data string Зашифровываемые данные (текстовая строка или base64-encoded бинарные данные) 5options object Массив, содержащий параметры шифрования - объекты вида {параметр:значение} Возвращает:
Зашифрованные данные в формате CMS
- createPkcs10(deviceId, keyId, subject, extensions, options) → {string}
Формирование самоподписанного PKCS#10 запроса Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3subject object Массив, содержащий объекты вида: {rdn: "commonName", value: "значение"} 4extensions object Ассоциативный массив, содержащий массивы расширений: {keyUsage: ["digitalSignature",...], extKeyUsage: ["oid", "longName" ], certificatePolicies: ["OID", ...]} 5options object Дополнительные опции: subjectSignTool:string - значение соответствующего расширения; hashAlgorithm:enum - алгоритм хэширования, варианты: GOST3411_94, MD5, SHA1, SHA256, SHA512; customExtensions:object - массив, содержащий объекты вида: {oid: "1.2.3", value: "MA0GCCqFAwICLgAIAgEB", criticality: false}. Возвращает:
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 }; var options = { "subjectSignTool": 'СКЗИ "РУТОКЕН ЭЦП"', "hashAlgorithm": plugin.GOST3411_94, "customExtensions": [ { oid: "1.3.6.1.4.1.311.21.7", value: "MA0GCCqFAwICLgAIAgEB", criticality: false } ]; }; plugin.createPkcs10(deviceID, keyID, subject, extensions, options, this.printResult, this.printError); }
- deleteCertificate(deviceId, certId)
Удаление сертификата с устройства. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата, полученный в результате вызова enumerateCertificates - deleteKeyPair(deviceId, keyId)
Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор секретного ключа из ключевой пары - digest(deviceId, hashType, data, options) → {string}
Вычисления хеша. Аргумент options принимает параметры хеширования. Доступны следующие опции (в скобках указано значение по умолчанию):
- useHardwareHash:bool (false) - производить аппаратное хеширование данных
- base64:bool (false) - указывает, закодированы ли данные, переданные в data, в base64;
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2hashType number Идентификатор алгоритма хеширования 3data string Хешируемые данные (текстовые или base64-строка) 4options object Массив, содержащий параметры хеширования - объекты вида {параметр:true/false} Возвращает:
Хеш (hex)
- enumerateCertificates(deviceId, category) → {string[]}
Получение массива с идентификаторами сертификатов.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2category number Тип сертификата: CERT_CATEGORY_UNSPEC, CERT_CATEGORY_USER, CERT_CATEGORY_CA или CERT_CATEGORY_OTHER, см. описание функции importCertificate Возвращает:
Массив строк с идентификаторами сертификатов
- enumerateDevices() → {number[]}
Получение идентификаторов доступных устройств
Возвращает:
Список идентификаторов подключенных устройств
- enumerateKeys(deviceId, marker) → {string[]}
Получение массива с идентификаторами секретных ключей в HEX.
Для выполнения этой функции требуется авторизоваться на устройстве.Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2marker string Идентификатор группы ключей, "" - все ключи Возвращает:
Массив строк с идентификаторами закрытых ключей (hex)
- generateKeyPair(deviceId, reserved, marker, options) → {string}
Генерация ключевой пары ГОСТ Р 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, для каждого ее использования потребуется подтверждение на устройстве; publicKeyAlgorithm:enum(GOST3410_2001) - алгоритм, варианты: GOST3410_2001, RSA; signatureSize:number - размер подписи в битах, значения по умолчанию: ГОСТ Р 34.10-2001 - 512, RSA - 2048. paramset - задает параметры ГОСТ 34.10-2001
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2reserved string Зарезервировано для будущего использования (необходимо передавать undefined) 3marker string Идентификатор группы ключей 4options object Дополнительные свойства ключевой пары в виде ассоциативного массива, см. подробное описание функции Возвращает:
ID ключа (hex)
- getCertificate(deviceId, certId) → {string}
Получение тела сертификата в PEM.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата Возвращает:
Описатель сертификата в виде объекта
- getDeviceInfo(deviceId, option) → {object}
Получение информации об устройстве.
Тип информации задается константами: 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 1deviceId number Идентификатор устройства 2option number Тип запрашиваемой информации (тип устройства, метка, серийный номер или наличие лицензии) Возвращает:
Текстовая строка для метки и серийного номера, число для типа устройства или true/false в случае лицензии. В случае передачи в качестве параметра TOKEN_INFO_FORMATS возвращается список форматов, которые поддерживает устройство, в виде массива констант:
- DEVICE_DATA_FORMAT_PLAIN - произвольные данные
- DEVICE_DATA_FORMAT_RAW - неформатированные данные для отображения на PINPad 2
- DEVICE_DATA_FORMAT_PINPAD2 - данные в формате PINPADFILE для отображения на PINPad 2
- DEVICE_DATA_FORMAT_XML - данные в XML формате для отображения на PINPad 2 DEVICE_DATA_FORMAT_SAFETOUCH - данные для отображения на Safetouch
- journal:bool - поддержка журнала операций
- pin2:bool - поддержка ввода PIN2 на устройстве
- visualization:bool - поддержка генерации ключей, требующих визуализации данных на устройстве
- getDeviceLabel(deviceId) → {string}
Получение метки устройства
- Deprecated:
- Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства Возвращает:
Метка устройства
- getDeviceModel(deviceId) → {string}
Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.
- Deprecated:
- Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства Возвращает:
Тип устройства в виде человеко-понятной строки
- getDeviceType(deviceId) → {Promise< Pkcs11DeviceBase::DeviceType >}
Получение константы, обозначающей тип устройства.
- Deprecated:
- Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства Возвращает:
deviceType Тип устройства в виде числовой константы
- getJournal(deviceId, keyId, options) → {object}
Получение журнала операций на токене и его журнала, сформированной на соответствующем ключе. Если с момента подключения токена никаких операций не производилось будет возвращен null
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3options object Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) Возвращает:
Ассоциативный массив с полями journal и signature
- getKeyByCertificate(deviceId, certId) → {string}
Получение идентификатора ключевой пары по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата Возвращает:
Идентификатор ключа (hex)
- getKeyLabel(deviceId, keyId) → {string}
Получение метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа Возвращает:
Метка закрытого ключа
- getLicence(deviceId, licenceId) → {object}
Получение лицензии с токена
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2licenceId number Идентификатор лицензии (значения 1, 2) Возвращает:
Ассоциативный массив с полями journal и signature
- getPublicKeyValue(deviceId, keyId, options) → {string}
Получение значения открытого ключа. Не поддерживается для ключей RSA. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3options object Массив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования) Возвращает:
Открытый ключ (hex)
- importCertificate(deviceId, certificate, category) → {string}
Импорт сертификата на устройство. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certificate string Тело сертификата в формате BASE64 3category number Тип сертификата, задается константами: - CERT_CATEGORY_UNSPEC - категория сертификата не уточняется
- CERT_CATEGORY_USER - пользовательский сертификат. Может быть использован в операциях, требующих операцию подписи
- CERT_CATEGORY_CA - доверенный в рамках текущего устройства сертификат
- CERT_CATEGORY_OTHER - сертификат третьей стороны
Возвращает:
Идентификатор сертификата (hex)
- login(deviceId, pin)
Авторизация на устройстве
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2pin string PIN-код доступа к устройству - logout(deviceId)
Закрытие сессии
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства - parseCertificate(deviceId, certId) → {object}
Получение ассоциативного массива с разобранными полями из сертификата.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата, полученный в результате вызова enumerateCertificates Возвращает:
Ассоциативный массив объектов
- parseCertificateFromString(text) → {object}
Получение ассоциативного массива с разобранными полями из сертификата.
Параметры:
Name Type Attributes Default Description 1text string Тело сертификата в BASE64 Возвращает:
Ассоциативный массив объектов
- rawSign(deviceId, keyId, data, options) → {string}
Подпись на ключе. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- computeHash:bool (false) - производить хеширование переданных данных
- useHardwareHash:bool (false) - производить аппаратное хеширование данных, только если computeHash = true
- invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
- hashAlgorithm:enum - алгоритм хэширования (необходимо указывать для ключей RSA, даже если computeHash выставлен в false), варианты: GOST3411_94, MD5, SHA1, SHA256, SHA512.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3data string Подписываемый хеш (hex-строка) или текстовые данные 4options object Массив, содержащий параметры подписи - объекты вида {параметр:true/false} Возвращает:
Электронно-цифровая подпись (hex)
- removePin(deviceId)
Удаление закешированного PIN-кода из файла.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства - savePin(deviceId)
Сохранение PIN-кода в файл для автоматической аутентификации.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства - setKeyLabel(deviceId, keyId, label)
Установка метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2keyId string Идентификатор ключа 3label string Новая метка закрытого ключа - setLicence(deviceId, licenceId, licence)
Запись лицензии на токен
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2licenceId number Идентификатор лицензии (значения 1, 2) 3licence string 72 байта данных, представленные в hex-строке - sign(deviceId, certId, data, isBase64, options) → {string}
Вычисление цифровой подписи. Не поддерживается для ключей RSA. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- detached:bool (false) - генерировать отсоединенную подпись
- addUserCertificate:bool (false) - включить в подпись сертификат пользователя
- addSignTime:bool (false) - включить в подпись время подписи
- useHardwareHash:bool (false) - производить аппаратное хеширование данных
- invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2certId string Идентификатор сертификата 3data string Подписываемые данные (текстовая строка или base64-encoded бинарные данные) 4isBase64 boolean Флаг, данные передаются в кодировке base64 или нет 5options object Массив, содержащий параметры подписи - объекты вида {параметр:true/false} Возвращает:
Электронно-цифровая подпись (base64)
- verify(deviceId, cms, options) → {bool}
Проверка цифровой подписи. Аргумент options принимает параметры проверки подписи. Доступны следующие опции (в скобках указано значение по умолчанию):
- data:string (null) - подписанные данные (текстовые или base64-encoded), только в случае detached подписи;
- base64:bool (false) - указывает, закодированы ли данные, переданные в data, в base64;
- certificates:string[] (null) - набор сертификатов, на которых необходимо проверять подпись, при этом сертификаты, которые содержатся в cms, будут проигнорированы;
- CA:string[] (null) - список дополнительных корневых сертификатов для проверки сертификата, кроме них берутся сертификаты с устройства;
- CRL:string[] (null) - список отозванных сертификатов;
- useHardwareHash:bool (false) - производить хеширование на устройстве (игнорируется для алгоритмов отличных от ГОСТ Р 34.10-2001);
- verifyCertificate:bool (true) - проверить сертификат пользователя;
Параметры:
Name Type Attributes Default Description 1deviceId number Идентификатор устройства 2cms string Контейнер с цифровой подписью 3options object Массив, содержащий параметры проверки подписи - объекты вида {параметр:значение} Возвращает:
true - подпись верна / false - не верна