Для эксплуатации обработки на "клиенте" в ОС должна быть установлена клиентская программа 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
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия для Беларуси, 2.1, релизы 2.1.61.3