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 [, pin : String [, ekuOids : Array [, providerType : Number ]]] ) : Promise<Object>

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

Параметр Описание
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 ) : Promise<Object>

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

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

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

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

listCertificates () : Promise<Array>

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

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

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

readCertificate ( certThumbprint : String ) : Promise<String>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

verifySign ( dataBase64 : String, signBase64 : String ) : Promise<Boolean>

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

Параметр Описание
dataBase64 Данные для подписи.
signBase64 Существующая подпись.

Возвращает истину 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, если отсутствует.

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

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

 

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

 

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

 

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