Coz Rust
A Rust implementation of the Coz cryptographic JSON messaging specification.
What is Coz?
Coz is a cryptographic JSON messaging specification that uses digital signatures and hashes to ensure secure, human-readable, and interoperable communication.
Example Coz Message
Features
- Type-safe - Compile-time algorithm correctness via generics
- Spec compliant - Cross-verified with Go reference implementation
- Non-malleable - ECDSA signatures normalized to low-S form
- Minimal dependencies - RustCrypto ecosystem only
- MSRV 1.85 - Minimum supported Rust version
Algorithm Support
| Algorithm | Status | Notes |
|---|---|---|
| ES256 | ✅ | ECDSA P-256 |
| ES384 | ✅ | ECDSA P-384 |
| ES512 | ✅ | ECDSA P-521 |
| Ed25519 | ✅ | EdDSA |
| Ed25519ph | 🔮 Future | Pre-hashed Ed25519 |
| ES256k | 🔮 Future | secp256k1 for Bitcoin/Ethereum |
| ES224 | ⏸️ Deferred | P-224 crate less mature |
Usage
use ;
// Generate a new ES256 signing key
let key = generate;
// Create and sign a message
let coz = new
.msg
.typ
.sign?;
// Verify the message
assert!;
// Get key thumbprint
println!;
API Overview
Key Types
// Generate keys
let key = generate;
let verifying_key = key.verifying_key;
let thumbprint = key.thumbprint;
// Sign raw digests
let sig = key.sign;
let valid = verifying_key.verify;
PayBuilder
let pay = new
.msg // Message content
.typ // Application type
.now // Unix timestamp
.dig // External digest
.field // Custom fields
.build; // Build Pay
// Or sign directly
let coz = new.msg.sign?;
Coz Message
// Sign a payload
let coz = sign?;
// Verify
assert!;
// Access fields
let cad = coz.cad; // Canonical digest
let czd = coz.czd; // Coz digest
let sig = coz.sig; // Signature bytes
Canonicalization
use ;
// Extract field order
let fields = canon?;
// Generate canonical form
let compact = canonical?;
let ordered = canonical?;
// Compute canonical digest
let cad = ?;
Revocation
use ;
// Create self-revocation
let rvk_coz = revoke?;
// Check revocation validity
assert!;
Specification
See the Coz Specification for full details.
Related Projects
License
BSD-3-Clause. See LICENSE.md.
Coz is created by Cyphr.me.