secure-mypass 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- secure_mypass-0.1.0/LICENSE +0 -0
- secure_mypass-0.1.0/PKG-INFO +174 -0
- secure_mypass-0.1.0/README.md +161 -0
- secure_mypass-0.1.0/mypass/__init__.py +0 -0
- secure_mypass-0.1.0/mypass/cli.py +53 -0
- secure_mypass-0.1.0/mypass/crypto.py +18 -0
- secure_mypass-0.1.0/mypass/parser.py +42 -0
- secure_mypass-0.1.0/mypass/search.py +34 -0
- secure_mypass-0.1.0/mypass/storage.py +7 -0
- secure_mypass-0.1.0/pyproject.toml +23 -0
- secure_mypass-0.1.0/secure_mypass.egg-info/PKG-INFO +174 -0
- secure_mypass-0.1.0/secure_mypass.egg-info/SOURCES.txt +14 -0
- secure_mypass-0.1.0/secure_mypass.egg-info/dependency_links.txt +1 -0
- secure_mypass-0.1.0/secure_mypass.egg-info/entry_points.txt +2 -0
- secure_mypass-0.1.0/secure_mypass.egg-info/top_level.txt +1 -0
- secure_mypass-0.1.0/setup.cfg +4 -0
|
File without changes
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: secure-mypass
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Secure local terminal password manager
|
|
5
|
+
Author: Ravi K
|
|
6
|
+
Classifier: Programming Language :: Python :: 3
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Environment :: Console
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Dynamic: license-file
|
|
13
|
+
|
|
14
|
+
# Secure MyPass
|
|
15
|
+
|
|
16
|
+
A lightweight and secure local password manager for Linux/macOS terminals.
|
|
17
|
+
|
|
18
|
+
Secure MyPass allows you to store and search credentials directly from your terminal using a simple text-based database located in your home directory.
|
|
19
|
+
|
|
20
|
+
No cloud storage. No external servers. No account required.
|
|
21
|
+
|
|
22
|
+
## Features
|
|
23
|
+
|
|
24
|
+
* Store credentials locally in `~/.mypass`
|
|
25
|
+
* Fast keyword search from the terminal
|
|
26
|
+
* Organize credentials into sections
|
|
27
|
+
* Simple and lightweight
|
|
28
|
+
* No internet dependency
|
|
29
|
+
* No vendor lock-in
|
|
30
|
+
* Easy backup and migration
|
|
31
|
+
* Linux and macOS friendly
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install secure-mypass
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Create Password Store
|
|
40
|
+
|
|
41
|
+
Create a file named:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
~/.mypass
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Example:
|
|
48
|
+
|
|
49
|
+
```ini
|
|
50
|
+
[SSO Login]
|
|
51
|
+
Name: Portal SSO
|
|
52
|
+
Url: https://abc.com
|
|
53
|
+
UserName: ravi
|
|
54
|
+
Password: mypassword
|
|
55
|
+
|
|
56
|
+
Name: Terminal SSO
|
|
57
|
+
Command: aws configure sso
|
|
58
|
+
|
|
59
|
+
[Microsoft Email Services]
|
|
60
|
+
Name: Provenio Mail
|
|
61
|
+
Email: ravi@example.com
|
|
62
|
+
Password: mysecretpassword
|
|
63
|
+
|
|
64
|
+
Name: Enkefalos Mail
|
|
65
|
+
Email: ravi@example.com
|
|
66
|
+
Password: anotherpassword
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Usage
|
|
70
|
+
|
|
71
|
+
Search by section name:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
mypass provenio
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Output:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
[Microsoft Email Services]
|
|
81
|
+
|
|
82
|
+
Name: Provenio Mail
|
|
83
|
+
Email: ravi@example.com
|
|
84
|
+
Password: ********
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Search by email:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mypass ravi@example.com
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Search by service name:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mypass enkefalos
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## File Location
|
|
100
|
+
|
|
101
|
+
Secure MyPass always reads credentials from:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
~/.mypass
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
This ensures credentials remain under your control and can easily be backed up using Git, Dropbox, OneDrive, rsync, or any preferred method.
|
|
108
|
+
|
|
109
|
+
## Security Notes
|
|
110
|
+
|
|
111
|
+
* All data is stored locally on your machine.
|
|
112
|
+
* No credentials are transmitted over the internet.
|
|
113
|
+
* No external services are used.
|
|
114
|
+
* Restrict file access:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
chmod 600 ~/.mypass
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Recommended permissions:
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
-rw------- ~/.mypass
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Example Alias
|
|
127
|
+
|
|
128
|
+
Add to your `.bashrc` or `.zshrc`:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
alias mypass="python3 ~/mypass_cli.py"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Or install from PyPI and use directly:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
mypass provenio
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Use Cases
|
|
141
|
+
|
|
142
|
+
* AWS SSO accounts
|
|
143
|
+
* Email credentials
|
|
144
|
+
* Internal portals
|
|
145
|
+
* Database logins
|
|
146
|
+
* Development environments
|
|
147
|
+
* Personal projects
|
|
148
|
+
* Infrastructure credentials
|
|
149
|
+
|
|
150
|
+
## Why Secure MyPass?
|
|
151
|
+
|
|
152
|
+
Many password managers require cloud synchronization, subscriptions, or browser integrations.
|
|
153
|
+
|
|
154
|
+
Secure MyPass follows a different philosophy:
|
|
155
|
+
|
|
156
|
+
* Local-first
|
|
157
|
+
* Terminal-first
|
|
158
|
+
* Simple
|
|
159
|
+
* Fast
|
|
160
|
+
* Developer-friendly
|
|
161
|
+
|
|
162
|
+
Perfect for engineers, DevOps professionals, system administrators, and developers who prefer local credential management.
|
|
163
|
+
|
|
164
|
+
## License
|
|
165
|
+
|
|
166
|
+
MIT License
|
|
167
|
+
|
|
168
|
+
## Author
|
|
169
|
+
|
|
170
|
+
Ravi K
|
|
171
|
+
|
|
172
|
+
Lead Software Engineer
|
|
173
|
+
|
|
174
|
+
Python | Django | FastAPI | AWS | PostgreSQL
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Secure MyPass
|
|
2
|
+
|
|
3
|
+
A lightweight and secure local password manager for Linux/macOS terminals.
|
|
4
|
+
|
|
5
|
+
Secure MyPass allows you to store and search credentials directly from your terminal using a simple text-based database located in your home directory.
|
|
6
|
+
|
|
7
|
+
No cloud storage. No external servers. No account required.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
* Store credentials locally in `~/.mypass`
|
|
12
|
+
* Fast keyword search from the terminal
|
|
13
|
+
* Organize credentials into sections
|
|
14
|
+
* Simple and lightweight
|
|
15
|
+
* No internet dependency
|
|
16
|
+
* No vendor lock-in
|
|
17
|
+
* Easy backup and migration
|
|
18
|
+
* Linux and macOS friendly
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install secure-mypass
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Create Password Store
|
|
27
|
+
|
|
28
|
+
Create a file named:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
~/.mypass
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Example:
|
|
35
|
+
|
|
36
|
+
```ini
|
|
37
|
+
[SSO Login]
|
|
38
|
+
Name: Portal SSO
|
|
39
|
+
Url: https://abc.com
|
|
40
|
+
UserName: ravi
|
|
41
|
+
Password: mypassword
|
|
42
|
+
|
|
43
|
+
Name: Terminal SSO
|
|
44
|
+
Command: aws configure sso
|
|
45
|
+
|
|
46
|
+
[Microsoft Email Services]
|
|
47
|
+
Name: Provenio Mail
|
|
48
|
+
Email: ravi@example.com
|
|
49
|
+
Password: mysecretpassword
|
|
50
|
+
|
|
51
|
+
Name: Enkefalos Mail
|
|
52
|
+
Email: ravi@example.com
|
|
53
|
+
Password: anotherpassword
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
Search by section name:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
mypass provenio
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Output:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
[Microsoft Email Services]
|
|
68
|
+
|
|
69
|
+
Name: Provenio Mail
|
|
70
|
+
Email: ravi@example.com
|
|
71
|
+
Password: ********
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Search by email:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
mypass ravi@example.com
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Search by service name:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
mypass enkefalos
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## File Location
|
|
87
|
+
|
|
88
|
+
Secure MyPass always reads credentials from:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
~/.mypass
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
This ensures credentials remain under your control and can easily be backed up using Git, Dropbox, OneDrive, rsync, or any preferred method.
|
|
95
|
+
|
|
96
|
+
## Security Notes
|
|
97
|
+
|
|
98
|
+
* All data is stored locally on your machine.
|
|
99
|
+
* No credentials are transmitted over the internet.
|
|
100
|
+
* No external services are used.
|
|
101
|
+
* Restrict file access:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
chmod 600 ~/.mypass
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Recommended permissions:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
-rw------- ~/.mypass
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Example Alias
|
|
114
|
+
|
|
115
|
+
Add to your `.bashrc` or `.zshrc`:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
alias mypass="python3 ~/mypass_cli.py"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Or install from PyPI and use directly:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
mypass provenio
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Use Cases
|
|
128
|
+
|
|
129
|
+
* AWS SSO accounts
|
|
130
|
+
* Email credentials
|
|
131
|
+
* Internal portals
|
|
132
|
+
* Database logins
|
|
133
|
+
* Development environments
|
|
134
|
+
* Personal projects
|
|
135
|
+
* Infrastructure credentials
|
|
136
|
+
|
|
137
|
+
## Why Secure MyPass?
|
|
138
|
+
|
|
139
|
+
Many password managers require cloud synchronization, subscriptions, or browser integrations.
|
|
140
|
+
|
|
141
|
+
Secure MyPass follows a different philosophy:
|
|
142
|
+
|
|
143
|
+
* Local-first
|
|
144
|
+
* Terminal-first
|
|
145
|
+
* Simple
|
|
146
|
+
* Fast
|
|
147
|
+
* Developer-friendly
|
|
148
|
+
|
|
149
|
+
Perfect for engineers, DevOps professionals, system administrators, and developers who prefer local credential management.
|
|
150
|
+
|
|
151
|
+
## License
|
|
152
|
+
|
|
153
|
+
MIT License
|
|
154
|
+
|
|
155
|
+
## Author
|
|
156
|
+
|
|
157
|
+
Ravi K
|
|
158
|
+
|
|
159
|
+
Lead Software Engineer
|
|
160
|
+
|
|
161
|
+
Python | Django | FastAPI | AWS | PostgreSQL
|
|
File without changes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
from mypass.storage import get_file_path
|
|
4
|
+
from mypass.search import search
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
SAMPLE_CONTENT = """
|
|
8
|
+
[SSO Login]
|
|
9
|
+
Name: Portal SSO
|
|
10
|
+
Url: https://example.com
|
|
11
|
+
UserName: username
|
|
12
|
+
Password: password
|
|
13
|
+
|
|
14
|
+
[Email]
|
|
15
|
+
Name: Work Email
|
|
16
|
+
Email: user@example.com
|
|
17
|
+
Password: password
|
|
18
|
+
""".strip()
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def initialize():
|
|
22
|
+
|
|
23
|
+
file_path = get_file_path()
|
|
24
|
+
|
|
25
|
+
if file_path.exists():
|
|
26
|
+
print(f"Already exists: {file_path}")
|
|
27
|
+
return
|
|
28
|
+
|
|
29
|
+
with open(file_path, "w", encoding="utf-8") as file:
|
|
30
|
+
file.write(SAMPLE_CONTENT)
|
|
31
|
+
|
|
32
|
+
print(f"Created: {file_path}")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def main():
|
|
36
|
+
|
|
37
|
+
if len(sys.argv) < 2:
|
|
38
|
+
print("Usage:")
|
|
39
|
+
print(" mypass init")
|
|
40
|
+
print(" mypass <keyword>")
|
|
41
|
+
return
|
|
42
|
+
|
|
43
|
+
command = sys.argv[1]
|
|
44
|
+
|
|
45
|
+
if command == "init":
|
|
46
|
+
initialize()
|
|
47
|
+
return
|
|
48
|
+
|
|
49
|
+
search(command)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
if __name__ == "__main__":
|
|
53
|
+
main()
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from cryptography.fernet import Fernet
|
|
2
|
+
from hashlib import sha256
|
|
3
|
+
import base64
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def generate_key(master_password: str):
|
|
7
|
+
digest = sha256(master_password.encode()).digest()
|
|
8
|
+
return base64.urlsafe_b64encode(digest)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def encrypt(value: str, master_password: str):
|
|
12
|
+
key = generate_key(master_password)
|
|
13
|
+
return Fernet(key).encrypt(value.encode()).decode()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def decrypt(value: str, master_password: str):
|
|
17
|
+
key = generate_key(master_password)
|
|
18
|
+
return Fernet(key).decrypt(value.encode()).decode()
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from mypass.storage import get_file_path
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def parse_mypass():
|
|
5
|
+
file_path = get_file_path()
|
|
6
|
+
|
|
7
|
+
if not file_path.exists():
|
|
8
|
+
return {}
|
|
9
|
+
|
|
10
|
+
data = {}
|
|
11
|
+
current_section = None
|
|
12
|
+
current_record = {}
|
|
13
|
+
|
|
14
|
+
with open(file_path, "r", encoding="utf-8") as file:
|
|
15
|
+
|
|
16
|
+
for line in file:
|
|
17
|
+
line = line.strip()
|
|
18
|
+
|
|
19
|
+
if not line:
|
|
20
|
+
|
|
21
|
+
if current_record and current_section:
|
|
22
|
+
data[current_section].append(current_record)
|
|
23
|
+
current_record = {}
|
|
24
|
+
|
|
25
|
+
continue
|
|
26
|
+
|
|
27
|
+
if line.startswith("[") and line.endswith("]"):
|
|
28
|
+
|
|
29
|
+
current_section = line[1:-1]
|
|
30
|
+
data.setdefault(current_section, [])
|
|
31
|
+
|
|
32
|
+
continue
|
|
33
|
+
|
|
34
|
+
if ":" in line:
|
|
35
|
+
key, value = line.split(":", 1)
|
|
36
|
+
|
|
37
|
+
current_record[key.strip()] = value.strip()
|
|
38
|
+
|
|
39
|
+
if current_record and current_section:
|
|
40
|
+
data[current_section].append(current_record)
|
|
41
|
+
|
|
42
|
+
return data
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from mypass.parser import parse_mypass
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def search(keyword):
|
|
5
|
+
|
|
6
|
+
keyword = keyword.lower()
|
|
7
|
+
|
|
8
|
+
data = parse_mypass()
|
|
9
|
+
|
|
10
|
+
found = False
|
|
11
|
+
|
|
12
|
+
for section, records in data.items():
|
|
13
|
+
|
|
14
|
+
for record in records:
|
|
15
|
+
|
|
16
|
+
values = [
|
|
17
|
+
str(value).lower()
|
|
18
|
+
for value in record.values()
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
if (
|
|
22
|
+
keyword in section.lower()
|
|
23
|
+
or any(keyword in value for value in values)
|
|
24
|
+
):
|
|
25
|
+
|
|
26
|
+
found = True
|
|
27
|
+
|
|
28
|
+
print(f"\n[{section}]")
|
|
29
|
+
|
|
30
|
+
for key, value in record.items():
|
|
31
|
+
print(f"{key}: {value}")
|
|
32
|
+
|
|
33
|
+
if not found:
|
|
34
|
+
print("No matching records found.")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "secure-mypass"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Secure local terminal password manager"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Ravi K"}
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Operating System :: OS Independent",
|
|
19
|
+
"Environment :: Console",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.scripts]
|
|
23
|
+
mypass = "mypass.cli:main"
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: secure-mypass
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Secure local terminal password manager
|
|
5
|
+
Author: Ravi K
|
|
6
|
+
Classifier: Programming Language :: Python :: 3
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Environment :: Console
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Dynamic: license-file
|
|
13
|
+
|
|
14
|
+
# Secure MyPass
|
|
15
|
+
|
|
16
|
+
A lightweight and secure local password manager for Linux/macOS terminals.
|
|
17
|
+
|
|
18
|
+
Secure MyPass allows you to store and search credentials directly from your terminal using a simple text-based database located in your home directory.
|
|
19
|
+
|
|
20
|
+
No cloud storage. No external servers. No account required.
|
|
21
|
+
|
|
22
|
+
## Features
|
|
23
|
+
|
|
24
|
+
* Store credentials locally in `~/.mypass`
|
|
25
|
+
* Fast keyword search from the terminal
|
|
26
|
+
* Organize credentials into sections
|
|
27
|
+
* Simple and lightweight
|
|
28
|
+
* No internet dependency
|
|
29
|
+
* No vendor lock-in
|
|
30
|
+
* Easy backup and migration
|
|
31
|
+
* Linux and macOS friendly
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install secure-mypass
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Create Password Store
|
|
40
|
+
|
|
41
|
+
Create a file named:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
~/.mypass
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Example:
|
|
48
|
+
|
|
49
|
+
```ini
|
|
50
|
+
[SSO Login]
|
|
51
|
+
Name: Portal SSO
|
|
52
|
+
Url: https://abc.com
|
|
53
|
+
UserName: ravi
|
|
54
|
+
Password: mypassword
|
|
55
|
+
|
|
56
|
+
Name: Terminal SSO
|
|
57
|
+
Command: aws configure sso
|
|
58
|
+
|
|
59
|
+
[Microsoft Email Services]
|
|
60
|
+
Name: Provenio Mail
|
|
61
|
+
Email: ravi@example.com
|
|
62
|
+
Password: mysecretpassword
|
|
63
|
+
|
|
64
|
+
Name: Enkefalos Mail
|
|
65
|
+
Email: ravi@example.com
|
|
66
|
+
Password: anotherpassword
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Usage
|
|
70
|
+
|
|
71
|
+
Search by section name:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
mypass provenio
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Output:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
[Microsoft Email Services]
|
|
81
|
+
|
|
82
|
+
Name: Provenio Mail
|
|
83
|
+
Email: ravi@example.com
|
|
84
|
+
Password: ********
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Search by email:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mypass ravi@example.com
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Search by service name:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mypass enkefalos
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## File Location
|
|
100
|
+
|
|
101
|
+
Secure MyPass always reads credentials from:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
~/.mypass
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
This ensures credentials remain under your control and can easily be backed up using Git, Dropbox, OneDrive, rsync, or any preferred method.
|
|
108
|
+
|
|
109
|
+
## Security Notes
|
|
110
|
+
|
|
111
|
+
* All data is stored locally on your machine.
|
|
112
|
+
* No credentials are transmitted over the internet.
|
|
113
|
+
* No external services are used.
|
|
114
|
+
* Restrict file access:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
chmod 600 ~/.mypass
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Recommended permissions:
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
-rw------- ~/.mypass
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Example Alias
|
|
127
|
+
|
|
128
|
+
Add to your `.bashrc` or `.zshrc`:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
alias mypass="python3 ~/mypass_cli.py"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Or install from PyPI and use directly:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
mypass provenio
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Use Cases
|
|
141
|
+
|
|
142
|
+
* AWS SSO accounts
|
|
143
|
+
* Email credentials
|
|
144
|
+
* Internal portals
|
|
145
|
+
* Database logins
|
|
146
|
+
* Development environments
|
|
147
|
+
* Personal projects
|
|
148
|
+
* Infrastructure credentials
|
|
149
|
+
|
|
150
|
+
## Why Secure MyPass?
|
|
151
|
+
|
|
152
|
+
Many password managers require cloud synchronization, subscriptions, or browser integrations.
|
|
153
|
+
|
|
154
|
+
Secure MyPass follows a different philosophy:
|
|
155
|
+
|
|
156
|
+
* Local-first
|
|
157
|
+
* Terminal-first
|
|
158
|
+
* Simple
|
|
159
|
+
* Fast
|
|
160
|
+
* Developer-friendly
|
|
161
|
+
|
|
162
|
+
Perfect for engineers, DevOps professionals, system administrators, and developers who prefer local credential management.
|
|
163
|
+
|
|
164
|
+
## License
|
|
165
|
+
|
|
166
|
+
MIT License
|
|
167
|
+
|
|
168
|
+
## Author
|
|
169
|
+
|
|
170
|
+
Ravi K
|
|
171
|
+
|
|
172
|
+
Lead Software Engineer
|
|
173
|
+
|
|
174
|
+
Python | Django | FastAPI | AWS | PostgreSQL
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
mypass/__init__.py
|
|
5
|
+
mypass/cli.py
|
|
6
|
+
mypass/crypto.py
|
|
7
|
+
mypass/parser.py
|
|
8
|
+
mypass/search.py
|
|
9
|
+
mypass/storage.py
|
|
10
|
+
secure_mypass.egg-info/PKG-INFO
|
|
11
|
+
secure_mypass.egg-info/SOURCES.txt
|
|
12
|
+
secure_mypass.egg-info/dependency_links.txt
|
|
13
|
+
secure_mypass.egg-info/entry_points.txt
|
|
14
|
+
secure_mypass.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mypass
|