#274: password-only shares removed — key-in-link always, password as optional layer (v0.6.45) #275

Merged
Cordy merged 3 commits from feat/pw-layer274 into main 2026-08-18 19:50:09 +00:00
Owner

Implements the #274 ruling: a password-only protection level must not exist. Every share is key-in-the-link; a password, when set, is an additional gate on the key.

  • Dialog: Protection select removed. The key-in-link explanation stays, followed by an "Also require a password" checkbox that reveals the Password field; unchecking clears it. The forced-password org policy pre-checks and locks the checkbox.
  • API: mode:"password" and the legacy bare-password inference coerce to a layered fragment share (key + password hash stored), so older clients get a working, stronger link rather than an error. Allowed modes are now fragment and the policy-gated legacy plain.
  • Serving: untouched — existing password-mode shares keep opening via the viewer (their passphrase is their key material) until revoked or expired.

Recipient flow for layered shares is the #271 locked viewer: neutral card → password gate → metadata reveal → deliberate Download → in-browser decrypt with the fragment key.

Implements the #274 ruling: a password-only protection level must not exist. Every share is key-in-the-link; a password, when set, is an additional gate on the key. - **Dialog**: Protection select removed. The key-in-link explanation stays, followed by an "Also require a password" checkbox that reveals the Password field; unchecking clears it. The forced-password org policy pre-checks and locks the checkbox. - **API**: `mode:"password"` and the legacy bare-password inference coerce to a **layered fragment share** (key + password hash stored), so older clients get a working, stronger link rather than an error. Allowed modes are now `fragment` and the policy-gated legacy `plain`. - **Serving**: untouched — existing password-mode shares keep opening via the viewer (their passphrase is their key material) until revoked or expired. Recipient flow for layered shares is the #271 locked viewer: neutral card → password gate → metadata reveal → deliberate Download → in-browser decrypt with the fragment key.
Cordy merged commit 2d27458e39 into main 2026-08-18 19:50:09 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#275
No description provided.