#+title: Piping Password Manager
* Warning!
- No error handling
- Security depends on *your* password
* Design
- Database: Json
- Encryption: AES256 in CFB mode
- Key generation: password -> SHA256 -> key
- Command line interface
* Usage
ppm file action [name] [parameter]
** actions
- set
- Sets a string stored in name
- get
- Prints a string stored in name
- gen
- Generates a string stored in name
- Parameter: length
- exp
- Exports the json to stdout
- imp
- Imports the json from stdin
- *Note* the string must not contain spaces (" ") and new line characters ("\n")
- list
- Lists all possible name options
- pipe
- Starts a named pipe under ~/.ppm/pipe
- Actions in the pipe:
- list:
- Writes a list of all possible name options back to the pipe
- [name]:
- Writes the string stored in [name] back to the pipe
* Additional notice
- There are two shell scripts for usage as a client one using dmenu one using bemenu
- *Feel free to create your own client application*