All Projects → ehn-dcc-development → hcert-spec

ehn-dcc-development / hcert-spec

Licence: other
Electronic Health Certificates Specification

Programming Languages

Makefile
30231 projects

Projects that are alternatives of or similar to hcert-spec

Specs-on-Spec
A collection of language specifications which don't belong anywhere else
Stars: ✭ 13 (-96.42%)
Mutual labels:  specification
openapi
OpenAPI 3 Specification for golang
Stars: ✭ 18 (-95.04%)
Mutual labels:  specification
LinqSpecs
A toolset for use the specification pattern in LINQ queries.
Stars: ✭ 161 (-55.65%)
Mutual labels:  specification
bmson-spec
Technical specification for bmson format
Stars: ✭ 22 (-93.94%)
Mutual labels:  specification
ortac
Runtime assertion checking based on Gospel specifications
Stars: ✭ 16 (-95.59%)
Mutual labels:  specification
gender-render
Template-system and proof-of-concept for rendering gender-neutral text-, email- and RPG-text-templates with the correct pronouns of all people involved.
Stars: ✭ 21 (-94.21%)
Mutual labels:  specification
adamant.language.reference
The Adamant Programming Language Reference
Stars: ✭ 18 (-95.04%)
Mutual labels:  specification
Specification
Working towards a new TAP specification
Stars: ✭ 67 (-81.54%)
Mutual labels:  specification
beacon-APIs
Collection of RESTful APIs provided by Ethereum Beacon nodes
Stars: ✭ 209 (-42.42%)
Mutual labels:  specification
kekiri
A .NET framework that supports writing low-ceremony BDD tests using Gherkin language
Stars: ✭ 19 (-94.77%)
Mutual labels:  specification
BrAPI
Repository for version control of the BrAPI specifications
Stars: ✭ 50 (-86.23%)
Mutual labels:  specification
openapi-types.ts
Generated TypeScript definitions based on GitHub's OpenAPI spec
Stars: ✭ 30 (-91.74%)
Mutual labels:  specification
QuerySpecification
Abstract package for building query specifications in your domain model.
Stars: ✭ 18 (-95.04%)
Mutual labels:  specification
pactum
Create API specifications and documentation using Python
Stars: ✭ 24 (-93.39%)
Mutual labels:  specification
iqm-exm
IQM & EXM model format specs, Blender exporter, and LÖVE loader.
Stars: ✭ 35 (-90.36%)
Mutual labels:  specification
specifications
Track specification elaboration.
Stars: ✭ 17 (-95.32%)
Mutual labels:  specification
framework
Lightweight, open source and magic-free framework for testing solidity smart contracts.
Stars: ✭ 36 (-90.08%)
Mutual labels:  specification
hcert-kotlin
Kotlin multiplatform implementation of the HCERT/DCC specification
Stars: ✭ 22 (-93.94%)
Mutual labels:  hcert
specs
Kontalk specifications and documentation
Stars: ✭ 20 (-94.49%)
Mutual labels:  specification
covid-pass-verifier
🦠 Scan, parse and verify HCERT compliant government-issued COVID-19 passes.
Stars: ✭ 25 (-93.11%)
Mutual labels:  hcert

CC BY 4.0

Electronic Health Certificates

This repository contains a proposal for encoding and signing the Electronic Health Certificate (HCERT), as a candidate to be adapted and adopted by eHealth authorities and other stakeholders as they see fit.

Specification

The current authoritative version is tagged as releases in this repository.

Overview

overview

Requirements and Design Principles

The following requirements and principles have been used when designing the Electronic Health Certificate (HCERT):

  1. Electronic Health Certificates shall be carried by the holder and must have the ability to be securely validated off-line (using strong and proven cryptographic primitives).

    Example: Signed data with machine readable content.

  2. Use an encoding which is as compact as practically possible whilst ensuring reliable decoding using optical means.

    Example: CBOR in combination with deflate compression and QR encoding.

  3. Use existing, proven and modern open standards, with running code available (when possible) for all common platforms and operating environments to limit implementation efforts and minimise risk of interoperability issues.

    Example: CBOR Web Tokens (CWT).

  4. When existing standards do not exist, define and test new mechanisms based on existing mechanisms and ensure running code exists.

    Example: Base45 encoding per new Internet Draft.

  5. Ensure compatibility with existing systems for optical decoding.

    Example: Base45 encoding for optical transport.

Trust model

The trust model is currently under development. It is assumed to be a health-specific version of the ICAO Master List concept (see also https://www.who.int/publications/m/item/interim-guidance-for-developing-a-smart-vaccination-certificate) that is both health and COVID-19 specific.

The core of the trust model consists of a simple (at this time, one layer deep) list of Country Signing Certificate Authorities (CSCA) that sign Document Signer Certificates (DSC). These are then used to sign the aforementioned digital health certificates (HCERT).

The trusted keys which will be used by verifiers are published in a list which includes all public keys together with issuer metadata. The keys which from time to time are used to sign the HCERTs and should be trusted are included on the Trusted List. There are no CAs or other intermediate parties

involved in the validation process in the verifier. If a CSCA'ss public keys appear in the list - they are only there to facilitate the creation of the trusted list of public keys itself. They are not used during verification of an HCERT (as this is generally offline -- and purely based on the trusted list of that day).

Known Implementations

Multiple implementations are available via the "European eHealth network - digital green development coordination" GitHub repository.

Highly simplified JSON/CBOR/COSE/Zlib/Base45 pipelines:

Base45

Qr and Aztec code have a specific, highly efficient, method for storing alphanumeric characters (MODE 2/0010). In particular compared to UTF-8 (where the first 32 characters are essentially unused; and successive non-latin characters lose an additional 128 values as the topmost bit needs to be set).

Details of this "11 bits per two characters" encoding can be found at

For this reason, the industry generally encodes these in base45. A document for this de-facto standard is in progress:

Contributions

Contributions are very welcome - please generate a pull request or create an issue.


This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].