Download the PHP package mitwork/kalkan without Composer
On this page you can find all versions of the php package mitwork/kalkan. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mitwork/kalkan
More information about mitwork/kalkan
Files in mitwork/kalkan
Package kalkan
Short Description Signing, validations digital signature with kalkan (NCALayer, NCANode)
License MIT
Informations about the package kalkan
Kalkan Laravel Package
Данная библиотека реализует следующие возможности:
- Подписание XML данных;
- Подписание бинарных данных (CMS);
- Проверка и извлечение подписанных данных;
- QR, кросс-подписание.
Внешние зависимости:
- NCALayer - подписание данных на стороне клиента в браузере;
- NCANode - проверка, валидация и извлечение подписанных данных;
- eGov mobile (App Store, PlayMarket), eGov business (App Store, PlayMarket) - QR и кросс-подписание.
Для возможности QR и кросс-подписания ваша информационная система должна быть подключена к услуге Сервис QR подписания посредством приложения Egov Mobile, и внешний адрес (адреса) должны быть добавлены на стороне оператора услуги.
На этапе тестирования может понадобиться установить тестовые сборки приложений eGov mobile, eGov business - напрямую для OS Android, либо с помощью TestFlight по ссылке-приглашению оператора сервиса. Для тестирования кросс-ссылок, так же будет необходимо указать корректные ссылки с идентификаторами тестовых приложений.
Поддерживаемые версии
- PHP - 8.2, 8.3, 8.4;
- Laravel - 10, 11, 12.
Установка
Данный пакет устанавливается с помощью composer в существующий или новый Laravel-проект командой:
Настройка
Для возможности внесения изменений необходимо опубликовать конфигурацию в проект командой:
Параметры задаются и/или переопределяются в файле config/kalkan.php:
где:
ncanode.host- адрес и порт для подключения к NCANode;links.prefix- префикс для формирования ссылки в QR-code;links.mobile- шаблон для формирования кросс-ссылки при подписании в приложении eGov mobile;links.business- шаблон для формирования кросс-ссылки при подписании в приложении eGov business;actions- именованные маршруты для взаимодействия с приложениями при QR и кросс-подписании;options.description- название запроса или информационной системы;options.organisation- сведения об организации;auth.type- тип авторизации при формировании сервисных ссылок для QR-подписания, допустимые значения -None,Bearer;auth.token- токен авторизации, в случае если он не задан для запроса - будет сформирован уникальный одноразовый токен;ttl- время жизни одноразовых ссылок (в секундах).
Использование
Подписание и проверка XML данных
Данный пример подписания применим для подписания на бэкенде, когда ключ ЭЦП находится на сервере. Для проверки подлинности данных, подписанных через NCALayer необходимо передавать подписанные данные через HTTP-запрос.
Подписание, проверка и извлечение CMS данных
Данный пример подписания применим для подписания на бэкенде, когда ключ ЭЦП находится на сервере. Для проверки подлинности данных, подписанных через NCALayer необходимо передавать подписанные данные через HTTP-запрос.
QR, кросс-подписания
Поскольку взаимодействие происходит по протоколу HTTP, данный пакет кроме сервисов содержит так же и готовые Http\Actions для выполнения всех требуемых шагов.
POST/api/documents- загрузка документов;POST/api/requests- формирование запроса;GET/api/requests/generate/{id}- генерация сервисной ссылки;GET/api/requests/qr-code/{id}- формирование QR-кода;GET/api/requests/links/{id}- формирование кросс-ссылок;GET/api/requests/{id}- работа с данными - отдача;PUT/api/requests/{id}- работа с данными - обработка;GET/check/document/{id}- проверка статуса подписания документа;GET/check/request/{id}- проверка статуса заявки.
Для использования готовых методов, необходимо указать маршруты в routes/api.php описанные в исходном коде.
При необходимости можно переопределить любой из шагов, указав собственный обработчик. Подробнее о каждом из шагов написано в разделах ниже.
QR-подписание
Данный механизм позволяет подписывать данные с помощью смартфона с использованием приложений eGov mobile или eGov business, когда проект открыт в браузере компьютера или планшета.
Основные шаги:
1) Загрузка документов - данный шаг опционален, документы можно отправить на шаге 2; 2) генерация сервисной ссылки; 3) Формирование QR-кода; 4) Считывание QR-кода мобильным приложением; 5) Получение подписываемых данных мобильным приложением; 6) Подписание данных; 7) Обработка подписанных данных; 8) Проверка статуса подписания документа.
Кросс-подписание
Данный механизм позволяет подписывать данные с помощью смартфона с использованием приложений eGov Mobile или eGov Business, когда проект (сайт) открыт на самом смартфоне.
Основные шаги:
1) Загрузка документов - данный шаг опционален, документы можно отправить на шаге 2; 2) генерация сервисной ссылки; 3) Формирование кросс-ссылок; 4) Переход по кросс-ссылке в мобильное приложение; 5) Получение подписываемых данных мобильным приложением; 6) Подписание данных; 7) Обработка подписанных данных; 8) Проверка статуса подписания документа.
События
В пакете реализованы следующие события:
Mitwork\Kalkan\Events\AuthAccepted- аутентификация при запросе данных мобильным приложением подтверждена;Mitwork\Kalkan\Events\AuthRejected- аутентификация при запросе данных мобильным приложением не подтверждена;Mitwork\Kalkan\Events\DocumentRejected- документ отклонен;Mitwork\Kalkan\Events\DocumentRequested- документ запрошен;Mitwork\Kalkan\Events\DocumentSaved- документ сохранен;Mitwork\Kalkan\Events\DocumentValidated- подпись документа проверена;Mitwork\Kalkan\Events\DocumentSigned- документ подписан;Mitwork\Kalkan\Events\RequestProcessed- запрос обработан;Mitwork\Kalkan\Events\RequestRejected- запрос отклонен;Mitwork\Kalkan\Events\RequestRequested- сервисные данные запрошены;Mitwork\Kalkan\Events\RequestSaved- сервисные данные сохранены.
Для подписки на любое из событий, в приложении можно реализовать собственный EventListener:
Ограничения
Работа с несколькими файлами
~~При реализации подписания нескольких документов с использованием NCALayer, имеется возможность подписания только XML-документов. API не позволяет подписывать несколько файлов (хэшей) за один раз.~~
В текущей версии NCALayer данное ограничение снято.
Тестирование
Для запуска тестов необходимо выполнить команду:
Важно - в тестах используются тестовые сертификаты из SDK НУЦ РК, для проверки необходимо запустить NCANode со следующими параметрами:
Для работы с действительными сертификатами НУЦ РК, при тестировании приложение NCANode нужно запустить с параметрами по-умолчанию:
Отказ от ответственности
Данный пакет предоставляется и распространяется "как есть", автор (авторы) не несут юридической ответственности, которая может возникнуть при использовании данного пакета или его отдельных частей.
При реализации приложений, использующих данный пакет, необходимо придерживаться законов и нормативных актов, регламентирующих работу с электронной цифровой подписью и электронным документом, в том числе:
1) Закон Республики Казахстан от 7 января 2003 года N 370 "Об электронном документе и электронной цифровой подписи"; 2) Приказ Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года № 1187 Об утверждении Правил проверки подлинности электронной цифровой подписи.
All versions of kalkan with dependencies
ext-gd Version *
ext-json Version *
ext-dom Version *
ext-libxml Version *
illuminate/support Version ^10.0|^11.0|^12.0
illuminate/events Version ^10.0|^11.0|^12.0
guzzlehttp/guzzle Version ^7.8
endroid/qr-code Version ^5.0