grambas / dcc-verifier
此软件包最新版本(dev-main)的许可证信息不可用。
解码并验证数字COVID-19证书与德国签发者信任列表公钥
dev-main
2021-12-18 20:53 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- ext-openssl: *
- ext-zlib: *
- fgrosse/phpasn1: ^2.1
- guzzlehttp/guzzle: ^6.5 || ^7.4
- mhauri/base45: ^0.1.1
- spomky-labs/cbor-php: v2.1.x-dev
- thecodingmachine/safe: ^1.3
- web-auth/cose-lib: ^3.3
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^8.0 || ^9.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-19 02:26:31 UTC
README
使用php的数字COVID-19验证实现(Alpha版本)。
安装
通过Composer
$ composer require grambas/dcc-verifier
演示
此SDK用于演示API项目 - dcc-verifier.de,该项目也在 grambas/dcc-verifier-api 上开源。
信息
此软件包实现了德国公共信任列表API 仓库。更多关于API的信息 - 开放API规范
特性
- 解码并读取疫苗接种、康复或检测(PCR、快速检测)主体的欧盟数字COVID-19证书(DCC)数据
- 验证DCC到期日期
- 验证DCC与权威签发者的签名
- 使用德国信任列表
- 能够使用自己的信任列表仓库
使用方法
$trustListDir = '/tmp/de-trust-list'; // local dir for saving trust list json file // 1. Download / Update Germany signer trust list $client = new GermanyTrustListClient($trustListDir); $client->update(); // 2. Init existing trust list repository. $trustListRepository = new GermanyTrustListRepository($trustListDir); // 3. Init verfier with qr code content $qrCodeContent = 'HC1:...' $verifier = new DccVerifier($qrCodeContent, $trustListRepository); // 4. Decode & verify $dcc = $verifier->decode(); // get certificate info $verifier->verify(); // validate against signer signature // 5. Validate if Certificate (Vaccination, Recovery or Test) conforms specific business rules for example if // fully vaccinated or test is negetive $isValid = $dcc->isValid() // 6. Check certificate validation date $validator = new DateValidator($dcc); $isValidForDate = $validator->isValidForDate(new \DateTime());
当然,验证步骤4、5和6可以独立检查,并按您喜欢的顺序进行
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ make test
$ make coverage
贡献
有关详细信息,请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT。
安全
如果您发现任何安全问题,请通过电子邮件 milius@mindau.de 而不是使用问题跟踪器。