fix: purge keychain credentials on profile delete, atomic owner-only secret writes, zeroize derived keys

- Secrets::delete_profile removes every profile credential kind from the OS
  keychain as well as the vault (previously only the vault was purged, so
  keychain passwords/tokens outlived the profile).
- write_private writes to a sibling temp file and renames it into place, so a
  crash mid-write cannot truncate the vault or an export, and a pre-existing
  world-readable file is replaced rather than reused.
- Argon2-derived vault/export keys are Zeroizing and wiped on drop.
- Recordings (which capture typed input), JSON exports and --data-dir
  directories are created owner-only.
This commit is contained in:
Andy Dixon
2026-10-12 07:20:11 +01:00
parent 8766846a3b
commit 9cf221779b
8 changed files with 102 additions and 23 deletions
+1
View File
@@ -21,6 +21,7 @@ tokio = { version = "1.53.2", features = ["full"] }
sha2 = "0.11.0"
hmac = "0.13.0"
sha1 = "0.11.0"
zeroize = "1"
portable-pty = "0.9.0"
serialport = { version = "4", default-features = false }
des = "0.9"