What is hush?
Hush is a simple password manager for unix based devices. It was inspired by pass. In all honesty I made it to practice programming in golang, this is my first project in golang excluding solving some questions from advent of code 2015 (the first two days and the first part of day 3).
Passwords are stored in a .hush folder in the users home directory. In specific an sqlite3 database, passwords, is created in the .hush directory. Passwords are stored in the passwords table in the passwords database which is in the .hush folder.
Although this project was inspired by pass, it does not use gpg encrypted files to store passwords, and it lacks other features like using git for version control on the stored passwords, which is honestly a genius idea but since I am not using files to store the seperate passwords I did not really see the point.
If you really want a password manager for your unix based device please use pass or one of its clients for other platforms, pass has a community of contributers and some extensions of pass even have encryption, something that hush lacks (but honestly shouldn't I was just lazy - might add it later). This was just a project for learning not use, even I don't use this so please don't either.
Using hush
We can list all the existing passwords in the database:
aarochuk@laptop ~ $ ./hush Password Name| Username| Password _______________________________________________________ Bank| WorldBank| hfkrwf Email| WorldEmail| %o34Kf8{`]w30 Phone| WorldPhone| ^0p!Hy637p14
We can show individual passwords by searching for the passwordName/userName
aarochuk@laptop ~ $ ./hush Bank/WorldBank The password to Bank/WorldBank is hfkrwf
We can create a password by using insert, every password must have a password name but mustn't have a username, the format is always PasswordName/UserName, if there is no username the format is PasswordName/
./hush insert School/WorldSchool Enter your password: helloschool Successfully added password for School/WorldSchool
You can create multiline passwords by using the -m flag
./hush insert Work/Software -m Enter your password (press Ctrl+D or Ctrl+Z to end): This Is A Multiline Password Successfully added password for Work/Software
You can generate a password by using the generate command (original I know). When using the generate command, you have to specify the length of the password you want to be generated. In addition, there are flags that allow you to specify if you dont want numbers, letters or symbols in your password. If you dont want numbers in your password use the -nn flag, for no symbols use the -ns flag and for no letters use the -nl flag.
./hush generate MySpace/Profile 15 -ns Successfully added password for MySpace/Profile
You can edit a password by using edit in which case you have to enter the password.
./hush edit MySpace/Profile Enter your password: NewPassword Successfully updated password for MySpace/Profile
To use password generation for an edited password use the -g flag. In which case you have to specify the length and any of the other password generation flags still apply.
./hush edit MySpace/Profile -g 10 Successfully updated password for MySpace/Profile
You can delete a password by using the remove command and you just specify the PasswordName/UserName to delete the password.
./hush delete School/WorldSchool Are you sure you want to delete your password (y/n): y Successfully deleted password from database
Installation
Really I could have generated the executable binary and provided it directly for download, but, for no reason at all you would have to get go working on your computer yourself and use go build to get the executable binary. Did I do this to discourage use? Na, I was just lazy tbh. Just clone the repo (the link is at the top of the page - click on the github icon), then run
go build hush.go