RusCryptoJS aleksandr.ru


Внимание! Данный функционал является устаревшим и не рекомендуется к использованию,
вместо него используйте более современный JaCarta-2 ГОСТ

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

Function reference

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

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

Скачать

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

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

ES Module

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

Function reference

init () : Promise<Object>

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

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

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

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

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

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

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

clean () : Promise<Number>

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

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

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

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

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

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

{
    csr: 'base64 запрос на сертификат',
    containerId: 'идентификатор созданного контейнера' 
}

writeCertificate ( certificate : String, containerId : Number, ) : Promise<Void>

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

Параметр Описание
certificate Сертификат, закодированный в base64.
containerId Иидентификатор контейнера.
certificateInfo ( containerId : Number ) : Promise<Object>

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

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

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

'Название:              ' + 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>

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

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

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

readCertificate ( containerId : Number ) : Promise<String>

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

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

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

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

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

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

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

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

 

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

 

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