dbp/hcert-php

此包已被弃用且不再维护。未建议替代包。

简化PHP中读取和验证欧盟DCC的过程

维护者

详细信息

gitlab.tugraz.at/dbp/hcert-php

v0.3.0 2021-10-05 08:46 UTC

This package is auto-updated.

Last update: 2023-04-13 13:25:57 UTC


README

警告:该项目尚未准备好投入生产(无法处理所有签名类型,缺少信任数据的签名验证,等等),并且不再积极支持。这是一个实验,旨在查看是否可以使用基于PHP的Web应用程序验证HCERTs,但由于非技术原因而中途放弃,转而采用基于客户端JavaScript的解决方案。如果您仍然有兴趣改进/完成这个库,请提交一个问题。

GitLab仓库 | Packagist

在PHP中解码和验证欧盟数字COVID证书的有效负载。

安装

composer require dbp/hcert-php

使用方法

use Dbp\Hcert\Hcert;
use Dbp\Hcert\TrustList;

TrustList::$trustListAnchor = '-----BEGIN CERTIFICATE-----
MIIBJTC...';
Hcert::$trustList = new TrustList();

$payload = 'HC1:NCFOXN%TS3D...';
try {
    $hcert = Hcert::fromQrcodePayload($payload, true);
    var_dump([
        $hcert->firstName(),
        $hcert->lastName(),
        $hcert->dayOfBirth(),
    ]);
} catch (Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

使用本地缓存的信任列表

use Dbp\Hcert\TrustList;

TrustList::$trustListAnchor = '-----BEGIN CERTIFICATE-----
MIIBJTC...';
$pathToTrustList = '.../trust-list.bin';

Hcert::$trustList = new TrustList($pathToTrustList);