Плагин упрощающий работу с Крипто-Про в N2O-7
npm install n2o-ecp-pluginimport { EcpButton } from 'n2o-ecp-plugin';
2. Использовать в качестве кастомного действия { buttons: { EcpButton }}EcpButton может принимать следующие параметры:
1.
buttonLabel - текст кнопки вызова открытия модального окна с сертификатами
2. title - заголовок модального окна
3. signButtonLabel - текст кнопки подтверждения подписи
4. cancelButtonLabel - текст кнопки отмены
5. fileForSign - строка для подписи
6. signType - вид подписи (HASH, XML)
7. typeOfSign - тип HASH подписи, где true - открепленная (по умолчанию), false - присоединенная
8. fileRequestService - настройка получения документа с сервера
* url - путь, на который будет отправлен запрос
* type - метод запроса
* data - объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса отправиться в query, для остальных в body
* documentKey - ключ в котором вернется документ из body, по умолчанию 'hash'
9. fileSaveService - настройка сохранения подписи
* url - путь, на который будет отправлен запрос
* type - метод запроса
* data - объект или функция, результат которой отправиться вместе с запросом на сервер, для GET запроса отправиться в query, для остальных в body
10. successSign - callback функция получения подписи
11. errorSign - callback функция ошибки$3
В режиме fileRequestService плагин отправляет алгоритм сертификата вместе с data. Ключ - certificate$3
{
"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 для работы с КриптоПРО. $3
1. Импортируем api import { EcpApi } from 'n2o-ecp-plugin';
2. Используем const certificates = await EcpApi.getCertificates();$3
Все методы возвращают Promise.
EcpApi.getCertificates()
Метод получения сертификатов.
Пример данных: [
{
algorithm: "ГОСТ Р 34.10-2001",
issuerName: "CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru",
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` - присоединенная