olehvasyliev/laravel-sign-eusphpe-package

Laravel package for IIT EUSign (KEP / QES / PAdES)

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

pkg:composer/olehvasyliev/laravel-sign-eusphpe-package

v0.9.0 2026-01-13 16:50 UTC

This package is auto-updated.

Last update: 2026-01-13 14:56:54 UTC


README

Сервіс для підпису та перевірки електронних документів
з використанням кваліфікованого електронного підпису (КЕП)
на базі IIT / EUSign.

Побудований на Laravel, з акцентом на:

  • юридичну доказовість
  • безпеку
  • відтворюваність перевірки (для суду)
  • чисту архітектуру (Request → DTO → Service)

⚙️ Можливості

  • ✅ Підпис файлів (PDF, 🔄binary)
  • ✅ Підтримка форматів PAdES / CAdES
  • ✅ Вибір КНЕДП (ДПС, Вчасно, Дія, банки)
  • ✅ Перевірка сертифіката та відповідності КНЕДП
  • 🔄 Генерація Verification Protocol (JSON / PDF)
  • ✅ Тимчасова видача підписаних файлів (temporary download)
  • 🔄 Підготовлено для судової експертизи

📦 Вимоги

  • PHP 8.3+
  • Laravel 12
  • Встановлена PHP-бібліотека IIT EUSign (eusphpe)

❗ Пакет не постачає .so / binary файли. Встановлення EUSign виконується окремо згідно документації IIT.

ℹ️ About EUSign

This package provides OOP abstractions over the official EUSign PHP library.

📥 Встановлення

composer require olehvasyliev/laravel-sign-eusphpe-package

⚙️ Конфігурація

Публікація конфігу (не обовʼязково)

php artisan vendor:publish --tag=eusign-config

Буде створено:

config/eusign.php

usage

🧠 Використання (Service-based)

use App;
use OlehVasyliev\EUSign\Contracts\SignServiceInterface;

$signer = App::make(SignServiceInterface::class);

$certificate = $signer->getOwnInfoCertificate(
    $keyFilePath,
    $keyPassword
);

$signedBinary = $signer->signFile(
    $keyFilePath,
    $keyPassword,
    $filePath
);
  • ✔ без web-залежностей
  • ✔ підходить для CLI / Queue / internal services

🌐 API Routes (опційно)

За замовчуванням пакет НЕ реєструє жодних HTTP-маршрутів.

Увімкнення API routes

У config/eusign.php:

'routes' => [

    // 🔐 secure-by-default
    'enabled' => true,

    'prefix' => 'api/eusign',

    'middleware' => [
        'api',
        'auth:sanctum',
        'throttle:10,1',
    ],
],

Після зміни:

php artisan config:clear
MethodURLОпис
GET/api/eusign/ca-registriesПерелік ЦСК
POST/api/eusign/certificate Отримання інформації про власника ключа + сертифікат
POST/api/eusign/signПідписання документу

🔐 Безпека

  • ❌ Пакет не зберігає приватні ключі
  • ❌ Паролі не логуються та не кешуються
  • ✅ Підтримка TTL / одноразових signing-sessions
  • ✅ CA registry з IIT (з кешуванням)
  • ✅ API захищене middleware (auth + rate limit)

Routes вимкнені за замовчуванням — це свідоме рішення.

🇺🇦 Юридичний контекст

Пакет орієнтований на:

  • українські КНЕДП
  • вимоги КЕП / QES
  • використання у банках, страхових, держсервісах

🛣 Roadmap

  • Перевірка підписів (verify)
  • Multiple signatures
  • Timestamp (TSP)
  • Verification Protocol (PDF)
  • Async signing (queue)

📄 Ліцензія

MIT