https://github.com/rigelrozanski/passwerk
A cryptographically secure password storage web-utility with distributed consensus using tendermint
https://github.com/rigelrozanski/passwerk
Last synced: about 1 month ago
JSON representation
A cryptographically secure password storage web-utility with distributed consensus using tendermint
- Host: GitHub
- URL: https://github.com/rigelrozanski/passwerk
- Owner: rigelrozanski
- License: apache-2.0
- Created: 2016-10-22T21:50:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-12-19T14:01:43.000Z (over 8 years ago)
- Last Synced: 2024-06-20T05:11:01.790Z (11 months ago)
- Language: Go
- Size: 83 KB
- Stars: 12
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# passwerk
_A cryptographically secure password storage web-utility with distributed consensus using tendermint_
---
### Installation
1. Make sure you [have Go installed][1] and [put $GOPATH/bin in your $PATH][2]
2. [Install Tendermint Core][3]
3. [Install Cobra][4]
4. Add the contents passwerk to a new folder names passwerk in your [Go src directory][5]
5. Install the passwerk application from the terminal, run `go install passwerk`[1]: https://golang.org/doc/install
[2]: https://github.com/tendermint/tendermint/wiki/Setting-GOPATH
[3]: http://tendermint.com/guide/launch-a-tmsp-testnet/
[4]: https://github.com/spf13/cobra#installing
[5]: https://golang.org/doc/code.html#Workspaces
### Starting passwerk1. Initialize a genesis and validator key in ~/.tendermint, run `tendermint init`
2. Within Terminal navigate to the folder where you would like passwerk's database to be stored/read-from (see Notes on Persistence)
3. Within a first Terminal window run `passwerk start`
1. flags may be used to specify database/port/cache size etc. for more details run `passwerk start --help`
4. Within a second Terminal window run `tendermint node`### Example Usage
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 identifierThe 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### Notes on Persistence
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`### Command List
`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### Testing Code
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 ./...`### Contributing
1. Fork it
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create new Pull Request### License
Passwerk is released under the Apache 2.0 license.