dbp / hcert-php
此包已被弃用且不再维护。未建议替代包。
简化PHP中读取和验证欧盟DCC的过程
v0.3.0
2021-10-05 08:46 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- ext-openssl: *
- ext-zlib: *
- jwadhams/json-logic-php: ^1.4
- mhauri/base45: ^0.1.1
- spomky-labs/cbor-php: ^2.0
- web-auth/cose-lib: ^3.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^0.12.94
- phpstan/phpstan-phpunit: ^0.12.21
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.9
README
警告:该项目尚未准备好投入生产(无法处理所有签名类型,缺少信任数据的签名验证,等等),并且不再积极支持。这是一个实验,旨在查看是否可以使用基于PHP的Web应用程序验证HCERTs,但由于非技术原因而中途放弃,转而采用基于客户端JavaScript的解决方案。如果您仍然有兴趣改进/完成这个库,请提交一个问题。
在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);