Timestamping is essential when creating digital signatures that need to be preserved. Refer to section [Timestamps] for information about the general principles of the timestamping process. The following sections present how a timestamp token can be requested in DSS.
The DSS framework proposes a TSPSource
interface to implement the communication with a Time Stamp Authority (see section [TSA] for more information on Time Stamp Authorities). The class OnlineTSPSource
is the default implementation of TSPSource
using a HTTP(S) communication layer.
The following snippet of Java code illustrates how you might use this class:
link:../../../test/java/eu/europa/esig/dss/cookbook/example/sources/OnlineTSPSourceTest.java[role=include]
A time-stamp policy is a "named set of rules that indicates the applicability of a time-stamp token to a particular community and/or class of application with common security requirements". A TSA may define its own policy which enhances the policy defined in RFC 3628. Such a policy shall incorporate or further constrain the requirements identified in RFC 3628. The user may request the TSA to issue a timestamp under a specific time-stamp policy that is supported by the TSA.
link:../../../test/java/eu/europa/esig/dss/cookbook/example/sources/OnlineTSPSourceTest.java[role=include]
Sometimes timestamping servers may encounter interruptions (e.g. restart, configuration issues, etc.). To avoid failing signature augmentation, DSS allows a user to configure several TSP Sources. DSS will try one source after the other until getting a usable timestamp token.
link:../../../test/java/eu/europa/esig/dss/cookbook/example/sources/CompositeTSPSourceTest.java[role=include]
Starting from version 5.13
DSS provides a KeyEntityTSPSource
implementation allowing to create timestamps using a local key store. The implementation is provided mainly for test purposes and creation of local timestamps.
link:../../../test/java/eu/europa/esig/dss/cookbook/example/sources/KeyEntityTSPSourceTest.java[role=include]