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
Requires
- php: ^8.3
- illuminate/support: ^12.0
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
| Method | URL | Опис |
|---|---|---|
| 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)