Skip to content

Verify the release manifest signature before installing (0.4.2) - #46

Merged
ShahriarAhnaf merged 2 commits into
mainfrom
sec/signed-manifest
Oct 10, 2026
Merged

ShahriarAhnaf merged 2 commits into
mainfrom
sec/signed-manifest

Conversation

@ShahriarAhnaf

@ShahriarAhnaf ShahriarAhnaf commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

The installer reads <channel>.signed.json instead of <channel>.json:

{"manifest": "<the manifest text>", "signature": "<hex RSA signature>"}

and refuses a manifest that no key in RELEASE_KEYS signed. Applies to simantic install, the engine fetched on the first Sim(...), and the Rust engine.

  • Verification is RSA PKCS#1 v1.5 with SHA-256, written against the standard library. No new dependency.
  • RELEASE_KEYS is a list so a key can be rotated; it holds one key today.
  • Checksums in the manifest stay mandatory, so the signed manifest pins every artifact.
  • Bumps the version to 0.4.2. Tagging v0.4.2 on the merge commit publishes to PyPI.

Ready to release. Signed manifests are live for both products (cli 0.6.9, pyrite 0.6.3).

Tests

  • 188 passed, 7 skipped.
  • End to end against the live release bucket with this branch: install("sim"), install_engine() and install_rust_engine() all verified the signature, checked the checksum and installed. The installed sim reports 0.6.9.
  • A tampered copy of each live manifest is refused.

🤖 Generated with Claude Code

The installer now reads <channel>.signed.json, the manifest text plus an
RSA signature over it, and refuses a manifest that no listed release key
signed. Checksums in the manifest were already mandatory; this is what
makes the manifest itself trustworthy.

Verification is RSA PKCS#1 v1.5 with SHA-256 in the standard library, so
the package gains no dependency.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@ShahriarAhnaf
ShahriarAhnaf marked this pull request as ready for review October 10, 2026 06:53
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@ShahriarAhnaf ShahriarAhnaf changed the title Verify the release manifest signature before installing Verify the release manifest signature before installing (0.4.2) Oct 10, 2026
@ShahriarAhnaf
ShahriarAhnaf merged commit 01db2e1 into main Oct 10, 2026
7 checks passed
@ShahriarAhnaf
ShahriarAhnaf deleted the sec/signed-manifest branch October 10, 2026 07:34
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