Skip to content

Latest commit

 

History

History
193 lines (162 loc) · 15.3 KB

generic-information.adoc

File metadata and controls

193 lines (162 loc) · 15.3 KB

1. Generic information

1.1. The Project

The DSS (Digital Signature Service) project is an open-source software library, aimed at providing implementation of the standards for Advanced Electronic Signature creation, augmentation and validation in line with European legislation and the eIDAS Regulation in particular.

This project is available in Java language.

1.2. Purpose of the document

This document describes some examples of how to develop in Java using the DSS framework. The aim is to show to the developers, in a progressive manner, the different uses of the framework. It will familiarize them with the code step by step.

1.3. Scope of the document

This document provides examples of code which allow easy handling of digital signatures. The examples are consistent with the Release {dssVersion} of DSS framework which can be downloaded via the webpage.

Three main features can be distinguished within the framework :

  • The creation of a digital signature;

  • The augmentation of a digital signature and;

  • The validation of a digital signature.

In a more detailed manner the following concepts and features are addressed in this document:

  • Forms of digital signatures: XAdES, CAdES, PAdES, JAdES and ASiC-S/ASiC-E;

  • Formats of the signed documents: XML, JSON, PDF, DOC, TXT, ZIP, etc.;

  • Packaging structures: enveloping, enveloped, detached and internally-detached;

  • Profiles associated to each form of the digital signature;

  • Trust management;

  • Revocation data handling (OCSP and CRL sources);

  • Certificate chain building;

  • Signature validation and validation policy;

  • Signature qualification;

  • Validation reports (Simple, Detailed, ETSI Validation report);

  • Management of signature tokens;

  • Validation of the signing certificate;

  • Timestamp creation;

  • Timestamp validation and qualification;

  • REST and SOAP webservices.

This is not an exhaustive list of all the possibilities offered by the framework and the proposed examples cover only the most useful features. However, to discover every detail of the operational principles of the framework, the JavaDoc is available within the source code.

Note
The DSS framework is actively maintained and new features will be released in the future.

1.4. Available demonstrations

With the framework, some demonstrations are provided:

Note
European Commission does not intend to provide a service for a qualified signature creation, augmentation or validation through the available demonstrations. Usage of this demonstration should be limited to testing purposes only. European Commission claims no responsibility or liability whatsoever with regard to its usage. Please refer to the legal notice for further information.

The requirements and build instructions for DSS demonstrations can be found in the section [DSSDemo].

Warning
The demonstrations use a fake timestamp service (Mock) so that is not recommended for a production usage.

1.5. License

For the DSS demo: GNU Lesser General Public License version 2.1 (LGPL). For more information please see DSS demonstration LICENSE.

1.6. Abbreviations and Acronyms

Table 1. Abbreviations and Acronyms

Code

Description

AdES

Advanced Electronic Signature

API

Application Programming Interface

ASiC

Associated Signature Containers

BB

Building Block (DIGITAL)

BBB

Basic Building Block (cf. [R09])

CA

Certificate authority

CAdES

CMS Advanced Electronic Signatures

CMS

Cryptographic Message Syntax

CRL

Certificate Revocation List

CSP

Cryptographic Service Provider

DER

Distinguished Encoding Rules

DIGITAL

EC DIGITAL Building Block

DSA

Digital Signature Algorithm - an algorithm for public-key cryptography

DSS

Digital Signature Service

EC

European Commission

ESI

Electronic Signatures and Infrastructures

ETSI

European Telecommunications Standards Institute

EUPL

European Union Public License

HSM

Hardware Security Modules

HTTP

Hypertext Transfer Protocol

JAdES

JSON Advanced Electronic Signatures

Java EE

Java Enterprise Edition

JavaDoc

JavaDoc is developed by Sun Microsystems to create API documentation in HTML format from the comments in the source code. JavaDoc is an industrial standard for documenting Java classes.

JAXB

Java Architecture for XML Binding

JDBC

Java DataBase Connectivity

JWS

JSON Web Signatures

LGPL

Lesser General Public License

LOTL

List of Trusted List or List of the Lists

MOCCA

Austrian Modular Open Citizen Card Architecture; implemented in Java

MS / EUMS

Member State

MS CAPI

Microsoft Cryptographic Application Programming Interface

OCF

OEBPS Container Format

OCSP

Online Certificate Status Protocol

ODF

Open Document Format

ODT

Open Document Text

OEBPS

Open eBook Publication Structure

OID

Object Identifier

OOXML

