Open source javascript app written in Vue2 to scan/decode and verify a NZ COVID Pass.
With this tool you can scan, decode and view the cbor encoded json in your NZ Covid Pass which are not visible in the standard application.
This tool also validates if the pass:
- is a Base32 encoded NZCP Version 1
- is encoded as a CBOR
- has the correct protected headers
- is issued by New Zealand Ministry of Health by matching the iss in the payload
- is signed and validated by using the signature of the payload over the CBOR structure using the MOH public key
- hasn't expired
For online demo of this application click here
This project uses the following 4 libraries to decode and verify the pass:
- Vue QR Code Reader: Detect and decode QR codes
- Base32 Decode: Base32 decoder with support for multiple variants.
- CBOR: Encode and parse data in the Concise Binary Object Representation (CBOR) data format
- COSE: JavaScript implementation of COSE, RFC8152
docker
(For serving the app for local development)docker-compose
(v1.22 minimum, for serving the app for local development)make
(For helper commands)
make start
make build
- Run a production build and output the generated files todist
make exec
- Start an interactive command prompt in the local development containermake lint
- Lint the project with ESLintmake logs
- View and follow logs for the local development containermake restart
- Restart the local development container (Useful if Webpack file watchers break)make start
- Start the local development containermake stop
- Stop and remove the local development container
Open an issue or a pull request to suggest changes or additions.
All commit messages should try to match the regex
/^NZVA-[\d]{1,4} - [A-Z].*[\w)]$/
. In short (see
here for details):
- Titles should try to not exceed 50 characters and should never exceed 72 characters
- Use the message body for further info on how/why you made your change
- Titles should be capitalised
- Titles should not end in a period
- Titles should be in the imperative mood (
Add feature A
notAdded feature A
) - Separate the body from the title with an empty line
- The body should wrap at 72 characters
Bad:
Updated readme to include guidelines on good commit message format.
[NZVA-123] updated readme to include guidelines on good commit message format
NZVA-123 - Added commit message guidelines to README
Good:
NZVA-123 - Add commit message guidelines to README
@ellipticoin/[email protected] [license(s): MIT]
└── package.json: MIT
@nuxt/[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
@sovpro/[email protected] [license(s): MIT]
└── package.json: MIT
@zxing/[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
@zxing/[email protected] [license(s): (Unlicense OR Apache-2.0), Apache]
├── package.json: (Unlicense OR Apache-2.0)
└── license files: Apache
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): Apache, Apache-2.0]
├── package.json: Apache-2.0
└── license files: Apache
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): Apache-2.0]
└── package.json: Apache-2.0
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): Apache, Apache-2.0]
├── package.json: Apache-2.0
└── license files: Apache
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): Unknown]
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): BSD-3-Clause]
└── package.json: BSD-3-Clause
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
└── package.json: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
[email protected] [license(s): MIT]
├── package.json: MIT
├── license files: MIT
└── readme files: MIT
[email protected] [license(s): BSD, BSD-2-Clause]
├── package.json: BSD-2-Clause
└── license files: BSD
[email protected] [license(s): BSD-3-Clause]
└── package.json: BSD-3-Clause
[email protected] [license(s): MIT]
├── package.json: MIT
└── license files: MIT
LICENSES: (Unlicense OR Apache-2.0), Apache, Apache-2.0, BSD, BSD-2-Clause, BSD-3-Clause, MIT, Unknown