Class: CryptoPlugin

Navigation

Hiding private elements (toggle)
Showing extended elements (toggle)

Главный класс плагина. Реализует всю функциональность плагина. Интерфейсные функции плагина могут вызываться двумя способами: асинхронно и синхронно. Настоятельно рекомендуется использовать асинхронный интерфейс, поскольку при использовании синхронных вызовов происходит блокирование интерфейса браузера на время выполнения функции.

Асинхронный интерфейс.

Все функции принимают 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>

Резюме

Свойства

errorCodes :weak_ptr< ErrorCodesApi >
valid :boolean
version :string

Методы

authenticate(deviceId, certId, salt) → {string}
Аутентификация по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.
changePin(deviceId, oldPin, newPin, options)
Изменение PIN. Если переданып параметры oldPin и newPin, то будет изменен PIN пользователя. Если эти параметры не переданы, то будет изменен PIN2 (только на PINPad2)
cmsDecrypt(deviceId, keyId, cmsData, options) → {string}
Расшифрование данных в формате CMS. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования. Для выполнения этой функции требуется авторизоваться на устройстве.
cmsEncrypt(deviceId, certId, recipientCert, data, options) → {string}
Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):
  • base64:bool (false) - закодированы ли переданные данные в base64
  • useHardwareEncryption:bool (false) - производить шифрование на устройстве
Для выполнения этой функции требуется авторизоваться на устройстве.
createPkcs10(deviceId, keyId, subject, extensions, includeSubjSignTool) → {string}
Формирование самоподписанного PKCS#10 запроса Для выполнения этой функции требуется авторизоваться на устройстве.
deleteCertificate(deviceId, certId)
Удаление сертификата с устройства. Для выполнения этой функции требуется авторизоваться на устройстве.
deleteKeyPair(deviceId, keyId)
Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.
digest(deviceId, hashType, data, options) → {string}
Вычисления хеша. Аргумент options принимает параметры хеширования. Доступны следующие опции (в скобках указано значение по умолчанию):
  • useHardwareHash:bool (false) - производить аппаратное хеширование данных
enumerateCertificates(deviceId, category) → {string[]}
Получение массива с идентификаторами сертификатов.
enumerateDevices() → {number[]}
Получение идентификаторов доступных устройств
enumerateKeys(deviceId, marker) → {string[]}
Получение массива с идентификаторами секретных ключей в HEX. Для выполнения этой функции требуется авторизоваться на устройстве.
generateKeyPair(deviceId, params, 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, для каждого ее использования потребуется подтверждение на устройстве.
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}
Получение метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
getPublicKeyValue(deviceId, keyId, options) → {string}
Получение значения открытого ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
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
Для выполнения этой функции требуется авторизоваться на устройстве.
removePin(deviceId)
Удаление закешированного PIN-кода из файла.
savePin(deviceId)
Сохранение PIN-кода в файл для автоматической аутентификации.
setKeyLabel(deviceId, keyId, label)
Установка метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.
sign(deviceId, certId, data, isBase64, options) → {string}
Вычисление цифровой подписи. Аргумент 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) - производить хеширование на устройстве;
  • verifyCertificate:bool (true) - проверть сертификат пользователя;

Подробно

Свойства

errorCodes :weak_ptr< ErrorCodesApi >

Объект с константами ошибок

valid :boolean

Правильно созданный объект всегда возвращает true

version :string

Версия плагина в формате 1.2.3.4

Методы

authenticate(deviceId, certId, salt) → {string}

Аутентификация по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата
3
saltstringАутентификационные данные
Возвращает:

Строка для аутентификации в формате CMS

changePin(deviceId, oldPin, newPin, options)

Изменение PIN. Если переданып параметры oldPin и newPin, то будет изменен PIN пользователя. Если эти параметры не переданы, то будет изменен PIN2 (только на PINPad2)

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
oldPinstringСтарый PIN пользователя
3
newPinstringНовый PIN пользователя
4
optionsobjectМассив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования)
cmsDecrypt(deviceId, keyId, cmsData, options) → {string}

Расшифрование данных в формате CMS. Аргумент options принимает параметры расшифрования, пока зарезервирован для будущего использования. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа для расшифровыания
3
cmsDatastringCMS-сообщение, содержащие зашифрованные данные
4
optionsobjectМассив, содержащий параметры расшифрования - объекты вида {параметр:значение} (зарезервирован для будущего использования)
Возвращает:

Расшифрованные данные

cmsEncrypt(deviceId, certId, recipientCert, data, options) → {string}

Шифрование данных в формате CMS. Аргумент options принимает параметры шифрования. Доступны следующие опции (в скобках указано значение по умолчанию):

  • base64:bool (false) - закодированы ли переданные данные в base64
  • useHardwareEncryption:bool (false) - производить шифрование на устройстве
Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата, зарезервированно для будущего использования
3
recipientCertstringТело сертификата сервера
4
datastringЗашифровываемые данные (текстовая строка или base64-encoded бинарные данные)
5
optionsobjectМассив, содержащий параметры шифрования - объекты вида {параметр:значение}
Возвращает:

Зашифрованные данные в формате CMS

