{"id":18323081,"url":"https://github.com/berdav/greenpass","last_synced_at":"2025-04-05T23:31:26.374Z","repository":{"id":38456748,"uuid":"389353867","full_name":"berdav/greenpass","owner":"berdav","description":"Scriptable green pass / Digital Covid Certificate verifier.","archived":false,"fork":false,"pushed_at":"2022-06-03T10:19:26.000Z","size":746,"stargazers_count":52,"open_issues_count":7,"forks_count":21,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-21T13:44:49.254Z","etag":null,"topics":["authentication","covid19","python","scriptable","vaccine"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berdav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-25T13:28:15.000Z","updated_at":"2025-02-17T18:20:05.000Z","dependencies_parsed_at":"2022-08-19T18:40:34.308Z","dependency_job_id":null,"html_url":"https://github.com/berdav/greenpass","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berdav%2Fgreenpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berdav%2Fgreenpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berdav%2Fgreenpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berdav%2Fgreenpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berdav","download_url":"https://codeload.github.com/berdav/greenpass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415783,"owners_count":20935383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","covid19","python","scriptable","vaccine"],"created_at":"2024-11-05T18:27:06.317Z","updated_at":"2025-04-05T23:31:21.366Z","avatar_url":"https://github.com/berdav.png","language":"Python","readme":"# Green Pass Verifier\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/575c0631970a4d9a994f18b416e0eefc)](https://www.codacy.com/gh/berdav/greenpass/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=berdav/greenpass\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge Coverage](https://app.codacy.com/project/badge/Coverage/575c0631970a4d9a994f18b416e0eefc)](https://www.codacy.com/gh/berdav/greenpass/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=berdav/greenpass\u0026amp;utm_campaign=Badge_Coverage)\n![Github Action Workflow](https://github.com/berdav/greenpass/actions/workflows/github-actions-test-greenpass.yml/badge.svg)\n[![PyPi greenpass](https://badgen.net/pypi/v/greenpass/)](https://pypi.org/project/greenpass/)\n[![Docker greenpass](https://badgen.net/badge/icon/docker?icon=docker\u0026label)](https://hub.docker.com/r/berdav/greenpass)\n\n![A verified green pass](https://github.com/berdav/greenpass/blob/master/img/draghi.png?raw=true)\n\nScriptable green pass verifier.\nWith this application you can automatize accesses based on green pass validity.\nIt can also be used to analyze your digital certification (e.g. to print\nwhich key was used to sign the certificate, `--verbose`).\n\nIt is compatibile with EU certificates (DGC) and UK certificate (NHS).\n\n## Installation\nYou need to have pip and libzbar to install the application.\n\nYou can install it using your favorite package manager, for instance in Ubuntu:\n\n```bash\nsudo apt install python3-pip libzbar0\n```\n\nYou can just install the application using pip:\n```bash\npip install greenpass\n```\n\nIf you want to install it from sources, install the python3 requirements\nusing the following command:\n```bash\npip3 install -r requirements.txt\n```\n\nYou can also use it through the pre-built Docker image, you can find it\n[here](https://hub.docker.com/r/berdav/greenpass).  You can easily use\nit using:\n```bash\nsudo docker run --rm -ti berdav/greenpass --settings\n```\n\n## Usage\nYou can feed the application with different file formats, for instance:\n\nGreen pass official PDFs\n```bash\ngreenpass --pdf greenpass.pdf\n```\n\nQRCode images in PNG\n```bash\ngreenpass --qr greenpass.png\n```\n\nTxt files with the content of the qrcode\n```bash\ngreenpass --txt greenpass.txt\n```\n\nStandard input and pipes\n```bash\nzbarimg --raw greenpass.png | greenpass --txt -\n```\n\nOn a side note, you can verify camera-acquired images if your scanner\nprints the raw content of the QRcode on stdout\n```bash\nzbarcam --raw -q1 | greenpass --txt -\n```\n\nThe application returns an UNIX compatible code, therefore you can\nconcatenate commands that will be executed only if the green pass is\nverified.\n```bash\ngreenpass --qr greenpass.png \u0026\u0026 echo \"green pass ok\"\n```\n\nYou can also get the expiration configuration using `--settings` without\nother inputs.\n```bash\ngreenpass --settings\n```\n![Settings screen](https://github.com/berdav/greenpass/blob/master/img/settings.png?raw=true)\n\nDebug the cryptographic part of your greenpass\n```bash\ngreenpass --qr greenpass.png --dump-sign\n```\n\nPrint the key which the greenpass was signed with\n```bash\ngreenpass --qr greenpass.png --verbose --no-cache\n```\n\nCheck if a greenpass was valid or will be valid on a certain date\n```bash\ngreenpass --qr greenpass.png --at-date '2021-10-30 18:34'\n```\n\n## Switches\n```bash\n-h --help\n```\nHelp, print the help message\n\nYou need to use one of:\n\n```bash\n--settings\n```\nDump the settings used by the Italian application\n\n```bash\n--qr QR\n```\nAnalyze the qrcode QR\n\n```bash\n--pdf PDF\n```\nAnalyze the pdf file PDF\n\n```bash\n--txt TXT\n```\nAnalyze the txt file TXT\n\nCaching options:\n```bash\n--cachedir CACHEDIR\n```\nUse CACHEDIR as the cache directory, by default the cache is placed in `$HOME/.local/greenpass`.\n\nMiscellaneous switches: \n```bash\n--raw\n```\nPrint the raw content (JSON) of the certificate\n\n```bash\n--no-color\n```\nDisable colored output.\n\n```bash\n--force-color\n```\nForce colored output. (useful in CMD on Windows)\n\n```bash\n--no-cache\n```\nDisable cache, download everything without saving it.\n\n```bash\n--clear-cache\n```\nRedownload the entire cache, useful to update settings.\n\n```bash\n--key KEY\n```\nUse the content of the file KEY as the public certificate (DGC) or the public key (NHS) to\nverify the certificate.\n\n```bash\n--verbose\n```\nPrint more information (e.g. which key verifies the certificate).\n\n```bash\n--dump-sign\n```\nPrint details on the headers and signature of the certificate.\n\n```bash\n--at-date AT_DATE \n```\nUse AT_DATE instead of the current date\n\n```bash\n--recovery-expiration\n```\nThe recovery certification contains an expiration date.  By\ndefault this date is ignored, this switch re-enables the check\nand consider this date (in addition to the settings date).\n\n```bash\n--batch\n```\nRemove all the outputs.\n\n```bash\n--language LANGUAGE\n```\nLocalize the output in LANGUAGE.  Currently the following languages are\navailable:\n*   English\n*   Italian\n*   German\n\n## Docker Container\nThe docker image shipped with the program can be used in the following\nway:\n\n```bash\nzbarimg --raw qrcode.png | sudo docker -i greenpass\n```\nRead a PNG greenpass qrcode\n\n```bash\nsudo docker -i greenpass --settings\n```\nTo read the settings\n\nAnd virtually with all the switches you can find in the previous\nsection.  At the moment, files are not easily passed in the container,\ntherefore it is better to process the qrcode or the pdf outside of the\ncontainer and extract the qrcode text to pass in the application.\n\n## Pointers\nIf you want more information on the green pass certification and how\nto parse or verify it you can refer to the following resources:\n\n[Greenpass Encoding documentation](https://github.com/ehn-dcc-development/hcert-spec)\n\n[Official Italian Android application](https://github.com/ministero-salute/it-dgc-verificaC19-android )\n\n[JSON schema and specifications](https://ec.europa.eu/health/sites/default/files/ehealth/docs/covid-certificate_json_specification_en.pdf)\n\n[A very detailed blog post on how decode the pass](https://gir.st/blog/greenpass.html)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberdav%2Fgreenpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberdav%2Fgreenpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberdav%2Fgreenpass/lists"}