Skip to content
forked from SixArm/passable

passable: password manager command line tool that's just good enough

License

Notifications You must be signed in to change notification settings

Y2023Y/passable

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

passable: password command that's secure and simple

This is passable, a password command line interface tool that is secure cryptogrpahically and simple to use.

Introdution

Purpose

The purpose of this tool is to do three simple things:

  • Create a new password.

  • Encrypt a file.

  • Decrypt a file.

Usage

Syntax:

passable new
passable encrypt <file>
passable decrypt <file>

Installation

Download the program passable anywhere you want, and make it runnable.

Example on typical macOS and Linux:

sudo curl -sSL "https://raw.githubusercontent.com/SixArm/passable/master/passable" -o /usr/local/bin/passable && sudo chmod +x $_

If you want to verify the download, then the SHA512 is:

7bb9049827c09123162c15c84a5af642b99da4460dba82da577829797d2abdae2d5f971f016f6af156c9b4a08fca0b34d6c945510a3a19426e4149789f9748b7

Examples

Create a new password

Command:

passable new

Output is a new strong secure password:

S&dw6[ysN@O9W5{5>^&RZ9pF

You can do anything you want with the new password.

For example, you can save the new password as a new file:

echo 'S&dw6[ysN@O9W5{5>^&RZ9pF' > file.txt

Encrypt a file

Command:

passable encrypt file.txt

Output is a new encrypted file file.txt.gpg.

You can do anything you want with the new encrypted file.

For example, you can add the new encrypted file to git version control:

git add file.txt.gpg

Decrypt a file

Command:

passable decrypt file.txt.gpg

Output is the decrypted text, such as the password you saved:

S&dw6[ysN@O9W5{5>^&RZ9pF

You can do anything you want with the decrypted text.

For example, you can copy the decrypted text to your clipboard on macOS:

echo 'S&dw6[ysN@O9W5{5>^&RZ9pF' | pbclip

Test

See the repository directory test for some example unit tests.

The test files need to prompt you for a password; you can use any password you want.

If a test succeeds, then it will be silent.

If a test fails, then it will print an "assert" error message.

To run all the test files:

cd test
./test

To run one test file, for example to test the command passable new:

cd test/new
./test

TODO

We welcome help with these todo areas:

  • Improve unit tests.

  • Add installation via package managers e.g. apt, brew, yum.

  • Add CI/CD build process.

  • Add GitHub release tags.

Documentation

Thanks

Thanks for all the comments on Hacker News, with special thanks to users vesinisa, twr, tptacek, txtutu, acqq, throwawayish, RMarcus, and latchkey.

See also

These commands are similar:

  • gpg-encrypt: use GPG to encrypt a file using our best settings.

  • gpg-decrypt: use GPG to decrypt a file using our best settings.

  • openssl-encrypt: use OpenSLL to encrypt a file using our best settings.

  • openssl-decrypt: use OpenSSL to decrypt a file using our best settings.

Tracking

About

passable: password manager command line tool that's just good enough

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%