Git Product home page Git Product logo

digidoc4j's Introduction

EU Regional Development Fund

Build status

Build Status

DigiDoc4j

DigiDoc4j is a Java library for digitally signing documents and creating digital signature containers of signed documents.

Features

  • Creating ASiC-E and BDOC containers
  • Validating ASiC-E, BDOC, ASIC-S and DDOC containers
  • Creating and validating detached XadES

How to use it

ASiC-E (Associated Signature Container Extended) container format

  • Has .asice or .sce extension.
  • This format is default format since 2019.
  • ASIC-E containers are in compliance with EU standards.
  • Signatures are stored in XAdES format.
  • Supports following signature formats:
    • LT (Long Term) - Signature with time-stamp and OCSP (both "regular" and AIA OCSP are supported).
    • LTA (Long Term Archival) - signature format has additional archival time-stamp to LT profile.
  • .asice or .sce file is in fact a ZIP container with the signed files, the signatures and the protocol control information and can basically be opened by any program that recognizes the ZIP format.
  • It is recommended not to use special characters in the data file’s name, i.e. it is suggested to use only the characters that are categorized as “unreserved” according to RFC3986 (http://tools.ietf.org/html/rfc3986).

BDOC (Estonian specific implementation of Associated Signature Container Extended) container format

  • Has .bdoc extension
  • BDOC is a digital signature format developed in 2014 to replace the old, DDOC (DigiDoc) digital signature format.
  • This format has been used as a default digital signature format in Estonia since 2015 until end of 2018.
  • BDOC container is based on ASiC-E standard.
  • Signatures are stored in XAdES format.
  • Supports signature formats:
    • LT_TM (Long Term TimeMark) - signature has time-mark ensuring long-term provability of the authenticity of the signature.
      • It is based on XAdES baseline LT signature format.
  • .bdoc file is in fact a ZIP container with the signed files, the signatures and the protocol control information and can basically be opened by any program that recognizes the ZIP format.
  • It is recommended not to use special characters in the data file’s name, i.e. it is suggested to use only the characters that are categorized as “unreserved” according to RFC3986 (http://tools.ietf.org/html/rfc3986).

ASiC-S (ASiC-E - Associated Signature Container Simple) container format

  • Has .asics or .scs extension
  • Container associates one data file with either:
    • one signature file containing one or more detached digital signature(s) that apply to it; or
    • one time assertion file containing a time assertion that apply to it.
  • This format is used for timestamping the old DDOC containers in order to prove the inviolability of documents.

DDOC container format

  • Has .ddoc extension
  • An old DigiDoc digital signature format
  • Since year 2015 it's recommended not to sign documents in the DDOC format
  • It is based on XML Advanced Electronic Signatures (XAdES) format, corresponding to profile XAdES-X-L
  • The DigiDoc container includes the source files (the files that were signed) as well as the signatures that are related to the signed file(s)
  • Every signature contains the certificate, validity confirmation and the validity confirmation service certificate.

Documentation

Requirements

Maven

You can use the library as a Maven dependency from the Maven Central (http://mvnrepository.com/artifact/org.digidoc4j/digidoc4j)

<dependency>
	<groupId>org.digidoc4j</groupId>
	<artifactId>digidoc4j</artifactId>
	<version>4.x.x</version>
</dependency>

Licence

  • LGPL (GNU Library General Public License, see LICENSE.LGPL)
  • © Estonian Information System Authority

Support

Official builds are provided through releases. If you want support, you need to be using official builds. Contact for assistance by email [email protected].

Source code is provided on "as is" terms with no warranty (see license for more information). Do not file Github issues with generic support requests.

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.