csp/ in this repository has no cryptography in it at all.
It is a local binding — it carries the six operations between two processes so the reference machine can be driven over a socket, and it uses the normative verb names so code ports cleanly. It performs no authentication, no encryption, and no replay protection.
Do not put it on an untrusted network. The normative Cooren Signal
Protocol is a separate work with chain of custody, deaf-by-default
admission and an armored session layer; csp/adapter.py is the seam onto
it, and docs/PROTOCOL.md records what lives where.
The six axioms and three completeness properties are enforced within a single machine, in memory, in one process. They say nothing about:
- the operating system underneath
- other processes on the same host
- anything crossing a machine boundary
- whether the option set was the right option set
That last one is the standing caveat: Cooren makes decisions accountable. It does not make them correct.
Tokens are 128 bits from secrets.token_bytes, never reissued, scoped to
one session, revoked when it commits, and checked at use rather than at
issue. They appear in no record — records carry a fingerprint.
They are held in process memory. There is no hardware backing, no enclave, and no protection against a debugger attached to the process.
Tokens are deliberately not persisted. Persisting them would turn a stolen backup into a working credential.
Open an issue for anything in this repository. If you find something you would rather not post publicly, say so in an issue without the details and a private channel can be arranged.
Findings in the normative Signal Protocol belong to that project, not this one.