Добрый день. Можете расписать процесс подписание какого-нибудь домумента.
Прочитать сертификат и приватный ключ в сертификате RSA256_xxx.p12 получилось.
Теперь дальше какой процесс, как нужно и чем подписывать файл?
Добрый день. Можете расписать процесс подписание какого-нибудь домумента.
Прочитать сертификат и приватный ключ в сертификате RSA256_xxx.p12 получилось.
Теперь дальше какой процесс, как нужно и чем подписывать файл?
Добрый вечер,
Если с точки зрения разработчика, то Вам следует использовать NCALayer, документация по нему в SDK НУЦ, инструкция как его получить тут: https://pki.gov.kz/developers/ Так же можно воспользоваться интерактивной документацией KAZTOKEN mobile https://kaztoken.kz/mobile-docs/, так как он повторяет API NCALayer.
Если с точки зрения пользователя, то вот два очень простых варианта, которые позволяют подписывать любые файлы:
Добрый день,
Спасибо вас за ответы. Наверное Я не правильно задал вопрос. Я хотел узнать, как подписывать документ с ЭЦП? Если эта система построена не на Windows. А ОС Линукс. И нет графического интерфейса.
Второй вопрос, сам сертификат подписи состоит из двух частей: сертификат и приватный ключ? Эти данные Я смог прочитать. А как дальше? Как мне подписывать?
Добрый день!
Подскажите, какой сценарий ближе вам:
В 1) случае необходимо использовать только NCALayer. Во 2) - есть несколько вариантов: NCALayer, php-библиотека (kalkancrypt.so), с-библиотека (libkalkancryptwr-64.so).
Для каждой из перечисленных в SDK есть пример реализации.
Опишу кратко подпись документа с помощью php-библиотеки:
KalkanCrypt_Init(); //Инициализация библиотеки
KalkanCrypt_LoadKeyStore($storage, $pass,$path,""); // Подгрузка в память ключа
$flags_sign = $KC_SIGN_CMS + $KC_OUT_PEM + $KC_IN_FILE; // флаг для формирования подписи. Будет изменяться в зависимости от нужного формата подписи.
$inData = "/home/user/example.pdf"; // Путь к файлу, который подписываем
KalkanCrypt_SignData("", $flags_sign, $inData, $outSign); //Подпись документа
Спасибо за прекрасные ответы, теперь становится понятно.
Будет сервис для автоматизации подписываения документа сотруником компании, скорее всего будет директор компании и доверенное лицо от компании.
Как понял, нам подходит вариант 2.
Необходимо воспользоваться аналогичными методами. В примере SDK 2.0\C\Linux\PHP\example\test.php
case 12: описан метод проверки ликвидности сертификата.
case 4: описан метод проверки подписи CMS.
Вот несколько ссылок с хабра, описывающих стандарт CMS:
Форматы электронной подписи
Структура PKCS7-файла
Имейте в виду что передавать закрытые ключи запрещено в соответствии с пунктом 2, статьи 10, главы 3 “Закона об ЭЦП”:
Закрытые ключи электронной цифровой подписи не могут быть переданы другим лицам.
Об этом даже новость на https://pki.gov.kz/news/ есть:
Казахстанцам грозит штраф в размере 400 тысяч тенге за незаконную передачу ЭЦП третьим лицам. Об этом предупредили в Министерстве цифрового развития, инноваций и аэрокосмической промышленности, передает Tengrinews.kz со ссылкой на Almaty.tv.
Так что размещать закрытые ключи сотрудников на сервере - противозаконно.
Спасибо за прекрасный ответ. Прочту закон и вернусь к этому вопросу.
Добрый день, коллеги.
Я хочу уточнить, как можно получить SDK? После того как напишем и отправим вам оригиналы документов акта приема и заявления?
Добрый день.
Сначала необходимо получить подтверждение по электронной почте. Затем пройдите по ссылке Скачать SDK. В поле введете адрес электронной почты, указанной в Акте. Затем на почту придет ссылка на скачивание
У меня есть вопрос, в акте приема передачи, в поле получил сразу же подписать, поставить печать и отправить вам или как?
Вопросы касательно получения SDK лучше написать на info@pki.gov.kz, иначе вам придется ждать пока мы передадим им ваш вопрос и потом ждать цепочку ответа. Вопросы касательно юридической стороны PKI также лучше писать на info@pki.gov.kz.