Specifications, vectors and Rust implementations for research into post-quantum messaging.
QSL explores hybrid message-key derivation, sparse post-quantum key agreement and explicit failure/recovery behavior. This repository contains the protocol drafts, conformance inputs, reference implementation and qsc client core used by the desktop prototype.
Warning
Research stage. Not independently audited or production-ready. Do not use QSL for safety-critical communications.
| You want to… | Read |
|---|---|
| Understand the design | Canonical specifications |
| Assess the evidence | Public evidence guide and claim boundary |
| Inspect an implementation | Rust reference implementation and client core |
| Review expected behavior | Suite-2 conformance inputs |
| Contribute | Contribution guide |
| Report a sensitive finding | Security policy |
QSL uses four presentation labels: Contact Capsule for invitation data, Key Continuity for key evolution, Commit Path for durable delivery requirements, and Quiet Transit for proposed metadata and timing research. The vocabulary guide defines their scope and maturity. These labels do not rename algorithms or establish new security guarantees.
Suite-2 specifies classical and post-quantum message-key chains combined for application encryption. Periodic key-agreement events refresh the post-quantum state while message-key chains advance between exchanges. The specifications define the key schedule, authentication, ordering and rejection rules.
| Design area | Review question |
|---|---|
| Hybrid key derivation | Which secrets contribute to each message key, and under which compromise assumptions? |
| Key-refresh transitions | What authenticates an epoch change, and what happens after loss or reordering? |
| Durable state | Which commit authorizes external output, and which bytes must a retry preserve? |
| Untrusted input | What bounds parsing, skipped keys, work and retained state? |
| Metadata | Which identifiers, lengths, timings and access patterns remain visible? |
Start with DOC-CAN-003 and DOC-CAN-004 in the canonical directory. Architecture terminology describes a construction; it does not establish a complete security proof or release readiness.
Research lineage: the drafts use Sparse Continuous Key Agreement (SCKA), a term introduced by Auerbach et al. (USENIX Security 2025). QSL's specific construction must be assessed against its own specifications, implementation and evidence.
The repository publishes vectors, negative-path tests and bounded formal/model work. The release-readiness map records their scope and gaps; traceability connects requirements to artifacts.
Read evidence against its named revision, configuration and assumptions. A passing test or bounded symbolic result does not establish computational composition, implementation equivalence, side-channel freedom or production safety. Historical reports are retained with their original scope.
The desktop prototype has a separate feature status. A core-library or CLI experiment is not evidence that the desktop can perform the same operation. See qsl-desktop.
docs/canonical/ Protocol specifications
docs/public/ Evidence navigation and claim boundaries
inputs/suite2/ Conformance inputs
tools/refimpl/ Rust reference implementation
qsl/qsl-client/qsc/ Client core and laboratory CLI
formal/ Bounded models and analysis
qsc is a laboratory and operator interface. Its commands and test affordances are not the desktop product specification. Follow the reviewer and developer reading paths before running experiments.
We welcome specification ambiguities, reproducible bugs, missing negative cases and independent implementation work. Include the affected revision and enough context to reproduce a result. Discuss protocol or implementation changes before starting a large PR; accepted interfaces and review requirements still apply.
See CONTRIBUTING.md, SUPPORT.md and CODE_OF_CONDUCT.md. Report vulnerabilities privately through SECURITY.md.
Desktop prototype · Relay · Encrypted-object service
AGPL-3.0-only. See LICENSE. Service or support offerings do not change the license on this source.