Pass implementation in Go.
Password management should be simple and follow Unix philosophy. With gopass, each password lives inside of a gpg encrypted file whose filename is the title of the website or resource that requires the password. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities.
gopass makes managing these individual password files extremely easy. All passwords live in ~/.password-store, and gopass provides some nice commands for adding, editing, generating, and retrieving passwords. It's capable of temporarily putting passwords on your clipboard and tracking password changes using git.
I love the ideas behind the original pass implementation, but I found that the codebase didn't match the simplicity of the design.
This section was just added so that I could get an idea of where I am at.
- Creates a folder and a .gpg-id file
- Support
--pathoption - Support multiple GPG ids
- Re-encryption functionality
-
gopass insert test.comprompts for a password and creates a test.com.gpg file - Multi-line support
- Create a git commit
- Prompt before overwriting an existing password, unless --force or -f is specified.
- When inserting in a folder with a .gpg-id file, insert should use the .gpg-id file's key
-
gopass show test.comwill display the content of test.com.gpg -
--clip, -ccopies the first line to the clipboard -
--clip, -cclears after a while -
--password, and--usernameoptions.
Accepted format:
<the_password>
login: <the_login>
url: <the_url>
This new command should connect to a server using an encrypted rsa key.
-
gopass lsshows the content of the password store withtree -
gopassinvokesgopass lsby default -
gopass ls subfoldercalls tree on the subfolder only - Hide .gpg at the end of each entry
- First output line should be
Password Store
-
gopass rm test.comremoves the test.com.gpg file -
gopass removeandgopass deletealiases -
gopass rm -r folder(or--recursive) will remove a folder and all of it's content (not interactive!) - Ask for confirmation
-
gopass find python.org testwill show a tree with password entries that match python.org or test - Accepts one or many search terms
-
gopass cp old-path new-pahcopies a password to a new path - Dont overwrite
-
gopass mv old-path new-pathmoves a password to a new path - Dont overwrite
- Pass commands to git
-
gopass git initshould behave differently with an existing password store - Add tests
-
gopass edit test.comwill open a text editor and let you edit the password
-
gopass grep searchstringwill search for the given string inside all of the encrypted passwords
-
gopass generate [pass-name] [pass-length]Genrates a new password using of length pass-length and inserts it into pass-name. -
--no-symbols, -n -
--clip, -c -
--in-place, -i -
--force, -f - Prompt before overwriting an existing password, unless --force or -f is specified.
- This isn't gopass.pw.