How debanganmali/obscura works
Obscura is a local-first password manager with a desktop interface and a CLI that operate on the same encrypted vault. The main workflow is choosing or creating a vault, unlocking its shared vault key, then managing and using entries; unlock methods include a master password, recovery code, Windows Hello, and passkeys. Major documented capabilities also include import/export, TOTP, password generation, clipboard handling, idle locking, and rollback detection. Some subsystem links rely on documented capabilities and the command surface; unsampled implementation details are not inferred.
Main entry points: commands.rs App commands · vault.rs Vault and entries · main.rs CLI entry point · app.js Desktop interface
Components 26
Desktop app
- Desktop interface
ui/app.js - App commands
src-tauri/src/commands.rs - Session and idle lock
src-tauri/src/state.rs - Rollback watermark
src-tauri/src/watermark.rs - Clipboard handling
src-tauri/src/clipboard.rs
Vault workflows
- Vault file
- Vault and entries
crates/obscura-vault/src/vault.rs - Entry model
crates/obscura-vault/src/entry.rs - Vault format
crates/obscura-vault/src/format.rs - CSV import
crates/obscura-vault/src/csv_import.rs - Encrypted export
crates/obscura-vault/src/portable.rs - TOTP codes
crates/obscura-vault/src/totp.rs - Password generator
crates/obscura-vault/src/generator.rs
Cryptography
- Crypto primitives
crates/obscura-crypto/src/lib.rs - Key derivation
crates/obscura-crypto/src/kdf.rs - Authenticated encryption
crates/obscura-crypto/src/aead.rs - Hybrid key wrapping
crates/obscura-crypto/src/hybrid.rs
Unlock methods
- Recovery codes
crates/obscura-vault/src/recovery.rs - Windows Hello
crates/obscura-platform/src/hello.rs - Passkey support
crates/obscura-webauthn/src/lib.rs
Command line
- CLI entry point
crates/obscura-cli/src/main.rs - Credential prompt
crates/obscura-cli/src/prompt.rs - Terminal browser
crates/obscura-cli/src/tui.rs
Other components
- Desktop user
- Passkey authenticator
- CLI user
Connections 26
- Desktop user → Desktop interface: uses
- Desktop interface → App commands: invokes
- App commands → Vault and entries: manages vault
- App commands → Session and idle lock: updates session
- Session and idle lock → App commands: locks session
- App commands → Rollback watermark: checks watermark
- App commands → Clipboard handling: copies secrets
- Vault and entries → Vault file: reads and writes
- Vault and entries → Vault format: encodes and decodes
- Vault and entries → Entry model: validates entries
- Vault and entries → Key derivation: derives unlock keys
- Vault and entries → Authenticated encryption: seals and opens
- Vault and entries → Hybrid key wrapping: wraps recovery key
- App commands → CSV import: imports entries
- App commands → Encrypted export: exports entries
- App commands → TOTP codes: gets current code
- App commands → Password generator: generates password
- App commands → Recovery codes: creates recovery code
- App commands → Windows Hello: uses Hello unlock
- App commands → Passkey support: uses passkey unlock
- Passkey support → Passkey authenticator: requests credential
- CLI user → CLI entry point: runs commands
- CLI entry point → Credential prompt: reads password
- CLI entry point → Vault and entries: opens vault
- CLI entry point → Terminal browser: browses vault
- Terminal browser → Clipboard handling: copies secrets