VerificaC19 SDK for Python
Project description
VerificaC19 Python SDK
🐍 VerificaC19 SDK implementation for Python.
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file verificac19-1.2.0.tar.gz.
File metadata
- Download URL: verificac19-1.2.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aa415c0ed8aaee610bb32b48b7b97746b8bfc52703c7a39cb6e2a8e0da8c6be
|
|
| MD5 |
fdb945179cbcd1d7f42fe16a2b4363bf
|
|
| BLAKE2b-256 |
b48deb040f059ff665466874a86d6841a55368176be771f1d90df2c65570dca2
|
File details
Details for the file verificac19-1.2.0-py2.py3-none-any.whl.
File metadata
- Download URL: verificac19-1.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 2, Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3834dbff688a3edf9d3474ce6420c2e7bc06368e37e3b8e2ab64d2b37cff08dd
|
|
| MD5 |
f3d6c6a43637981e4e2ee4021ae9e828
|
|
| BLAKE2b-256 |
edb7d3f9f5551b5aae22a0e841cd2ef9bfa890473469c25d4a4fbae4b41bc5ff
|