Skip to main content

Scriptable green pass verifier

Project description

Green Pass Verifier

Codacy Badge Github Action Workflow PyPi greenpass Docker greenpass

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.7.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

greenpass-4.1.7-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: greenpass-4.1.7.tar.gz
  • Upload date:
  • Size: 19.2 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.7.tar.gz
Algorithm Hash digest
SHA256 1fff49f0e7ed4f41932ab5e29f4cb001264d29a9e67a824f76f91e75bf2ee988
MD5 4014ed04ef9f29f2a15cbea8561c5a02
BLAKE2b-256 b0862fd663c59bb33e14bb913dae6f7579307c71b800c9824880edba7d61e708

See more details on using hashes here.

File details

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

File metadata

  • Download URL: greenpass-4.1.7-py3-none-any.whl
  • Upload date:
  • Size: 25.5 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0d0f745b91ad3ec637b0d9866ec1de37db984dd73046e9d69f75cc29384516c9
MD5 804d5dfbd4083de425429ba09a4586bb
BLAKE2b-256 a2aea087079dcb1baa7ecb8e99f4e38ca50764f1b29fd7c98511ccd356538142

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