Tsa screenshot

Tsa

Author Avatar Theme by Dnl50
Updated: 17 Dec 2024
25 Stars

Java implementation of a RFC3161 Time Stamp Authority

Overview

Time Stamp Authority is a powerful Java-based solution implementing the Time-Stamp Protocol (TSP) as specified in RFC 3161 and RFC 5816. Built on top of robust frameworks like Bouncy Castle and Quarkus, this application streamlines the timestamping process, making it easy for developers to integrate timestamping capabilities into their applications. The clever use of GraalVM’s Native Image technology further enhances its appeal by allowing it to boast a very small memory footprint of about 10 MB and an impressive startup time of merely 50 milliseconds.

Designed for versatility, Time Stamp Authority provides automatic Docker images published to Docker Hub, ensuring a seamless deployment experience. Both the Native and JVM variants cater to different system architectures, making it accessible for a wider range of users.

Features

  • Time Stamping: The core functionality is to efficiently sign TSP requests over HTTP, with an endpoint available at /sign for easy integration.

  • REST API: Comprehensive REST endpoints are documented in an OpenAPI specification, allowing developers to implement timestamping features effortlessly.

  • WebSocket Endpoint: A dedicated WebSocket endpoint at /history/responses broadcasts JSON representations of TSP responses, facilitating real-time data handling.

  • Configuration Flexibility: Parameters can be customized in multiple ways, offering users the freedom to adapt settings according to their needs.

  • Persistent Data Storage: By mounting a directory to /work/data, users can ensure database data remains persistent, making the application reliable for long-term usage.

  • Keystore Management: The application easily handles the keystore containing certificates and private keys necessary for signing requests, ensuring secure operations.

  • Native and JVM Support: The availability of both native and JVM Docker images enhances accessibility for different system setups; Native Images are optimized for x86-64, while the JVM variant supports both x86-64 and arm64.