Unicorn Project

Unicorn is a modular Java-based PKI and digital-signature platform for working with certificates, cryptographic signatures, trust infrastructure, validation services, secure e-mail, and PKCS#11 devices.

The project combines desktop and server-side components and provides functionality around certificate creation and management, CMS/CAdES/PAdES/XAdES signatures, certificate signing requests, timestamping, OCSP/CRL-based validation, ETSI Trust Service Lists, and hardware-backed cryptographic operations.

Unichorn is an engineering and research-oriented open-source project. Support for a standard or format does not by itself imply formal certification, qualified trust-service status, or audited regulatory compliance.

Highlights

For a more detailed feature overview, see FEATURES.md.

Architecture

Unichorn is organized as a Maven multi-module project:

unichorn-project
├── unichorn-core
│   └── Core PKI, certificate, signature, validation and trust functionality
├── unichorn-pkcs11
│   └── PKCS#11 / cryptographic-device integration
├── unichorn-responder
│   └── Server-side responder and PKI-related services
└── unichorn-gui-fx
    └── JavaFX desktop user interface and client functionality

This separation keeps cryptographic and PKI functionality independent from user-interface, hardware-token, and service-layer concerns.

Standards and Formats

The project contains functionality or data models related to a broad set of PKI and electronic-signature technologies, including:

The inclusion of standards and schemas documents the interoperability targets of the project. It should not be interpreted as a claim of formal certification against every referenced specification.

Core Technology

The project is primarily Java-based and built with Maven. Depending on the module and feature, it integrates technologies and libraries such as:

Some dependencies are third-party components with their own licenses and distribution terms. In particular, users must verify the licensing conditions of cryptographic and PDF libraries before redistributing derived binaries.

Typical Use Cases

Unichorn can be used as an implementation and experimentation platform for:

  1. Creating and handling certificates.
  2. Generating and processing certificate signing requests.
  3. Digitally signing documents and arbitrary content.
  4. Working with CMS/CAdES, PAdES, and XAdES signature formats.
  5. Validating certificates through CRLs, OCSP, and trust information.
  6. Experimenting with trust-service-list processing.
  7. Integrating smart cards, tokens, or other PKCS#11 cryptographic devices.
  8. Running PKI-related responder or signing services.
  9. Sending signed or encrypted e-mail.
  10. Studying practical PKI and electronic-signature architectures.

Building

The repository is structured as a Maven parent project.

A conventional build starts from the repository root:

mvn clean install

The project currently references several older and/or externally licensed dependencies. A successful build can therefore require appropriate dependency availability, compatible JDK tooling, and locally configured third-party libraries.

The parent POM currently targets Java 14.

Security Notice

Cryptographic software should be reviewed carefully before production use.

Users deploying Unichorn in security-critical or regulated environments should independently verify:

No statement in this repository should be interpreted as certification for eIDAS, ETSI, qualified electronic signatures, qualified seals, or another regulated trust-service regime.

Project Status

Unichorn is an open-source engineering project with a substantial implementation history. The repository combines PKI infrastructure, signature formats, trust validation, cryptographic-device integration, desktop functionality, and service components.

Contributions, technical reviews, interoperability testing, documentation improvements, and security-focused feedback.

Contributing

You can contribute via GitHub issues and pull requests.

Useful contribution areas include:

When contributing cryptographic functionality, please include tests and describe the standards or profiles on which the implementation is based.

Sponsoring

If Unichorn is useful to your work, research, teaching, or experimentation, you can support continued maintenance and development.

License

The Unichorn project source code is licensed under the MIT License, unless an individual file or third-party component states otherwise.

Copyright © 2020--2026 Harald Glab-Plhak.

Author

Harald Glab-Plhak

GitHub organization: hglabplh-tech