...
3. С помощью функции deleteKeyPair ключевая пара может быть удалена с токена.
Создание и проверка электронной подписи
1. Для создание подписи используйте метод используется метод sign:
Code Block | ||||
---|---|---|---|---|
| ||||
// Подпись .then(function(certHandle, textToSign) { var options = { rsaHashAlgorithm: plugin.HASH_TYPE_SHA256 }; return plugin.sign(rutokenHandle, certHandle, textToSign, plugin.DATA_FORMAT_PLAIN, options); ) |
Последние аргумент определяет дополнительные – опции функции. Подробный Их подробный список можно найти в документации, некоторые из них:
- detached:bool (false) - генерировать отсоединенную подпись
- addUserCertificate:bool (true) - включить в подпись сертификат пользователя
- addSignTime:bool (false) - включить в подпись время подписи
- useHardwareHash:bool (false) - производить аппаратное хеширование данных на ключах ГОСТ
- rsaHashAlgorithm:enum - алгоритм хеширования при использовании ключей RSA, варианты: HASH_TYPE_MD5, HASH_TYPE_SHA1, HASH_TYPE_SHA256, HASH_TYPE_SHA512.
...
Предпоследний аргумент определяет формат подписываемых данных:
- DATA_FORMAT_PLAIN. Используется для подписи незакодированных данных.
- DATA_FORMAT_BASE64 Используется для подписи данных в base64 формате.
- DATA_FORMAT_HASH. Используется для подписи готового хеша. Для корректной работы необходимо выставить опцию detached в true.
2. Проверка подписи Для проверки подписи используется метод verify:
Code Block | ||||
---|---|---|---|---|
| ||||
// Проверка подписи .then(function(certPem, CA, cms) { var options = {certificates: [certPem], CA: CA}; return plugin.verify(rutokenHandle, cms, options); }) |
Последние аргумент определяет дополнительные – опции функции. Подробный Их подробный список можно найти в документации, некоторые из них:
- data:string (null) - подписанные данные (текстовые или base64-encoded), только в случае detached подписи;
- base64:bool (false) - указывает, закодированы ли данные, переданные в data, в base64;
- certificates:string[] (null) - набор сертификатов в PEM формате, на которых необходимо проверять подпись, при этом сертификаты, которые содержатся в cms, будут проигнорированы;
- CA:string[] (null) - список дополнительных корневых сертификатов в PEM формате для проверки сертификата, кроме них берутся сертификаты с устройства;
- CRL:string[] (null) - список отозванных сертификатов в PEM формате;
- useHardwareHash:bool (false) - производить хеширование на устройстве (игнорируется для алгоритмов отличных от ГОСТ Р 34.10-2001);
- verifyCertificateverifyCertificate:bool (true) - проверить сертификат пользователя;
...