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.
For a more detailed feature overview, see FEATURES.md.
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.
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.
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.
Unichorn can be used as an implementation and experimentation platform for:
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.
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.
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.
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.
If Unichorn is useful to your work, research, teaching, or experimentation, you can support continued maintenance and development.
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.
Harald Glab-Plhak
GitHub organization: hglabplh-tech