Search by

libriciel / trusted-timestamps

ludeusepommateaupviver

Imported from https://d-mueller.de/blog/dealing-with-trusted-timestamps-in-php-rfc-3161/

Package info

gitlab.adullact.net/Libriciel/archivage/trusted-timestamps.git

pkg:composer/libriciel/trusted-timestamps

Statistics

Installs: 8 122

Dependents: 1

Suggesters: 0

1.1.3 2026-07-24 12:24 UTC

This package is auto-updated.

Last update: 2026-10-29 12:57:39 UTC


README

License build status coverage report

Horodatage certifié RFC 3161 : création d'une requête d'horodatage, signature par une autorité d'horodatage (TSA) et lecture ou vérification de la réponse.

Dépendance de

ProjetBuildCoverage
asalaebuild statuscoverage report
asalae-corebuild statuscoverage report

Prérequis

  • Extension PHP curl
  • openssl (sous-commande openssl ts)

Installation

composer require libriciel/trusted-timestamps:~1.1

Utilisation

TrustedTimestamps

TrustedTimestamps\TrustedTimestamps :

  • createRequestfile($hash, $hash_algo = 'sha1') : crée la requête d'horodatage d'une empreinte
  • signRequestfile($requestfile_path, $tsa_url, $curlOpts = [], $timestamp_format = null) : envoie la requête à l'autorité d'horodatage (TSA) et renvoie la réponse (response_string en base64)
  • getTimestampFromAnswer() : date d'horodatage contenue dans une réponse
  • validate() : vérifie une réponse avec le certificat de la TSA

tests/TestCase/TrustedTimestampsTest.php

        $sha1 = sha1('foo');
        /** @var \PHPUnit\Framework\string|string $requestFile (suppress IDE warning) */
        $requestFile = TrustedTimestamps::createRequestfile($sha1);
        $this->assertFileExists($requestFile);
        $this->toUnlink[] = $requestFile;

        $signature = TrustedTimestamps::signRequestfile($requestFile, self::TSA_URL);
        $this->assertTrue(!empty($signature));
        $this->assertTrue(!empty($signature['response_string']));

        $timestamp = TrustedTimestamps::getTimestampFromAnswer($signature['response_string']);
        $this->assertTrue(!empty($timestamp));

src/Driver/Timestamping/TimestampingGeneric.php (asalae-core)

        $token = $this->trustedTimestampClass::signRequestfile(
            $requestFile,
            $this->tsaUrl,
            $opts,
            $this->timestampFormat
        );
        return base64_decode($token['response_string']);

Tests

vendor/bin/phpunit

Licence

Licence MIT. D'après Dealing with trusted timestamps in PHP (RFC 3161).