A cryptographically secure password storage web-utility with distributed consensus using tendermint
- Make sure you have Go installed and put $GOPATH/bin in your $PATH
- Install Tendermint Core
- Install Cobra
- Add the contents passwerk to a new folder names passwerk in your Go src directory
- Install the passwerk application from the terminal, run
go install passwerk
- Initialize a genesis and validator key in ~/.tendermint, run
tendermint init
- Within Terminal navigate to the folder where you would like passwerk's database to be stored/read-from (see Notes on Persistence)
- Within a first Terminal window run
passwerk start
- flags may be used to specify database/port/cache size etc. for more details run
passwerk start --help
- flags may be used to specify database/port/cache size etc. for more details run
- Within a second Terminal window run
tendermint node
Currently, user input is provided through the URL. Output is provided as parsable and fun ASCII art. Within the examples HTTP calls, the following variables are described as follows:
- masterUsername - The master username that is non-retrievable
- masterPassword - The master password that is non-retrievable
- identifier - a retrievable unique identifier for a saved password
- savedpassword - a retrievable saved password associated with an identifier
The following examples demonstrate the four functions available within passwerk:
-
writing a new record to the system:
http://localhost:8080/w/masterUsername/masterPassword/idenfier/savedpassword -
deleting a saved password/identifier for a given master-username/master-password/identifier
http://localhost:8080/w/masterUsername/masterPassword/idenfier/savedpassword -
retrieve list of identifiers of all the saved passwords for a given master-username/master-password
http://localhost:8080/w/masterUsername/masterPassword/idenfier/savedpassword -
retrieve a saved password for a given master-username/master-password/identifier
http://localhost:8080/w/masterUsername/masterPassword/idenfier/savedpassword
Passwerk saves its state in a database allowing for the application to resume if it's execution is stopped and restarted.
The database that Passwerk will either create or read-from is by default located in .../pwkDB/ where ... is the path you are
navigated to within terminal at the time of execution of the passwerk application. Do not delete or modify this folder
while Passwerk is in operation. To clear the database and all records held in a Passwerk instance, you may delete this
folder and its contents while Passwerk isn't running. The database name and location may be changed using flags at passwerk
startup, for more details see passwerk start --help
passwerk --help
diplays program details and command list
passwerk start
start passwerk, see passwerk start --help
for addtional startup options
passwerk clearDB
clears the saved db at default location, see passwerk clearDB --help
for other options
passwerk example
diplays example usage from web browser
New code can be tested using the predefined testing packages within passwerk with the suffix "_test".
All tests can be executed from the passwerk directory with go test ./...
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
Passwerk is released under the Apache 2.0 license.