Office Open XML

PAdES

PDF Advanced Electronic Signatures

PC/SC

Personal computer/Smart Card

PDF

Portable Document Format

PDFBox

Apache PDFBox - A Java PDF Library: http://pdfbox.apache.org/

PKCS

Public Key Cryptographic Standards

PKCS#12

It defines a file format commonly used to store X.509 private key accompanying public key certificates, protected by symmetrical password

PKIX

Internet X.509 Public Key Infrastructure

RSA

Rivest Shamir Adleman - an algorithm for public-key cryptography

SCA

Signature Creation Application

SCD

Signature Creation Device

SOAP

Simple Object Access Protocol

SSCD

Secure Signature-Creation Device

SVA

Signature Validation Application

TL

Trusted List

TLManager

Application for managing trusted lists.

TSA

Time Stamping Authority

TSL

Trust-service Status List

TSP

Trusted Service Provider

TST

Time-Stamp Token

UCF

Universal Container Format

URI

Uniform Resource Identifier

WSDL

Web Services Description Language

WYSIWYS

What you see is what you sign

XAdES

XML Advanced Electronic Signatures

XML

Extensible Markup Language

ZIP

File format used for data compression and archiving

1.7. References

Table 2. References
Ref. Title Reference Version

R01

ESI - XAdES digital signatures

ETSI EN 319 132 part 1 - 2

1.2.1 (2022-02)

R02

ESI - CAdES digital signatures

ETSI EN 319 122 part 1 - 2

1.3.1 (2023-06)

R03

ESI - PAdES digital signatures

ETSI EN 319 142 part 1 - 2

1.1.1 (2016-04)

R04

ESI - Associated Signature Containers (ASiC)

ETSI EN 319 162 part 1 - 2

1.1.1 (2016-04)

R05

ESI - JAdES digital signatures

ETSI TS 119 182 part 1

1.1.1 (2021-03)

R06

Document management - Portable document format - Part 1: PDF 1.7

ISO 32000-1

First edition (2008)

R07

Directive 1999/93/EC of the European Parliament and of the Council of 13 December 1999 on a Community framework for electronic signatures.

Directive 1999/93/EC

R08

Internet X.509 Public Key Infrastructure - Time-Stamp Protocol (TSP)

RFC 3161

R09

ESI - Procedures for Creation and Validation of AdES Digital Signatures

ETSI EN 319 102-1

1.3.1 (2021-11)

R10

ESI - Signature validation policy for European qualified electronic signatures/seals using trusted lists

ETSI TS 119 172-4

1.1.1 (2021-05)

R11

ESI - Trusted Lists

ETSI TS 119 612

2.2.1 (2016-04)

R12

eIDAS Regulation No 910/2014

Regulation (EU) No 910/2014

R13

ESI - Procedures for Creation and Validation of AdES Digital Signatures

ETSI TS 119 102-2

1.4.1 (2023-06)

R14

ESI - Procedures for using and interpreting EU Member States national trusted lists

ETSI TS 119 615

1.2.1 (2023-06)

R15

Internet RFC 2315 PKCS #7: Cryptographic Message Syntax

RFC 2315

R16

Commission implementing decision (EU) 2015/1506 of 8 September 2015

CID 2015/1506

R17

ESI - Building blocks and table of contents for human readable signature policy documents

ETSI TS 119 172-1

1.1.1 (2015-07)

R18

ESI - XML format for signature policies

ETSI TS 119 172-2

1.1.1 (2019-12)

R19

ESI - ASN.1 format for signature policies

ETSI TS 119 172-3

1.1.1 (2019-12)

R20

ESI - Cryptographic Suites

ETSI TS 119 312

1.4.2 (2022-02)

R21

Internet RFC 7515: JSON Web Signature (JWS)

RFC 7515

R22

Internet RFC 6283: Extensible Markup Language Evidence Record Syntax (XMLERS)

RFC 6283

R23

Internet RFC 4998: Evidence Record Syntax (ERS)

RFC 4498

R24

Internet RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

RFC 5280

R25

Internet RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP

RFC 6960

R26

Common PKI Specifications for Interoperable Applications from T7 & TeleTrusT

Common PKI v2.0

2.0 (January 2009)

R27

Electronic Signatures and Infrastructures (ESI); Certificate Profiles; Part 5: QCStatements

ETSI EN 319 412-5

2.4.1 (2023-09)

R28

Document management - Portable document format - Part 2: PDF 2.0

ISO 32000-2

2.0 (2017)