Skip to content

Commit 392bd80

Browse files
committed
some misc. updates
1 parent 5e7b9f3 commit 392bd80

File tree

4 files changed

+231
-49
lines changed

4 files changed

+231
-49
lines changed

CONTRIBUTION.md

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Contributing to SecurePassManager
2+
3+
First off, thank you for considering contributing to SecurePassManager. It's people like you that make SecurePassManager such a great tool.
4+
5+
## Code of Conduct
6+
7+
By participating in this project, you are expected to uphold our Code of Conduct. Please report unacceptable behavior to [[email protected]](mailto:[email protected]).
8+
9+
## How Can I Contribute?
10+
11+
### Reporting Bugs
12+
13+
This section guides you through submitting a bug report for SecurePassManager. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
14+
15+
**Before Submitting A Bug Report**
16+
17+
* Check the [FAQ](docs/FAQ.md) for a list of common questions and problems.
18+
* Perform a [cursory search](https://github.com/fam007e/SecurePasswd_MGMT/issues) to see if the problem has already been reported. If it has and the issue is still open, add a comment to the existing issue instead of opening a new one.
19+
20+
**How Do I Submit A (Good) Bug Report?**
21+
22+
Bugs are tracked as [GitHub issues](https://github.com/fam007e/SecurePasswd_MGMT/issues). Create an issue using the [Bug Report](.github/ISSUE_TEMPLATE/bug_report.md) template and provide as much information as possible.
23+
24+
### Suggesting Enhancements
25+
26+
This section guides you through submitting an enhancement suggestion for SecurePassManager, including completely new features and minor improvements to existing functionality.
27+
28+
**Before Submitting An Enhancement Suggestion**
29+
30+
* Check if there's already a feature which provides that enhancement.
31+
* Perform a [cursory search](https://github.com/fam007e/SecurePasswd_MGMT/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
32+
33+
**How Do I Submit A (Good) Enhancement Suggestion?**
34+
35+
Enhancement suggestions are tracked as [GitHub issues](https://github.com/fam007e/SecurePasswd_MGMT/issues). Create an issue using the [Feature Request](.github/ISSUE_TEMPLATE/feature_request.md) template and provide as much information as possible.
36+
37+
### Pull Requests
38+
39+
* Fill in [the required template](.github/PULL_REQUEST_TEMPLATE.md)
40+
* Do not include issue numbers in the PR title
41+
* Include screenshots and animated GIFs in your pull request whenever possible.
42+
* Follow the [C style guide](https://google.github.io/styleguide/cguide.html).
43+
* End all files with a newline
44+
45+
## Styleguides
46+
47+
### Git Commit Messages
48+
49+
* Use the present tense ("Add feature" not "Added feature")
50+
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
51+
* Limit the first line to 72 characters or less
52+
* Reference issues and pull requests liberally after the first line
53+
54+
### C Styleguide
55+
56+
All C code must adhere to the [Google C Style Guide](https://google.github.io/styleguide/cguide.html).
57+
58+
## Additional Notes
59+
60+
### Issue and Pull Request Labels
61+
62+
This section lists the labels we use to help us track and manage issues and pull requests. These labels are automatically applied by our issue templates.
63+
64+
* `bug` - Issues that are bugs.
65+
* `enhancement` - Issues that are feature requests.
66+
* `documentation` - Issues or pull requests related to documentation.
67+
* `good first issue` - Good for newcomers.
68+
69+
## Getting Help
70+
71+
If you need help, you can ask questions on the [issue tracker](https://github.com/fam007e/SecurePasswd_MGMT/issues). You can use slash commands in issues and pull requests as defined in our [issue-slash-cmd.yml](.github/workflows/issue-slash-cmd.yml) workflow.
72+
73+
## Release Process
74+
75+
Our release process is automated through the [release.yml](.github/workflows/release.yml) workflow. This process is triggered on pushes to the main branch that modify files in the `src/` directory or the `Makefile`.
76+
77+
Thank you for contributing to SecurePassManager!

README.md

+28-48
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
SecurePassManager is a robust, command-line password manager and two-factor authenticator (TOTP) designed with security and ease of use in mind. It provides a secure solution for managing passwords and 2FA tokens locally, ensuring your sensitive data remains protected and easily accessible.
66

7-
![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)
7+
![Version](https://img.shields.io/github/v/release/fam007e/SecurePasswd_MGMT?style=flat-square)
88
![License](https://img.shields.io/badge/license-MIT-green.svg)
9-
![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)
9+
![Build Status](https://img.shields.io/github/workflow/status/yourusername/SecurePasswd_MGMT/C%20CI%20and%20Release?style=flat-square)
1010

1111
## Table of Contents
1212

@@ -17,11 +17,10 @@ SecurePassManager is a robust, command-line password manager and two-factor auth
1717
5. [Security](#security)
1818
6. [Project Structure](#project-structure)
1919
7. [Contributing](#contributing)
20-
8. [Testing](#testing)
21-
9. [License](#license)
22-
10. [Disclaimer](#disclaimer)
23-
11. [Support](#support)
24-
12. [Acknowledgments](#acknowledgments)
20+
8. [License](#license)
21+
9. [Disclaimer](#disclaimer)
22+
10. [Support](#support)
23+
11. [Acknowledgments](#acknowledgments)
2524

2625
## Features
2726

@@ -54,7 +53,7 @@ Ensure you have the required libraries installed:
5453
#### Ubuntu/Debian:
5554
```bash
5655
sudo apt-get update
57-
sudo apt-get install gcc libssl-dev liboath-dev
56+
sudo apt-get install build-essential libssl-dev oathtool liboath0 liboath-dev
5857
```
5958

6059
#### macOS (using Homebrew):
@@ -80,11 +79,6 @@ sudo pacman -S gcc openssl oath-toolkit
8079
make
8180
```
8281

83-
3. (Optional) Run tests:
84-
```bash
85-
make test
86-
```
87-
8882
The compiled binary `securepass` will be created in the project root directory.
8983

9084
## Usage
@@ -101,8 +95,6 @@ Follow the on-screen prompts to:
10195
- Generate TOTP codes
10296
- Import or export password data
10397

104-
For detailed usage instructions, refer to the [User Manual](docs/USER_MANUAL.md).
105-
10698
## Security
10799

108100
- **Encryption**: AES-256 encryption for all stored data
@@ -115,45 +107,33 @@ For a detailed security analysis, see our [Security Policy](SECURITY.md).
115107
## Project Structure
116108

117109
```
118-
SecurePasswd_MGMT/
119-
├── src/
120-
│ ├── main.c
121-
│ ├── encryption.c
122-
│ ├── csv_handler.c
123-
│ ├── totp.c
124-
│ └── utils.c
125-
├── include/
126-
│ ├── encryption.h
127-
│ ├── csv_handler.h
128-
│ ├── totp.h
129-
│ └── utils.h
130-
├── tests/
131-
│ └── test_main.c
132-
├── data/
133-
│ └── README.md
134-
├── lib/
135-
│ └── README.md
136-
├── docs/
137-
│ └── USER_MANUAL.md
110+
SecurePasswd_MGMT
111+
├── data
112+
│ └── README.md
113+
├── lib
114+
│ ├── liboath
115+
│ │ └── oath.h
116+
│ └── README.md
117+
├── LICENSE
138118
├── Makefile
139119
├── README.md
140-
├── LICENSE
141-
├── CONTRIBUTING.md
142-
└── SECURITY.md
120+
└── src
121+
├── csv_handler.c
122+
├── csv_handler.h
123+
├── encryption.c
124+
├── encryption.h
125+
├── main.c
126+
├── totp.c
127+
├── totp.h
128+
├── utils.c
129+
├── utils.h
130+
└── version.h
131+
143132
```
144133

145134
## Contributing
146135

147-
We welcome contributions to SecurePassManager! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
148-
149-
## Testing
150-
151-
Run the test suite with:
152-
```bash
153-
make test
154-
```
155-
156-
For more information on testing, see [TESTING.md](TESTING.md).
136+
We welcome contributions to SecurePassManager! Please read our [Contributing Guidelines](CONTRIBUTION.md) for details on our code of conduct and the process for submitting pull requests.
157137

158138
## License
159139

SECURITY.md

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
SecurePassManager is currently in its initial release phase. We are committed to providing security updates for the following versions:
6+
7+
| Version | Supported |
8+
| ------- | ------------------ |
9+
| 2024.10.01.01 | :white_check_mark: |
10+
| < 2024.10.01.00 | :x: |
11+
12+
## Reporting a Vulnerability
13+
14+
We take the security of SecurePassManager seriously. If you have discovered a security vulnerability, we appreciate your help in disclosing it to us responsibly.
15+
16+
### Reporting Process
17+
18+
1. **Do not report security vulnerabilities through public GitHub issues.**
19+
20+
2. Please send an email to [@securepassmanager](mailto:[email protected]) with the subject line "SecurePassManager Security Vulnerability".
21+
22+
3. Include the following details in your report:
23+
- Type of issue (e.g., buffer overflow, encryption weakness, etc.)
24+
- Full paths of source file(s) related to the issue
25+
- The location of the affected source code (tag/branch/commit or direct URL)
26+
- Any special configuration required to reproduce the issue
27+
- Step-by-step instructions to reproduce the issue
28+
- Proof-of-concept or exploit code (if possible)
29+
- Impact of the issue, including how an attacker might exploit it
30+
31+
4. Allow up to 48 hours for an initial response to your report.
32+
33+
### What to expect
34+
35+
- A response acknowledging your report within 48 hours.
36+
- An evaluation of the reported vulnerability.
37+
- A plan for addressing the vulnerability, if confirmed.
38+
- A public disclosure after the vulnerability has been addressed.
39+
40+
We appreciate your efforts and will make every effort to acknowledge your contributions.
41+
42+
## Security Measures in SecurePassManager
43+
44+
SecurePassManager implements the following security measures:
45+
46+
### Encryption
47+
48+
- AES-256 encryption in GCM mode for all stored data.
49+
- Encryption keys are derived from the user's master password using a secure key derivation function.
50+
51+
### Key Derivation
52+
53+
- PBKDF2-HMAC-SHA256 with a minimum of 100,000 iterations.
54+
- A unique salt is generated for each user to prevent rainbow table attacks.
55+
56+
### Memory Protection
57+
58+
- Sensitive data (e.g., master password, encryption keys) is securely wiped from memory after use.
59+
- We use `mlock()` to prevent sensitive memory pages from being swapped to disk.
60+
61+
### Input Validation and Sanitization
62+
63+
- All user inputs are validated and sanitized to prevent injection attacks and buffer overflows.
64+
- We use prepared statements for any operations involving user input.
65+
66+
### Local Operation
67+
68+
- SecurePassManager operates entirely locally, with no network communication, eliminating risks associated with data transmission.
69+
70+
### Secure Random Number Generation
71+
72+
- We use cryptographically secure random number generators (provided by OpenSSL) for all security-critical operations.
73+
74+
### Version Control and Code Signing
75+
76+
- All releases are tagged and signed with GPG keys.
77+
- We provide checksums for all released binaries.
78+
79+
## Best Practices for Users
80+
81+
To maximize security when using SecurePassManager:
82+
83+
1. Use a strong, unique master password (we recommend at least 16 characters).
84+
2. Never share your master password or store it in plain text.
85+
3. Regularly update to the latest version of SecurePassManager.
86+
4. Use full-disk encryption on your device.
87+
5. Be cautious when exporting password data and securely delete any exported files when no longer needed.
88+
89+
## Third-Party Libraries
90+
91+
SecurePassManager uses the following third-party libraries:
92+
93+
- OpenSSL 3.3.0 or later: For cryptographic operations
94+
- liboath 2.6.7 or later: For TOTP functionality
95+
96+
We monitor these dependencies for security updates and incorporate them promptly.
97+
98+
## Security Audits
99+
100+
We are open to independent security audits. If you're interested in conducting a security audit, please contact us at [[email protected]](mailto:[email protected]).
101+
102+
## Threat Model
103+
104+
SecurePassManager is designed to protect against:
105+
106+
1. Unauthorized access to the password database file
107+
2. Memory dumping attacks
108+
3. Brute-force attacks on the master password
109+
4. Tampering with the application binary
110+
111+
It does not protect against:
112+
113+
1. Malware on the user's system
114+
2. Physical access to the user's unlocked device
115+
3. Weakness of individual passwords stored in the database
116+
117+
## Disclaimer
118+
119+
While we strive for the highest level of security, no system is 100% secure. Users should use SecurePassManager as part of a comprehensive security strategy.
120+
121+
---
122+
123+
This security policy is subject to change. Please check regularly for updates.
124+
125+
Last updated: [2024.10.01]

src/main.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,4 @@ int main(int argc, char *argv[]) {
177177
}
178178

179179
return 0;
180-
}
180+
}

0 commit comments

Comments
 (0)