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 认证

Download history 614/week @ 2024-03-14 681/week @ 2024-03-21 557/week @ 2024-03-28 589/week @ 2024-04-04 613/week @ 2024-04-11 488/week @ 2024-04-18 702/week @ 2024-04-25 656/week @ 2024-05-02 644/week @ 2024-05-09 774/week @ 2024-05-16 1022/week @ 2024-05-23 1227/week @ 2024-05-30 1466/week @ 2024-06-06 935/week @ 2024-06-13 924/week @ 2024-06-20 1320/week @ 2024-06-27

4,951每月下载量

MIT许可证

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