2 个版本 (1 个稳定版)
1.0.0 | 2019 年 11 月 8 日 |
---|---|
0.1.0 | 2019 年 10 月 7 日 |
#832 in 加密学
41KB
729 行
运行库
运行库是 Rust Bunkr 客户端。你可以在这里找到所有与 Bunkr 相关的信息。
请注意,你需要有一个运行的 Bunkr 守护进程。
使用
bunkr -D
安装
将依赖项添加到你的 Cargo.toml
[dependencies]
runkr = { version = "0.1.*"}
使用方法
运行库对象 API 非常简单,你需要提供 Bunkr 守护进程监听的套接字地址,然后使用每个可用的方法与你的 Bunkr 进行通信。
extern crate runkr;
use runkr::{Runkr, AccessMode};
fn main() {
let mut runkr = Runkr::new("/tmp/bunkr_daemon.sock");
// Test basic creat/access/delete operation
runkr.new_text_secret("mySecret", "My secret content");
let secret_content = runkr.access("mySecret", AccessMode::Text, None).unwrap();
println!("{:?}", secret_content["content"].as_str());
let del_res = runkr.delete("mySecret");
match del_res {
Ok(_) => println!("Operation success"),
Err(e) => println!("Error executing operation {}", e)
};
// Test groups and granting
runkr.new_group("ga").unwrap();
runkr.new_group("gb").unwrap();
runkr.new_group("gc").unwrap();
runkr.grant("ga", "gb", false).unwrap();
runkr.grant("gb", "gc", false).unwrap();
// Test rename and revoke
runkr.rename("ga", "gA").unwrap();
runkr.rename("gA", "ga").unwrap();
runkr.revoke("ga", "gb").unwrap();
runkr.revoke("gb", "gc").unwrap();
for &n in ["ga", "gb", "gc"].iter() {
runkr.delete(n).unwrap();
}
// Test ssh
runkr.new_ssh_key("test_ssh_key").unwrap();
let sign_res = runkr.sign_ecdsa("test_ssh_key", "Zm9v").unwrap();
println!("Signature, R: {}, S: {}", sign_res["r"], sign_res["s"]);
let ssh_public = runkr.ssh_public_data("test_ssh_key").unwrap();
println!("b64 public key: {}", ssh_public["public_data"]["public_key"]);
runkr.delete("test_ssh_key");
// Test send device
let device_result = runkr.send_device(None).unwrap();
println!("My device link: {}", device_result["url_raw"]);
}
支持的操作
此客户端当前支持的 Bunkr 操作
- new-text-secret
- new-ssh-key
- new-file-secret
- new-group
- import-ssh-key
- list-secrets
- list-devices
- list-groups
- send-device
- receive-device
- remove-device
- remove-local
- rename
- create
- write
- access
- grant
- revoke
- delete
- receive-capability
- reset-triples
- noop-test
- secret-info
- sign-ecdsa
- ssh-public-data
- signin
- confirm-signin
依赖项
~1.2–2.2MB
~43K SLoC