Skip to main content

Scriptable green pass verifier

Project description

Green Pass Verifier

A verified green pass

Scriptable green pass verifier. With this application you can automatize accesses based on green pass validity. It can also be used to analyze your digital certification (e.g. to print which key was used to sign the certificate, --verbose).

It is compatibile with EU certificates (DGC) and UK certificate (NHS).

Installation

You need to have pip and libzbar to install the application.

You can install it using your favorite package manager, for instance in Ubuntu:

sudo apt install python3-pip libzbar0

You can just install the application using pip:

pip install greenpass

If you want to install it from sources, install the python3 requirements using the following command:

pip3 install -r requirements.txt

You can also use it through the pre-built Docker image, you can find it here. You can easily use it using:

sudo docker run --rm -ti berdav/greenpass --settings

Usage

You can feed the application with different file formats, for instance:

Green pass official PDFs

greenpass --pdf greenpass.pdf

QRCode images in PNG

greenpass --qr greenpass.png

Txt files with the content of the qrcode

greenpass --txt greenpass.txt

Standard input and pipes

zbarimg --raw greenpass.png | greenpass --txt -

On a side note, you can verify camera-acquired images if your scanner prints the raw content of the QRcode on stdout

zbarcam --raw -q1 | greenpass --txt -

The application returns an UNIX compatible code, therefore you can concatenate commands that will be executed only if the green pass is verified.

greenpass --qr greenpass.png && echo "green pass ok"

You can also get the expiration configuration using --settings without other inputs.

greenpass --settings

Settings screen

Debug the cryptographic part of your greenpass

greenpass --qr greenpass.png --dump-sign

Print the key which the greenpass was signed with

greenpass --qr greenpass.png --verbose --no-cache

Check if a greenpass was valid or will be valid on a certain date

greenpass --qr greenpass.png --at-date '2021-10-30 18:34'

Switches

-h --help

Help, print the help message

You need to use one of:

--settings

Dump the settings used by the Italian application

--qr QR

Analyze the qrcode QR

--pdf PDF

Analyze the pdf file PDF

--txt TXT

Analyze the txt file TXT

Caching options:

--cachedir CACHEDIR

Use CACHEDIR as the cache directory, by default the cache is placed in $HOME/.local/greenpass.

Miscellaneous switches:

--raw

Print the raw content (JSON) of the certificate

--no-color

Disable colored output.

--no-cache

Disable cache, download everything without saving it.

--clear-cache

Redownload the entire cache, useful to update settings.

--key KEY

Use the content of the file KEY as the public certificate (DGC) or the public key (NHS) to verify the certificate.

--verbose

Print more information (e.g. which key verifies the certificate).

--dump-sign

Print details on the headers and signature of the certificate.

--at-date AT_DATE 

Use AT_DATE instead of the current date

--recovery-expiration

The recovery certification contains an expiration date. By default this date is ignored, this switch re-enables the check and consider this date (in addition to the settings date).

Docker Container

The docker image shipped with the program can be used in the following way:

zbarimg --raw qrcode.png | sudo docker -i greenpass

Read a PNG greenpass qrcode

sudo docker -i greenpass --settings

To read the settings

And virtually with all the switches you can find in the previous section. At the moment, files are not easily passed in the container, therefore it is better to process the qrcode or the pdf outside of the container and extract the qrcode text to pass in the application.

Pointers

If you want more information on the green pass certification and how to parse or verify it you can refer to the following resources:

Greenpass Encoding documentation

Official Italian Android application

JSON schema and specifications

A very detailed blog post on how decode the pass

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

greenpass-4.1.2.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

greenpass-4.1.2-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file greenpass-4.1.2.tar.gz.

File metadata

  • Download URL: greenpass-4.1.2.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for greenpass-4.1.2.tar.gz
Algorithm Hash digest
SHA256 7496744bf77d8c2f5901d6965c5770c52e1967a1bb73564af821d051221a8be6
MD5 298462b3455621f3feaa5628e2fd7e49
BLAKE2b-256 615d88eccf5b4b8c95db27b724f7684f7d1151e8d6411758cce44f4816468077

See more details on using hashes here.

File details

Details for the file greenpass-4.1.2-py3-none-any.whl.

File metadata

  • Download URL: greenpass-4.1.2-py3-none-any.whl
  • Upload date:
  • Size: 25.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for greenpass-4.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dd89e9b92fb27b4c212d12165e482e481498fce6e0e15fe77883bd72960e58f2
MD5 716d1b58d25152ee99e4b6f994243a3d
BLAKE2b-256 667e5be0f2b7875845901b492bb5f1f56a48a07b4b040bbc227b58be1a45c8b3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page