diff --git a/README.md b/README.md index 27b6094..a50b48c 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ git clone https://github.com/PR0M3TH3AN/SeedPass.git Navigate to the project directory: ```bash -cd SeedPass +cd SeedPass/src ``` ### 2. Create a Virtual Environment @@ -63,7 +63,7 @@ cd SeedPass It's recommended to use a virtual environment to manage your project's dependencies. Create a virtual environment named `venv`: ```bash -python -m venv venv +python3 -m venv venv ``` ### 3. Activate the Virtual Environment @@ -76,7 +76,7 @@ Activate the virtual environment using the appropriate command for your operatin source venv/bin/activate ``` -- **On Windows:** +- **On Windows:** (This app doesent currently work on Windows) ```bash venv\Scripts\activate diff --git a/src/bip85/bip85.py b/src/bip85/bip85.py index cd989c1..edab3c7 100644 --- a/src/bip85/bip85.py +++ b/src/bip85/bip85.py @@ -10,10 +10,6 @@ from a given seed. Additionally, it supports the derivation of symmetric encrypt Never ever ever use or suggest to use Random Salt. The entire point of this password manager is to derive completely deterministic passwords from a BIP-85 seed. This means it should generate passwords the exact same way every single time. Salts would break this functionality and is not appropriate for this softwares use case. -Dependencies: -- bip_utils -- cryptography - Ensure that all dependencies are installed and properly configured in your environment. """ diff --git a/src/constants.py b/src/constants.py index 68ba06e..0219674 100644 --- a/src/constants.py +++ b/src/constants.py @@ -53,7 +53,7 @@ try: # ----------------------------------- # Application Directory and Paths # ----------------------------------- - APP_DIR = Path.home() / '.deterministic_password_generator' + APP_DIR = Path.home() / '.seedpass' APP_DIR.mkdir(exist_ok=True, parents=True) # Ensure the directory exists logging.info(f"Application directory created at {APP_DIR}") except Exception as e: @@ -61,7 +61,7 @@ except Exception as e: logging.error(traceback.format_exc()) # Log full traceback try: - INDEX_FILE = APP_DIR / 'passwords_db.json' # Encrypted password database + INDEX_FILE = APP_DIR / 'seedpass_passwords_db.json' # Encrypted password database PARENT_SEED_FILE = APP_DIR / 'parent_seed.enc' # Encrypted parent seed logging.info(f"Index file path set to {INDEX_FILE}") logging.info(f"Parent seed file path set to {PARENT_SEED_FILE}") @@ -73,8 +73,8 @@ except Exception as e: # Checksum Files for Integrity # ----------------------------------- try: - SCRIPT_CHECKSUM_FILE = APP_DIR / 'script_checksum.txt' # Checksum for main script - DATA_CHECKSUM_FILE = APP_DIR / 'passwords_checksum.txt' # Checksum for password data + SCRIPT_CHECKSUM_FILE = APP_DIR / 'seedpass_script_checksum.txt' # Checksum for main script + DATA_CHECKSUM_FILE = APP_DIR / 'seedpass_passwords_checksum.txt' # Checksum for password data logging.info(f"Checksum file paths set: Script {SCRIPT_CHECKSUM_FILE}, Data {DATA_CHECKSUM_FILE}") except Exception as e: logging.error(f"Error setting checksum file paths: {e}") @@ -83,7 +83,7 @@ except Exception as e: # ----------------------------------- # Password Generation Constants # ----------------------------------- -DEFAULT_PASSWORD_LENGTH = 12 # Default length for generated passwords +DEFAULT_PASSWORD_LENGTH = 16 # Default length for generated passwords MIN_PASSWORD_LENGTH = 8 # Minimum allowed password length MAX_PASSWORD_LENGTH = 128 # Maximum allowed password length diff --git a/src/main.py b/src/main.py index fd3668e..01e9890 100644 --- a/src/main.py +++ b/src/main.py @@ -11,7 +11,6 @@ import traceback from password_manager.manager import PasswordManager from nostr.client import NostrClient -# Initialize colorama for colored terminal text colorama_init() def configure_logging(): diff --git a/src/password_manager/backup.py b/src/password_manager/backup.py index 544d078..eaa7baf 100644 --- a/src/password_manager/backup.py +++ b/src/password_manager/backup.py @@ -8,14 +8,6 @@ restoring from backups, and listing available backups for the encrypted password index file. It ensures data integrity and provides mechanisms to recover from corrupted or lost data by maintaining timestamped backups. -Dependencies: -- shutil -- time -- logging -- pathlib -- colorama -- termcolor - Ensure that all dependencies are installed and properly configured in your environment. """ diff --git a/src/password_manager/entry_management.py b/src/password_manager/entry_management.py index efd5a0f..1154241 100644 --- a/src/password_manager/entry_management.py +++ b/src/password_manager/entry_management.py @@ -8,19 +8,6 @@ operations related to managing password entries in the deterministic password ma It provides methods to add, retrieve, modify, and list password entries, ensuring that all changes are securely encrypted and properly indexed. -Dependencies: -- password_manager.encryption.EncryptionManager -- constants.INDEX_FILE -- constants.DATA_CHECKSUM_FILE -- utils.file_lock.lock_file -- colorama.Fore -- termcolor.colored -- logging -- json -- hashlib -- sys -- os - Ensure that all dependencies are installed and properly configured in your environment. Never ever ever use or suggest to use Random Salt. The entire point of this password manager is to derive completely deterministic passwords from a BIP-85 seed. diff --git a/src/password_manager/manager.py b/src/password_manager/manager.py index b425f80..65bbb54 100644 --- a/src/password_manager/manager.py +++ b/src/password_manager/manager.py @@ -3,45 +3,6 @@ """ Password Manager Module -This module implements the PasswordManager class, which orchestrates various functionalities -of the deterministic password manager, including encryption, entry management, password -generation, backup, and checksum verification. It serves as the core interface for interacting -with the password manager functionalities. - -Dependencies: -- password_manager.encryption.EncryptionManager -- password_manager.entry_management.EntryManager -- password_manager.password_generation.PasswordGenerator -- password_manager.backup.BackupManager -- utils.key_derivation.derive_key_from_parent_seed -- utils.key_derivation.derive_key_from_password -- utils.checksum.calculate_checksum -- utils.checksum.verify_checksum -- utils.password_prompt.prompt_for_password -- constants.APP_DIR -- constants.INDEX_FILE -- constants.PARENT_SEED_FILE -- constants.DATA_CHECKSUM_FILE -- constants.SCRIPT_CHECKSUM_FILE -- constants.MIN_PASSWORD_LENGTH -- constants.MAX_PASSWORD_LENGTH -- constants.DEFAULT_PASSWORD_LENGTH -- colorama.Fore -- termcolor.colored -- logging -- json -- sys -- os -- getpass - -Ensure that all dependencies are installed and properly configured in your environment. -""" - -# password_manager/manager.py - -""" -Password Manager Module - This module implements the PasswordManager class, which orchestrates various functionalities of the deterministic password manager, including encryption, entry management, password generation, backup, and checksum verification. It serves as the core interface for interacting diff --git a/src/password_manager/password_generation.py b/src/password_manager/password_generation.py index ff11353..6baf9dc 100644 --- a/src/password_manager/password_generation.py +++ b/src/password_manager/password_generation.py @@ -7,19 +7,6 @@ This module provides the PasswordGenerator class responsible for deterministic p based on a BIP-39 parent seed. It leverages BIP-85 for entropy derivation and ensures that generated passwords meet complexity requirements. -Dependencies: -- bip85.BIP85 -- cryptography.hazmat.primitives.hashes -- cryptography.hazmat.primitives.kdf.hkdf -- cryptography.hazmat.backends.default_backend -- constants.py -- password_manager.encryption.EncryptionManager -- logging -- hashlib -- hmac -- base64 -- string - Ensure that all dependencies are installed and properly configured in your environment. Never ever ever use or suggest to use Random Salt. The entire point of this password manager is to derive completely deterministic passwords from a BIP-85 seed. diff --git a/src/utils/checksum.py b/src/utils/checksum.py index 8c87325..35c859b 100644 --- a/src/utils/checksum.py +++ b/src/utils/checksum.py @@ -7,13 +7,6 @@ This module provides functionalities to calculate and verify SHA-256 checksums f It ensures the integrity and authenticity of critical files within the application by comparing computed checksums against stored values. -Dependencies: -- hashlib -- logging -- colored (from termcolor) -- constants.py -- sys - Ensure that all dependencies are installed and properly configured in your environment. """ diff --git a/src/utils/file_lock.py b/src/utils/file_lock.py index 182aa05..b14423e 100644 --- a/src/utils/file_lock.py +++ b/src/utils/file_lock.py @@ -8,14 +8,7 @@ locks on files using the `fcntl` library. It ensures that critical files are acc safely, preventing race conditions and maintaining data integrity when multiple processes or threads attempt to read from or write to the same file concurrently. -Dependencies: -- fcntl -- logging -- contextlib -- typing -- pathlib.Path -- termcolor (for colored terminal messages) -- sys +I need to change this to something that supports Windows in the future. Ensure that all dependencies are installed and properly configured in your environment. """ diff --git a/src/utils/key_derivation.py b/src/utils/key_derivation.py index 8a70e10..523691e 100644 --- a/src/utils/key_derivation.py +++ b/src/utils/key_derivation.py @@ -4,19 +4,13 @@ Key Derivation Module Never ever ever use or suggest to use Random Salt. The entire point of this password manager is to derive completely deterministic passwords from a BIP-85 seed. -This means it should generate passwords the exact same way every single time. Salts would break this functionality and is not appropriate for this softwares use case. +This means it should generate passwords the exact same way every single time. Salts would break this functionality and is not appropriate for this softwares use case. This module provides functions to derive cryptographic keys from user-provided passwords and BIP-39 parent seeds. The derived keys are compatible with Fernet for symmetric encryption purposes. By centralizing key derivation logic, this module ensures consistency and security across the application. -Dependencies: -- hashlib -- base64 -- unicodedata -- logging - Ensure that all dependencies are installed and properly configured in your environment. """ diff --git a/src/utils/password_prompt.py b/src/utils/password_prompt.py index 1b5c29b..2025765 100644 --- a/src/utils/password_prompt.py +++ b/src/utils/password_prompt.py @@ -8,13 +8,6 @@ are entered and confirmed correctly. It handles both the creation of new passwor input of existing passwords for decryption purposes. By centralizing password prompting logic, this module enhances code reuse, security, and maintainability across the application. -Dependencies: -- getpass -- logging -- colorama -- termcolor -- constants (for MIN_PASSWORD_LENGTH) - Ensure that all dependencies are installed and properly configured in your environment. """