10个不稳定版本 (4个破坏性更改)
0.5.0 | 2024年2月24日 |
---|---|
0.4.0 | 2023年8月1日 |
0.3.0 | 2023年2月25日 |
0.2.0 | 2022年10月27日 |
0.1.3 | 2022年2月9日 |
#58 in 认证
4,951每月下载量
320KB
8K SLoC
libsecret-rs
libsecret的Rust绑定。
文档
lib.rs
:
Rust Libsecret绑定
此库包含对Libsecret的Rust绑定,Libsecret是一个提供对Secret Service API访问的库。
另请参阅
用法
您可以通过在您的Cargo.toml
文件中添加它来添加libsecret
[dependencies.secret]
package = "libsecret"
version = "0.x.y"
定义密码模式
每个存储的密码都有一个属性集,这些属性以后用于查找密码。属性的名称和类型在模式中定义。模式通常全局定义一次。以下是如何定义模式的方法
let mut attributes = std::collections::HashMap::new();
attributes.insert("number", libsecret::SchemaAttributeType::Integer);
attributes.insert("string", libsecret::SchemaAttributeType::String);
attributes.insert("even", libsecret::SchemaAttributeType::Boolean);
let schema = libsecret::Schema::new("some.app.Id", libsecret::SchemaFlags::NONE, attributes);
存储密码
每个存储的密码都有一个属性集,这些属性以后用于查找密码。这些属性不应包含秘密,因为它们不是以加密方式存储的。
此第一个示例异步存储密码,适用于GUI应用程序,以便UI不会阻塞。
let mut attributes = std::collections::HashMap::new();
attributes.insert("number", "8");
attributes.insert("string", "eight");
attributes.insert("even", "true");
let collection = libsecret::COLLECTION_DEFAULT;
libsecret::password_store_future(Some(&schema), attributes, Some(&collection), "The Label", "the password").await?;
查找密码
每个存储的密码都有一个属性集,用于查找密码。如果有多个密码与查找属性匹配,则返回最近存储的密码。
此第一个示例异步查找密码,适用于GUI应用程序,以便UI不会阻塞。
let mut attributes = std::collections::HashMap::new();
attributes.insert("number", "8");
attributes.insert("even", "true");
let password = libsecret::password_lookup_future(Some(&schema), attributes).await?;
删除密码
每个存储的密码都有一个属性集,用于找到要删除的密码。如果有多个密码与属性匹配,则删除最近存储的密码。
此第一个示例异步删除密码,适用于GUI应用程序,以便UI不会阻塞。
let mut attributes = std::collections::HashMap::new();
attributes.insert("number", "8");
attributes.insert("even", "true");
libsecret::password_clear_future(Some(&schema), attributes).await?;
依赖关系
~7–16MB
~224K SLoC