Add password-encrypted vault
- Encrypt stored secret keys with AES-256-GCM under an Argon2id-derived key; the vault stays plaintext until a password is set (Settings -> Storage or the CLI set-password command) - Only secret keys are encrypted; labels and npubs stay readable so profiles can be browsed while the vault is locked - Backend: crypto module, Vault.crypto metadata, unlock/lock/set/remove password on App, VaultLocked/WrongPassword errors, secret resolution on the publish path - IPC: set_vault_password, unlock_vault, lock_vault, remove_vault_password - CLI: set-password, remove-password, unlock; create/publish prompt when the vault is locked (NFM_PASSWORD env or hidden prompt, never argv) - GUI: unlock banner + modal on locked vaults, protect/change/remove password in Settings, password field styling - Tests: Rust (argon2/AES round-trips, vault lifecycle) and Vitest (unlock flow, set/change/remove password), all green
This commit is contained in:
parent
7e3bac345c
commit
7ca1d14dcb
23 changed files with 1540 additions and 43 deletions
|
|
@ -10,3 +10,8 @@ serde = { version = "1.0", features = ["derive"] }
|
|||
serde_json = "1.0"
|
||||
uuid = { version = "1.0", features = ["v4"] }
|
||||
hex = "0.4"
|
||||
argon2 = "0.5"
|
||||
aes-gcm = "0.10"
|
||||
base64 = "0.22"
|
||||
getrandom = "0.2"
|
||||
rpassword = "7"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue