The Community Cryptography Specification Project (C2SP) is a project that facilitates the maintenance of cryptography specifications using software development methodologies, applying the successful processes of open source to specification documents.
Each specification is developed by its maintainers, who are responsible for reviewing and accepting changes, just like open source projects. This enables rapid, focused, and opinionated development.
C2SP specifications follow semantic versioning. While each specific tagged version is immutable, new versions can be created to improve or fix the specification, preserving backwards compatibility for v1.x.x versions.
A small team of stewards maintains the overall project, enforces the C2SP Code of Conduct, assigns new specifications to proposed maintainers, and may intervene in case of maintainer conflict or to replace lapsed maintainers, but they are otherwise not involved in the development of individual specifications (in their steward capacity).
Specifications should be linked using their c2sp.org short-links, like
https://c2sp.org/<spec-name> and https://c2sp.org/<spec-name>@<version>.
For a list of C2SP specifications, see the C2SP homepage. To learn more about consuming and maintaining C2SP specifications, see the C2SP Manual.
All C2SP specifications are licensed under CC BY 4.0. All code and data in this repository is licensed under the BSD 1-Clause License (LICENSE-BSD-1-CLAUSE).
Specifications
| c2sp.org/age | File encryption format |
| c2sp.org/age-plugin | The age plugin stdio protocol |
| c2sp.org/BLAKE3 | A fast cryptographic hash function (and PRF, MAC, KDF, and XOF) |
| c2sp.org/chacha20-poly1305-siv | Misuse-resistant, key-committing AEAD scheme |
| c2sp.org/chacha8rand | Fast cryptographic random number generator |
| c2sp.org/chunked-encryption | Authenticated, streaming, random-access encryption for large messages |
| c2sp.org/cocktail-dkg | Distributed Key Generation protocol for FROST |
| c2sp.org/det-keygen | Deterministic key pair generation from seed |
| c2sp.org/FLOE | Online and random access authenticated encryption |
| c2sp.org/https-bastion | Bastion (reverse proxy) protocol for exposing HTTPS services |
| c2sp.org/httpsig-pq | Post-quantum algorithms for HTTP Message Signatures |
| c2sp.org/jq255 | Prime order groups, key exchange, and signatures |
| c2sp.org/mtc-tlog | A profile of Merkle Tree Certificates (MTCs) that uses tiled transparency logs |
| c2sp.org/passkey-record | Interoperable format for server-side passkey storage |
| c2sp.org/phc-strings | Password Hashing Competition string format |
| c2sp.org/sequencehash | TupleHash-like functionality for arbitrary underlying hash functions |
| c2sp.org/signed-note | Cleartext signed messages |
| c2sp.org/static-ct-api | Static asset-based Certificate Transparency logs |
| c2sp.org/tlog-checkpoint | Interoperable transparency log signed tree heads |
| c2sp.org/tlog-cosignature | Witness cosignatures for transparency log checkpoints |
| c2sp.org/tlog-mirror | HTTP protocol to mirror transparency logs |
| c2sp.org/tlog-policy | Encoding for transparency log proof cosigning policies |
| c2sp.org/tlog-proof | Offline-verifiable transparency log proofs (or "spicy signatures") |
| c2sp.org/tlog-tiles | Static asset-based transparency log |
| c2sp.org/tlog-witness | HTTP protocol to obtain transparency log witness cosignatures |
| c2sp.org/upki-revocation | CRLite X.509 revocation data based on Clubcards |
| c2sp.org/vrf-r255 | Simplified ristretto255-based ECVRF ciphersuite |
| c2sp.org/well-known-ssh-hosts | .well-known HTTPS address for SSH known_hosts |
| c2sp.org/XAES-256-GCM | Extended-nonce AEAD from NIST-approved components |
Associated projects §
The C2SP organization hosts three other testing-focused projects:
-
Wycheproof, a large library of tests for cryptographic libraries against known attacks.
-
CCTV, the Community Cryptography Test Vectors, a repository of reusable test vectors.
-
x509-limbo, a suite of tests for X.509 certificate path validation.