PHPackages                             andrew-svirin/eusphpe-php - 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. andrew-svirin/eusphpe-php

ActiveLibrary

andrew-svirin/eusphpe-php
=========================

PHP library for EUSPHPE

3.0.7(2y ago)162865[1 issues](https://github.com/andrew-svirin/eusphpe-php/issues)PHPPHP ^7.1CI failing

Since Sep 11Pushed 2y ago4 watchersCompare

[ Source](https://github.com/andrew-svirin/eusphpe-php)[ Packagist](https://packagist.org/packages/andrew-svirin/eusphpe-php)[ RSS](/packages/andrew-svirin-eusphpe-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (2)Versions (18)Used By (0)

1. Configure php extension euspe by documentation (docs/EUSPHPE/Documentation/EUSignPHPDescription.doc)
    1. Remove osplm.ini from extension directory.
    2. Add to apache envvars `LD_LIBRARY_PATH=/server/path/vendor/uis/euspe/servers/default`
2. Configure stubs for IDE to view functions docs ().
3. Configure directories for servers, certificates, keys. Look for osplm.dist.ini as example. Setup 0777 permissions on folders.

```
- certificates\
- keys\
- servers\
   - server.name\
        - osplm.ini
   - ...

```

1. Use interface for communication.
2. Exam ple usage:

```
    $user = new \AndrewSvirin\EUSPE\User(
      'user-name',
      'server.name',
      'dat|jks',
      'bDataKey',
      'secret'
    );
    $serverStorage = new \AndrewSvirin\EUSPE\ServerStorage($this->serversDir);
    $keyRingStorage = new \AndrewSvirin\EUSPE\KeyRingStorage($this->keysDir);
    $certStorage = new \AndrewSvirin\EUSPE\CertificateStorage($this->certsDir);
    $serverStorage->clearExpired(); // Run it by cron every 1 hour.
    $keyRingStorage->clearExpired(); // Run it by cron every 1 hour.
    $certStorage->clearExpired(); // Run it by cron every 1 hour.
    $keyRing = $keyRingStorage->prepare($user);
    $cert = $certStorage->prepare($user);
    try {
      $server = $serverStorage->prepare($user, $cert);
      $server->open();
      $client = new \AndrewSvirin\EUSPE\Client();
      $client->open();
      $settings = $client->getFileStoreSettings();
      $this->assertNotEmpty($settings);
      if (!$keyRingStorage->exists($keyRing)) {
        $keyRing->setPassword($user->getPassword());
        $keyRing->setType($user->getKeyType());
        if ($keyRing->typeIsDAT()) {
          $keyRing->setPrivateKeys([$user->getKeyData()]);
        }
        else {
          $keyRing->setPrivateKeys($client->retrieveJKSPrivateKeys($user->getKeyData()));
        }
        $keyRingStorage->store($keyRing, $this->secretToken);
      }
      $keyRingStorage->load($keyRing, $this->secretToken);
      if (!$cert->hasCerts()) {
        foreach ($keyRing->getPrivateKeys() as $privateKey) {
          $client->readPrivateKey($privateKey, $keyRing->getPassword());
          $client->resetPrivateKey();
        }
      }
      $certificates = $client->parseCertificates($cert->loadCerts());
      $this->assertNotEmpty($certificates);
      if ($keyRing->typeIsJKS()) {
        $sign = $client->signData('Data for sign 123', $keyRing->getPrivateKeyStamp(), $keyRing->getPassword());
        $signsCount = $client->getSignsCount($sign);
        $this->assertNotEmpty($signsCount);
        for ($i = 0; $i < $signsCount; $i++) {
          $signerInfo = $client->getSignerInfo($sign, $i);
          $this->assertNotEmpty($signerInfo);
        }
      }
    } finally {
      if (isset($client)) {
        $client->close();
      }
      if (isset($server)) {
        $server->close();
      }
    }
```

EUSPHPE Distro
--------------

[](#eusphpe-distro)

Original EUSPHPE distro can be obtained from

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Every ~118 days

Recently: every ~335 days

Total

17

Last Release

896d ago

Major Versions

1.0.1 → 2.0.02018-09-13

2.0.7 → 3.0.02019-12-27

PHP version history (2 changes)1.0.0PHP ^7.0

2.0.0PHP ^7.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16819743?v=4)[Andrew Svirin](/maintainers/andrew-svirin)[@andrew-svirin](https://github.com/andrew-svirin)

---

Top Contributors

[![andrew-svirin](https://avatars.githubusercontent.com/u/16819743?v=4)](https://github.com/andrew-svirin "andrew-svirin (9 commits)")[![savelja-dev](https://avatars.githubusercontent.com/u/59286344?v=4)](https://github.com/savelja-dev "savelja-dev (6 commits)")[![denpavl](https://avatars.githubusercontent.com/u/1397268?v=4)](https://github.com/denpavl "denpavl (5 commits)")[![nosovk](https://avatars.githubusercontent.com/u/1398808?v=4)](https://github.com/nosovk "nosovk (5 commits)")[![oleksandr-pryadun](https://avatars.githubusercontent.com/u/29949364?v=4)](https://github.com/oleksandr-pryadun "oleksandr-pryadun (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/andrew-svirin-eusphpe-php/health.svg)

```
[![Health](https://phpackages.com/badges/andrew-svirin-eusphpe-php/health.svg)](https://phpackages.com/packages/andrew-svirin-eusphpe-php)
```

PHPackages © 2026

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