8个版本
0.4.0 | 2020年5月4日 |
---|---|
0.3.2 | 2020年1月25日 |
0.3.1 | 2019年6月12日 |
0.2.1 | 2019年4月16日 |
0.1.1 | 2019年3月25日 |
#949 in 身份验证
用于 knox
77KB
1.5K SLoC
libknox
libknox
是 knox 密钥管理器的库。
示例
use libknox::*;
fn main() {
// Create a new vault with the given GPG identity
let id = vec!["[email protected]".to_string()];
let mut vault = VaultContext::create("/tmp/knox-example", &id).expect("FAIL");
// Create a new entry with three attributes
let mut entry = Entry::new();
entry.add_attribute("username", "bob");
entry.add_confidential_attribute("password", "foobar");
entry.add_confidential_attribute(
"apikey",
"3OJL07P+W5zODH2J1Wv7rXh5i9UpR0mpvPW7ygIMih82J8P95krJZXyERqbi/XS",
);
// Write the entry and the metadata pointing to it
vault
.write_entry("personal/website.com", &entry)
.expect("FAIL");
// Open the previously created vault and read the written entry
let vault = VaultContext::open("/tmp/knox-example").expect("FAIL");
let entry = vault.read_entry("personal/website.com").expect("FAIL");
// Loop over the attributes and print them
for (key, attribute) in entry.get_attributes() {
if attribute.confidential {
println!("{} = {} (CONFIDENTIAL)", key, attribute.value);
} else {
println!("{} = {}", key, attribute.value);
}
}
}
依赖项
~16MB
~354K SLoC