A secure, offline-first password manager built with .NET 8 and Avalonia UI. Features AES-GCM encryption, local SQLite storage, zero-knowledge architecture, and a monochrome terminal-style interface.
SecureVault is a lightweight, offline-first password manager built with .NET 8 and Avalonia UI. Designed for users who prioritize privacy and local control over cloud synchronization.
It features a high-contrast, monochrome "Terminal" aesthetic and military-grade encryption standards.

- 100% Offline: Your passwords never leave your device. No cloud, no API, no tracking.
- Zero-Knowledge: We cannot recover your data. If you lose your Master Password, your data is cryptographically inaccessible.
- Strong Encryption: Uses AES-256-GCM (Galois/Counter Mode) for both encryption and data integrity verification.
- Secure Storage: Data is stored in a local SQLite database using Salted PBKDF2 key derivation.
- Cross-Platform: Runs natively on Linux (Arch/Debian/etc.), Windows, and macOS via Avalonia UI.
- Built-in Generator: Includes a Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) for creating strong passwords.
- Clipboard Safety: One-click copy functionality.
- Framework: .NET 8 (LTS)
- UI Library: Avalonia UI (MVVM Pattern)
- Database: SQLite (via Entity Framework Core)
- Crypto:
System.Security.Cryptography(Native .NET libraries)
SecureVault uses industry-standard cryptographic primitives:
- Key Derivation: The Master Password is never stored. It is hashed using PBKDF2 (Rfc2898DeriveBytes) with a unique random Salt and 600,000 iterations (SHA-256) to derive the AES Key.
- Encryption: Data is encrypted using AES-GCM. This ensures that data cannot be read (Confidentiality) and has not been tampered with (Integrity).
- Randomness: All Salts, IVs (Nonces), and generated passwords use the OS-level CSPRNG (
RandomNumberGenerator).
# 1. Clone the repository
git clone https://github.com/sdm06/SecurePasswordManager.git
cd SecureVault
# 2. Restore dependencies
dotnet restore
# 3. Initialize the Database (First time only)
cd SecureVault.Linux
dotnet ef database update
# 4. Run the application
dotnet run