2 个版本 (1 个稳定版)

1.0.0 2019 年 11 月 8 日
0.1.0 2019 年 10 月 7 日

#832 in 加密学

自定义许可

41KB
729

运行库

Build Status Docs

运行库是 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