This commit is contained in:
Keep Creating Online
2024-10-19 20:46:23 -04:00
parent 6e3862810f
commit 412296d545
12 changed files with 10 additions and 115 deletions

View File

@@ -55,7 +55,7 @@ git clone https://github.com/PR0M3TH3AN/SeedPass.git
Navigate to the project directory: Navigate to the project directory:
```bash ```bash
cd SeedPass cd SeedPass/src
``` ```
### 2. Create a Virtual Environment ### 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`: It's recommended to use a virtual environment to manage your project's dependencies. Create a virtual environment named `venv`:
```bash ```bash
python -m venv venv python3 -m venv venv
``` ```
### 3. Activate the Virtual Environment ### 3. Activate the Virtual Environment
@@ -76,7 +76,7 @@ Activate the virtual environment using the appropriate command for your operatin
source venv/bin/activate source venv/bin/activate
``` ```
- **On Windows:** - **On Windows:** (This app doesent currently work on Windows)
```bash ```bash
venv\Scripts\activate venv\Scripts\activate

View File

@@ -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. 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.
Dependencies:
- bip_utils
- cryptography
Ensure that all dependencies are installed and properly configured in your environment. Ensure that all dependencies are installed and properly configured in your environment.
""" """

View File

@@ -53,7 +53,7 @@ try:
# ----------------------------------- # -----------------------------------
# Application Directory and Paths # 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 APP_DIR.mkdir(exist_ok=True, parents=True) # Ensure the directory exists
logging.info(f"Application directory created at {APP_DIR}") logging.info(f"Application directory created at {APP_DIR}")
except Exception as e: except Exception as e:
@@ -61,7 +61,7 @@ except Exception as e:
logging.error(traceback.format_exc()) # Log full traceback logging.error(traceback.format_exc()) # Log full traceback
try: 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 PARENT_SEED_FILE = APP_DIR / 'parent_seed.enc' # Encrypted parent seed
logging.info(f"Index file path set to {INDEX_FILE}") logging.info(f"Index file path set to {INDEX_FILE}")
logging.info(f"Parent seed file path set to {PARENT_SEED_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 # Checksum Files for Integrity
# ----------------------------------- # -----------------------------------
try: try:
SCRIPT_CHECKSUM_FILE = APP_DIR / 'script_checksum.txt' # Checksum for main script SCRIPT_CHECKSUM_FILE = APP_DIR / 'seedpass_script_checksum.txt' # Checksum for main script
DATA_CHECKSUM_FILE = APP_DIR / 'passwords_checksum.txt' # Checksum for password data 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}") logging.info(f"Checksum file paths set: Script {SCRIPT_CHECKSUM_FILE}, Data {DATA_CHECKSUM_FILE}")
except Exception as e: except Exception as e:
logging.error(f"Error setting checksum file paths: {e}") logging.error(f"Error setting checksum file paths: {e}")
@@ -83,7 +83,7 @@ except Exception as e:
# ----------------------------------- # -----------------------------------
# Password Generation Constants # 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 MIN_PASSWORD_LENGTH = 8 # Minimum allowed password length
MAX_PASSWORD_LENGTH = 128 # Maximum allowed password length MAX_PASSWORD_LENGTH = 128 # Maximum allowed password length

View File

@@ -11,7 +11,6 @@ import traceback
from password_manager.manager import PasswordManager from password_manager.manager import PasswordManager
from nostr.client import NostrClient from nostr.client import NostrClient
# Initialize colorama for colored terminal text
colorama_init() colorama_init()
def configure_logging(): def configure_logging():

View File

@@ -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 index file. It ensures data integrity and provides mechanisms to recover from
corrupted or lost data by maintaining timestamped backups. 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. Ensure that all dependencies are installed and properly configured in your environment.
""" """

View File

@@ -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 It provides methods to add, retrieve, modify, and list password entries, ensuring
that all changes are securely encrypted and properly indexed. 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. 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. 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.

View File

@@ -3,45 +3,6 @@
""" """
Password Manager Module 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 This module implements the PasswordManager class, which orchestrates various functionalities
of the deterministic password manager, including encryption, entry management, password of the deterministic password manager, including encryption, entry management, password
generation, backup, and checksum verification. It serves as the core interface for interacting generation, backup, and checksum verification. It serves as the core interface for interacting

View File

@@ -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 based on a BIP-39 parent seed. It leverages BIP-85 for entropy derivation and ensures that
generated passwords meet complexity requirements. 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. 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. 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.

View File

@@ -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 It ensures the integrity and authenticity of critical files within the application by
comparing computed checksums against stored values. 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. Ensure that all dependencies are installed and properly configured in your environment.
""" """

View File

@@ -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 safely, preventing race conditions and maintaining data integrity when multiple processes
or threads attempt to read from or write to the same file concurrently. or threads attempt to read from or write to the same file concurrently.
Dependencies: I need to change this to something that supports Windows in the future.
- fcntl
- logging
- contextlib
- typing
- pathlib.Path
- termcolor (for colored terminal messages)
- sys
Ensure that all dependencies are installed and properly configured in your environment. Ensure that all dependencies are installed and properly configured in your environment.
""" """

View File

@@ -4,19 +4,13 @@
Key Derivation Module 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. 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 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 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 purposes. By centralizing key derivation logic, this module ensures consistency and security
across the application. across the application.
Dependencies:
- hashlib
- base64
- unicodedata
- logging
Ensure that all dependencies are installed and properly configured in your environment. Ensure that all dependencies are installed and properly configured in your environment.
""" """

View File

@@ -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, input of existing passwords for decryption purposes. By centralizing password prompting logic,
this module enhances code reuse, security, and maintainability across the application. 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. Ensure that all dependencies are installed and properly configured in your environment.
""" """