| Crates.io | qssl |
| lib.rs | qssl |
| version | 0.1.0-alpha |
| created_at | 2025-09-25 16:11:25.840863+00 |
| updated_at | 2025-09-25 16:11:25.840863+00 |
| description | Patent-free quantum-safe TLS using SPHINCS+ KEM instead of Kyber. Experimental implementation for research. |
| homepage | |
| repository | https://github.com/Paraxiom/qssl |
| max_upload_size | |
| id | 1854811 |
| size | 275,914 |
A patent-free post-quantum TLS implementation using SPHINCS+ KEM instead of Kyber. Experimental implementation for research and testing quantum-safe protocols without patent concerns.
Version 0.2.0 - Now with patent-free SPHINCS+ KEM as default!
QSSL is a research project exploring post-quantum TLS without patent encumbrances:
For production quantum-safe TLS, consider contributing to rustls or waiting for official TLS PQC extensions.
QSSL is actively under development as a research platform. Core cryptographic components are functional with ongoing experimentation.
While projects like rustls and OpenSSL are adding PQC support to existing TLS, QSSL explores:
Terminal 1:
cargo run --example echo_server
Terminal 2:
cargo run --example echo_client
use qssl::{QsslConnection, QsslContext};
// Client
let conn = QsslConnection::connect("server:4433").await?;
conn.send(b"Hello Quantum World").await?;
let response = conn.recv().await?;
// Server
let listener = TcpListener::bind("0.0.0.0:4433").await?;
let (stream, _) = listener.accept().await?;
let conn = QsslConnection::accept(stream).await?;
| Suite | KEM | Signature | Cipher | Hash | Security | Patent-Free |
|---|---|---|---|---|---|---|
| 0x0010 | SPHINCS+ | Falcon512 | AES-128-GCM | SHA256 | 128-bit | â |
| 0x0011 | SPHINCS+ | Falcon512 | AES-256-GCM | SHA384 | 192-bit | â |
| 0x0012 | SPHINCS+ | Falcon1024 | AES-256-GCM | SHA512 | 256-bit | â |
| 0x0013 | SPHINCS+ | SPHINCS-256f | AES-256-GCM | SHA384 | 192-bit | â |
| 0x0014 | SPHINCS+ | Falcon512 | ChaCha20 | SHA384 | 192-bit | â |
| 0x0001 | Kyber512 | Falcon512 | AES-128-GCM | SHA256 | 128-bit | â ïļ |
| 0x0002 | Kyber768 | Falcon512 | AES-256-GCM | SHA384 | 192-bit | â ïļ |
| 0x0003 | Kyber1024 | Falcon1024 | AES-256-GCM | SHA512 | 256-bit | â ïļ |
âââââââââââââââââââââââââââââââââââââââââââ
â Application Layer â
âââââââââââââââââââââââââââââââââââââââââââĪ
â QSSL Connection â
â (Handshake, State Machine, Context) â
âââââââââââââââââââââââââââââââââââââââââââĪ
â QSSL Transport â
â (Records, Encryption, Sequencing) â
âââââââââââââââââââââââââââââââââââââââââââĪ
â Post-Quantum Cryptography â
â (Kyber, Falcon, SPHINCS+, etc.) â
âââââââââââââââââââââââââââââââââââââââââââĪ
â Network (TCP/UDP) â
âââââââââââââââââââââââââââââââââââââââââââ
# Build library
cargo build --release
# Run tests
cargo test
# Run benchmarks
cargo bench
# Build examples
cargo build --examples
The project includes comprehensive tests:
Run all tests:
cargo test
Run with logging:
RUST_LOG=debug cargo test
Benchmark results on Apple M1:
QSSH can use QSSL as its transport layer:
use qssl::integrations::qssh::QsshTransport;
let transport = QsshTransport::connect("server:22", config).await?;
// Use QSSL for quantum-safe SSH
QNGINX can use QSSL for HTTPS:
server {
listen 443 qssl;
qssl_certificate cert.pem;
qssl_certificate_key key.pem;
qssl_ciphers QSSL_KYBER768_FALCON512_AES256_SHA384;
}
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
EXPERIMENTAL SOFTWARE - This is a research project, not production-ready software:
This project is dual-licensed under MIT and Apache-2.0.
pqcrypto crate familyQSSL - Securing communications for the quantum era