PWMan is a CLI based password manager. It demonstrates OOP principles such as design patterns, inheritance, polymorphism, etc.
PWMan uses Konscious.Security.Cryptography.Argon2 to derive Argon2id keys. It is available on NuGet.
- Run the application.
- Type
helpto see all available commands - When finished, type
exit.
- Run
createand follow the steps. The password is the only required field here. - The created vault is unlocked as a quality of life thing.
- Inspecting the save file (probably
vault.datif default) you'll see the metadata and encrypted values. - Run
addand follow the steps to add an entry to your database. For the default entry type, no values are required. - When finished, the entry is automatically saved to the vault, and the vault saves to disk - inspect the save file again.
- Assuming you've got a vault already, run
load <type> <path>. Running without the parameters will show you the available values. - Enter the vault password or you'll be given an error.
- Type
listorlist detailsto see all the entries in your vault. - Use
get <id>to see all data about a particular entry from its ID. delete <id>can be used to delete an entry from the vault.
- The program is autosaving, but a save command exists anyways.
- Both
unloadandlocklocks and saves the vault therefore you don't need to type lock or save before running it. - You may have multiple vaults, though only one opened at a time as Vault is singleton.
- Most fields are optional unless the program asks you again.
- Depending on your computer's power, Argon2 might take forever - the default iteration count is 3.
- Caesar encryption is included to demonstrate polymorphism, by no means is it actually good.
- The in-memory repository is ephemeral therefore cannot be loaded, only created for each runtime.
- The program doesn't have security in mind, rather just object oriented programming principles.
- The
lvcommand is a shortcut custom command that is equivalent toload json vault.dat.
In some files I have credited articles including StackOverflow.
I also wish to thank the authors of Konscious




