chore(deps): proton-sdk and proton-drive-rs 0.9.0

Adapt sign-in to the 0.8 account API and use what it adds:

- Key passphrases are KeyPassphrases now, wiped on drop. The stored
  session keeps its JSON shape and converts on unlock.
- The mailbox password is checked with AccountClient::unlock(), one
  core/v4/users request instead of loading every address, and a wrong
  one is recognised as ProtonError::KeysLocked instead of any
  InvalidOperation.
- KeysLocked from a resumed session counts as signed out: the mailbox
  password changed, and only signing in again derives passphrases that
  unlock the keys.
- A sign-in Proton answers with code 2028 (Blocked) says so, instead of
  showing the server text that claims the app version is outdated.

Also picked up without code changes: a token refresh that outlives its
caller and is never replayed (0.8.2).
This commit is contained in:
nvrl committed 2026-10-15 19:56:56 +02:00
1 parent ab7f057afe
commit 4a3a7291b8
4 files changed
+64 -22

No files matched your search

+2 -2
View File
@@ -28,8 +28,8 @@ authors = ["Nils Pukropp <contact@narl.io>"]
opt-level = 2
[workspace.dependencies]
proton-sdk = { version = "0.7.3" }
proton-drive-rs = { version = "0.7.3" }
proton-sdk = { version = "0.9.0" }
proton-drive-rs = { version = "0.9.0" }
# Internal crates.
pstr-core = { path = "crates/pstr-core" }