GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - mohammadumar-dev/passkeys-cli: A secure, production-level command-line password manager with encryption, validation, and enhanced user experience.

BranchesTags
Open more actions menu

Latest commit

 

History

9 Commits
9 Commits

Folders and files

NameName
Last commit message
Last commit date
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
SUPPORT.md
SUPPORT.md
 
 
auth.py
auth.py
 
 
banner.png
banner.png
 
 
config.py
config.py
 
 
crypto.py
crypto.py
 
 
db.py
db.py
 
 
generator.py
generator.py
 
 
main.py
main.py
 
 
pyproject.toml
pyproject.toml
 
 
requirements.dev.txt
requirements.dev.txt
 
 
requirements.txt
requirements.txt
 
 
ui.py
ui.py
 
 
validation.py
validation.py
 
 
vault.py
vault.py
 
 

Repository files navigation

Passkeys CLI

Passkeys CLI Banner

Stable Release Encryption & KDF CLI Interface

Secure • Encrypted • Production-Ready Password Manager

Features

  • šŸ” Secure Encryption: AES-GCM encryption with Scrypt key derivation
  • āœ… Input Validation: Comprehensive validation for all user inputs
  • šŸ”‘ Password Confirmation: Mandatory password confirmation for create/update operations
  • šŸŽØ Enhanced CLI: Beautiful, colorized terminal interface
  • šŸ›”ļø Production-Ready: Robust error handling and transaction management
  • šŸ”’ Master Password: Argon2 hashed master password protection
  • šŸ“Š Formatted Output: Clean, readable table displays
  • šŸŽ² Password Generator: Cryptographically secure password generation

Installation

  1. Install dependencies:

    pip install -r requirements.txt
  2. Set up environment variables: Create a .env file in the project root:

    DATABASE_URL=your_postgresql_connection_string
  3. Set up database schema:

    CREATE TABLE master_key (
        id INT PRIMARY KEY,
        password_hash TEXT NOT NULL,
        salt BYTEA NOT NULL
    );
    
    CREATE TABLE vault (
        id UUID PRIMARY KEY,
        service TEXT NOT NULL,
        username TEXT NOT NULL,
        secret BYTEA NOT NULL,
        created_at TIMESTAMP DEFAULT now(),
        updated_at TIMESTAMP DEFAULT now()
    );

Usage

Run the application:

python main.py

Menu Options

  1. View passkeys - List all stored passkeys with formatted table display
  2. Create passkey - Add a new passkey (requires password confirmation)
  3. Update passkey - Update an existing passkey (requires password confirmation)
  4. Delete passkey - Remove a passkey (requires confirmation)
  5. Generate password - Generate a secure random password
  6. Exit - Exit the application

Production Features

Input Validation

  • Service names: 2-100 characters, alphanumeric + special chars
  • Usernames: 1-255 characters
  • Passwords: Minimum 8 characters, maximum 1000 characters
  • Entry IDs: Valid UUID format validation

Security

  • AES-GCM encryption for all secrets
  • Scrypt key derivation (n=2^14, r=8, p=1)
  • Argon2 password hashing for master password
  • Secure random password generation
  • Input sanitization and validation

Error Handling

  • Comprehensive exception handling
  • Clear, user-friendly error messages
  • Database transaction rollback on errors
  • Graceful handling of invalid inputs

User Experience

  • Colorized terminal output
  • Formatted tables and menus
  • Clear success/error/warning messages
  • Password confirmation for critical operations
  • Confirmation prompts for destructive actions

Project Structure

passkeys/
ā”œā”€ā”€ main.py          # CLI entry point with enhanced UI
ā”œā”€ā”€ auth.py          # Master password logic with validation
ā”œā”€ā”€ crypto.py        # Encryption/decryption utilities
ā”œā”€ā”€ db.py            # Database connection management
ā”œā”€ā”€ vault.py         # CRUD operations with validation
ā”œā”€ā”€ generator.py     # Secure password generation
ā”œā”€ā”€ validation.py    # Input validation utilities
ā”œā”€ā”€ ui.py            # Enhanced CLI UI components
ā”œā”€ā”€ config.py        # Environment configuration
ā”œā”€ā”€ requirements.txt # Python dependencies
└── README.md        # This file

Security Best Practices

  1. Master Password: Choose a strong master password (minimum 8 characters)
  2. Database Security: Use secure database credentials and connection strings
  3. Environment Variables: Never commit .env files to version control
  4. Backup: Regularly backup your database
  5. Access Control: Restrict file permissions on sensitive files

Error Codes

  • INVALID_ENTRY_ID: Entry ID format is invalid
  • ENTRY_NOT_FOUND: Requested entry does not exist
  • MASTER_PASSWORD_MISMATCH: Master password verification failed
  • MASTER_NOT_SET: Master password has not been configured

License

See the LICENSE file for details.

About

A secure, production-level command-line password manager with encryption, validation, and enhanced user experience.

mohammadumar-dev.netlify.app/

Topics

aes-gcmargon2clicommand-line-toolcryptographydeveloper-toolsencryptionpassword-managerpostgresqlproduction-readypythonpython-cliscryptsecure-by-designsecure-storagesecurityterminal-appvalidation

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity

Stars

3 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Ɨ600. No cookies required.