ZelEn is a production-grade quantum-safe encryption toolkit implementing the ZelEn protocolโ โ ML-KEM + ML-DSA (NIST FIPS 203/204) with AES-256-GCM and Argon2id passphrase protection.
# Pull the image
docker pull rocheston/zelen:latest
# Check version
docker run --rm rocheston/zelen:latest --version
# Launch the web playground at http://localhost:8888
docker run -p 8888:8888 rocheston/zelen:latest
ZelEn ships a built-in Gruvbox-themed web UI for key generation, encryption, decryption, signing, and inspection โ no CLI needed.
docker run -d \
--name zelen-playground \
-p 8888:8888 \
rocheston/zelen:latest
# Open http://localhost:8888 in your browser
Mount a local directory as /data to work with files:
alias zelen='docker run --rm -v $(pwd):/data -w /data rocheston/zelen:latest'
# Generate a key pair (PQ5 suite โ ML-KEM-1024 + ML-DSA-87)
zelen keys generate --subject [email protected] --name "Alice" --out alice
# List key info
zelen keys inspect --key alice.zkey
# Inspect a public key
zelen keys inspect --key alice.zpub
# Encrypt a text message
zelen encrypt text \
--recipient alice.zpub \
--text "Hello, quantum world!" \
--out message.zelen
# Encrypt a file
zelen encrypt file \
--recipient alice.zpub \
--input secret.pdf \
--out secret.zelen
# Encrypt and sign
zelen encrypt text \
--recipient alice.zpub \
--text "Signed message" \
--sign-key sender.zkey \
--out signed.zelen
# Decrypt a message
zelen decrypt text \
--key alice.zkey \
--input message.zelen
# Decrypt a file
zelen decrypt file \
--key alice.zkey \
--input secret.zelen \
--out recovered.pdf
# Decrypt with passphrase from env
ZELEN_PASS=mysecret zelen decrypt text \
--key alice.zkey \
--passphrase-env ZELEN_PASS \
--input message.zelen
# Sign a file
zelen sign --key alice.zkey --input report.pdf --out report.sig
# Verify a signature
zelen verify --key alice.zpub --input report.pdf --sig report.sig
# Convert binary .zelen to ASCII armor (.asc)
zelen armor --input message.zelen --out message.zelen.asc
# Dearmor back to binary
zelen dearmor --input message.zelen.asc --out message.zelen
# View .zelen container header fields
zelen inspect --input message.zelen
# Run diagnostics
zelen doctor
# Run self-test suite
zelen self-test
# Run benchmarks
zelen bench
# Generate shell completions (bash/zsh/fish)
zelen completions bash > /etc/bash_completion.d/zelen
| Suite | KEM | Signature | Security |
|---|---|---|---|
pq3 | ML-KEM-768 | ML-DSA-65 | NIST Level 3 |
pq5 (default) | ML-KEM-1024 | ML-DSA-87 | NIST Level 5 |
pq5-slh | ML-KEM-1024 | SLH-DSA-256 | NIST Level 5 + stateless hash sig |
| Variable | Description |
|---|---|
ZELEN_PASS | Passphrase for key unwrapping (use with --passphrase-env ZELEN_PASS) |
ZELEN_LOG | Log level: error, warn, info, debug, trace |
ZELEN_CONFIG | Path to config file (default: ~/.zelen/config.toml) |
services:
zelen:
image: rocheston/zelen:latest
ports:
- "8888:8888"
volumes:
- ./keys:/home/zelen/keys
restart: unless-stopped
AuthenticationFailed errors, no oracle leakagezeroize crateSee SECURITY.mdโ for the full security policy.
| Tag | Description |
|---|---|
latest | Most recent stable release |
1.2.0 | ZelEn v1.2.0 |
Platform: linux/amd64
Content type
Image
Digest
sha256:d8e2cc2e0โฆ
Size
33.3 MB
Last updated
4 months ago
docker pull rocheston/zelen