Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hannob/vacdec
Python script to decode the EU Covid-19 vaccine certificate
https://github.com/hannob/vacdec
Last synced: 12 days ago
JSON representation
Python script to decode the EU Covid-19 vaccine certificate
- Host: GitHub
- URL: https://github.com/hannob/vacdec
- Owner: hannob
- License: unlicense
- Created: 2021-06-25T13:52:34.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-13T15:49:36.000Z (almost 3 years ago)
- Last Synced: 2024-10-16T10:43:40.610Z (26 days ago)
- Language: Python
- Size: 25.4 KB
- Stars: 243
- Watchers: 12
- Forks: 89
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vacdec
Python script to decode the EU Covid-19 vaccine certificate, as [specified by the EU](https://ec.europa.eu/health/ehealth/covid-19_en).This script takes an image with a QR code of a vaccine certificate as
the parameter and will show the certificate's content.
**It will not validate the signature.**A [fork of this script with signature verification exists](https://github.com/HQJaTu/vacdec/tree/signature-verification).
The code is very short and should provide an easy way to understand
how these certificates are encoded:* The QR code encodes a string starting with "HC1:".
* The string following "HC1:" is base45 encoded.
* Decoding the base45 leads to zlib-compressed data.
* Decompression leads to a CBOR Web Token structure.## setup
You will need the python pillow, pyzbar, cbor2 and base45 packages. Additionally, you need zbar. For Mac OS X, it can be installed via `brew install zbar`, on Debian systems via `apt install libzbar0`. [Source](https://pypi.org/project/pyzbar/)
If you want to install `cbor2` on Windows, you might get an error that you need the Microsoft Visual C++ Extension installed. This is only required if you want to have the `cbor2` optional C extension installed. You can skip it by setting the environment variable `CBOR2_BUILD_C_EXTENSION=0` before installing it via `pip`.You can install them via your distribution or via pip:
```
pip install base45 cbor2 pillow pyzbar
```## usage
Run:
```
./vacdec [image]
```[image] can be an image in any format pillow supports, including of
course PNG and JPG.A test certificate can be found [here](https://github.com/Digitaler-Impfnachweis/certification-apis/tree/master/examples).
## author
Written by [Hanno Böck](https://hboeck.de/).