Crate cargo_pwhide

Crate cargo_pwhide 

Source
Expand description

cargo-pwhide provides tooling to hide passwords

This doesn’t provide any security

It consists of a cargo subcommand to encrypt passwords and a simple macro for decrypting

§Encryption

install the cargo subcommand with:
cargo install cargo-pwhide

Then go to the root of your project where the Cargo.toml is
and encrypt a password

cargo pwhide encrypt MySecretPassword

This will deliver an encrypted data for example:

QDc2rswTJRHrFEgT2Ech77xuScNGfGGKFIJq6MJcI1lKg1hfaowsg5

Use this in configuration files on in the command code

§Decryption in the program

Add to your Config.toml

cargo-pwhide = {version="*", feature=["lib"], default-features = false}**

This reduces the number of dependencies and is great for compile time :)

For decryption just use the provided macro

use cargo_pwhide::pwdecrypt;    
let cleartext:Result<String,anyhow::Error>=pwdecrypt!("QDc2rswTJRHrFEgT2Ech77xuScNGfGGKFIJq6MJcI1lKg1hfaowsg5");  

and automatically decrpytion is done

§how does it work?

The tool is using the package name as secret The password is encrypted using ChaCha20Poly1305 and a random nounce

This doesn’t provide any security but is better compared to storing plain text passwords in version control

Macros§

pwdecrypt
The macro is used for easy decrpytion of password

Functions§

pwdecrypt
This is used to decrpyt the password encrypted with subcommand tools cargo pwhide encrypt
pwencrypt
This is used to encrpyt a password function used by subcommand tools cargo pwhide encrypt