A CLI client for the PQC server.
Project description
Universal PQC Backend
Secure. Scalable. Quantum-Safe.
The Universal PQC Backend is an industrial-grade secure storage and messaging platform designed for the post-quantum era. It leverages CRYSTALS-Dilithium5 for quantum-resistant transport security and AES-256-GCM for encryption-at-rest, ensuring data remains confidential against both classical and future quantum threats.
The system features a Dual-Stack Architecture, serving high-performance gRPC (for CLI and system integration) and HTTP/REST (for web clients) simultaneously.
Core Features
- Quantum-Safe Transport: All communication is secured using a custom OpenSSL build with Dilithium5 signatures and Kyber key encapsulation (via OQS-OpenSSL 1.1.1).
- Encrypted Persistence: Data is stored in a robust SQLite database, transparently encrypted with AES-256-GCM.
- Dual-Stack API:
- gRPC (Port 50051): High-throughput, strongly typed interface for internal services.
- HTTP/REST (Port 8080): Universal gateway for web apps, secured with API Keys.
- Cloud Scalability: Built-in support for offloading large encrypted files to AWS S3 (or MinIO).
- Secure File Transfer: Streaming upload/download capabilities with automatic encryption.
- Operational Dashboard: A real-time, dark-themed control panel for system monitoring and data management.
Architecture
The system is built as a hybrid C++/Python application containerized with Docker:
- Server (C++): Core logic, cryptographic operations, DB management, and S3 client.
- Client (Python): A CLI tool for interacting with the server via gRPC.
- Libraries:
liboqs,OQS-OpenSSL,gRPC,nlohmann/json,cpp-httplib.
Installation
The entire system is containerized. Building the image compiles the full custom cryptographic toolchain.
Prerequisites
- Docker & Docker Compose (optional)
- Linux Environment (Ubuntu 20.04+ recommended)
Build & Run
The included setup.sh script handles building the Docker image, generating PQC certificates, and running integration tests.
./setup.sh
To run the server manually after building:
docker run -d --name pqc-server \
-p 50051:50051 -p 8080:8080 \
-v "$(pwd)/certs:/app/certs" \
-v "$(pwd)/data:/app/data" \
pqc-server
Usage
1. Web Dashboard
Access the secure dashboard at http://localhost:8080.
- Status: View real-time server health and active protocols.
- Store/Retrieve: Encrypt and store messages directly from the browser.
- Default API Key:
changeme(Configure inconfig.json).
2. CLI Client
The Python CLI is installed within the container or can be installed locally.
Option A: Install via PyPI Once published, you can install the client directly:
pip install pqc-client
Option B: Manual Usage
# Inside the container
docker exec -it pqc-server pqc-client --help
Store a Message:
pqc-client store "Top Secret Payload"
Upload a Secure File:
pqc-client upload-file ./confidential.pdf
Retrieve a Message:
pqc-client retrieve <MESSAGE_ID>
Configuration
Configuration is managed via config.json.
{
"address": "0.0.0.0:50051",
"storage_path": "data/storage.bin",
"http_api_key": "your-secure-api-key",
"use_s3": false,
"s3_bucket": "my-secure-bucket",
"s3_region": "us-east-1"
}
License
Copyright (c) 2024. All rights reserved. Licensed under the Apache License, Version 2.0.
Contributing
We are actively seeking:
- Testers: To verify the system on various Linux distributions (Fedora, Arch, Debian) and report build/runtime issues.
- Contributors: To help implement additional PQC algorithms (e.g., Falcon, SPHINCS+) and enhance the S3 integration.
Please submit issues and pull requests to help make post-quantum security accessible to everyone.
Acknowledgments & Legal
This project stands on the shoulders of giants. We explicitly credit the following open-source projects:
- Open Quantum Safe: For
liboqsand the OQS-OpenSSL fork. (MIT License) - gRPC: For the high-performance RPC framework. (Apache 2.0 License)
- nlohmann/json: For JSON parsing. (MIT License)
- cpp-httplib: For the HTTP/REST gateway. (MIT License)
- SQLite: For the database engine. (Public Domain)
Special thanks to @Mester-Oxdan for providing the system and compilation support!
Disclaimer: While this project uses NIST-selected algorithms (CRYSTALS-Dilithium), the software itself has not undergone FIPS 140-3 certification. It is intended for industrial research and forward-looking security implementation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pqc_client-0.1.0.tar.gz.
File metadata
- Download URL: pqc_client-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a64fd89f3b49c029867584101416ea13022c84648a61994fa3fe4919a9d172cf
|
|
| MD5 |
51c26650560c9a0c93671ac4833feba7
|
|
| BLAKE2b-256 |
cead0f73e76969db201eadfc63262997e4f363203148abdaa5e2b30eb3c4b5a2
|
File details
Details for the file pqc_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pqc_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e3c84b6530d40633c889b36bf867d948440ca19e97ec337ca637f818785f14d
|
|
| MD5 |
c1a940233c9b36d105d36119e82d7142
|
|
| BLAKE2b-256 |
db2946973797b70160c8ddf2e0c88b552b7ac936bb11634a7a4a6e00e7540bd0
|