grambas/dcc-verifier

此软件包最新版本(dev-main)的许可证信息不可用。

解码并验证数字COVID-19证书与德国签发者信任列表公钥

dev-main 2021-12-18 20:53 UTC

This package is auto-updated.

Last update: 2024-09-19 02:26:31 UTC


README

Latest Version on Packagist Software License coverage Total Downloads

使用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

贡献

有关详细信息,请参阅 CONTRIBUTINGCODE_OF_CONDUCT

安全

如果您发现任何安全问题,请通过电子邮件 milius@mindau.de 而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT),有关更多信息,请参阅许可证文件NOTICE