A simple command-line password manager, written in Rust + SQLite. This tool allows you to manage accounts and generate random passwords containing ASCII letters, numbers, and punctuation or XKCD-like passphrases.
Data is encrypted prior to being saved within the SQLite database using the fernet crate.
Encryption and decryption require the use of a randomly-generated key saved as
vault.key but the key-file is saved in
plaintext, which means that an attacker that can access the key-file can also decrypt the database. Further development
may allow password-protection of the key-file; please open an issue or pull request if you want this feature!
NOTE: This crate is not ready for use in production yet. There are many items still left to implement prior to a production-ready release - see the TODO section for more details.
To install the package from Crates.io, run the following command:
cargo install crypt
Visit the Crypt page for more information.
All arguments can be passed to the app with the following template:
crypt ARGUMENT [VALUES]
|Argument (Short)||Argument (Long)||Explanation|
|-h||--help||Print the welcome message|
|-n||--new||Create a new account|
|-l||--list||List all saved accounts|
|-e||--edit [UUID] [FIELD_NAME]||Edit a saved account|
|-d||--delete [UUID]||Delete a saved account|
|-p||--purge||Purge all accounts and delete the vault|
Any and all contributions are welcome. Feel free to fork the project, add features, and submit a pull request.
git clone https://github.com/christian-cleberg/crypt
If you've made changes to the code and would like to test them, use the following commands.
cargo build --release
If you are ready to push your changes to crates.io, use the commands below. For beginners, note that you cannot publish changes to a crate you don't own (i.e. you must be added as a contributor on crates.io).
cargo --build release
cargo login [API_TOKEN]
cargo publish --dry-run