ZeroEcho API
ZeroEcho Library
ZeroEcho is a layered cryptography library delivered as the lib module. It exposes a minimal
core of cryptographic primitives and a higher-level SDK of composition tools. The design favors clear
separation of responsibilities, safe defaults, and extensibility for future algorithms and pipelines.
Table of registered cryptographic algorithms with grouped columns for families and key usages.
| Algorithm ID | Display Name | Family | Key usage | Parameter sets | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGREEMENT | ASYMMETRIC | DIGEST | KEM | SYMMETRIC | AGREEMENT | DECAPSULATE | DECRYPT | DIGEST | ENCAPSULATE | ENCRYPT | MAC | SIGN | VERIFY | |||
AES | AES (CBC/GCM/CTR) | ✓ | ✓ | ✓ | AES-128 128-bitAES-192 192-bitAES-256 256-bit | |||||||||||
BIKE | BIKE | ✓ | ✓ | ✓ | ✓ | ✓ | BIKE-128 L1 / 128-bitBIKE-192 L3 / 192-bitBIKE-256 L5 / 256-bit | |||||||||
CHACHA20 | ChaCha20 (stream) | ✓ | ✓ | ✓ | ChaCha20-256 256-bit | |||||||||||
CHACHA20-POLY1305 | ChaCha20-Poly1305 (AEAD) | ✓ | ✓ | ✓ | — | |||||||||||
CMCE | Classic McEliece (CMCE) | ✓ | ✓ | ✓ | ✓ | ✓ | CMCE-460896 192-bitCMCE-460896F 192-bitCMCE-6688128 256-bitCMCE-6688128F 256-bitCMCE-6960119 256-bitCMCE-6960119F 256-bitCMCE-8192128 256-bitCMCE-8192128F 256-bit | |||||||||
DH | DH | ✓ | ✓ | FFDHE-2048 112-bitFFDHE-3072 128-bitFFDHE-4096 140-bitFFDHE-6144 152-bitFFDHE-8192 192-bit | ||||||||||||
DIGEST | SHA-2/SHA-3/SHAKE | ✓ | ✓ | — | ||||||||||||
ECDH | ECDH | ✓ | ✓ | ECDH-P256 128-bitECDH-P384 192-bitECDH-P521 256-bit | ||||||||||||
ECDSA | ECDSA | ✓ | ✓ | ✓ | ECDSA-P256 128-bitECDSA-P384 192-bitECDSA-P521 256-bit | |||||||||||
Ed25519 | Ed25519 | ✓ | ✓ | ✓ | Ed25519 128-bit | |||||||||||
Ed448 | Ed448 | ✓ | ✓ | ✓ | Ed448 224-bit | |||||||||||
ElGamal | ElGamal | ✓ | ✓ | ✓ | ElGamal-2048 112-bit | |||||||||||
Frodo | FrodoKEM | ✓ | ✓ | ✓ | ✓ | ✓ | FrodoKEM-976-AES 192-bitFrodoKEM-976-SHAKE 192-bitFrodoKEM-1344-AES 256-bitFrodoKEM-1344-SHAKE 256-bit | |||||||||
HMAC | HMAC (generic) | ✓ | ✓ | HMAC-SHA256 256-bitHMAC-SHA384 384-bitHMAC-SHA512 512-bithmac-custom template(macName: String, keySizeBits: Integer) | ||||||||||||
HQC | HQC | ✓ | ✓ | ✓ | ✓ | ✓ | HQC-128 L1 / 128-bitHQC-192 L3 / 192-bitHQC-256 L5 / 256-bit | |||||||||
LMS | LMS | ✓ | ✓ | LMS 128-bit | ||||||||||||
ML-DSA | MLDSA | ✓ | ✓ | ✓ | ML-DSA-44 L2 / 128-bitML-DSA-65 L3 / 192-bitML-DSA-87 L5 / 256-bit | |||||||||||
ML-KEM | Kyber (ML-KEM) | ✓ | ✓ | ✓ | ✓ | ✓ | ML-KEM-512 L1 / 128-bitML-KEM-768 L3 / 192-bitML-KEM-1024 L5 / 256-bit | |||||||||
NTRU | NTRU (KEM) | ✓ | ✓ | ✓ | ✓ | ✓ | NTRU-HPS-2048-509 128-bitNTRU-HPS-2048-677 192-bitNTRU-HPS-4096-821 192-bitNTRU-HPS-4096-1229 256-bitNTRU-HRSS-701 128-bitNTRU-HRSS-1373 256-bit | |||||||||
NTRULPRime | NTRU LPRime | ✓ | ✓ | ✓ | ✓ | ✓ | NTRULPR653 128-bitNTRULPR761 128-bitNTRULPR857 192-bitNTRULPR953 192-bitNTRULPR1013 192-bitNTRULPR1277 256-bit | |||||||||
RSA | RSA | ✓ | ✓ | ✓ | ✓ | ✓ | RSA-2048 112-bitRSA-3072 128-bitRSA-4096 140-bitrsa-custom template(keySizeBits: Integer, publicExponent: Integer) | |||||||||
SABER | SABER | ✓ | ✓ | ✓ | ✓ | ✓ | LightSaber-128 128-bitSaber-128 128-bitFireSaber-128 128-bitLightSaber-192 192-bitSaber-192 192-bitFireSaber-192 192-bitLightSaber-256 256-bitSaber-256 256-bitFireSaber-256 256-bit | |||||||||
SLH-DSA | SLHDSA | ✓ | ✓ | ✓ | SLH-DSA-SHA2-128f L1 / 128-bitSLH-DSA-SHA2-128s L1 / 128-bitSLH-DSA-SHA2-192f L3 / 192-bitSLH-DSA-SHA2-192s L3 / 192-bitSLH-DSA-SHA2-256f L5 / 256-bitSLH-DSA-SHA2-256s L5 / 256-bitSLH-DSA-SHAKE-128f L1 / 128-bitSLH-DSA-SHAKE-128s L1 / 128-bitSLH-DSA-SHAKE-192f L3 / 192-bitSLH-DSA-SHAKE-192s L3 / 192-bitSLH-DSA-SHAKE-256f L5 / 256-bitSLH-DSA-SHAKE-256s L5 / 256-bit | |||||||||||
SNTRUPrime | SNTRU Prime | ✓ | ✓ | ✓ | ✓ | ✓ | SNTRUP653 128-bitSNTRUP761 128-bitSNTRUP857 192-bitSNTRUP953 192-bitSNTRUP1013 192-bitSNTRUP1277 256-bit | |||||||||
SPHINCS+ | SPHINCSPLUS | ✓ | ✓ | ✓ | SPHINCS+-SHA2-128f L1 / 128-bitSPHINCS+-SHA2-128s L1 / 128-bitSPHINCS+-SHA2-192f L3 / 192-bitSPHINCS+-SHA2-192s L3 / 192-bitSPHINCS+-SHA2-256f L5 / 256-bitSPHINCS+-SHA2-256s L5 / 256-bitSPHINCS+-SHAKE-128f L1 / 128-bitSPHINCS+-SHAKE-128s L1 / 128-bitSPHINCS+-SHAKE-192f L3 / 192-bitSPHINCS+-SHAKE-192s L3 / 192-bitSPHINCS+-SHAKE-256f L5 / 256-bitSPHINCS+-SHAKE-256s L5 / 256-bit | |||||||||||
X-Wing | X-Wing | ✓ | ✓ | ✓ | ✓ | ✓ | X-Wing L3 / 192-bit | |||||||||
XMSS | XMSS | ✓ | ✓ | XMSS 128-bit | ||||||||||||
Xdh | Xdh | ✓ | ✓ | X25519 128-bitX448 224-bit | ||||||||||||
Layering
- Core (
zeroecho.core): low-level cryptographic engine. This includes algorithm definitions, stateful contexts, registry and metadata, specification and SPI contracts, and selected helpers required by algorithms (e.g., I/O, marshalling, tagging, auditing, policies). - SDK (
zeroecho.sdk): developer-facing composition layer built on the core. It provides content abstractions, fluent builders (both generic and per-algorithm), utilities for multi-recipient or composed flows, and supporting helpers used by those builders.
Package map (lib)
- zeroecho.core
- alg: concrete algorithms and small shared helpers used by algorithms.
- context: stateful operation interfaces (encryption, signatures, digests, MAC, agreement, KEM, and related variants).
- spec / spi: specification objects and construction/factory contracts.
- policy / audit / err / annotation: cross-cutting concerns within the core.
- io / marshal / tag: helpers used by algorithms and contexts at runtime.
- (root): provider/registry surface and core metadata.
- zeroecho.sdk
- content: content abstractions, basic implementations, and export facilities.
- builders: composition APIs, including generic builders and per-algorithm builders.
- guard: utilities for multi-recipient and other composed workflows.
- io / logging: supporting helpers used by the SDK layer and applications.
Design principles
- Stratification: the core remains focused on algorithms and correctness; the SDK focuses on developer ergonomics and composition.
- Composability: data flows are constructed through builders and content abstractions with predictable, chainable behavior.
- Extensibility: new algorithms, formats, and flows can be added with minimal impact on existing code.
- Safety: role-based binding and policy checks promote safe defaults and clear intent.
Intended use
Third-party applications depend on the lib module. Most integrations work at the SDK layer to compose
data pipelines, while the core layer provides the cryptographic foundation and guarantees. The project’s
structure and documentation aim to make entry points, responsibilities, and extension points explicit.
Modules
Module
Description
ZeroEcho foundation library: cryptographic core (
zeroecho.core) and the
high-level SDK (zeroecho.sdk) kept together in one artifact/module.