CCS Conformance Checker
An independent conformance checker for CCS (Correctover Conformance Shape) receipts. It imports zero CCS code — every check is implemented directly from the receipt specification, so a passing result is third-party evidence rather than self-certification by the producer.
Install
pip install ccs-conformance-checker
Run it
Zero arguments runs the bundled minimal vector directory (one valid, Ed25519-signed L1 receipt) so a fresh install immediately produces a real result instead of a usage error:
ccs-conformance-check
Audit a vectors directory of your own:
ccs-conformance-check /path/to/vectors
Machine-readable output:
ccs-conformance-check --json /path/to/vectors
A vectors directory needs a manifest.json mapping every case file to its sha256,
plus the receipt case directories themselves.
What it checks
- Structure — exact field envelope for L1 and L2 receipts, required non-empty fields
- Signature — Ed25519 verification over JCS (RFC 8785) canonical bytes
- Semantics — cross-field consistency, temporal windows, identity binding
- Chain — sequence contiguity, trace agreement, prev-hash anchoring to the predecessor receipt's computed digest, nonce uniqueness
- Canonicalization — JCS edge cases including signed
-0/0
Output and exit codes
Text mode prints one line per case plus a summary. --json emits a single JSON
document on stdout (human-readable notes go to stderr) with per-case verdicts and
per-check detail.
Exit code 0 means every vector matched its expected outcome; non-zero means at
least one did not. The built-in zero-argument demo always exits 0.
1.4.3
chain:prev-hash-matchesnow anchors to the computed L1 digest of the predecessor receipt bytes, instead of only cross-checking the two declarations (runtime-context.prev_receipt_digestandchain.json::expected_prev_digests) against each other. Regression vector10e-prev-hash-unanchoredadded — a chain whose declarations agree with each other but disagree with the actual predecessor digest is now correctly rejected. Found by Joel Hillier (Certisyn) during independent interoperability review (2026-08-30).chain.json::expected_prev_digestsis treated as advisory metadata (cross-check only), not as the authority for anchoring.- Adds JCS (RFC 8785) canonicalization-v1 vector support, including signed
-0/0edge cases.
License
Apache-2.0 for the package. Bundled demo vectors originate from the CC0 1.0 vector corpus; the checker core carries an MIT file-level notice.
🇨🇳 国内用户 · 支付宝一键购买
本工具的合规授权与批量能力可通过支付宝 SkillPay 获取:
- 打开货架:https://skillpay.alipay.com/public/correctover
- 或把这行发给你的 AI 助手:请通过 SkillPay 购买并安装 Skill「CCS收据批量审计」
China users: purchase via Alipay SkillPay — see above.
Metadata
Release files for ccs-conformance-checker 1.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ccs_conformance_checker-1.4.3-py3-none-any.whl | Python 3 | none | any | Details for ccs_conformance_checker-1.4.3-py3-none-any.whl |
Release files / ccs_conformance_checker-1.4.3-py3-none-any.whl
| Download URL | ccs_conformance_checker-1.4.3-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87a57dddea18baba2cb69e8e37a47d5e2bcaaddddf94339ac88fa892505748ad
|
|
BLAKE2b-256 checksum How to use checksums |
1f1ca3cbff3faf0f0cbf746a1e2b71fc4052045c952f70520fb0d1161656ef73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Security for ccs-conformance-checker 1.4.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.