PHPackages                             authentin/eusig-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. authentin/eusig-bundle

ActiveSymfony-bundle

authentin/eusig-bundle
======================

Symfony bundle for authentin/eusig — eIDAS signing with DI, config, and autowiring

v0.1.0(yesterday)70MITPHPPHP &gt;=8.2

Since Apr 6Pushed yesterdayCompare

[ Source](https://github.com/authentin/eusig-bundle)[ Packagist](https://packagist.org/packages/authentin/eusig-bundle)[ RSS](/packages/authentin-eusig-bundle/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (8)Versions (2)Used By (0)

eusig-bundle
============

[](#eusig-bundle)

[![CI](https://github.com/authentin/authentin/actions/workflows/ci.yml/badge.svg)](https://github.com/authentin/authentin/actions/workflows/ci.yml)[![Latest Version](https://camo.githubusercontent.com/68db82aaf863115471a0f4881b30a498f605b55352bfc52838f30d901d31f20e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61757468656e74696e2f65757369672d62756e646c652e737667)](https://packagist.org/packages/authentin/eusig-bundle)[![PHP Version](https://camo.githubusercontent.com/5ca54c3cde1156deb71d5fa6b28ac8fa51907e10795b6ffd52072de7bc5331ce/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f61757468656e74696e2f65757369672d62756e646c652e737667)](https://packagist.org/packages/authentin/eusig-bundle)[![License](https://camo.githubusercontent.com/e1b18b3dc62058fc29111e7dcdf91c83fd80e75f4efafb2579827f8329e93efa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f61757468656e74696e2f65757369672d62756e646c652e737667)](https://packagist.org/packages/authentin/eusig-bundle)

Symfony bundle for [authentin/eusig](https://github.com/authentin/eusig) — adds DI, configuration, and autowiring for eIDAS-compliant electronic signatures.

Installation
------------

[](#installation)

```
composer require authentin/eusig-bundle
```

You also need a PSR-18 HTTP client and PSR-17 factories:

```
composer require symfony/http-client nyholm/psr7
```

### Prerequisites

[](#prerequisites)

A running [EU DSS](https://github.com/esig/dss) instance:

```
docker run -d -p 8080:8080 ghcr.io/authentin/dss:latest
```

Configuration
-------------

[](#configuration)

```
# config/packages/eusig.yaml
eusig:
    dss:
        base_url: '%env(DSS_BASE_URL)%'     # Required. e.g. http://localhost:8080/services/rest

    token:                                    # Optional. Omit if you only need validation.
        type: pkcs12                          # Currently supported: pkcs12
        path: '%env(PKCS12_PATH)%'            # Path to the .p12 keystore file
        password: '%env(PKCS12_PASSWORD)%'    # Keystore password (use env vars!)

    defaults:                                 # Optional. Sensible defaults are provided.
        signature_level: PAdES_BASELINE_B     # Any value from SignatureLevel enum
        digest_algorithm: SHA256              # Any value from DigestAlgorithm enum
```

Autowired services
------------------

[](#autowired-services)

The bundle registers these services, available via autowiring:

InterfaceServiceAlways available`SigningClientInterface`DSS signing clientYes`ValidatorInterface`DSS validatorYes`TokenInterface`PKCS#12 tokenOnly when `token` is configured`SignerInterface`Signer (signing client + token)Only when `token` is configuredUsage
-----

[](#usage)

### Signing a PDF

[](#signing-a-pdf)

```
use Authentin\Eusig\Contract\SignerInterface;
use Authentin\Eusig\Model\Document;
use Authentin\Eusig\Model\SignatureLevel;
use Authentin\Eusig\Model\SignatureParameters;
use Symfony\Component\HttpFoundation\Response;

class SignController
{
    public function __invoke(SignerInterface $signer): Response
    {
        $signed = $signer->sign(
            Document::fromLocalFile('/path/to/document.pdf'),
            new SignatureParameters(signatureLevel: SignatureLevel::PAdES_BASELINE_B),
        );

        return new Response($signed->content, 200, [
            'Content-Type' => 'application/pdf',
            'Content-Disposition' => 'attachment; filename="signed.pdf"',
        ]);
    }
}
```

### Validating a signature

[](#validating-a-signature)

```
use Authentin\Eusig\Contract\ValidatorInterface;
use Authentin\Eusig\Model\Document;

class ValidateController
{
    public function __invoke(ValidatorInterface $validator): Response
    {
        $result = $validator->validateSignature(
            Document::fromLocalFile('/path/to/signed.pdf'),
        );

        return $this->json([
            'valid' => $result->valid,
            'signatures' => $result->signaturesCount,
        ]);
    }
}
```

### Extending a signature

[](#extending-a-signature)

```
use Authentin\Eusig\Contract\SigningClientInterface;
use Authentin\Eusig\Model\Document;
use Authentin\Eusig\Model\SignatureLevel;
use Authentin\Eusig\Model\SignatureParameters;

class ExtendController
{
    public function __invoke(SigningClientInterface $signingClient): Response
    {
        $extended = $signingClient->extendDocument(
            Document::fromLocalFile('/path/to/signed.pdf'),
            new SignatureParameters(signatureLevel: SignatureLevel::PAdES_BASELINE_T),
        );

        $extended->saveToFile('/path/to/extended.pdf');

        // ...
    }
}
```

Custom token
------------

[](#custom-token)

To use a different signing backend (HSM, remote provider), implement `TokenInterface` and register it:

```
# config/services.yaml
services:
    App\Signing\MyHsmToken:
        tags: ['authentin.eusig.token']

    Authentin\Eusig\Contract\TokenInterface:
        alias: App\Signing\MyHsmToken
```

Then omit the `token` section from `eusig.yaml` — the bundle will use your service.

Standalone usage
----------------

[](#standalone-usage)

For non-Symfony projects, use [authentin/eusig](https://github.com/authentin/eusig) directly.

License
-------

[](#license)

MIT

###  Health Score

38

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/41073314?v=4)[llupa](/maintainers/llupa)[@llupa](https://github.com/llupa)

---

Top Contributors

[![llupa](https://avatars.githubusercontent.com/u/41073314?v=4)](https://github.com/llupa "llupa (4 commits)")

---

Tags

symfonybundlepadesxadeselectronic signaturecadespdf-signing

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/authentin-eusig-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/authentin-eusig-bundle/health.svg)](https://phpackages.com/packages/authentin-eusig-bundle)
```

###  Alternatives

[pentatrion/vite-bundle

Vite integration for your Symfony app

2725.3M13](/packages/pentatrion-vite-bundle)[kreait/firebase-bundle

Symfony Bundle for the Firebase Admin SDK

1534.7M2](/packages/kreait-firebase-bundle)[sensiolabs/gotenberg-bundle

A Symfony bundle that provides seamless integration with Gotenberg for generating PDFs and screenshots from various sources (HTML, Markdown, Office documents, URLs) with a clean, builder-based API.

210210.4k2](/packages/sensiolabs-gotenberg-bundle)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[cmsig/seal-symfony-bundle

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

15195.8k5](/packages/cmsig-seal-symfony-bundle)[sineflow/clamav

ClamAV PHP Client for Symfony

10168.5k](/packages/sineflow-clamav)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
