mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
A two-password account signed in with its login password as the mailbox password, so the key chain never unlocked and the daemon retried forever. Login now asks for the mailbox password and checks it against the account (proton-sdk 0.8 `unlock`), so a typo is a retry. The password is never stored: the keyring blob keeps the per-key passphrases instead, and for a two-password account only when the user opts in (`--remember`, or the "Keep unlocked on this computer" switch). By default they live in the kernel keyring for the login session and the account is locked after a reboot until `pdfs unlock` or the app supplies them again. - core: kernelkey module, Error::Locked / WrongMailboxPassword, unlock, lock, key_state, ready; blobs written by 3.0.x are migrated on first start; token refresh updates only the tokens in the stored blob - cli: `pdfs unlock [--remember]`, `pdfs lock [--forget]`; status and diagnose report the key state; the daemon waits while locked and is marked non-dumpable - gui: mailbox password dialog at sign-in and on open, locked tray state - po: all catalogs translated - bump to 3.1.0, depend on proton-sdk and proton-drive-rs 0.8.0 Refs #26.
36 lines
891 B
Rust
36 lines
891 B
Rust
//! Core building blocks for the Proton Drive Linux client: static client
|
|
//! identity, XDG paths, and the login/session/keyring layer that every
|
|
//! front-end (CLI today, daemon + GUI later) shares.
|
|
|
|
pub mod access;
|
|
pub mod auth;
|
|
pub mod batch;
|
|
pub mod cache;
|
|
pub mod config;
|
|
pub mod control;
|
|
pub mod db;
|
|
pub mod error;
|
|
pub mod kernelkey;
|
|
pub mod localindex;
|
|
pub mod menu;
|
|
pub mod mounts;
|
|
pub mod opener;
|
|
pub mod places;
|
|
pub mod profile;
|
|
pub mod sdkcache;
|
|
pub mod search;
|
|
pub mod service;
|
|
pub mod shell;
|
|
pub mod similar;
|
|
pub mod syncignore;
|
|
pub mod takeout;
|
|
pub mod tray;
|
|
|
|
pub use access::{Access, access_for, perm_bits};
|
|
pub use error::{CoreError, CoreResult, Error, Result};
|
|
|
|
// Re-export the SDK surface downstream crates need, so they depend on
|
|
// `pdfs-core` rather than pinning the SDK directly.
|
|
pub use proton_drive_rs::{self, Node, NodeKind, ProtonDriveClient};
|
|
pub use proton_sdk;
|