Coder Social home page Coder Social logo

dgc-java's Introduction

Logo

dgc-java

License: MIT Maven Central

An implementation in Java for creating and validating a EU Digital Covid Certificate.


About

This repository contains the Java libraries dgc-schema and dgc-create-validate for creating and validating EU Digital Covid Certificates. It is maintained by the Swedish Agency for Digital Government.

Note: The commission has decided on a late name change where the Digital Green Certificate was renamed to EU Digital Covid Certificate. Therefore, you'll find a lot of code in this library where the abbreviation DGC is used instead of DCC.

Resources

Structure

The code is structured into the following parts:

  • API - Java POJO:s generated from the schema. dgc-schema

  • CBOR, CWT/COSE - Support for representing the DGC in CBOR and to sign/validate it. dgc-create-validate

  • Compresssion/decompression. dgc-create-validate

  • Base45 implementation. dgc-create-validate

  • QR code generation - Support for creating/reading QR-codes. dgc-create-validate

  • UVCI generation including Luhn mod N checksum calculation. dgc-create-validate

  • Service layer - A service that ties all the above components together and presents high-level methods for creating and validating EU Digital Covid Certificates. dgc-create-validate

Maven

Include the following in your POM:

<dependency>
  <groupId>se.digg.dgc</groupId>
  <artifactId>dgc-schema</artifactId>
  <version>${dgc-java.version}</version>
</dependency>

<dependency>
  <groupId>se.digg.dgc</groupId>
  <artifactId>dgc-create-validate</artifactId>
  <version>${dgc-java.version}</version>
</dependency>

The dgc-create-validate library offers a barcode (QR) implementation using the ZXing library, but the BarcodeCreator and BarcodeDecoder interfaces make it possible to implement your own barcode support using the library of your own choice. Therefore the dependencies to the ZXing jars are marked as optional in the dgc-create-validate POM. If you want to use the default implementation you need to include the following in your POM:

<dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>core</artifactId>
  <version>3.4.1</version>
</dependency>
    
<dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>3.4.1</version>
</dependency>

At least version 3.4.1 of the ZXing libraries are required.

Note: Only the Java 11 build is published to Maven central (see Java 8 note below).

For Java 8 users

On request, the libraries can also be built with Java 8. However, they are not published to Maven central.

To build:

>mvn clean install -P\!default,j8-build

Now, the artifacts dgc-schema-java8 and dgc-create-validate-java8 will be built.

Documentation

Java API documentation of the library:

Acknowledgements


Copyright © 2021, Myndigheten för digital förvaltning - Swedish Agency for Digital Government (DIGG). Licensed under the MIT license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.