Fix N1: resolve re-checks agent state; codes bind fingerprint #12

Merged
leora merged 1 commits from leora/fix-n1-resolve-recheck into sigil-initial 2026-10-06 06:21:20 +08:00
Contributor

Summary

N1 (Medium): revoke/rekey could be overtaken by in-flight verify/issue_code; resolve never re-checked the agent.

Changes

  • sessions.resolve refuses revoked / no-live-key / stale agent fingerprint
  • Codes store issuing fingerprint; redeem requires match + has_live_key
  • issue_code re-checks revoked/live-key/session fingerprint
  • DESIGN updated to describe the resolve choke point honestly
  • Race-survivor regression tests

Test plan

  • unittest discover (150+)
## Summary **N1 (Medium):** revoke/rekey could be overtaken by in-flight verify/issue_code; `resolve` never re-checked the agent. ## Changes - `sessions.resolve` refuses revoked / no-live-key / stale agent fingerprint - Codes store issuing fingerprint; redeem requires match + `has_live_key` - `issue_code` re-checks revoked/live-key/session fingerprint - DESIGN updated to describe the resolve choke point honestly - Race-survivor regression tests ## Test plan - [x] unittest discover (150+)
leora added 1 commit 2026-10-06 06:21:19 +08:00
In-flight verify/issue_code could insert a session or code after revoke
or rekey. sessions.resolve now refuses if the agent is revoked, has no
live key, or (agent sessions) the fingerprint no longer matches.
View codes store the issuing fingerprint and redeem refuses after
rekey/wipe; issue_code re-checks agent state. DESIGN matches the choke
point. Regression tests plant race-surviving sessions and stale codes.
leora merged commit 668577f3ea into sigil-initial 2026-10-06 06:21:20 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bigpickle/sigil#12
No description provided.