createPkcs10(deviceId, keyId, subject, extensions, includeSubjSignTool) → {string}

Формирование самоподписанного PKCS#10 запроса Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
3
subjectobjectМассив, содержащий объекты вида: {rdn: "commonName", value: "значение"}
4
extensionsobjectАссоциативный массив, содержащий массивы расширений: {keyUsage: ["digitalSignature",...], extKeyUsage: ["oid", "longName" ], certificatePolicies: ["OID", ...]}
5
includeSubjSignToolbooleanФлаг, включать или нет в запрос расширение SubjectSignTool
Возвращает:

PKCS#10 запрос

Пример:
 *        var subject = [
           {
               rdn:    "countryName",
               value:  "RU"
           }
           ,{
               rdn:    "stateOrProvinceName",
               value:  "moscow"
           }
           ,{
               rdn:    "localityName",
               value:  "locality"
           }
           ,{
               rdn:    "streetAddress",
               value:  "street"
           }
           ,{
               rdn:    "organizationName",
               value:  "Aktiv"
           }
           ,{
               rdn:    "organizationalUnitName",
               value:  "IT"
           }
           ,{
               rdn:    "title",
               value:  "должность"
           }
           ,{
               rdn:    "commonName",
               value:  "Фамилия Имя Очество"
           }
           ,{
               rdn:    "postalAddress",
               value:  "postal address"
           }
           ,{
               rdn:    "pseudonym",
               value:  "pseudonymus"
           }
           ,{
               rdn:    "surname",
               value:  "surname"
           }
           ,{
               rdn:    "givenName",
               value:  "given name"
           }
           ,{
               rdn:    "emailAddress",
               value:  "example@example.com"
           }
       ];
       var keyUsageVal = [
           "digitalSignature"
           ,"nonRepudiation"
           ,"keyEncipherment"
           ,"dataEncipherment"
           ,"keyAgreement"
           ,"keyCertSign"
           ,"cRLSign"
           ,"encipherOnly"
           ,"decipherOnly"
       ];
       var extKeyUsageVal = [
           "emailProtection"
           ,"clientAuth"
           ,"serverAuth"
           ,"codeSigning"
           ,"timeStamping"
           ,"msCodeInd"
           ,"msCodeCom"
           ,"msCTLSign"
           ,"1.3.6.1.5.5.7.3.9" // OSCP
           ,"1.2.643.2.2.34.6" // CryptoPro RA user
            // ,"anyExtendedKeyUsage"

       ];
       var certificatePolicies = [
           "1.2.643.100.113.1", // КС1
           "1.2.643.100.113.2", // КС2
           "1.2.643.100.113.3", // КС3
           "1.2.643.100.113.4", // КВ1
           "1.2.643.100.113.5", // КВ2
           "1.2.643.100.113.6"  // КА1
       ];
       var extensions = {
           "keyUsage":            keyUsageVal,
           "extKeyUsage":         extKeyUsageVal,
           "certificatePolicies": certificatePolicies
       };
       plugin.createPkcs10(deviceID, keyID, subject, extensions, includeSubjectSignToolExt,
               this.printResult, this.printError);
   }


 
deleteCertificate(deviceId, certId)

Удаление сертификата с устройства. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата, полученный в результате вызова enumerateCertificates
deleteKeyPair(deviceId, keyId)

Удаление ключевой пары Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор секретного ключа из ключевой пары
digest(deviceId, hashType, data, options) → {string}

Вычисления хеша. Аргумент options принимает параметры хеширования. Доступны следующие опции (в скобках указано значение по умолчанию):

  • useHardwareHash:bool (false) - производить аппаратное хеширование данных

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
hashTypenumberИдентификатор алгоритма хеширования
3
datastringХешируемые данные
4
optionsobjectМассив, содержащий параметры хеширования - объекты вида {параметр:true/false}
Возвращает:

Хеш (hex)

enumerateCertificates(deviceId, category) → {string[]}

Получение массива с идентификаторами сертификатов.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
categorynumberТип сертификата: "user", "other" или "CA"
Возвращает:

Массив строк с идентификаторами сертификатов

enumerateDevices() → {number[]}

Получение идентификаторов доступных устройств

Возвращает:

Список идентификаторов подключенных устройств

enumerateKeys(deviceId, marker) → {string[]}

Получение массива с идентификаторами секретных ключей в HEX.

Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
markerstringИдентификатор группы ключей, "" - все ключи
Возвращает:

Массив строк с идентификаторами закрытых ключей (hex)

