https://github.com/atiq-cs/passwordmanager
Password Manager Command Line App
https://github.com/atiq-cs/passwordmanager
cpp rijndael-aes-cipher rijndael-algorithm
Last synced: about 1 year ago
JSON representation
Password Manager Command Line App
- Host: GitHub
- URL: https://github.com/atiq-cs/passwordmanager
- Owner: atiq-cs
- License: gpl-3.0
- Created: 2023-02-10T19:38:05.000Z (over 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-02-11T21:16:49.000Z (over 3 years ago)
- Last Synced: 2025-02-17T21:46:33.802Z (over 1 year ago)
- Topics: cpp, rijndael-aes-cipher, rijndael-algorithm
- Language: C++
- Homepage:
- Size: 105 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### Password Manager
Password Manager Command Line App, previously named 'CredMan' or 'Credentials Manager'.
### Introduction
The purpose of this software is to encrypt and decrypt confidential user data, efficiently manage storing and retrieval of this information.
#### Data Structure
Current record data structure has following fields,
```cpp
string siteURL;
string tags;
string regEmail;
string userName;
string password;
```
**Encoding**
The program reads the input file in binary mode and writes in bianry mode.
```cpp
ifstream inFile ("pw.bin", ios::binary);
```
Hence, the output file cannot be opened using regular text editor. We could essential implement a text mode writing to help read/write easier as per the trick in Supplement.
**Build**
General console instructions apply. It is an MBCS project without requiring additional OS Specific libraries to link.
**Current status of this Project**
- It can encrypt and decrypt confidential data.
- We can enable or disable encryption and decryption as required.
- Modify take user choice function.
- When a user mistakenly enters a couple of characters a.k.a string instead of a single character as choice. They should be asked to provide correct input.
- Add records
- Show/Search records
Due to modify/delete not being implemented yet we resort to a trick \(mentioned in [Supplement](https://github.com/atiq-cs/PasswordManager/blob/dev/Supplement.md)\) to modify an entire database file.
**Features TODO**
On top of mind,
- Modify records
- Delete records
- The process of manual modification to database (disabling encryption to get plain text for modifying) should be implemented to be supported via command line.
- Import/export option, backup option.
- along with export to csv that allows direct import into bitwarden vault.
- Take backup during deleting records till its well tested.
- Security feature: change key and keep only one back up
#### Q&A
Q: Enter key on startup but this can be risky as well. What's best for now?
Ans: Use SSL and retrieve the key from a secure site.
Q: If someone gets the software they can easily access the software as mine.
Ans: Verify PC with MAC access. Update MAC address from time to time.
**Plans Discarded for now**
- Change on data structure: instead of siteURL there should be two members: site and loginURL.
- No siteURL stays the same: use loginURL on site when applicable. Put site name on title
- If an account has multiple credential keys store them separating using semicolon
- It should ask for password once in every five minutes; if the call is from powershell probably we ask only once for a session.
- For some accounts, passwords will always be asked… such as bank accounts and master accounts.
Every month we run this,
$ PassMan CreateBackup
This should give us a file and a key.
Guidelines
Keys will not reside in plain text files. Backup dbs should be stored in protected vaults…
Backups must not be stored in regular accounts.
Create plain-text database export,
$ PassMan Export
ref, previous binary name: CredMan
Be cautious aboue the plain text export.
ref, Credentials Manager Software doc, 2014-06
**Refs**
- Initial driver/demo of Rijndael is in [Supplement](https://github.com/atiq-cs/PasswordManager/blob/dev/Supplement.md).