Merge branch 'main' of https://github.com/PR0M3TH3AN/SeedPass
112
README.md
@@ -1,6 +1,6 @@
|
||||
# SeedPass
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@@ -197,6 +197,13 @@ For any questions, suggestions, or support, please open an issue on the [GitHub
|
||||
- **Multi-Factor Authentication (MFA):** Integrate MFA to enhance the security of the recovery process.
|
||||
- **Encrypted Storage:** Ensure that recovery data is encrypted and stored securely.
|
||||
|
||||
- **Add "Secret" Mode (Clipboard-Only Password Retrieval)**
|
||||
- **Description:** Introduce a "secret" mode where passwords are copied directly to the clipboard rather than displayed on the screen upon retrieval. This mode should be a setting the user can toggle on or off.
|
||||
- **Suggested Features:**
|
||||
- **Toggle Setting:** Allow users to enable or disable "secret" mode.
|
||||
- **Clipboard Integration:** Ensure passwords are copied securely to the clipboard when "secret" mode is active.
|
||||
- **User Feedback:** Notify users that the password has been copied to the clipboard.
|
||||
|
||||
### **3. User Interface & Experience Improvements**
|
||||
- **Show All Passwords**
|
||||
- **Description:** Introduce a "Show All" option that displays all stored passwords along with their associated index entries.
|
||||
@@ -227,3 +234,106 @@ For any questions, suggestions, or support, please open an issue on the [GitHub
|
||||
- **Keyword Search:** Enable partial and case-insensitive searches.
|
||||
- **Filter Options:** Allow users to filter search results based on multiple tags or specific criteria.
|
||||
- **Advanced Search:** Incorporate Boolean operators (AND, OR, NOT) for more precise searches.
|
||||
|
||||
### **6. Nostr Integration Enhancements**
|
||||
- **Add Option for Users to Specify Custom Set of Relays for Publishing Backup Index**
|
||||
- **Description:** Provide users with the ability to select or configure specific Nostr relays where their encrypted backup index will be published.
|
||||
- **Benefits:** Enhances flexibility and control over where backups are distributed, allowing users to choose trusted relays or optimize for performance and reliability.
|
||||
- **Suggested Approach:**
|
||||
- **User Interface:** Add settings in the application where users can input or select preferred relay URLs.
|
||||
- **Validation:** Implement validation to ensure that the specified relays are active and support the necessary protocols.
|
||||
- **Fallback Mechanism:** Allow users to add multiple relays to ensure redundancy in case some relays become unavailable.
|
||||
|
||||
- **Modify JSON Index Nostr Post to Publish 10 Index Items Max per Post**
|
||||
- **Description:** Adjust the mechanism for posting the JSON index to Nostr by limiting each post to a maximum of 10 index items (e.g., index 0-9, 10-19). This segmentation ensures that each Nostr post remains small and manageable.
|
||||
- **Benefits:**
|
||||
- **Efficiency:** Smaller posts reduce the risk of exceeding size limits and improve the speed of data transmission.
|
||||
- **Scalability:** Facilitates handling larger databases by allowing the index to be pieced together from multiple posts rather than relying on a single large file.
|
||||
- **Reliability:** Enhances the robustness of data retrieval by distributing the index across multiple posts, reducing the impact of potential data corruption in any single post.
|
||||
|
||||
### **7. Advanced CLI Mode**
|
||||
- **Develop an Advanced CLI Mode with Enhanced Functionalities**
|
||||
- **Description:** Create a more sophisticated Command-Line Interface (CLI) mode that supports advanced operations beyond the basic functionalities.
|
||||
- **Included Features:**
|
||||
- **Custom Relays Configuration:** Allow users to specify a custom set of Nostr relays for publishing their backup index.
|
||||
- **Batch Posting:** Enable the CLI to handle the segmentation of index entries into batches of 10 for Nostr posts.
|
||||
- **Toggle "Secret" Mode:** Provide CLI commands to enable or disable "secret" mode for clipboard-only password retrieval.
|
||||
- **Suggested Approach:**
|
||||
- **Command Structure:** Design intuitive commands and flags to manage advanced settings.
|
||||
- **User Feedback:** Ensure that the CLI provides clear feedback and confirmations for advanced operations.
|
||||
- **Error Handling:** Implement robust error handling to manage issues specific to advanced functionalities.
|
||||
|
||||
---
|
||||
|
||||
## **Updated Advanced CLI Commands**
|
||||
|
||||
Here's an expanded table of **Advanced CLI Commands** that incorporates both your existing commands and the new functionalities you've outlined:
|
||||
|
||||
| **Action** | **Command** | **Short Flag** | **Long Flag** | **Example Command** |
|
||||
|-------------------------------------------|------------------------|----------------|-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Add a new password entry | `add` | `-A` | `--add` | `passmgr add --title "GitHub" --url "https://github.com" --username "john_doe" --email "john@example.com" --notes "Primary GitHub account" --tags "work,development" --length 20` |
|
||||
| Retrieve a password entry | `retrieve` | `-R` | `--retrieve` | `passmgr retrieve --index 3` or `passmgr retrieve --title "GitHub"` |
|
||||
| Modify an existing entry | `modify` | `-M` | `--modify` | `passmgr modify --index 3 --title "GitHub Pro" --notes "Updated to pro account" --tags "work,development,pro" --length 22` |
|
||||
| Delete an entry | `delete` | `-D` | `--delete` | `passmgr delete --index 3` |
|
||||
| List all entries | `list` | `-L` | `--list` | `passmgr list` |
|
||||
| Search for a password entry | `search` | `-S` | `--search` | `passmgr search --query "GitHub"` |
|
||||
| Export passwords to a file | `export` | `-E` | `--export` | `passmgr export --file "backup_passwords.json"` |
|
||||
| Import passwords from a file | `import` | `-I` | `--import` | `passmgr import --file "backup_passwords.json"` |
|
||||
| Display help information | `help` | `-H` | `--help` | `passmgr help` |
|
||||
| Display application version | `version` | `-V` | `--version` | `passmgr version` |
|
||||
| Change master password | `changepw` | `-C` | `--changepw` | `passmgr changepw --new "NewSecureP@ssw0rd!"` |
|
||||
| Enable auto-lock | `autolock --enable` | `-AL` | `--auto-lock --enable` | `passmgr autolock --enable --timeout 10` |
|
||||
| Disable auto-lock | `autolock --disable` | `-DL` | `--auto-lock --disable` | `passmgr autolock --disable` |
|
||||
| Generate a strong password | `generate` | `-G` | `--generate` | `passmgr generate --length 20` |
|
||||
| Verify script checksum | `verify` | `-V` | `--verify` | `passmgr verify` |
|
||||
| Post encrypted index to Nostr | `post` | `-P` | `--post` | `passmgr post` |
|
||||
| Retrieve from Nostr | `get-nostr` | `-GN` | `--get-nostr` | `passmgr get-nostr` |
|
||||
| Display Nostr public key | `show-pubkey` | `-K` | `--show-pubkey` | `passmgr show-pubkey` |
|
||||
| **Set Custom Nostr Relays** | `set-relays` | `-SR` | `--set-relays` | `passmgr set-relays --add "wss://relay1.example.com" --add "wss://relay2.example.com"` |
|
||||
| **Enable "Secret" Mode** | `set-secret` | `-SS` | `--set-secret` | `passmgr set-secret --enable` or `passmgr set-secret --disable` |
|
||||
| **Batch Post Index Items to Nostr** | `batch-post` | `-BP` | `--batch-post` | `passmgr batch-post --start 0 --end 9` or `passmgr batch-post --range 10-19` |
|
||||
| **Show All Passwords** | `show-all` | `-SA` | `--show-all` | `passmgr show-all` |
|
||||
| **Add Notes to an Entry** | `add-notes` | `-AN` | `--add-notes` | `passmgr add-notes --index 3 --notes "This is a secured account"` |
|
||||
| **Add Tags to an Entry** | `add-tags` | `-AT` | `--add-tags` | `passmgr add-tags --index 3 --tags "personal,finance"` |
|
||||
| **Search by Tag or Title** | `search-by` | `-SB` | `--search-by` | `passmgr search-by --tag "work"` or `passmgr search-by --title "GitHub"` |
|
||||
|
||||
---
|
||||
|
||||
### **Notes on New CLI Commands**
|
||||
|
||||
1. **Set Custom Nostr Relays (`set-relays`):**
|
||||
- **Purpose:** Allows users to specify which Nostr relays their backup indexes should be published to.
|
||||
- **Usage Examples:**
|
||||
- Add multiple relays: `passmgr set-relays --add "wss://relay1.example.com" --add "wss://relay2.example.com"`
|
||||
- Remove a relay: `passmgr set-relays --remove "wss://relay1.example.com"`
|
||||
- List current relays: `passmgr set-relays --list`
|
||||
|
||||
2. **Enable "Secret" Mode (`set-secret`):**
|
||||
- **Purpose:** Toggles the "secret" mode where passwords are copied to the clipboard instead of being displayed on the screen.
|
||||
- **Usage Examples:**
|
||||
- Enable secret mode: `passmgr set-secret --enable`
|
||||
- Disable secret mode: `passmgr set-secret --disable`
|
||||
|
||||
3. **Batch Post Index Items to Nostr (`batch-post`):**
|
||||
- **Purpose:** Publishes segments of the index (e.g., 10 items per post) to Nostr to manage large databases efficiently.
|
||||
- **Usage Examples:**
|
||||
- Post indexes 0-9: `passmgr batch-post --start 0 --end 9`
|
||||
- Post indexes 10-19: `passmgr batch-post --range 10-19`
|
||||
|
||||
4. **Show All Passwords (`show-all`):**
|
||||
- **Purpose:** Displays all stored passwords along with their index entries.
|
||||
- **Usage Example:** `passmgr show-all`
|
||||
|
||||
5. **Add Notes to an Entry (`add-notes`):**
|
||||
- **Purpose:** Adds or updates the "Notes" field for a specific password entry.
|
||||
- **Usage Example:** `passmgr add-notes --index 3 --notes "This is a secured account"`
|
||||
|
||||
6. **Add Tags to an Entry (`add-tags`):**
|
||||
- **Purpose:** Adds or updates the "Tags" field for a specific password entry.
|
||||
- **Usage Example:** `passmgr add-tags --index 3 --tags "personal,finance"`
|
||||
|
||||
7. **Search by Tag or Title (`search-by`):**
|
||||
- **Purpose:** Enables searching for password entries based on tags or titles.
|
||||
- **Usage Examples:**
|
||||
- Search by tag: `passmgr search-by --tag "work"`
|
||||
- Search by title: `passmgr search-by --title "GitHub"`
|
||||
|
59
landing/index.html
Normal file
@@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>SeedPass - Secure Password Manager</title>
|
||||
<link rel="stylesheet" href="./style.css"> <!-- Relative path to style.css -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav class="navbar">
|
||||
<div class="container">
|
||||
<img src="https://raw.githubusercontent.com/PR0M3TH3AN/SeedPass/refs/heads/main/logo/png/SeedPass-Logo-11.png" alt="SeedPass Logo" class="logo">
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="intro">
|
||||
<div class="container">
|
||||
<h1>SeedPass: Secure Password Manager</h1>
|
||||
<p><strong>SeedPass</strong> is a secure password generator and manager built on Bitcoin's BIP-85 standard. It uses deterministic key derivation to generate passwords that are never stored but can be easily regenerated when needed.</p>
|
||||
<p>By integrating with the <strong>Nostr network</strong>, SeedPass ensures that your passwords are safe and accessible across devices.</p>
|
||||
<a href="https://github.com/PR0M3TH3AN/SeedPass" class="btn-primary cta-button">Get Started</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="features">
|
||||
<div class="container">
|
||||
<h2>Features</h2>
|
||||
<ul>
|
||||
<li>Deterministic password generation using BIP-85</li>
|
||||
<li>Encrypted local storage for seeds and sensitive data</li>
|
||||
<li>Nostr integration for secure backup and retrieval</li>
|
||||
<li>Checksum verification for integrity checks</li>
|
||||
<li>User-friendly command-line interface</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="disclaimer">
|
||||
<div class="container">
|
||||
<h2>Disclaimer</h2>
|
||||
<p><strong>⚠️ Use with Caution:</strong> This software was not developed by an experienced security expert. There may be bugs and missing features, and security vulnerabilities may exist. Always backup your data and be cautious while using it in sensitive environments.</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>© 2024 SeedPass. All rights reserved.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="./script.js"></script> <!-- Relative path to script.js -->
|
||||
</body>
|
||||
</html>
|
5
landing/script.js
Normal file
@@ -0,0 +1,5 @@
|
||||
// Add any JavaScript functionality here if needed
|
||||
// For example, you can add animations, smooth scroll, or event handlers
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
console.log('SeedPass landing page loaded');
|
||||
});
|
151
landing/style.css
Normal file
@@ -0,0 +1,151 @@
|
||||
/* General Reset */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
line-height: 1.6;
|
||||
background-color: #f4f4f9;
|
||||
color: #283c4f;
|
||||
}
|
||||
|
||||
/* Navbar */
|
||||
.navbar {
|
||||
background-color: #e94a39; /* Red background */
|
||||
padding: 40px 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.navbar .logo {
|
||||
max-width: 250px;
|
||||
}
|
||||
|
||||
/* Hero/Intro Section */
|
||||
.intro {
|
||||
text-align: center;
|
||||
padding: 100px 20px;
|
||||
background-color: #e94a39; /* Red background for hero section */
|
||||
color: #ffffff; /* White text for contrast */
|
||||
}
|
||||
|
||||
.intro h1 {
|
||||
font-size: 2.5rem;
|
||||
color: #ffffff;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.intro p {
|
||||
font-size: 1.2rem;
|
||||
color: #ffffff;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* Call-to-Action (CTA) Button */
|
||||
.cta-button {
|
||||
display: inline-block;
|
||||
margin-top: 30px;
|
||||
background-color: #ffffff; /* White background */
|
||||
color: #e94a39; /* Red text */
|
||||
padding: 15px 30px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
border-radius: 6px;
|
||||
border: 2px solid #ffffff; /* White border */
|
||||
transition: background-color 0.3s ease, color 0.3s ease;
|
||||
}
|
||||
|
||||
.cta-button:hover {
|
||||
background-color: #e94a39;
|
||||
color: #ffffff;
|
||||
border: 2px solid #ffffff; /* Button changes on hover */
|
||||
}
|
||||
|
||||
/* Features Section */
|
||||
.features {
|
||||
background-color: #f4f4f9;
|
||||
padding: 60px 20px;
|
||||
}
|
||||
|
||||
.features h2 {
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
color: #e94a39;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.features ul {
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-gap: 20px;
|
||||
}
|
||||
|
||||
.features ul li {
|
||||
background-color: #ffffff;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.features ul li:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
/* Disclaimer Section */
|
||||
.disclaimer {
|
||||
padding: 40px 20px;
|
||||
background-color: #283c4f;
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.disclaimer h2 {
|
||||
color: #e94a39;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.disclaimer p {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
font-size: 1.1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
background-color: #f4f4f9;
|
||||
padding: 20px 0;
|
||||
text-align: center;
|
||||
font-size: 0.9rem;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media screen and (max-width: 768px) {
|
||||
.navbar {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.navbar .logo {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.cta-button {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.features ul {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |