n2o-ecp-plugin
v7.20.49
Published
Плагин упрощающий работу с Крипто-Про в N2O-7
Downloads
239
Keywords
Readme
n2o-ecp-plugin
Описание
Плагин упрощающий работу с КриптоПРО в N2O проектах
Возможности
- простое подключение в любом месте кастомизируемого проекта N2O
- создание модального окна с выбором сертификата и блоком информации по нему
- если найден только один сертификат, которым можно подписать, то автоматически применяется он
- возможность указывать тип HASH подписи (открепленная, присоединенная)
- отправка запроса на получение документа для подписи и его сохранение
- гибкая настройка плагина
Установка
В конфиге кастомизируемого проекта N2O необходимо:
- Импортировать button
import { EcpButton } from 'n2o-ecp-plugin';
- Использовать в качестве кастомного действия
{ buttons: { EcpButton }}
EcpButton может принимать следующие параметры:
buttonLabel
- текст кнопки вызова открытия модального окна с сертификатамиtitle
- заголовок модального окнаsignButtonLabel
- текст кнопки подтверждения подписиcancelButtonLabel
- текст кнопки отменыfileForSign
- строка для подписиsignType
- вид подписи (HASH, XML)typeOfSign
- тип HASH подписи, гдеtrue
- открепленная (по умолчанию),false
- присоединеннаяfileRequestService
- настройка получения документа с сервераurl
- путь, на который будет отправлен запросtype
- метод запросаdata
- объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса отправиться в query, для остальных в bodydocumentKey
- ключ в котором вернется документ из body, по умолчанию 'hash'
fileSaveService
- настройка сохранения подписиurl
- путь, на который будет отправлен запросtype
- метод запросаdata
- объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса отправиться в query, для остальных в body
successSign
- callback функция получения подписиerrorSign
- callback функция ошибки
Передача алгоритма
В режиме fileRequestService плагин отправляет алгоритм сертификата вместе с data. Ключ - certificate
Объект результата подписи
{
"Document": "документ",
"SignedDocument": "подписаный документ",
"Name": "ФИО из сертификата",
"SignDate": "дату и время подписи",
"SerialNumber": "серийный номер сертификата",
"ValidFrom": "даты действия ('с'' в формате dd.mm.yyyy hh24:mm:ss)",
"ValidTo": "даты действия ('по'' в формате dd.mm.yyyy hh24:mm:ss)",
"Issuer" : "владелец сертификата",
"Data": "response fileRequestService"
}
EcpApi
Кроме кастомного действия N2O, в пакете также присутствует api для работы с КриптоПРО.
Использование
- Импортируем api
import { EcpApi } from 'n2o-ecp-plugin';
- Используем
const certificates = await EcpApi.getCertificates();
Методы
Все методы возвращают Promise.
EcpApi.getCertificates()
Метод получения сертификатов.
Пример данных:
[
{
algorithm: "ГОСТ Р 34.10-2001",
issuerName: "CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, [email protected]",
label: "Test Certificate (до 20.02.2020 17:02:34)",
name: "Test Certificate",
oid: "1.2.643.2.2.19",
serialNumber: "12003D490CF6FB17B679DB04B90001003D490C",
subjectName: "CN=Test Certificate",
thumbprint: "C478ACE69DD1DFEEDD6695CC8ED7BE3A5FBED89C",
validFrom: "20.11.2019 16:52:34",
validTo: "20.02.2020 17:02:34",
}
]
EcpApi.getCertificate(hash)
Метод получения сертификата по хешу.
Аргументы:
- hash - хеш сертификата
EcpApi.sign({ signType, certificate, data, typeOfSign, fileRequestService, fileSaveService })
Метод подписи.
Агрументы:
- signType - вид подписи вид подписи (HASH, XML)
- certificate - сертификат подписи
- data - данные на подпись, также может быть массивом
- typeOfSign - тип HASH подписи, где
true
- открепленная (по умолчанию),false
- присоединенная - fileRequestService - настройка получения документа с сервера
- url - путь, на который будет отправлен запрос
- type - метод запроса
- data - объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса отправиться в query, для остальных в body
- documentKey - ключ в котором вернется документ из body, по умолчанию 'hash'
- fileSaveService - настройка сохранения подписи
- url - путь, на который будет отправлен запрос
- type - метод запроса
- data - объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса