RusCryptoJS aleksandr.ru


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

Function reference

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

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

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

Скачать

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

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

ES Module

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

Function reference

init () : Promise<Object>

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

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

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

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

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

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

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

clean () : Promise<Number>

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

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

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

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

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

Параметр Описание
dn Объект DN с полями запроса на сертификат (см. пример в коде).
extKeyUsage Массив расширений использования ключа, по умолчанию:
'clientAuth', // Аутентификация клиента OID 1.3.6.1.5.5.7.3.2
'emailProtection' // Защищенная электронная почта OID 1.3.6.1.5.5.7.3.4
options Необязательные параметры
options.marker Идентификатор группы ключей.
options.algorithm Алгоритм PUBLIC_KEY_ALGORITHM_GOST3410_2001, PUBLIC_KEY_ALGORITHM_GOST3410_2012_256 (по-умолчанию), PUBLIC_KEY_ALGORITHM_GOST3410_2012_512.

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

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

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

До версии 2.6

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

Параметр Описание
dn Объект DN с полями запроса на сертификат (см. пример в коде).
marker Идентификатор группы ключей.
ekuOids Массив расширений использования ключа, по умолчанию:
'clientAuth', // Аутентификация клиента OID 1.3.6.1.5.5.7.3.2
'emailProtection' // Защищенная электронная почта OID 1.3.6.1.5.5.7.3.4
algorithm Алгоритм PUBLIC_KEY_ALGORITHM_GOST3410_2001, PUBLIC_KEY_ALGORITHM_GOST3410_2012_256 (по-умолчанию), PUBLIC_KEY_ALGORITHM_GOST3410_2012_512.

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

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

writeCertificate ( certificate : String ) : Promise<Void>

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

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

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

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

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

'Название:              ' + this.Name +
'Издатель:              ' + this.IssuerName +
'Субъект:               ' + this.SubjectName +
'Версия:                ' + this.Version +
'Алгоритм:              ' + this.Algorithm + // PublicKey Algorithm
'Серийный №:            ' + 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 ( certId : String ) : Promise<String>

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

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

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

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

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

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

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

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

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

Параметр Описание
dataBase64 Данные для подписи, игнорируется если прикрепленная подпись.
signBase64 Существующая подпись.
certId Идентификатор сертификата.
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, certId : String ) : Promise<String>

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

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

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

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

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

Параметр Описание
dataBase64 CMS-сообщение, содержащие зашифрованные данные.
certId Идентификатор сертификата.

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

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

 

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

 

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

 

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