Skip to content

feat(ltk_sig): add mod signing crate#173

Open
moonshadow565 wants to merge 3 commits into
mainfrom
ltk_sig
Open

feat(ltk_sig): add mod signing crate#173
moonshadow565 wants to merge 3 commits into
mainfrom
ltk_sig

Conversation

@moonshadow565

Copy link
Copy Markdown
Contributor

Almost fully vibecoded over previously unpushed handrolled code.

moonshadow565 and others added 2 commits July 11, 2026 21:08
…ide_chunk

The single source of truth for how override data appears inside a patched
WAD (file-type identification, audio kept uncompressed, everything else
Zstd level 3), so statement extraction can record compressed checksums
that match the merged WAD byte-for-byte.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- COSE/CWT token layer: unsigned statements (identity = SHA-256 of the
  bytes), platform-signed attestations (mandatory expiry, optional account
  binding) and roots, content-addressed statement sets, and the baked
  platform set with enforced lane policies
- set digests are RFC 6962 Merkle tree hashes over the statement hashes
  (domain-separated leaf/node hashing, verified against the CT known-answer
  vectors); the canonical encoding still pins the exact file bytes, and the
  same signed digest anchors RFC 9162 audit paths: the overlay builder
  extracts one compact InclusionProof per used statement
  (StatementSet::prove, 32*log2(n) bytes) so a runtime holding only the
  baked platform set checks root signature -> audit path -> statement hash
  without ever reading a set file
- trust: per-platform root ratchet (baked freshness floor, forward-only)
  and the attestation rule (direct + membership + inclusion lanes, any-of
  across platforms); bundled sets are keyed by (name, digest) so same-named
  sets from different platforms cannot shadow each other
- verify: verification context that attests statements once and answers
  per-file queries from a lookup table; file digests cover the decompressed
  bytes
- base_skin (feature `base-skin`): merged-WAD base-skin diagnostics against
  the original game WAD, with the resolve walk generalized over chunk
  sources and a canonical WAD TOC digest derivation
- league-sig: ceremony and verification CLI (keygen, pubkey, statement
  extraction, set building, root signing, overlay build, verify) --
  statements are extracted over the virtual merged WAD and sign exactly the
  mesh references the base-skin check enforces; sign-root derives iat per
  the supersession rule, max(now, predecessor + 1), with --predecessor
  guarded against foreign tokens

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes the security-audit CI failure: crossbeam-epoch 0.9.18's
fmt::Pointer impl dereferences invalid pointers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant