RusCryptoJS aleksandr.ru


Использование

Function reference

Демо: Выпуск сертификата

Демо: Электронная подпись

Демо: Шифрование данных

Скачать

Использование

<script src="ruscrypto.min.js"></script>
<script>
    var cryptopro = new window.RusCryptoJS.CryptoPro;
    cryptopro.init().then(function(info) {
        console.log('Initialized', info);
    }
</script>

ES Module

import { CryptoPro } from 'ruscryptojs';
const cryptopro = new CryptoPro;
cryptopro.init().then(function(info) {
    console.log('Initialized', info);
}

Function reference

init () : Promise<Object>

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

Возвращает объект с полями:

{
    version: 'версия плагина'
}

bind ( userPin : Void ) : Promise<Boolean>

Включает кеширование ПИН-кодов в процессе подписания, чтобы не тробовать от пользователя повторного ввода.

Параметр Описание
userPin Не используется (существует для совместимости).

Возвращает новое состояние (true).

unbind () : Promise<Boolean>

Отключает кеширование ПИН-кодов в процессе подписания.

Возвращает новое состояние (false).

generateCSR ( dn : DN [, ekuOids : Array [, options : Object ]] ) : Promise<Object>

Начиная с версии 2.6

Создание запроса на сертификат.

Параметр Описание
dn Объект DN с полями запроса на сертификат (см. пример в коде).
ekuOids Массив расширений использования ключа, по умолчанию:
'1.3.6.1.5.5.7.3.2', // Аутентификация клиента
'1.3.6.1.5.5.7.3.4' // Защищенная электронная почта
options Необязательные параметры
options.pin Пин-код создаваемого контейнера закрытого ключа, если отсутствует, будет запрошен через GUI.
Задание пин не поддерживается в синхронном режиме (IE).
options.providerType По умолчанию 80 (ГОСТ Р 34.10-2012) или 75 (ГОСТ Р 34.10-2001)

Возвращает объект с полями

{
    csr: 'base64 запрос на сертификат' 
}

generateCSR ( dn : DN [, pin : String [, ekuOids : Array [, providerType : Number ]]] ) : Promise<Object>

До версии 2.6

Создание запроса на сертификат.

Параметр Описание
dn Объект DN с полями запроса на сертификат (см. пример в коде).
pin Пин-код создаваемого контейнера закрытого ключа, если отсутствует, будет запрошен через GUI.
Задание пин не поддерживается в синхронном режиме (IE).
ekuOids Массив расширений использования ключа, по умолчанию:
'1.3.6.1.5.5.7.3.2', // Аутентификация клиента
'1.3.6.1.5.5.7.3.4' // Защищенная электронная почта
providerType По умолчанию 80 (ГОСТ Р 34.10-2012) или 75 (ГОСТ Р 34.10-2001)

Возвращает объект с полями

{
    csr: 'base64 запрос на сертификат'
}

writeCertificate ( certBase64 : String ) : Promise<String>

Запись сертификата (полученного от УЦ).

Параметр Описание
certBase64 Сертификат, закодированный в base64.

Возвращает отпечаток (thumbprint) установленного сертификата.

certificateInfo ( certThumbprint : String [, options : Object ] ) : Promise<Object>

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

Параметр Описание
certThumbprint Отпечаток сертификата.
options Необязательные параметры, доступны начиная с версии 2.7
options.checkValid Флаг проверки валидности сертификата через СКЗИ, а не сроку действия

Возвращает объект с полями и строковым представлением:

'Название:              ' + this.Name +
'Издатель:              ' + this.IssuerName +
'Субъект:               ' + this.SubjectName +
'Версия:                ' + this.Version +
'Серийный №:            ' + this.SerialNumber +
'Отпечаток SHA1:        ' + this.Thumbprint +
'Не дествителен до:     ' + this.ValidFromDate +
'Не действителен после: ' + this.ValidToDate +
'Приватный ключ:        ' + (this.HasPrivateKey ? 'Есть' : 'Нет') +
'Валидный:              ' + (this.IsValid ? 'Да' : 'Нет')
Дополнительно содержит поля Subject и Issuer с представлением соответствующих полей в виде объектов DN, где каждый RDN представлен как свойство и его значение.

listCertificates () : Promise<Array>

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

Начиная с версии 2.8

Возвращает массив объектов с полями:

[{
    id: 'thumbprint',
    name: 'subject',
    subject: Объект DN,
    validFrom: Дата,
    validTo: Дата
}, ...]

До версии 2.8

Возвращает массив объектов с полями:

[{
    id: 'thumbprint', 
    name: 'subject'
}, ...]

readCertificate ( certThumbprint : String ) : Promise<String>

Чтение (экспорт) сертификата.

Параметр Описание
certThumbprint Отпечаток сертификата.

Возвращает base64 закодированное тело сертификата.

signData ( dataBase64 : String, certThumbprint : String [, options : Object] ) : Promise<String>

Начиная с версии 2.4

Подпись данных отсоединенная или присоединенная.

Параметр Описание
dataBase64 Данные для подписи.
certThumbprint Отпечаток сертификата.
options Для обратной совместимости можно передать строку, содержащую пин-код вместо объекта.
options.pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.
options.attached Признак присоединенной подписи (по-умолчанию false).

Возвращает base64 закодированную подпись.

signData ( dataBase64 : String, certThumbprint : String [, pin : String] ) : Promise<String>

До версии 2.4

Подпись данных (отсоединенная).

Параметр Описание
dataBase64 Данные для подписи.
certThumbprint Отпечаток сертификата.
pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.

Возвращает base64 закодированную подпись.

signData2 ( dataBase64 : String, certThumbprint : String, certThumbprint2 : String, options : Object ) : Promise<String>

Начиная с версии 2.4 нет обратной совместимости!

Совместная подпись данных (двумя сертификатами).

Параметр Описание
dataBase64 Данные для подписи.
certThumbprint Отпечаток сертификата.
certThumbprint2 Отпечаток сертификата.
options Объект с параметрами:
options.pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.
options.pin2 Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.
options.attached Признак присоединенной подписи (по-умолчанию false).

Возвращает base64 закодированную подпись.

signData2 ( dataBase64 : String, certThumbprint : String, pin : String, certThumbprint2 : String, pin2 : String ) : Promise<String>

До версии 2.4

Совместная подпись данных (двумя сертификатами).

Параметр Описание
dataBase64 Данные для подписи.
certThumbprint Отпечаток сертификата.
pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.
certThumbprint2 Отпечаток сертификата.
pin2 Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.

Возвращает base64 закодированную подпись.

addSign ( dataBase64 : String, signBase64 : String, certThumbprint : String [, options : Object] ) : Promise<String>

Начиная с версии 2.4 нет обратной совместимости!

Добавление подписи к существующей.

Параметр Описание
dataBase64 Данные для подписи, игнорируется если прикрепленная подпись.
signBase64 Существующая подпись.
certThumbprint Отпечаток сертификата.
options Объект с параметрами:
options.pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.
options.attached Признак присоединенной подписи (по-умолчанию false).

Возвращает base64 закодированную подпись.

addSign ( dataBase64 : String, signBase64 : String, certThumbprint : String [, pin : String] ) : Promise<String>

До версии 2.4

Добавление подписи к существующей.

Параметр Описание
dataBase64 Данные для подписи.
signBase64 Существующая подпись.
certThumbprint Отпечаток сертификата.
pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.

Возвращает base64 закодированную подпись.

verifySign ( dataBase64 : String, signBase64 : String [, options : Object] ) : Promise<Boolean>

Проверка подписи.

Параметр Описание
dataBase64 Данные для подписи.
signBase64 Существующая подпись.
options Доступен начиная с версии 2.4
options.attached Признак присоединенной подписи (по-умолчанию false).

Возвращает истину true или выбрасывает ошибку в случае неуспешной проверки.

encryptData ( dataBase64 : String, certThumbprint : String ) : Promise<String>

Шифрование данных в формате CMS.

Параметр Описание
dataBase64 Данные для шифрования.
certThumbprint Отпечаток сертификата.

Возвращает зашифрованные данные в формате CMS.

decryptData ( dataBase64 : String, certThumbprint : String [, pin : String] ) : Promise<String>

Расшифрование данных в формате CMS.

Параметр Описание
dataBase64 CMS-сообщение, содержащие зашифрованные данные.
certThumbprint Отпечаток сертификата.
pin Пин-код контейнера закрытого ключа, будет запрошен через GUI, если отсутствует.

Возвращает расшифрованные данные.

Выпуск сертификата

 

Например, тестовый УЦ Крипто-ПРО.

 

Электронная подпись

 

Шифрование данных