Crates.io | read-secret |
lib.rs | read-secret |
version | 0.1.2 |
source | src |
created_at | 2023-06-26 13:24:38.552503 |
updated_at | 2023-06-27 03:31:50.265105 |
description | A rust library that provides an easy way to read and decrypt secrets from your environment variables and files. |
homepage | https://git.sr.ht/~meow_king/read-secret |
repository | https://git.sr.ht/~meow_king/read-secret |
max_upload_size | |
id | 900329 |
size | 11,962 |
A rust library that provides an easy way to read and decrypt secrets from your environment variables and files.
Code is hosted on sourcehut, and it is recommended to open issues/send patches on this platform. However, GitHub is also acceptable.
Run command cargo add read-secret
or put the following code into your cargo.toml
[dependencies]
read-secret = <version>
This example code is in file examples/e1.es
, and you can run it by executing cargo run --example e1
use read_secret::{DecryptMethod, SecretType};
use std::process::Command;
fn main() {
// read secret from environment variable.
let mut dm = DecryptMethod::None;
let st = SecretType::Env("XDG_SESSION_TYPE".to_string());
let sr = read_secret::read_secret(st, &mut dm).unwrap();
assert_eq!("wayland", sr);
// read secret from file and decrypt it using gnupg.
let mut dm = DecryptMethod::GPG;
let st = SecretType::File("examples/pass_gpg.asc".to_string());
let sr = read_secret::read_secret(st, &mut dm).unwrap();
assert_eq!("El Psy Kongaroo", sr);
// store encrypted secret inside string and decrypt it using custom command.
let mut temp = Command::new("wc"); // avoid E0716 -- temporary value is being dropped
let custom_command = temp.args(["-c"]);
let mut dm = DecryptMethod::Custom(custom_command);
let st = SecretType::String("El Psy Kongaroo".to_string());
let sr = read_secret::read_secret(st, &mut dm).unwrap();
assert_eq!("15\n", sr);
}