3 个不稳定版本
0.2.1 | 2023 年 9 月 8 日 |
---|---|
0.2.0 | 2023 年 9 月 8 日 |
0.1.0 | 2023 年 9 月 8 日 |
#10 在 #secrets
每月 22 次下载
2MB
506 行
etoml
一个创建和管理应用秘密的工具,这些秘密在加密的 (使用 ChaCha) toml 文件中受到保护。
基本上是 Rust/Toml 的 ejson 端口。
- 它为您生成一对公钥和私钥
- 公钥与您的秘密一起存储在您的存储库中的
secrets.etoml
中 - 私钥存储在
/opt/etoml/keys
(您的服务器上) secrets.etoml
中的值通过 CLI 工具加密
与 ejson 的主要区别在于它提供了一个直接将您的秘密解密到应用程序中的 struct
的函数。
安装
cargo安装 etoml
用法
要创建/管理秘密文件,您使用命令行界面
Usage: etoml-write <COMMAND>
Commands:
init Create a new encrypted TOML file
encrypt (Re-)encrypt unencrypted values in an existinf etoml file
decrypt decrypt unencrypted values in an existinf etoml file
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
在您的应用程序中,您可以定义一个具有匹配字段的 struct,以将您的秘密解码到其中
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct AppSecrets {
github: String
}
fn main() -> Result<(), etoml::EtomlError> {
let secrets = etoml::decrypt_default::<AppSecrets>()?;
println!("Github key: {}", secrets.github);
Ok(())
}
依赖项
~3.5–5MB
~99K SLoC