承接 andrew-svirin/eusphpe-php 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

andrew-svirin/eusphpe-php

Composer 安装命令:

composer require andrew-svirin/eusphpe-php

包简介

PHP library for EUSPHPE

README 文档

README

  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 (https://github.com/andrew-svirin/phpstorm-stubs).
  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

Original EUSPHPE distro can be obtained from https://iit.com.ua/downloads

统计信息

  • 总下载量: 299
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 16
  • Watchers: 4
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2019-12-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固