Wire format, CBOR/COSE codec, and evidence builder for CPoP
Part of the Cryptographic Proof of Process (CPoP) specification — an LF Decentralized Trust Lab
Overview
cpop-protocol is the reference implementation of the CPoP wire format as
defined in draft-condrey-cpop-protocol.
It provides the types, codec, and cryptographic logic needed to build and
verify CPoP Evidence Packets and Writers Authenticity Reports.
Quick Start
[]
= "0.1"
use ;
use DocumentRef;
use SigningKey;
use OsRng;
// Create a document reference
let document = new;
// Build evidence
let signing_key = generate;
let mut builder = new.unwrap;
builder.add_checkpoint.unwrap;
let = builder.finalize.unwrap;
// Verify evidence
let verifier = new;
assert!;
Modules
| Module | Description |
|---|---|
evidence |
Builder and Verifier — build and verify evidence packets |
codec |
CBOR/COSE encoding (RFC 8949, RFC 9052) |
crypto |
SHA-256, HMAC, Ed25519 signatures, EvidenceSigner trait |
rfc |
Wire format types: EvidencePacket, DocumentRef, CBOR tags |
identity |
X.509 certificate generation, CSR, Proof-of-Possession |
c2pa |
C2PA manifest builder with CPoP evidence assertions |
forensics |
Entropy analysis and transcription verification |
baseline |
Behavioral baseline operations |
Features
| Feature | Default | Description |
|---|---|---|
std |
Yes | Standard library support |
full |
No | All features enabled |
wasm |
No | WebAssembly bindings via wasm-bindgen |
apple-secure-enclave |
No | Apple Secure Enclave support |
Contributing
See CONTRIBUTING.md for DCO sign-off requirements and contribution workflow.
License
Apache License, Version 2.0. See LICENSE.
Part of the proof-of-process repository.