跳转到主要内容

Python的DCC工具

项目描述

Python库,用于解码欧盟COVID-19疫苗接种证明,如欧盟规定

Latest Version CI Coverage Supported Python versions License Downloads

安装

pip install dcc-utils

确保 zbar 已安装到您的系统 * 对于Mac OS X,可以通过 brew install zbar 安装 * Debian系统通过 apt install libzbar0 安装。 来源 * Fedora / Red Hat dnf install zbar

使用

解析DCC

此库将带有二维码或疫苗接种证明原始表示的图像作为参数,并将显示证书的内容。

from dcc_utils import dcc

dcc_from_img = dcc.from_image("/my/certificate/path")
dcc_from_raw = dcc.from_raw("HC1:6BF...FTPQ3C3F")

然后,您可以访问 payloadkid

assert dcc_from_img.kid == "53FOjX/4aJs="
assert dcc_from_img.payload["v"][0]["ci"] == "URN:UVCI:01:FR:W7V2BE46QSBJ#L"

👉🏻 payload 符合 欧盟数字COVID证书JSON模式规范

from_imagefrom_raw 方法可能会引发 DCCParsingError

from dcc_utils.exceptions import DCCParsingError

验证DCC数字签名

signature = b"""
-----BEGIN CERTIFICATE-----
MIIIAjCCBeqgAwIBAgIQAnq8g/T
-----END CERTIFICATE-----
"""
assert my_dcc.check_signature(signature)

check_signature 方法可能会引发 DCCSignatureError

from dcc_utils.exceptions import DCCSignatureError

评估CertLogic业务规则

使用 dcc-utils,您可以对DCC评估 业务规则

from dcc_utils import rule, dcc

my_dcc = dcc.from_image("/my/certificate/path")
my_rule = rule.from_file("/my/rule.json")
print(my_rule.description["en"])
my_rule.evaluate_dcc(my_dcc) # True or False

evaluate_dcc 接受作为第二个参数的额外变量,例如 validationClock

import datetime
clock = datetime.datetime(2022, 10, 10, 0, 0, tzinfo=datetime.timezone.utc)
my_rule.evaluate_dcc(
    my_dcc,
    {
        "validationClock": clock,
    },
)

您还可以从JSON(from_json)加载规则,这对于评估服务器上公开的规则很有用

my_rule = rule.from_json({...})

from_filefrom_json 方法可能会引发 DCCRuleError

from dcc_utils.exceptions import DCCRuleError

开发者设置

使用pip安装依赖项

pip install -r requirements-dev.txt

运行测试

make test

欧盟数字COVID证书规范

欧盟数字COVID/绿色证书包含什么? * 数字绿色证书的值集 https://ec.europa.eu/health/sites/default/files/ehealth/docs/digital-green-certificates_dt-specifications_en.pdf * JSON模式: https://github.com/ehn-dcc-development/ehn-dcc-schema

示例数据

所有参与国家的数字绿色证书网关(DGCG)样本: https://github.com/eu-digital-green-certificates/dgc-testdata

致谢

本代码的部分内容改编自 vacdec项目.

许可协议

本库可在MIT许可下使用。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

dcc-utils-0.2.1.tar.gz (5.8 kB 查看哈希值)

上传时间 源代码

构建分发版

dcc_utils-0.2.1-py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面