PassMan

Secure Local Password Manager

A secure, local-first password manager built with Rust that stores your passwords encrypted locally with military-grade encryption. Your data never leaves your device.

Project Screenshots

PassMan - Secure Local Password Manager - Web Development Project Screenshot 1 by Tarun Jawla
Click to enlarge
PassMan - Secure Local Password Manager - Web Development Project Screenshot 2 by Tarun Jawla
Click to enlarge

About the Project

PassMan is a secure, local-first password manager built with Rust that stores your passwords encrypted locally with military-grade encryption. Your data never leaves your device, ensuring complete privacy and security. šŸ”’

✨ Key Features


#

šŸ” Security & Privacy

- Military-Grade Encryption: AES-GCM-256 encryption with Argon2id key derivation
- Local-First Storage: All data is stored locally on your device
- No Cloud Dependencies: Your data never leaves your device
- Memory Safety: Built with Rust for memory safety and performance
- Secure File Permissions: Vault files have restricted permissions (600)

#

šŸš€ Cross-Platform Support

- Windows: Native Windows application
- macOS: Native macOS application
- Linux: Native Linux application
- CLI Interface: Full command-line interface for power users
- Desktop GUI: Beautiful desktop application (coming soon)

#

šŸ› ļø Advanced Features

- Password Generation: Strong password generation with customizable options
- Vault Management: Encrypted vault files with secure storage
- Account Management: Store and organize multiple accounts
- Search & Filter: Quick search through your passwords
- Import/Export: Secure data migration capabilities

šŸ—ļø Architecture


The project follows a modular architecture with three main components:

```
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ Desktop GUI │ │ CLI Tool │ │ Backend Lib │
│ (Tauri + │ │ (Rust) │ │ (Rust) │
│ React/Next) │ │ │ │ │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
│ │ │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
│
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ Encrypted Vault │
│ (Local JSON File) │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
```

šŸš€ Quick Start


#

Prerequisites

- Rust 1.70+ (install from [rustup.rs](https://rustup.rs/))
- Git

#

Building from Source

1. Clone the repository
```bash
git clone https://github.com/tarunjawla/passman.git
cd passman
```

2. Build the project
```bash
cargo build --release
```

3. Run the CLI
```bash
./target/release/passman --help
```

#

Using the CLI

1. Initialize a new vault
```bash
passman init your-email@example.com
```

2. Add an account
```bash
passman add "GitHub" --type social --url github.com --username user@example.com
```

3. List accounts
```bash
passman list
```

4. Generate a password
```bash
passman generate --length 16 --special --numbers
```

šŸ”’ Security Details


- Encryption: AES-GCM-256 for vault encryption
- Key Derivation: Argon2id with secure parameters
- Memory Safety: Sensitive data is zeroized after use
- File Permissions: Vault files have restricted permissions (600)
- No Network: No data is ever sent over the network

šŸ“¦ Project Structure


```
passman/
ā”œā”€ā”€ backend/ # Core Rust library
│ ā”œā”€ā”€ src/
│ │ ā”œā”€ā”€ lib.rs # Public API
│ │ ā”œā”€ā”€ models.rs # Data structures
│ │ ā”œā”€ā”€ crypto.rs # Encryption/decryption
│ │ ā”œā”€ā”€ storage.rs # Vault file management
│ │ ā”œā”€ā”€ auth.rs # Authentication
│ │ ā”œā”€ā”€ generator.rs # Password generation
│ │ └── vault.rs # Main vault manager
│ └── Cargo.toml
ā”œā”€ā”€ cli/ # Command-line interface
│ ā”œā”€ā”€ src/
│ │ └── main.rs
│ └── Cargo.toml
ā”œā”€ā”€ desktop/ # Desktop GUI (Tauri)
│ └── src-tauri/
ā”œā”€ā”€ website/ # Marketing website
└── Cargo.toml # Workspace configuration
```

šŸ› ļø Development Status


#

āœ… Completed (Phase 1)

- [x] Rust workspace setup
- [x] Backend library with core functionality
- [x] Data models and types
- [x] Encryption/decryption system
- [x] Password generation
- [x] Vault storage management
- [x] Authentication system
- [x] CLI tool with basic commands

#

🚧 In Progress

- [ ] Desktop GUI (Tauri + React)
- [ ] Cross-platform builds
- [ ] Comprehensive testing
- [ ] Documentation

#

šŸ“‹ Planned

- [ ] Mobile apps
- [ ] Browser extension
- [ ] Advanced features (2FA, etc.)

Tech Stack

Frontend

TauriReactNext.jsTypeScriptTailwind CSS

Backend

RustAES-GCM-256Argon2idClap CLISerde JSON

Key Features

Local-First Storage - All data stored locally
Military-Grade Encryption - AES-GCM-256 with Argon2id
Cross-Platform Support - Windows, macOS, Linux
CLI Interface - Full command-line interface
Password Generation - Strong, customizable passwords
Secure Storage - Encrypted vault files
No Cloud Dependencies - Complete privacy
Memory Safety - Built with Rust

Project Links

Tarun Jawla - Full Stack Developer & Freelance Software Engineer