Skip to content

Commit 667110f

Browse files
security(deps): clear cargo-audit vuln + 2 unmaintained-crate warnings (#31)
Resolves: - RUSTSEC-2026-0104 (reachable panic in rustls-webpki CRL parsing) via cargo update -p rustls-webpki --precise 0.103.13 - RUSTSEC-2025-0119 (number_prefix unmaintained) by bumping indicatif 0.17 → 0.18 — 0.18 replaces number_prefix with unit-prefix internally; only ProgressBar / ProgressStyle are used (main.rs:823-832), stable API - RUSTSEC-2021-0127 (serde_cbor unmaintained) by replacing with ciborium 0.2 in the verisim-gated proof_encoding module; 14/14 proof_encoding tests pass under --features verisim Remaining: RUSTSEC-2025-0134 (rustls-pemfile via tonic 0.12) — deferred; tonic 0.13 is a breaking-API bump and warrants its own branch. Verified: cargo check --lib, cargo check --bin echidna, cargo check --features verisim --lib all clean; cargo audit drops from 1 error + 3 warnings to 0 errors + 1 warning. Co-authored-by: Claude <noreply@anthropic.com>
1 parent 78127c6 commit 667110f

3 files changed

Lines changed: 23 additions & 38 deletions

File tree

Cargo.lock

Lines changed: 16 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ thiserror = "2"
3535
# CLI
3636
clap = { version = "4", features = ["derive"] }
3737
colored = "3"
38-
indicatif = "0.17"
38+
indicatif = "0.18"
3939

4040
# Logging
4141
tracing = "0.1"
@@ -67,7 +67,7 @@ uuid = { version = "1", features = ["v4", "serde"] }
6767
lazy_static = "1"
6868

6969
# VeriSimDB integration (optional — behind "verisim" feature)
70-
serde_cbor = { version = "0.11", optional = true }
70+
ciborium = { version = "0.2", optional = true }
7171
sha2 = { version = "0.10", optional = true }
7272

7373
# Chrono for timestamps
@@ -86,7 +86,7 @@ typed-wasm = { path = "crates/typed_wasm" }
8686
default = []
8787
chapel = [] # Enable Chapel parallel proof search (requires Zig FFI library)
8888
verisim = [ # Enable VeriSimDB persistent proof storage (8-modality octads)
89-
"dep:serde_cbor",
89+
"dep:ciborium",
9090
"dep:sha2",
9191
]
9292
# Enable the live-prover test suite (tests/live_prover_suite.rs). Gated so that

src/rust/proof_encoding.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ use crate::provers::ProverKind;
2424
/// - Self-describing (VeriSimDB can introspect without schema)
2525
/// - Matches VeriSimDB's semantic modality expectation
2626
pub fn encode_proof_state_cbor(proof: &ProofState) -> Result<Vec<u8>> {
27-
serde_cbor::to_vec(proof).context("Failed to CBOR-encode ProofState")
27+
let mut buf = Vec::new();
28+
ciborium::into_writer(proof, &mut buf).context("Failed to CBOR-encode ProofState")?;
29+
Ok(buf)
2830
}
2931

3032
/// Decode a ProofState from CBOR bytes.
3133
pub fn decode_proof_state_cbor(bytes: &[u8]) -> Result<ProofState> {
32-
serde_cbor::from_slice(bytes).context("Failed to CBOR-decode ProofState")
34+
ciborium::from_reader(bytes).context("Failed to CBOR-decode ProofState")
3335
}
3436

3537
/// Generate a stable, content-addressed proof identity for use as a VeriSimDB octad key.

0 commit comments

Comments
 (0)