Skip to main content

Secure local password manager with Argon2/Fernet encryption and optional Shamir-based sharding

Project description

Sentry Vault

Sentry Vault
A security-focused local password manager with optional sharded storage.

License: AGPL-3.0 Python 3.10+ Code style: black

🔐 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
  • Poetry (for dependency management)
  • OpenSSL (for cryptographic operations)

Quick Start

# Clone the repository
git clone https://github.com/agspades/sentry-vault.git
cd sentry-vault

# Install dependencies
poetry install

# Activate the virtual environment
poetry env activate

# Run the CLI
poetry run sentryvault --help

📜 Usage

Basic Commands

# Add a new credential
poetry run sentryvault add example.com username

# Retrieve a credential
poetry run sentryvault get example.com

# List all stored entries
poetry run sentryvault list

# Remove a credential
poetry run sentryvault delete example.com

# Change your master passphrase
poetry run sentryvault change-passphrase

# Generate a secure password
poetry run sentryvault generate-password --length 20

File Encryption

# Encrypt a file
poetry run sentryvault encrypt sensitive.txt sensitive.enc

# Decrypt a file
poetry run sentryvault decrypt sensitive.enc sensitive_decrypted.txt

🔧 Advanced Usage

Password Generation Options

# Generate a random password with specific requirements
poetry run sentryvault generate-password --length 20

# Generate a memorable passphrase and copy to clipboard
poetry run sentryvault generate-password --type memorable -c

🛡️ Security Best Practices

  1. Use a Strong Master Password: Choose a long, random passphrase
  2. Enable Sharding: Distribute shards across multiple secure locations
  3. Regular Backups: Keep regular backups of your vault in secure locations
  4. Secure Environment: Only run Sentry Vault on trusted, secure systems
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentryvault-0.1.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sentryvault-0.1.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file sentryvault-0.1.0.tar.gz.

File metadata

  • Download URL: sentryvault-0.1.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.11 Linux/6.19.8-200.nobara.fc43.x86_64

File hashes

Hashes for sentryvault-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b9d16520074b866b87ed65d8f807ba556855066afc9d878f4b9c5b71565b8d99
MD5 b0e7d301afd831a9fde352a0f2f1dad9
BLAKE2b-256 6b4af5aed20df583eea5e5d07a14e74c9abd641e4be7f7822f51d1687633f665

See more details on using hashes here.

File details

Details for the file sentryvault-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sentryvault-0.1.0-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.11 Linux/6.19.8-200.nobara.fc43.x86_64

File hashes

Hashes for sentryvault-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81d017387b2f1487ef1868857cb3f11966c257cfb1b96adc846fc48d6ad3a0b2
MD5 e17f66410e3ed22ddd3ea8bd86a5342d
BLAKE2b-256 ab95e7623ff332843c7102d7e27835eedc6a86c8aaaeefc9a95366b076f62843

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page