Создание подписи ID-Картой (или AvPass) через КП NTClientSoftware (РБ)
Обработка для подписи и проверки файлов отсоединённой ЭЦП (РБ) через клиентскую программу NTClientSoftware (https://nces.by/service/po/).
Основной целью была реализация возможности подписи PDF-файлов отсоединённой ЭЦП с помощью ID-карты. Но также можно вырабатывать подпись с использованием ключей AvPass и AvBign (для AvPass и AvSign в операционной системе требуется наличие модулей AvPKI (https://avest.by/crypto/csp.htm)).
- Описание
- Подробнее
Описание
Для эксплуатации обработки на "клиенте" в ОС должна быть установлена клиентская программа NTClientSoftware.
NTClientSoftware -предназначена для организации взаимодействия между пользователем, его криптографическим токеном аутентификации (КТА) или средством электронной цифровой подписи (ЭЦП), комплексом программных средств прикладной системы BY.БФИД.10246-01 (КПСИС) и Единой системой идентификации физических и юридических лиц BY.БФИД.10243-01 (ЕС ИФЮЛ).
1. Выработка подписи — запустить обработку, выбрать файл (документ) в поле "Путь к файлу" для которого требуется создать файл подписи и выполнить команду "Подписать файл".

Обработка обратится КП NTClientSoftware для выработки подписи, которая запросит пароль к ID-карте подключенной к считывателю.
После успешного ввода пароля (PIN1 и PIN2) WEB-сервису NTClientSoftware вернет файл подписи. Подпись сохраняется в ту же директорию в которой находится подписываемый документ.
2. Проверка подписи — выполняется на закладке "Проверить".

Одновременно происходит 2-мя способами:
1) Посредством платформы (МенеджерКриптографии) (в ОС обязательное присутствие Avest CSP)
Проверяется ХЕШ и определяется дата подписи.

2) Через NTClientSoftware.
На момент проверки электронная подпись должна находиться в периоде своей действительности.

Тестировалось в следующей связке:
Платформа 8.3.22.2411
+Пустая конфигурация
+ID-карта РБ,
+Смарт-кардридер X01 USB (5$ Ali)
+NTClientSoftware v 1.1.0
+Криптопровайдер AvCSP AvCSPBel6.3.0.813
———————————————————————-
Пример функции выработки открепительной подписи:
&НаКлиенте
Асинх Функция Подписать(ПутьКФайлу)
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
//API в 'Руководство оператора КП.doc' для NTClientSoftware
//4.11. Выработка ЭЦП через идентификационную карту (КТА) и создание CMS-структуры: http://127.0.0.1:8084/sign_kta_cms.
Тело = Новый Структура("data,isDetached",Base64Строка(ДвоичныеДанные), XMLСтрока(Истина)); //isDetached = ОтсоединеннаяПодпись
HTTPСоединение = Новый HTTPСоединение("127.0.0.1",8084); //
HTTPЗапрос = Новый HTTPЗапрос("/sign_kta_cms");
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
//`89; ЗаписьJSON
ПотокВПамяти = Новый ПотокВПамяти();
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ОткрытьПоток(ПотокВПамяти);
ЗаписатьJSON(ЗаписьJSON,Тело);
ЗаписьJSON.Закрыть();
ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанные);
HTTPОтвет = Ждать HTTPСоединение.ОтправитьДляОбработкиАсинх(HTTPЗапрос);
//`89; ЧтениеJSON
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(HTTPОтвет.ПолучитьТелоКакСтроку());
ОтветСервера = ПрочитатьJSON(Чтение);
Чтение.Закрыть();
Подпись = ОтветСервера.sig;
Если НЕ ЗначениеЗаполнено(Подпись) Тогда
ВызватьИсключение "Ошибка:"+ОтветСервера.error // Описание кодов ошибок в 'Руководство оператора КП.doc' для NTClientSoftware
КонецЕсли;
Возврат Подпись; // ДвоичныеДанные
КонецФункции
Ссылки:
NTClientSoftware — https://nces.by/service/po/
AvPKI — https://avest.by/crypto/csp.htm