generateKeyPair(deviceId, params, 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, для каждого ее использования потребуется подтверждение на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
paramsstringПараметры ключа
3
markerstringИдентификатор группы ключей
4
optionsobjectДополнительные свойтва ключевой пары в виде ассоциативного массива, см. подробное описание функции
Возвращает:

ID ключа (hex)

getCertificate(deviceId, certId) → {string}

Получение тела сертификата в PEM.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата
Возвращает:

Описатель сертификата в виде объекта

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
1
deviceIdnumberИдентификатор устройства
2
optionnumberТип запрашиваемой информации (тип устройства, метка, серийный номер или наличие лицензии)
Возвращает:

Текстовая строка для метки и серийного номера, число для типа устройства или 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
В случае передачи в качестве параметра TOKEN_INFO_FEATURES возвращается ассоциативный массив, определяющий возможности устройства, со следующими полями:
  • journal:bool - поддержка журанала операций
  • pin2:bool - поддержка ввода PIN2 на устройстве
  • visualization:bool - поддержка генерации ключей, требующих визуализации данных на устройстве

getDeviceLabel(deviceId) → {string}

Получение метки устройства

Deprecated:
Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
Возвращает:

Метка устройства

getDeviceModel(deviceId) → {string}

Получение строки с моделью устройства, понятной для человека. Внимание: возвращаемая строка может меняться в будущем.

Deprecated:
Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
Возвращает:

Тип устройства в виде человеко-понятной строки

getDeviceType(deviceId) → {Promise< Pkcs11DeviceBase::DeviceType >}

Получение константы, обозначающей тип устройства.

Deprecated:
Внимание: начиная с версии 0.15.0.0, функция не поддерживается и может быть удалена в последующих версиях плагина. Используйте метод getDeviceInfo.
Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
Возвращает:

deviceType Тип устройства в виде числовой константы

getJournal(deviceId, keyId, options) → {object}

Получение журнала операций на токене и его журнала, сформированной на соответствующем ключе. Если с момента подключения токена никаких операций не производилось будет возвращен null

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
3
optionsobjectМассив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования)
Возвращает:

Ассоциативный массив с полями journal и signature

getKeyByCertificate(deviceId, certId) → {string}

Получение идентификатора ключевой пары по сертификату. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата
Возвращает:

Идентификатор ключа (hex)

getKeyLabel(deviceId, keyId) → {string}

Получение метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
Возвращает:

Метка закрытого ключа

getPublicKeyValue(deviceId, keyId, options) → {string}

Получение значения открытого ключа. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
3
optionsobjectМассив, содержащий дополнительные параметры - объекты вида {параметр:значение} (зарезервирован для будущего использования)
Возвращает:

Открытый ключ (hex)

importCertificate(deviceId, certificate, category) → {string}

Импорт сертификата на устройство. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certificatestringТело сертификата в формате BASE64
3
categorynumberТип сертификата: "user", "other" или "CA"
Возвращает:

Идентификатор сертификата (hex)

login(deviceId, pin)

Авторизация на устройстве

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
pinstringPIN-код доступа к устройству
logout(deviceId)

Закрытие сессии

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
parseCertificate(deviceId, certId) → {object}

Получение ассоциативного массива с разобранными полями из сертификата.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата, полученный в результате вызова enumerateCertificates
Возвращает:

Ассоциативный массив объектов

parseCertificateFromString(text) → {object}

Получение ассоциативного массива с разобранными полями из сертификата.

Параметры:
Name Type Attributes Default Description
1
textstringТело сертификата в BASE64
Возвращает:

Ассоциативный массив объектов

rawSign(deviceId, keyId, data, options) → {string}

Подпись на ключе. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):

  • computeHash:bool (false) - производить хеширование переданных данных
  • useHardwareHash:bool (false) - производить аппаратное хеширование данных, только если computeHash = true
  • invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
3
datastringПодписываемый хеш (hex-строка) или текстовые данные
4
optionsobjectМассив, содержащий параметры подписи - объекты вида {параметр:true/false}
Возвращает:

Электронно-цифровая подпись (hex)

removePin(deviceId)

Удаление закешированного PIN-кода из файла.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
savePin(deviceId)

Сохранение PIN-кода в файл для автоматической аутентификации.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
setKeyLabel(deviceId, keyId, label)

Установка метки секретного ключа. Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
keyIdstringИдентификатор ключа
3
labelstringНовая метка закрытого ключа
sign(deviceId, certId, data, isBase64, options) → {string}

Вычисление цифровой подписи. Аргумент options принимает параметры подписи. Доступны следующие опции (в скобках указано значение по умолчанию):

  • detached:bool (false) - генерировать отсоединенную подпись
  • addUserCertificate:bool (false) - включить в подпись сертификат пользователя
  • addSignTime:bool (false) - включить в подпись время подписи
  • useHardwareHash:bool (false) - производить аппаратное хеширование данных
  • invisible:bool (false) - производить подпись данных в режиме без отображения на PINPad 2
Для выполнения этой функции требуется авторизоваться на устройстве.

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
certIdstringИдентификатор сертификата
3
datastringПодписываемые данные (текстовая строка или base64-encoded бинарные данные)
4
isBase64booleanФлаг, данные передаются в кодировке base64 или нет
5
optionsobjectМассив, содержащий параметры подписи - объекты вида {параметр: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) - производить хеширование на устройстве;
  • verifyCertificate:bool (true) - проверть сертификат пользователя;

Параметры:
Name Type Attributes Default Description
1
deviceIdnumberИдентификатор устройства
2
cmsstringКонтейнер с цифровой подписью
3
optionsobjectМассив, содержащий параметры проверки подписи - объекты вида {параметр:значение}
Возвращает:

true - подпись верна / false - не верна