Skip to content

End-Cell: seal + rail verify (pinned-key, fail-closed)#9

Merged
ValidPay-io merged 1 commit into
mainfrom
feat/end-cell-rail
Jun 26, 2026
Merged

End-Cell: seal + rail verify (pinned-key, fail-closed)#9
ValidPay-io merged 1 commit into
mainfrom
feat/end-cell-rail

Conversation

@ValidPay-io

Copy link
Copy Markdown
Owner

Adds full End-Cell support to the python SDK (it previously had only split_key).

  • crypto: split_key_pieces/combine_key_piecesbyte-identical to the node SDK + website verifier.
  • rail.py: fetch_rail_piece + pinned Ed25519 verification (via cryptography); fails closed on missing/revoked/bad-sig/non-pinned-key.
  • client: create_end_cell_intent (Model A — ShareA + [keyhalve, platform]); verify_intent fetches platform share(s) from API + rail share from KeyHalve rail and XOR-combines. rail_base_url/rail_public_key_spki options.
  • 7 new tests pass. Hold publish until the End-Cell cutover.

🤖 Generated with Claude Code

- crypto: split_key_pieces/combine_key_pieces (byte-identical to node + verifier).
- rail.py: fetch_rail_piece + pinned Ed25519 verify (cryptography) — fail-closed.
- client: create_end_cell_intent (ShareA + keyhalve+platform pieces); verify_intent
  end_cell branch fetches platform shares (API) + rail share (rail), XOR-combines.
  rail_base_url / rail_public_key_spki client options.
- tests: split/combine round-trip; rail verify, tamper/non-pinned/wrong-holder/404/409 fail-closed.
7 end-cell tests pass; suite green (pre-existing numpy-binding env failures unrelated).
HOLD publish until the End-Cell cutover.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ValidPay-io
ValidPay-io merged commit 5b58c68 into main Jun 26, 2026
4 checks passed
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