3 个版本
0.1.2 | 2023 年 6 月 27 日 |
---|---|
0.1.1 | 2023 年 6 月 27 日 |
0.1.0 | 2023 年 6 月 26 日 |
#673 in 构建工具
每月 95 次下载
9KB
129 行
Read Secret
一个 Rust 库,它提供了一个简单的方法来从您的环境变量和文件中读取和解密秘密。
代码托管在 sourcehut 上,并建议在此平台上提交问题/发送补丁。然而,GitHub 也是可接受的。
用法
运行命令 cargo add read-secret
或将以下代码放入您的 cargo.toml
[dependencies]
read-secret = <version>
示例
此示例代码位于文件 examples/e1.es
中,您可以通过执行 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);
}