Expand description
§Rust Libsecret bindings
This library contains safe Rust bindings for Libsecret, a library that offers access to the Secret Service API.
See also
§Usage
You can add libsecret by adding it in your Cargo.toml file:
[dependencies.secret]
package = "libsecret"
version = "0.x.y"§Define a password schema
Each stored password has a set of attributes which are later used to lookup the password. The names and types of the attributes are defined in a schema. The schema is usually defined once globally. Here’s how to define a schema:
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);§Store a password
Each stored password has a set of attributes which are later used to lookup the password. The attributes should not contain secrets, as they are not stored in an encrypted fashion.
This first example stores a password asynchronously, and is appropriate for GUI applications so that the UI does not block.
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?;§Lookup a password
Each stored password has a set of attributes which are used to lookup the password. If multiple passwords match the lookup attributes, then the one stored most recently is returned.
This first example looks up a password asynchronously, and is appropriate for GUI applications so that the UI does not block.
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?;§Remove a password
Each stored password has a set of attributes which are used to find which password to remove. If multiple passwords match the attributes, then the one stored most recently is removed.
This first example removes a password asynchronously, and is appropriate for GUI applications so that the UI does not block.
let mut attributes = std::collections::HashMap::new();
attributes.insert("number", "8");
attributes.insert("even", "true");
libsecret::password_clear_future(Some(&schema), attributes).await?;Re-exports§
pub use ffi;
Modules§
Structs§
- Backend
v0_19 - GLib type: GObject with reference counted clone semantics.
- Collection
- GLib type: GObject with reference counted clone semantics.
- Collection
Create Flags - Collection
Flags - Item
- GLib type: GObject with reference counted clone semantics.
- Item
Create Flags - Item
Flags - Prompt
- GLib type: GObject with reference counted clone semantics.
- Retrievable
v0_19 - GLib type: GObject with reference counted clone semantics.
- Schema
- GLib type: Shared boxed type with reference counted clone semantics.
- Schema
Attribute - GLib type: Boxed type with copy-on-clone semantics.
- Schema
Flags - Search
Flags - Service
- GLib type: GObject with reference counted clone semantics.
- Service
Flags - Value
- GLib type: Shared boxed type with reference counted clone semantics.
Enums§
- Backend
Flags v0_19 - Error
- Schema
Attribute Type - Schema
Type v0_18_6
Statics§
Functions§
- password_
clear - password_
clear_ future - password_
clear_ sync - password_
free - password_
lookup - password_
lookup_ binary v0_19 - password_
lookup_ binary_ future v0_19 - password_
lookup_ binary_ sync v0_19 - password_
lookup_ future - password_
lookup_ nonpageable - password_
lookup_ nonpageable_ future - password_
lookup_ nonpageable_ sync - password_
lookup_ sync - password_
search v0_19 - password_
search_ future v0_19 - password_
search_ sync v0_19 - password_
store - password_
store_ binary v0_19 - password_
store_ binary_ future v0_19 - password_
store_ binary_ sync v0_19 - password_
store_ future - password_
store_ sync - password_
wipe - schema
v0_18_6