RusCryptoJS aleksandr.ru


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

Function reference

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

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

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

Скачать

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

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

ES Module

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

Function reference

init () : Promise<Object>

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

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

{
    version: 'версия плагина',
    serialNumber: 'серийный номер токена',
    flags: 'установленные флаги на токене',
    label: 'метка токена',
    type: 'тип токена'
}

bind ( [ userPin : String ] ) : Promise<Void>

Авторизация на токене с пин-кодом пользователя.

Параметр Описание
userPin Пин-код пользователя, если отсутствует, будет запрошен через UI плагина.
unbind () : Promise<Void>

Отменить предъявление пин-кода. Необходимо вызывать при завершении сеанса работы.

clean () : Promise<Number>

Очистка токена (удаление всех контейнеров).

Возвращает количество удаленных контейнеров.

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.description Описание ключевой пары, используется dn.CN если отсутствует
options.algorithm Алгоритм GOST-2012-256 (по-умолчанию) или GOST-2001.

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

{
    csr: 'base64 запрос на сертификат',
    keyPairId: 'идентификатор созданной ключевой пары' 
}

generateCSR ( dn : DN, description : String [, ekuOids : Array [, algorithm : String ]] ) : Promise<Object>

До версии 2.6

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

Параметр Описание
dn Объект DN с полями запроса на сертификат (см. пример в коде).
description Описание ключевой пары.
ekuOids Массив расширений использования ключа, по умолчанию:
'1.3.6.1.5.5.7.3.2', // Аутентификация клиента
'1.3.6.1.5.5.7.3.4' // Защищенная электронная почта
algorithm Алгоритм GOST-2012-256 (по-умолчанию) или GOST-2001.

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

{
    csr: 'base64 запрос на сертификат',
    keyPairId: 'идентификатор созданной ключевой пары'
}

writeCertificate ( certificate : String, keyPairId : Number, ) : Promise<Number>

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

Параметр Описание
certificate Сертификат, закодированный в base64.
keyPairId Иидентификатор ключевой пары.

Возвращает идентификатор образованного контейнера.

certificateInfo ( containerId : Number [, options : Object ] ) : Promise<Object>

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

Параметр Описание
containerId Идентификатор контейнера (сертификата).
options Необязательные параметры, не используется

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

'Название:              ' + 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: 'идентификатор контейнера',
    name: 'subject или описание контейнера',
    subject: Объект DN,
    validFrom: Дата,
    validTo: Дата
}, ...]

До версии 2.8

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

[{
        id: 'идентификатор контейнера', 
        name: 'subject или описание контейнера'
    }, ...]

readCertificate ( containerId : Number ) : Promise<String>

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

Параметр Описание
containerId Идентификатор контейнера сертификата.

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

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

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

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

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

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

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

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

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

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

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

Параметр Описание
dataBase64 Данные для шифрования.
containerId Идентификатор контейнера (сертификата) получателя.

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

decryptData ( dataBase64 : String, containerId : String ) : Promise<String>

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

Параметр Описание
dataBase64 CMS-сообщение, содержащие зашифрованные данные.
containerId Идентификатор контейнера (ключа).

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

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

 

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

 

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

 
 

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