Skip to content

ADR-037 Phase 3c: removal rotation (§D3 eager re-wrap to remaining members) #152

Description

@cuttlefisch

Part of #131. Depends on Phase 3b.

Scope

On removing a member from an E2e KB: generate fresh k', author a Remove op + one wrap-only op per remaining member (re-wrap k'), persist k' locally, ship via kb/collection_op. The removed member keeps only the old k (no new wrapped op → find_wrapped_content_key returns their old key).

Acceptance tests (adversarial)

  • 3 members, remove one ⇒ the two remaining converge on k' and read new content.
  • The removed member's derive_content_key yields the OLD key and open_new_ops skips post-rotation ciphertext (reads nothing new) — the security oracle.
  • Concurrent / mutual removal converges deterministically (strong-removal resolver).
  • Out of scope: forward/post-compromise secrecy (D4 ratchet), multi-owner quorum rotation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions