Secure local password manager with Argon2/Fernet encryption and optional Shamir-based sharding
Project description
Sentry Vault
A security-focused local password manager with optional sharded storage.
🔐 About
Sentry Vault is an open-source, high-security password manager designed with privacy and security as its core principles. It provides a secure way to store and manage your credentials while ensuring that you remain in full control of your data.
🔑 Core Security Features
- Strong Encryption: Uses Argon2id for key derivation and Fernet for authenticated encryption
- Sharded Storage: Uses Shamir's Secret Sharing to split encrypted vault data into threshold-based shares
- Zero-Knowledge Architecture: Your master password never leaves your device
- Passphrase Generation: Create random, memorable, or PIN-style credentials from the CLI
🚀 Features
🔒 Core Functionality
- Secure Credential Storage: Store usernames and passwords in an encrypted local vault
- Sharded Vaults: Optional threshold-based sharding using Shamir's Secret Sharing
- Rich CLI Interface: Beautiful terminal interface with colorized output and progress bars
- Password Generator: Built-in tool for creating strong, random passwords
- Secure File Encryption: Encrypt/decrypt files using the same strong cryptography
🛡️ Security Features
- Argon2 for key derivation (memory-hard and resistant to GPU/ASIC attacks)
- Fernet authenticated encryption for confidentiality and integrity
- HMAC for data integrity verification
- Per-vault salt handling persisted with encrypted vault payloads
🛠 Installation
Prerequisites
- Python 3.10 or higher
Quick Start (Recommended)
Install Sentry Vault directly from PyPI:
pip install sentryvault
Installation from Source
If you prefer to build from source or contribute:
# Clone the repository
git clone https://github.com/agspades/sentry-vault.git
cd sentry-vault
# Install dependencies using Poetry
poetry install
# Run via poetry
poetry run sentryvault --help
📜 Usage
Basic Commands
# Add a new credential
sentryvault add example.com username
# Retrieve a credential
sentryvault get example.com
# List all stored entries
sentryvault list
# Remove a credential
sentryvault delete example.com
# Change your master passphrase
sentryvault change-passphrase
# Generate a secure password
sentryvault generate-password --length 20
File Encryption
# Encrypt a file
sentryvault encrypt sensitive.txt sensitive.enc
# Decrypt a file
sentryvault decrypt sensitive.enc sensitive_decrypted.txt
🔧 Advanced Usage
Password Generation Options
# Generate a random password with specific requirements
sentryvault generate-password --length 20
# Generate a memorable passphrase and copy to clipboard
sentryvault generate-password --type memorable -c
🛡️ Security Best Practices
- Use a Strong Master Password: Choose a long, random passphrase
- Enable Sharding: Distribute shards across multiple secure locations
- Regular Backups: Keep regular backups of your vault in secure locations
- Secure Environment: Only run Sentry Vault on trusted, secure systems
- Keep Software Updated: Regularly update to the latest version for security patches
🧑💻 Contributing
We welcome contributions! Please read our Contribution Guidelines and sign the Contributor License Agreement before submitting pull requests.
Development Setup
# Install development dependencies
poetry install --with dev
# Run tests
poetry run pytest
# Format code
poetry run black .
# Check types
poetry run mypy .
📄 License
Sentry Vault is licensed under the GNU Affero General Public License v3.0. This is a strong copyleft license that ensures any modifications to the software must be released under the same license.
⭐ Support the Project
If you find Sentry Vault useful, please consider:
- Giving us a ⭐ on GitHub
- Reporting bugs or suggesting features
- Contributing code or documentation
- Spreading the word to others who might find it useful
🔒 "In a world of digital threats, your security is our mission."
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sentryvault-0.1.1.tar.gz.
File metadata
- Download URL: sentryvault-0.1.1.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0385527a40b420396801727c6c95b06f3f775066c7ab7b4e0f53f815cf2693df
|
|
| MD5 |
ed5712922e66f62b03d7664a131f4f40
|
|
| BLAKE2b-256 |
61afdfa8db92e9a32a769419af2f74b857a79ff0c8edac9cbb44e28d8ade77a0
|
File details
Details for the file sentryvault-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sentryvault-0.1.1-py3-none-any.whl
- Upload date:
- Size: 27.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8eab379ce8c4622b165cb028fa7ae47fef15a697ee30c95762a7e40c825238f
|
|
| MD5 |
bf04e5ab44ca7da803ebc362c7b2c513
|
|
| BLAKE2b-256 |
bfc524df4c7d3a431e1254909fc91778112954c6dec6efd4756d5f57a4570b11
|