ragaga/certificate-checker

Cryptopro, Rutoken Certificate checker library

1.0.3 2021-05-29 16:53 UTC

This package is auto-updated.

Last update: 2024-04-29 04:33:59 UTC


README

Installation:

composer require ragaga/certificate-checker

or add to composer.json in require

"ragaga/certificate/checker": "^1.0"

Usage:

use Ragaga\CertificateChecker\CertificateChecker;
use Ragaga\CertificateChecker\CheckerFactory;
use Ragaga\CertificateChecker\Enums\CryptoProvider;
use Ragaga\CertificateChecker\Checkers\RutokenChecker;
use Ragaga\CertificateChecker\Checkers\CryptoproChecker;
use Ragaga\CertificateChecker\SignatureData;

Variations of factory creation

  • Default
$factory = new CheckerFactory();
  • Customize on creation
$factory = new CheckerFactory([
  CryptoProvider::CRYPTOPRO => CryptoproChecker::class,
  CryptoProvider::RUTOKEN =>  function(){
      $tmpDir = '/tmp/';
      $cryptoproPath = '/opt/cprocsp/bin/amd64/cryptcp';
      return new RutokenChecker($cryptoproPath, $tmpDir);
  }
]);
  • Rebound after creation
$factory = new CheckerFactory();
$factory->bind(CryptoProvider::RUTOKEN, function(){
   $tmpDir = '/tmp/';
   $cryptoproPath = '/opt/cprocsp/bin/amd64/cryptcp';
   return new RutokenChecker($cryptoproPath, $tmpDir);
});

Check signature

$signatureData = new SignatureData('source', 'signature', CryptoProvider::RUTOKEN);

$checker = new CertificateChecker($factory);

$signatureValid = $checker->isSignatureValid($signatureData);