Rust crates for an append-only Merkle log hashed as RFC 9162 (Certificate Transparency Version 2.0). A log gives each reader an inclusion proof for one entry and a consistency proof between two signed tree heads.
The guide, https://stackhands.github.io/rfc9162/, is an mdBook in docs/: installation, a getting-started program, a tutorial, how-to guides, topic pages and the rustdoc API reference. scripts/build-docs.sh builds the site.
| Crate | Role |
|---|---|
rfc9162 |
Leaf hashes, the root, inclusion and consistency proofs, and the Head a caller signs. |
rfc9162-tiles |
Tiled storage in the C2SP tlog-tiles layout, key sidecars, and Ed25519 signed checkpoints. |
rfc9162-log |
Sorted runs whose manifests are log entries, so a checkpoint covers the index, plus the rfc9162-sidecar binary. |
The three crates share one version. Install the same version of each.
cargo add rfc9162@0.10.0
cargo add rfc9162-tiles@0.10.0
cargo add rfc9162-log@0.10.0
rfc9162-log installs the sidecar binary:
cargo install rfc9162-log --version 0.10.0 --locked
- RFC 9162, Certificate Transparency Version 2.0: https://www.rfc-editor.org/rfc/rfc9162
- C2SP tlog-tiles: https://c2sp.org/tlog-tiles
- C2SP tlog-checkpoint: https://c2sp.org/tlog-checkpoint
- C2SP signed-note: https://c2sp.org/signed-note
- C2SP tlog-cosignature: https://c2sp.org/tlog-cosignature
The rfc9162 tests carry the RFC 6962 test vectors, which RFC 9162 keeps.
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
CONTRIBUTING.md has the changelog fragments, the version pin and the release steps. The crates were split out of deedar. MIT.
Copyright (c) rfc9162 developers
rfc9162 is one of the stackhands tools for building, installing and maintaining an HPC software stack with EasyBuild on top of EESSI.
| Tool | Job | Docs |
|---|---|---|
| eb-stack | Solve, shard and plan an EasyBuild build list; admit builds under a scratch inode budget | docs |
| eb-staged-rebuild | Rebuild an installation in a staged tree and swap it in, so running jobs keep their paths | docs |
| eessi-arch-guard | Reload EESSI in a Slurm task that inherited it for another CPU or GPU | docs |
| eb-local | Install software with EasyBuild on top of EESSI into a directory a user or project owns | docs |
| eb-keep-logs | Keep a failed build's EasyBuild log and command output; rotate a pipeline's log tree | docs |
| rfc9162 | Append-only Merkle logs hashed as RFC 9162, with tiled storage and signed checkpoints | docs |
| zig-common | The shared Zig library under the Zig tools: system calls, checked files, child processes | docs |