Skip to main content

VerificaC19 Python SDK

🐍 VerificaC19 SDK implementation for Python.

Latest Version CI codecov Supported Python versions Downloads Code style: black

Requirements

  • Python version >= 3.7
  • MongoDB version >= 5.x (used to store CRL)

Make sure zbar is installed in your system. Source.

  • For Mac OS X, it can be installed via brew install zbar
  • Debian systems via apt install libzbar0
  • Fedora / Red Hat dnf install zbar

Install

pip install verificac19

Usage

Download and cache rules, CRL data and DSCs

You can download and cache rules, CRL Data and DSCs using service.

from verificac19 import service

service.update_all()

update_all may rise VerificaC19Error

from verificac19.exceptions import VerificaC19Error

⚠️ By default rules and DSCs will be cached in local folder, to change it please set VC19_CACHE_FOLDER env variable.

⚠️ CRL data will be stored in a MongoDB database. By default the connection string is mongodb://root:example@localhost:27017/VC19?authSource=admin, if you want to change it, set VC19_MONGODB_URL env variable.

Verify a DCC

You can verify a DCC using verifier. You can verify a DCC using verify_image for images and verify_raw for raw data.

from verificac19 import verifier

result = verifier.verify_image("my_dcc.png")
result = verifier.verify_raw("HC1:GH.....1GH")

verify_image and verify_raw return a dictionary containing person name, date_of_birth, code and a message alongside the result

{
  'code': verifier.Codes.NOT_VALID, 
  'result': False, 
  'message': 'Certificate is not valid', 
  'person': 'Sčasný Svätozár', 
  'date_of_birth': '1984-09-27'
}

you can compare the resulting code with verifier.Codes values

Code Description Result
✅ VALID Certificate is valid True
⚠️ TEST_NEEDED Test needed if verification mode is BOOSTER_DGP False
❌ NOT_VALID Certificate is not valid False
❌ NOT_VALID_YET Certificate is not valid yet False
❌ REVOKED Certificate is revoked False
❌ NOT_EU_DCC Certificate is not an EU DCC False

for example

result = verifier.verify_image("my_dcc.png")
assert result['code'] == verifier.Codes.NOT_VALID

⚠️ verify_image and verify_raw may rise VerificaC19Error in case you cache is not initialized. You need to call service.update_all() at least once!

Verification mode

If you want to change verification mode and verify whether a certificate is a Super Green Pass or not, you need to pass verifier.Mode.SUPER_DGP to verify_image and verify_raw methods.

from verificac19 import verifier

result = verifier.verify_image("my_dcc.png", verifier.Mode.SUPER_DGP)

verifier.Mode exposes 2 possible values

Code Description
NORMAL_DGP Normal verification (default value)
SUPER_DGP Super Green Pass verification
BOOSTER_DGP Booster verification mode

Details

  • SUPER_DGP Mode: VerificaC19 SDK considers a green certificate valid only for people who have been vaccinated against or who have recovered from Covid19, and will prevent all the others from entering bars, restaurants, cinemas, gyms, theatres, discos and stadiums.

  • BOOSTER_DGP Mode: VerificaC19 SDK considers green certificates generated after a booster dose to be valid. Furthermore, green certificates generated after the first vaccination cycle or recovery with the simultaneous presentation of a digital document certifying the negative result of a SARS-CoV-2 test are considered valid.

Development

Install dev dependencies

pip install -r requirements-dev.txt

Make sure zbar is installed in your system. Source.

  • For Mac OS X, it can be installed via brew install zbar
  • Debian systems via apt install libzbar0
  • Fedora / Red Hat dnf install zbar

CRL data will be stored in a MongoDB database. This repository provides a simple docker-compose.yml file (dev instance) with a replica set. By default the connection string is mongodb://root:example@localhost:27017/VC19?authSource=admin, if you want to change it, set VC19_MONGODB_URL env variable.

Run tests

make test

Run examples

python -m examples.<example_name>

Authors

Copyright (c) 2022 - Lotrèk Digital Agency

Contributors

Thank you to everyone involved for improving this project, day by day.

License

This library is available under the MIT license.

Metadata

Release files for verificac19 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for verificac19 1.2.0
File Size Uploaded
verificac19-1.2.0.tar.gz 15.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for verificac19 1.2.0
File Interpreter ABI Platform
verificac19-1.2.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 33.2 kB

Release files / verificac19-1.2.0.tar.gz

Download URL verificac19-1.2.0.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5aa415c0ed8aaee610bb32b48b7b97746b8bfc52703c7a39cb6e2a8e0da8c6be
BLAKE2b-256 checksum
How to use checksums
b48deb040f059ff665466874a86d6841a55368176be771f1d90df2c65570dca2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

Release files / verificac19-1.2.0-py2.py3-none-any.whl

Download URL verificac19-1.2.0-py2.py3-none-any.whl
Size 17.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
3834dbff688a3edf9d3474ce6420c2e7bc06368e37e3b8e2ab64d2b37cff08dd
BLAKE2b-256 checksum
How to use checksums
edb7d3f9f5551b5aae22a0e841cd2ef9bfa890473469c25d4a4fbae4b41bc5ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page