Extension point for the secret backend. #SecretBackend represents a backend implementation of password storage. Get a #SecretBackend instance. If such a backend already exists, then the same backend is returned. If @flags contains any flags of which parts of the secret backend to ensure are initialized, then those will be initialized before completing. This method will return immediately and complete asynchronously. flags for which service functionality to ensure is initialized optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to get a #SecretBackend. a new reference to a #SecretBackend proxy, which should be released with [method@GObject.Object.unref]. the asynchronous result passed to the callback implementation of [func@password_clear], required implementation of [func@password_clear_finish], required implementation of reinitialization step in constructor, optional implementation of reinitialization step in constructor, optional implementation of [func@password_lookup], required implementation of [func@password_lookup_finish], required implementation of [func@password_search], required implementation of [func@password_search_finish], required implementation of [func@password_store], required implementation of [func@password_store_finish], required A set of flags describing which parts of the secret backend have been initialized. Flags which determine which parts of the #SecretBackend are initialized. no flags for initializing the #SecretBackend establish a session for transfer of secrets while initializing the #SecretBackend load collections while initializing the #SecretBackend The interface for #SecretBackend. the parent interface implementation of reinitialization step in constructor, optional implementation of reinitialization step in constructor, optional implementation of [func@password_store], required implementation of [func@password_store_finish], required implementation of [func@password_lookup], required implementation of [func@password_lookup_finish], required implementation of [func@password_clear], required implementation of [func@password_clear_finish], required implementation of [func@password_search], required implementation of [func@password_search_finish], required Returns `TRUE` if using libsecret is newer than or equal to the given version. major version to be satisfied minor version to be satisfied micro version to be satisfied An alias to the default collection. This can be passed to [func@password_store] [func@Collection.for_alias]. An alias to the session collection, which will be cleared when the user ends the session. This can be passed to [func@password_store], [func@Collection.for_alias] or similar functions. A proxy object representing a collection of secrets in the Secret Service. #SecretCollection represents a collection of secret items stored in the Secret Service. A collection can be in a locked or unlocked state. Use [method@SecretService.lock] or [method@SecretService.unlock] to lock or unlock the collection. Use the [property@SecretCollection:items] property or [method@SecretCollection.get_items] to lookup the items in the collection. There may not be any items exposed when the collection is locked. Finish asynchronous operation to get a new collection proxy for a collection in the secret service. the new collection, which should be unreferenced with [method@GObject.Object.unref] the asynchronous result passed to the callback Get a new collection proxy for a collection in the secret service. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. the new collection, which should be unreferenced with [method@GObject.Object.unref] a secret service object the D-Bus path of the collection options for the collection initialization optional cancellation object Create a new collection in the secret service. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. An @alias is a well-known tag for a collection, such as 'default' (ie: the default collection to store items in). This allows other applications to easily identify and share a collection. If you specify an @alias, and a collection with that alias already exists, then a new collection will not be created. The previous one will be returned instead. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. a secret service object label for the new collection alias to assign to the collection currently unused optional cancellation object called when the operation completes data to pass to the callback Finish operation to create a new collection in the secret service. the new collection, which should be unreferenced with [method@GObject.Object.unref] the asynchronous result passed to the callback Create a new collection in the secret service. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. An @alias is a well-known tag for a collection, such as `default` (ie: the default collection to store items in). This allows other applications to easily identify and share a collection. If you specify an @alias, and a collection with that alias already exists, then a new collection will not be created. The previous one will be returned instead. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. the new collection, which should be unreferenced with [method@GObject.Object.unref] a secret service object label for the new collection alias to assign to the collection currently unused optional cancellation object Lookup which collection is assigned to this alias. Aliases help determine well known collections, such as 'default'. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. a secret service object the alias to lookup options for the collection initialization optional cancellation object called when the operation completes data to pass to the callback Finish an asynchronous operation to lookup which collection is assigned to an alias. the collection, or %NULL if none assigned to the alias asynchronous result passed to callback Lookup which collection is assigned to this alias. Aliases help determine well known collections, such as `default`. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block and should not be used in user interface threads. the collection, or %NULL if none assigned to the alias a secret service object the alias to lookup options for the collection initialization optional cancellation object Get a new collection proxy for a collection in the secret service. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. a secret service object the D-Bus path of the collection options for the collection initialization optional cancellation object called when the operation completes data to be passed to the callback Delete this collection. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. a collection optional cancellation object called when the operation completes data to pass to the callback Complete operation to delete this collection. whether the collection was successfully deleted or not a collection asynchronous result passed to the callback Delete this collection. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. whether the collection was successfully deleted or not a collection optional cancellation object Get the created date and time of the collection. The return value is the number of seconds since the unix epoch, January 1st 1970. the created date and time a collection Get the flags representing what features of the #SecretCollection proxy have been initialized. Use [method@Collection.load_items] to initialize further features and change the flags. the flags for features initialized the secret collection proxy Get the list of items in this collection. a list of items, when done, the list should be freed with [func@GLib.List.free], and each item should be released with [method@GObject.Object.unref] a collection Get the label of this collection. the label, which should be freed with [func@GLib.free] a collection Get whether the collection is locked or not. Use [method@Service.lock] or [method@Service.unlock] to lock or unlock the collection. whether the collection is locked or not a collection Get the modified date and time of the collection. The return value is the number of seconds since the unix epoch, January 1st 1970. the modified date and time a collection Get the Secret Service object that this collection was created with. the Secret Service object a collection Ensure that the #SecretCollection proxy has loaded all the items present in the Secret Service. This affects the result of [method@Collection.get_items]. For collections returned from [method@Service.get_collections] the items will have already been loaded. This method will return immediately and complete asynchronously. the secret collection optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to ensure that the #SecretCollection proxy has loaded all the items present in the Secret Service. whether the load was successful or not the secret collection the asynchronous result passed to the callback Ensure that the #SecretCollection proxy has loaded all the items present in the Secret Service. This affects the result of [method@Collection.get_items]. For collections returned from [method@Service.get_collections] the items will have already been loaded. This method may block indefinitely and should not be used in user interface threads. whether the load was successful or not the secret collection optional cancellation object Refresh the properties on this collection. This fires off a request to refresh, and the properties will be updated later. Calling this method is not normally necessary, as the secret service will notify the client when properties change. the collection Search for items matching the @attributes in the @collection. The @attributes should be a table of string keys and string values. If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the search will be returned. Otherwise only the first item will be returned. This is almost always the unlocked item that was most recently stored. If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked if necessary. In either case, locked and unlocked items will match the search and be returned. If the unlock fails, the search does not fail. If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have their secret values loaded and available via [method@Item.get_secret]. This function returns immediately and completes asynchronously. a secret collection the schema for the attributes search for items matching these attributes search option flags optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to search for items in a collection. a list of items that matched the search the secret collection asynchronous result passed to callback Search for items in @collection matching the @attributes, and return their DBus object paths. Only the specified collection is searched. The @attributes should be a table of string keys and string values. This function returns immediately and completes asynchronously. When your callback is called use [method@Collection.search_for_dbus_paths_finish] to get the results of this function. Only the DBus object paths of the items will be returned. If you would like [class@Item] objects to be returned instead, then use the [method@Collection.search] function. the secret collection the schema for the attributes search for items matching these attributes optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to search for items in a collection. DBus object paths of the items will be returned. If you would to have [class@Item] objects to be returned instead, then use the [method@Collection.search] and [method@Collection.search_finish] functions. an array of DBus object paths for matching items. the secret collection asynchronous result passed to callback Search for items matching the @attributes in @collection, and return their DBus object paths. The @attributes should be a table of string keys and string values. This function may block indefinitely. Use the asynchronous version in user interface threads. DBus object paths of the items will be returned. If you would to have [class@Item] objects to be returned instead, then use the [method@Collection.search_sync] function. an array of DBus object paths for matching items. the secret collection the schema for the attributes search for items matching these attributes optional cancellation object Search for items matching the @attributes in the @collection. The @attributes should be a table of string keys and string values. If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the search will be returned. Otherwise only the first item will be returned. This is almost always the unlocked item that was most recently stored. If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked if necessary. In either case, locked and unlocked items will match the search and be returned. If the unlock fails, the search does not fail. If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have their secret values loaded and available via [method@Item.get_secret]. This function may block indefinitely. Use the asynchronous version in user interface threads. a list of items that matched the search a secret collection the schema for the attributes search for items matching these attributes search option flags optional cancellation object Set the label of this collection. This function returns immediately and completes asynchronously. a collection a new label optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to set the label of this collection. whether the change was successful or not a collection asynchronous result passed to callback Set the label of this collection. This function may block indefinitely. Use the asynchronous version in user interface threads. whether the change was successful or not a collection a new label optional cancellation object The date and time (in seconds since the UNIX epoch) that this collection was created. A set of flags describing which parts of the secret collection have been initialized. A list of [class@Item] objects representing the items that are in this collection. This list will be empty if the collection is locked. The human readable label for the collection. Setting this property will result in the label of the collection being set asynchronously. To properly track the changing of the label use the [method@Collection.set_label] function. Whether the collection is locked or not. To lock or unlock a collection use the [method@Service.lock] or [method@Service.unlock] functions. The date and time (in seconds since the UNIX epoch) that this collection was last modified. The [class@Service] object that this collection is associated with and uses to interact with the actual D-Bus Secret Service. The class for #SecretCollection. the parent class Flags for [func@Collection.create]. no flags Flags which determine which parts of the #SecretCollection proxy are initialized. no flags items have or should be loaded Errors returned by the Secret Service. None of the errors are appropriate for display to the user. It is up to the application to handle them appropriately. received an invalid data or message from the Secret Service the item or collection is locked and the operation cannot be performed no such item or collection found in the Secret Service a relevant item or collection already exists the file format is not valid the xdg:schema attribute of the table does not match the schema name attribute contained in table not found in corresponding schema attribute could not be parsed according to its type reported in the table's schema attribute list passed to secret_attributes_validate has no elements to validate Get the error quark. the quark A secret item #SecretItem represents a secret item stored in the Secret Service. Each item has a value, represented by a [struct@Value], which can be retrieved by [method@Item.get_secret] or set by [method@Item.set_secret]. The item is only available when the item is not locked. Items can be locked or unlocked using the [method@Service.lock] or [method@Service.unlock] functions. The Secret Service may not be able to unlock individual items, and may unlock an entire collection when a single item is unlocked. Each item has a set of attributes, which are used to locate the item later. These are not stored or transferred in a secure manner. Each attribute has a string name and a string value. Use [method@Service.search] to search for items based on their attributes, and [method@Item.set_attributes] to change the attributes associated with an item. Items can be created with [func@Item.create] or [method@Service.store]. Finish asynchronous operation to get a new item proxy for a secret item in the secret service. the new item, which should be unreferenced with [method@GObject.Object.unref] the asynchronous result passed to the callback Get a new item proxy for a secret item in the secret service. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. the new item, which should be unreferenced with [method@GObject.Object.unref] a secret service object the D-Bus path of the item initialization flags for the new item optional cancellation object Create a new item in the secret service. If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret service will search for an item matching the @attributes, and update that item instead of creating a new one. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. a secret collection to create this item in the schema for the attributes attributes for the new item label for the new item secret value for the new item flags for the creation of the new item optional cancellation object called when the operation completes data to pass to the callback Finish operation to create a new item in the secret service. the new item, which should be unreferenced with [method@GObject.Object.unref] the asynchronous result passed to the callback Create a new item in the secret service. If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret service will search for an item matching the @attributes, and update that item instead of creating a new one. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. the new item, which should be unreferenced with [method@GObject.Object.unref] a secret collection to create this item in the schema for the attributes attributes for the new item label for the new item secret value for the new item flags for the creation of the new item optional cancellation object Load the secret values for a secret item stored in the service. The @items must all have the same [property@Item:service] property. This function returns immediately and completes asynchronously. the items to retrieve secrets for optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to load the secret values for secret items stored in the service. Items that are locked will not have their secrets loaded. whether the operation succeeded or not asynchronous result passed to callback Load the secret values for a secret item stored in the service. The @items must all have the same [property@Item:service] property. This method may block indefinitely and should not be used in user interface threads. Items that are locked will not have their secrets loaded. whether the operation succeeded or not the items to retrieve secrets for optional cancellation object Get a new item proxy for a secret item in the secret service. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. a secret service object the D-Bus path of the collection initialization flags for the new item optional cancellation object called when the operation completes data to be passed to the callback Delete this item. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. an item optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to delete the secret item. whether the item was successfully deleted or not an item asynchronous result passed to the callback Delete this secret item. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. whether the item was successfully deleted or not an item optional cancellation object Set the attributes of this item. The @attributes are a mapping of string keys to string values. Attributes are used to search for items. Attributes are not stored or transferred securely by the secret service. Do not modify the attributes returned by this method. Use [method@Item.set_attributes] instead. a new reference to the attributes, which should not be modified, and released with [func@GLib.HashTable.unref] an item Get the created date and time of the item. The return value is the number of seconds since the unix epoch, January 1st 1970. the created date and time an item Get the flags representing what features of the #SecretItem proxy have been initialized. Use [method@Item.load_secret] to initialize further features and change the flags. the flags for features initialized the secret item proxy Get the label of this item. the label, which should be freed with [func@GLib.free] an item Get whether the item is locked or not. Depending on the secret service an item may not be able to be locked independently from the collection that it is in. whether the item is locked or not an item Get the modified date and time of the item. The return value is the number of seconds since the unix epoch, January 1st 1970. the modified date and time an item Gets the name of the schema that this item was stored with. This is also available at the `xdg:schema` attribute. the schema name an item Get the secret value of this item. If this item is locked or the secret has not yet been loaded then this will return %NULL. To load the secret call the [method@Item.load_secret] method. the secret value which should be released with [method@Value.unref], or %NULL an item Get the Secret Service object that this item was created with. the Secret Service object an item Load the secret value of this item. Each item has a single secret which might be a password or some other secret binary value. This function will fail if the secret item is locked. This function returns immediately and completes asynchronously. an item proxy optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to load the secret value of this item. The newly loaded secret value can be accessed by calling [method@Item.get_secret]. whether the secret item successfully loaded or not an item proxy asynchronous result passed to callback Load the secret value of this item. Each item has a single secret which might be a password or some other secret binary value. This function may block indefinitely. Use the asynchronous version in user interface threads. whether the secret item successfully loaded or not an item optional cancellation object Refresh the properties on this item. This fires off a request to refresh, and the properties will be updated later. Calling this method is not normally necessary, as the secret service will notify the client when properties change. the collection Set the attributes of this item. The @attributes are a mapping of string keys to string values. Attributes are used to search for items. Attributes are not stored or transferred securely by the secret service. This function returns immediately and completes asynchronously. an item the schema for the attributes a new set of attributes optional cancellation object called when the asynchronous operation completes data to pass to the callback Complete operation to set the attributes of this item. whether the change was successful or not an item asynchronous result passed to the callback Set the attributes of this item. The @attributes are a mapping of string keys to string values. Attributes are used to search for items. Attributes are not stored or transferred securely by the secret service. This function may block indefinitely. Use the asynchronous version in user interface threads. whether the change was successful or not an item the schema for the attributes a new set of attributes optional cancellation object Set the label of this item. This function returns immediately and completes asynchronously. an item a new label optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to set the label of this collection. whether the change was successful or not an item asynchronous result passed to callback Set the label of this item. This function may block indefinitely. Use the asynchronous version in user interface threads. whether the change was successful or not an item a new label optional cancellation object Set the secret value of this item. Each item has a single secret which might be a password or some other secret binary value. This function returns immediately and completes asynchronously. an item a new secret value optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to set the secret value of this item. whether the change was successful or not an item asynchronous result passed to callback Set the secret value of this item. Each item has a single secret which might be a password or some other secret binary value. This function may block indefinitely. Use the asynchronous version in user interface threads. whether the change was successful or not an item a new secret value optional cancellation object A set of flags describing which parts of the secret item have been initialized. Whether the item is locked or not. An item may not be independently lockable separate from other items in its collection. To lock or unlock a item use the [method@Service.lock] or [method@Service.unlock] functions. The [class@Service] object that this item is associated with and uses to interact with the actual D-Bus Secret Service. The class for #SecretItem. the parent class Flags for [func@Item.create]. no flags replace an item with the same attributes. Flags which determine which parts of the #SecretItem proxy are initialized. no flags a secret has been (or should be) loaded for #SecretItem The major version of libsecret. The micro version of libsecret. The minor version of libsecret. A prompt in the Service A proxy object representing a prompt that the Secret Service will display to the user. Certain actions on the Secret Service require user prompting to complete, such as creating a collection, or unlocking a collection. When such a prompt is necessary, then a #SecretPrompt object is created by this library, and passed to the [method@Service.prompt] method. In this way it is handled automatically. In order to customize prompt handling, override the [vfunc@Service.prompt_async] and [vfunc@Service.prompt_finish] virtual methods of the [class@Service] class. Runs a prompt and performs the prompting. Returns %TRUE if the prompt was completed and not dismissed. If @window_id is non-null then it is used as an XWindow id on Linux. The API expects this id to be converted to a string using the `%d` printf format. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully. This method will return immediately and complete asynchronously. a prompt string form of XWindow id for parent window to be transient for the variant type of the prompt result optional cancellation object called when the operation completes data to be passed to the callback Complete asynchronous operation to run a prompt and perform the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful a prompt the asynchronous result passed to the callback Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. If @window_id is non-null then it is used as an XWindow id on Linux. The API expects this id to be converted to a string using the `%d` printf format. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully. This method may block indefinitely and should not be used in user interface threads. %NULL if the prompt was dismissed or an error occurred a prompt string form of XWindow id for parent window to be transient for optional cancellation object the variant type of the prompt result Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. If @window_id is non-null then it is used as an XWindow id on Linux. The API expects this id to be converted to a string using the `%d` printf format. The Secret Service can make its prompt transient for the window with this id. In some Secret Service implementations this is not possible, so the behavior depending on this should degrade gracefully. This runs the dialog in a recursive mainloop. When run from a user interface thread, this means the user interface will remain responsive. Care should be taken that appropriate user interface actions are disabled while running the prompt. %NULL if the prompt was dismissed or an error occurred a prompt string form of XWindow id for parent window to be transient for optional cancellation object the variant type of the prompt result The class for #SecretPrompt. the parent class A read-only view of a secret item in the Secret Service. #SecretRetrievable provides a read-only view of a secret item stored in the Secret Service. Each item has a value, represented by a [struct@Value], which can be retrieved by [method@Retrievable.retrieve_secret] and [method@Retrievable.retrieve_secret_finish]. Retrieve the secret value of this object. Each retrievable object has a single secret which might be a password or some other secret binary value. This function returns immediately and completes asynchronously. a retrievable object optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to retrieve the secret value of this object. the secret value which should be released with [method@Value.unref], or %NULL a retrievable object asynchronous result passed to callback Get the attributes of this object. The attributes are a mapping of string keys to string values. Attributes are used to search for items. Attributes are not stored or transferred securely by the secret service. Do not modify the attribute returned by this method. a new reference to the attributes, which should not be modified, and released with [func@GLib.HashTable.unref] a retrievable object Get the created date and time of the object. The return value is the number of seconds since the unix epoch, January 1st 1970. the created date and time a retrievable object Get the label of this item. the label, which should be freed with [func@GLib.free] a retrievable object Get the modified date and time of the object. The return value is the number of seconds since the unix epoch, January 1st 1970. the modified date and time a retrievable object Retrieve the secret value of this object. Each retrievable object has a single secret which might be a password or some other secret binary value. This function returns immediately and completes asynchronously. a retrievable object optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to retrieve the secret value of this object. the secret value which should be released with [method@Value.unref], or %NULL a retrievable object asynchronous result passed to callback Retrieve the secret value of this object synchronously. Each retrievable object has a single secret which might be a password or some other secret binary value. This method may block indefinitely and should not be used in user interface threads. the secret value which should be released with [method@Value.unref], or %NULL a retrievable object optional cancellation object The attributes set on this item. Attributes are used to locate an item. They are not guaranteed to be stored or transferred securely. The date and time (in seconds since the UNIX epoch) that this item was created. The human readable label for the item. The date and time (in seconds since the UNIX epoch) that this item was last modified. The interface for #SecretRetrievable. the parent interface implementation of [method@Retrievable.retrieve_secret], required a retrievable object optional cancellation object called when the operation completes data to pass to the callback implementation of [method@Retrievable.retrieve_secret_finish], required the secret value which should be released with [method@Value.unref], or %NULL a retrievable object asynchronous result passed to callback Represents a set of attributes that are stored with an item. These schemas are used for interoperability between various services storing the same types of items. Each schema has a name like `org.gnome.keyring.NetworkPassword`, and defines a set of attributes, and types (string, integer, boolean) for those attributes. Attributes are stored as strings in the Secret Service, and the attribute types simply define standard ways to store integer and boolean values as strings. Attributes are represented in libsecret via a [struct@GLib.HashTable] with string keys and values. Even for values that defined as an integer or boolean in the schema, the attribute values in the [struct@GLib.HashTable] are strings. Boolean values are stored as the strings 'true' and 'false'. Integer values are stored in decimal, with a preceding negative sign for negative integers. Schemas are handled entirely on the client side by this library. The name of the schema is automatically stored as an attribute on the item. Normally when looking up passwords only those with matching schema names are returned. If the schema @flags contain the `SECRET_SCHEMA_DONT_MATCH_NAME` flag, then lookups will not check that the schema name matches that on the item, only the schema's attributes are matched. This is useful when you are looking up items that are not stored by the libsecret library. Other libraries such as libgnome-keyring don't store the schema name. Additional schemas can be defined via the [struct@Schema] structure like this: ```c // in a header: const SecretSchema * example_get_schema (void) G_GNUC_CONST; #define EXAMPLE_SCHEMA example_get_schema () // in a .c file const SecretSchema * example_get_schema (void) { static const SecretSchema the_schema = { "org.example.Password", SECRET_SCHEMA_NONE, { { "number", SECRET_SCHEMA_ATTRIBUTE_INTEGER }, { "string", SECRET_SCHEMA_ATTRIBUTE_STRING }, { "even", SECRET_SCHEMA_ATTRIBUTE_BOOLEAN }, { NULL, 0 }, } }; return &the_schema; } ``` the dotted name of the schema flags for the schema the attribute names and types of those attributes Using this function is not normally necessary from C code. A schema represents a set of attributes that are stored with an item. These schemas are used for interoperability between various services storing the same types of items. Each schema has an @name like `org.gnome.keyring.NetworkPassword`, and defines a set of attributes names, and types (string, integer, boolean) for those attributes. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) integers from the [enum@SchemaAttributeType] enumeration, representing the attribute type for each attribute name. The list of attributes should be terminated with a %NULL. Normally when looking up passwords only those with matching schema names are returned. If the schema @flags contain the %SECRET_SCHEMA_DONT_MATCH_NAME flag, then lookups will not check that the schema name matches that on the item, only the schema's attributes are matched. This is useful when you are looking up items that are not stored by the libsecret library. Other libraries such as libgnome-keyring don't store the schema name. the new schema, which should be unreferenced with [method@Schema.unref] when done the dotted name of the schema the flags for the schema the attribute names and types, terminated with %NULL Using this function is not normally necessary from C code. This is useful for constructing #SecretSchema structures in bindings. A schema represents a set of attributes that are stored with an item. These schemas are used for interoperability between various services storing the same types of items. Each schema has an @name like `org.gnome.keyring.NetworkPassword`, and defines a set of attributes names, and types (string, integer, boolean) for those attributes. Each key in the @attributes table should be a attribute name strings, and the values in the table should be integers from the [enum@SchemaAttributeType] enumeration, representing the attribute type for each attribute name. Normally when looking up passwords only those with matching schema names are returned. If the schema @flags contain the %SECRET_SCHEMA_DONT_MATCH_NAME flag, then lookups will not check that the schema name matches that on the item, only the schema's attributes are matched. This is useful when you are looking up items that are not stored by the libsecret library. Other libraries such as libgnome-keyring don't store the schema name. the new schema, which should be unreferenced with [method@Schema.unref] when done the dotted name of the schema the flags for the schema the attribute names and types of those attributes Adds a reference to the #SecretSchema. It is not normally necessary to call this function from C code, and is mainly present for the sake of bindings. If the @schema was statically allocated, then this function will copy the schema. the referenced schema, which should be later unreferenced with [method@Schema.unref] the schema to reference Releases a reference to the #SecretSchema. If the last reference is released then the schema will be freed. It is not normally necessary to call this function from C code, and is mainly present for the sake of bindings. It is an error to call this for a @schema that was statically allocated. the schema to reference An attribute in a #SecretSchema. name of the attribute the type of the attribute The type of an attribute in a [struct@SecretSchema]. Attributes are stored as strings in the Secret Service, and the attribute types simply define standard ways to store integer and boolean values as strings. a utf-8 string attribute an integer attribute, stored as a decimal a boolean attribute, stored as 'true' or 'false' Flags for a #SecretSchema definition. no flags for the schema don't match the schema name when looking up or removing passwords Different types of schemas for storing secrets, intended for use with [func@get_schema]. ## @SECRET_SCHEMA_NOTE A predefined schema for personal passwords stored by the user in the password manager. This schema has no attributes, and the items are not meant to be used automatically by applications. When used to search for items using this schema, it will only match items that have the same schema. Items stored via libgnome-keyring with the `GNOME_KEYRING_ITEM_NOTE` item type will match. ## @SECRET_SCHEMA_COMPAT_NETWORK A predefined schema that is compatible with items stored via the libgnome-keyring 'network password' functions. This is meant to be used by applications migrating from libgnome-keyring which stored their secrets as 'network passwords'. It is not recommended that new code use this schema. When used to search for items using this schema, it will only match items that have the same schema. Items stored via libgnome-keyring with the `GNOME_KEYRING_ITEM_NETWORK_PASSWORD` item type will match. The following attributes exist in the schema: ### Attributes: <table> <tr> <td><tt>user</tt>:</td> <td>The user name (string).</td> </tr> <tr> <td><tt>domain</tt>:</td> <td>The login domain or realm (string).</td></tr> <tr> <td><tt>object</tt>:</td> <td>The object or path (string).</td> </tr> <tr> <td><tt>protocol</tt>:</td> <td>The protocol (a string like 'http').</td> </tr> <tr> <td><tt>port</tt>:</td> <td>The network port (integer).</td> </tr> <tr> <td><tt>server</tt>:</td> <td>The hostname or server (string).</td> </tr> <tr> <td><tt>authtype</tt>:</td> <td>The authentication type (string).</td> </tr> </table> Personal passwords Network passwords from older libgnome-keyring storage Various flags to be used with [method@Service.search] and [method@Service.search_sync]. no flags all the items matching the search will be returned, instead of just the first one unlock locked items while searching while searching load secrets for items that are not locked A proxy object representing the Secret Service. A #SecretService object represents the Secret Service implementation which runs as a D-Bus service. Normally a single #SecretService object can be shared between multiple callers. The [func@Service.get] method is used to access this #SecretService object. If a new independent #SecretService object is required, use [func@Service.open]. In order to securely transfer secrets to the Sercret Service, a session is established. This session can be established while initializing a #SecretService object by passing the %SECRET_SERVICE_OPEN_SESSION flag to the [func@Service.get] or [func@Service.open] functions. In order to establish a session on an already existing #SecretService, use the [method@Service.ensure_session] function. To search for items, use the [method@Service.search] method. Multiple collections can exist in the Secret Service, each of which contains secret items. In order to instantiate [class@Collection] objects which represent those collections while initializing a #SecretService then pass the %SECRET_SERVICE_LOAD_COLLECTIONS flag to the [func@Service.get] or [func@Service.open] functions. In order to establish a session on an already existing #SecretService, use the [method@Service.load_collections] function. To access the list of collections use [method@Service.get_collections]. Certain actions on the Secret Service require user prompting to complete, such as creating a collection, or unlocking a collection. When such a prompt is necessary, then a [class@Prompt] object is created by this library, and passed to the [method@Service.prompt] method. In this way it is handled automatically. In order to customize prompt handling, override the [vfunc@Service.prompt_async] and [vfunc@Service.prompt_finish] virtual methods of the #SecretService class. Disconnect the default #SecretService proxy returned by [func@Service.get] and [func@Service.get_sync]. It is not necessary to call this function, but you may choose to do so at program exit. It is useful for testing that memory is not leaked. This function is safe to call at any time. But if other objects in this library are still referenced, then this will not result in all memory being freed. Get a #SecretService proxy for the Secret Service. If such a proxy object already exists, then the same proxy is returned. If @flags contains any flags of which parts of the secret service to ensure are initialized, then those will be initialized before completing. This method will return immediately and complete asynchronously. flags for which service functionality to ensure is initialized optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to get a #SecretService proxy for the Secret Service. a new reference to a #SecretService proxy, which should be released with [method@GObject.Object.unref]. the asynchronous result passed to the callback Get a #SecretService proxy for the Secret Service. If such a proxy object already exists, then the same proxy is returned. If @flags contains any flags of which parts of the secret service to ensure are initialized, then those will be initialized before returning. This method may block indefinitely and should not be used in user interface threads. a new reference to a #SecretService proxy, which should be released with [method@GObject.Object.unref]. flags for which service functionality to ensure is initialized optional cancellation object Create a new #SecretService proxy for the Secret Service. This function is rarely used, see [func@Service.get] instead. The @service_gtype argument should be set to %SECRET_TYPE_SERVICE or a the type of a derived class. If @flags contains any flags of which parts of the secret service to ensure are initialized, then those will be initialized before returning. If @service_bus_name is %NULL then the default is used. This method will return immediately and complete asynchronously. the GType of the new secret service the D-Bus service name of the secret service flags for which service functionality to ensure is initialized optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to create a new #SecretService proxy for the Secret Service. a new reference to a #SecretService proxy, which should be released with [method@GObject.Object.unref]. the asynchronous result passed to the callback Create a new #SecretService proxy for the Secret Service. This function is rarely used, see [func@Service.get_sync] instead. The @service_gtype argument should be set to %SECRET_TYPE_SERVICE or a the type of a derived class. If @flags contains any flags of which parts of the secret service to ensure are initialized, then those will be initialized before returning. If @service_bus_name is %NULL then the default is used. This method may block indefinitely and should not be used in user interface threads. a new reference to a #SecretService proxy, which should be released with [method@GObject.Object.unref]. the GType of the new secret service the D-Bus service name of the secret service flags for which service functionality to ensure is initialized optional cancellation object Get the GObject type for collections instantiated by this service. This will always be either [class@Collection] or derived from it. the gobject type for collections the secret service Get the GObject type for items instantiated by this service. This will always be either [class@Item] or derived from it. the gobject type for items the service called to perform asynchronous prompting when necessary Complete asynchronous operation to perform prompting for a [class@Prompt]. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the asynchronous result passed to the callback Perform prompting for a [class@Prompt]. Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. This function is called by other parts of this library to handle prompts for the various actions that can require prompting. Override the #SecretServiceClass [vfunc@Service.prompt_sync] virtual method to change the behavior of the prompting. The default behavior is to simply run [method@Prompt.perform_sync] on the prompt with a %NULL `window_id`. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the prompt optional cancellation object the variant type of the prompt result Remove unlocked items which match the attributes from the secret service. The @attributes should be a set of key and value string pairs. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. the secret service the schema for the attributes the attribute keys and values optional cancellation object called when the operation completes data to be passed to the callback Finish asynchronous operation to remove items from the secret service. whether items were removed or not the secret service the asynchronous result passed to the callback Remove unlocked items which match the attributes from the secret service. The @attributes should be a set of key and value string pairs. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. whether items were removed or not the secret service the schema for the attributes the attribute keys and values optional cancellation object Create a new collection in the secret service, and return its path. Using this method requires that you setup a correct hash table of D-Bus properties for the new collection. You may prefer to use [func@Collection.create] which does handles this for you. An @alias is a well-known tag for a collection, such as 'default' (ie: the default collection to store items in). This allows other applications to easily identify and share a collection. If a collection with the @alias already exists, then instead of creating a new collection, the existing collection will be returned. If no collection with this alias exists, then a new collection will be created and this alias will be assigned to it. @properties is a set of properties for the new collection. The keys in the hash table should be interface.property strings like `org.freedesktop.Secret.Collection.Label`. The values in the hash table should be [struct@GLib.Variant] values of the properties. If you wish to have a This method will return immediately and complete asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. a secret service object hash table of properties for the new collection an alias to check for before creating the new collection, or to assign to the new collection not currently used optional cancellation object called when the operation completes data to be passed to the callback Finish asynchronous operation to create a new collection in the secret service. a new string containing the D-Bus object path of the collection a secret service object the asynchronous result passed to the callback Create a new collection in the secret service and return its path. Using this method requires that you setup a correct hash table of D-Bus properties for the new collection. You may prefer to use [func@Collection.create] which does handles this for you. An @alias is a well-known tag for a collection, such as 'default' (ie: the default collection to store items in). This allows other applications to easily identify and share a collection. If a collection with the @alias already exists, then instead of creating a new collection, the existing collection will be returned. If no collection with this alias exists, then a new collection will be created and this alias will be assigned to it. @properties is a set of properties for the new collection. The keys in the hash table should be interface.property strings like `org.freedesktop.Secret.Collection.Label`. The values in the hash table should be [struct@GLib.Variant] values of the properties. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. a new string containing the D-Bus object path of the collection a secret service object hash table of D-Bus properties for the new collection an alias to check for before creating the new collection, or to assign to the new collection not currently used optional cancellation object Create a new item in a secret service collection and return its D-Bus object path. It is often easier to use [func@password_store] or [func@Item.create] rather than using this function. Using this method requires that you setup a correct hash table of D-Bus @properties for the new collection. If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret service will search for an item matching the @attributes, and update that item instead of creating a new one. @properties is a set of properties for the new collection. The keys in the hash table should be interface.property strings like `org.freedesktop.Secret.Item.Label`. The values in the hash table should be [struct@GLib.Variant] values of the properties. This method will return immediately and complete asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. a secret service object the D-Bus object path of the collection in which to create item hash table of D-Bus properties for the new collection the secret value to store in the item flags for the creation of the new item optional cancellation object called when the operation completes data to be passed to the callback Finish asynchronous operation to create a new item in the secret service. a new string containing the D-Bus object path of the item a secret service object the asynchronous result passed to the callback Create a new item in a secret service collection and return its D-Bus object path. It is often easier to use [func@password_store_sync] or [func@Item.create_sync] rather than using this function. Using this method requires that you setup a correct hash table of D-Bus @properties for the new collection. If the @flags contains %SECRET_ITEM_CREATE_REPLACE, then the secret service will search for an item matching the @attributes, and update that item instead of creating a new one. @properties is a set of properties for the new collection. The keys in the hash table should be interface.property strings like `org.freedesktop.Secret.Item.Label`. The values in the hash table should be [struct@GLib.Variant] values of the properties. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that are required. a new string containing the D-Bus object path of the item a secret service object the D-Bus path of the collection in which to create item hash table of D-Bus properties for the new collection the secret value to store in the item flags for the creation of the new item optional cancellation object Decode a [struct@Value] into [struct@GLib.Variant] received with the Secret Service DBus API. The [struct@GLib.Variant] should have a `(oayays)` signature. A session must have already been established by the [class@Service], and the encoded secret must be valid for that session. the decoded secret value the service the encoded secret Delete a secret item from the secret service. The item is represented by its D-Bus object path. If you already have a [class@Item] proxy objects, use use [method@Item.delete] instead. This method will return immediately and complete asynchronously. the secret service the D-Bus path of item to delete optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to delete a secret item from the secret service. whether the deletion was successful or not the secret service the asynchronous result passed to the callback Delete a secret item from the secret service. The item is represented by its D-Bus object path. If you already have a [class@Item] proxy objects, use use [method@Item.delete_sync] instead. This method may block indefinitely and should not be used in user interface threads. whether the deletion was successful or not the secret service the D-Bus path of item to delete optional cancellation object Encodes a [struct@Value] into [struct@GLib.Variant] for use with the Secret Service DBus API. The resulting [struct@GLib.Variant] will have a `(oayays)` signature. A session must have already been established by the [class@Service]. the encoded secret the service the secret value Ensure that the #SecretService proxy has established a session with the Secret Service. This session is used to transfer secrets. It is not normally necessary to call this method, as the session is established as necessary. You can also pass the %SECRET_SERVICE_OPEN_SESSION to [func@Service.get] in order to ensure that a session has been established by the time you get the #SecretService proxy. This method will return immediately and complete asynchronously. the secret service optional cancellation object called when the operation completes data to be passed to the callback Finish an asynchronous operation to ensure that the #SecretService proxy has established a session with the Secret Service. whether a session is established or not the secret service the asynchronous result passed to the callback Ensure that the #SecretService proxy has established a session with the Secret Service. This session is used to transfer secrets. It is not normally necessary to call this method, as the session is established as necessary. You can also pass the %SECRET_SERVICE_OPEN_SESSION to [func@Service.get_sync] in order to ensure that a session has been established by the time you get the #SecretService proxy. This method may block indefinitely and should not be used in user interface threads. whether a session is established or not the secret service optional cancellation object Get the GObject type for collections instantiated by this service. This will always be either [class@Collection] or derived from it. the gobject type for collections the secret service Get a list of [class@Collection] objects representing all the collections in the secret service. If the %SECRET_SERVICE_LOAD_COLLECTIONS flag was not specified when initializing #SecretService proxy object, then this method will return %NULL. Use [method@Service.load_collections] to load the collections. a list of the collections in the secret service the secret service proxy Get the flags representing what features of the #SecretService proxy have been initialized. Use [method@Service.ensure_session] or [method@Service.load_collections] to initialize further features and change the flags. the flags for features initialized the secret service proxy Get the GObject type for items instantiated by this service. This will always be either [class@Item] or derived from it. the gobject type for items the service Get the secret value for a secret item stored in the service. The item is represented by its D-Bus object path. If you already have a [class@Item] proxy object, use use [method@Item.get_secret] to more simply get its secret value. This function returns immediately and completes asynchronously. the secret service the D-Bus path to item to retrieve secret for optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to get the secret value for an secret item stored in the service. Will return %NULL if the item is locked. the newly allocated secret value for the item, which should be released with [method@Value.unref] the secret service asynchronous result passed to callback Get the secret value for a secret item stored in the service. The item is represented by its D-Bus object path. If you already have a [class@Item] proxy object, use use [method@Item.load_secret_sync] to more simply get its secret value. This method may block indefinitely and should not be used in user interface threads. Will return %NULL if the item is locked. the newly allocated secret value the item, which should be released with [method@Value.unref] the secret service the D-Bus path to item to retrieve secret for optional cancellation object Get the secret values for a secret item stored in the service. The items are represented by their D-Bus object paths. If you already have [class@Item] proxy objects, use use [func@Item.load_secrets] to more simply get their secret values. This function returns immediately and completes asynchronously. the secret service the D-Bus paths to items to retrieve secrets for optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to get the secret values for an secret items stored in the service. Items that are locked will not be included the results. a newly allocated hash table of item path keys to [struct@Value] values. the secret service asynchronous result passed to callback Get the secret values for a secret item stored in the service. The items are represented by their D-Bus object paths. If you already have [class@Item] proxy objects, use use [func@Item.load_secrets_sync] to more simply get their secret values. This method may block indefinitely and should not be used in user interface threads. Items that are locked will not be included the results. a newly allocated hash table of item_path keys to [struct@Value] values. the secret service the D-Bus paths to items to retrieve secrets for optional cancellation object Get the set of algorithms being used to transfer secrets between this secret service proxy and the Secret Service itself. This will be %NULL if no session has been established. Use [method@Service.ensure_session] to establish a session. a string representing the algorithms for transferring secrets the secret service proxy Get the D-Bus object path of the session object being used to transfer secrets between this secret service proxy and the Secret Service itself. This will be %NULL if no session has been established. Use [method@Service.ensure_session] to establish a session. a string representing the D-Bus object path of the session the secret service proxy Ensure that the #SecretService proxy has loaded all the collections present in the Secret Service. This affects the result of [method@Service.get_collections]. You can also pass the %SECRET_SERVICE_LOAD_COLLECTIONS to [func@Service.get_sync] in order to ensure that the collections have been loaded by the time you get the #SecretService proxy. This method will return immediately and complete asynchronously. the secret service optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to ensure that the #SecretService proxy has loaded all the collections present in the Secret Service. whether the load was successful or not the secret service the asynchronous result passed to the callback Ensure that the #SecretService proxy has loaded all the collections present in the Secret Service. This affects the result of [method@Service.get_collections]. You can also pass the %SECRET_SERVICE_LOAD_COLLECTIONS to [func@Service.get_sync] in order to ensure that the collections have been loaded by the time you get the #SecretService proxy. This method may block indefinitely and should not be used in user interface threads. whether the load was successful or not the secret service optional cancellation object Lock items or collections in the secret service. The secret service may not be able to lock items individually, and may lock an entire collection instead. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the secret service the items or collections to lock optional cancellation object called when the operation completes data to pass to the callback Lock items or collections in the secret service. The items or collections are represented by their D-Bus object paths. If you already have [class@Item] and [class@Collection] proxy objects, use use [method@Service.lock] instead. The secret service may not be able to lock items individually, and may lock an entire collection instead. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the secret service the D-Bus paths for items or collections to lock optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to lock items or collections in the secret service. The secret service may not be able to lock items individually, and may lock an entire collection instead. the number of items or collections that were locked the secret service asynchronous result passed to the callback location to place array of D-Bus paths of items or collections that were locked Lock items or collections in the secret service. The items or collections are represented by their D-Bus object paths. If you already have [class@Item] and [class@Collection] proxy objects, use use [method@Service.lock_sync] instead. The secret service may not be able to lock items individually, and may lock an entire collection instead. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the number of items or collections that were locked the secret service the D-Bus object paths of the items or collections to lock optional cancellation object location to place array of D-Bus paths of items or collections that were locked Complete asynchronous operation to lock items or collections in the secret service. The secret service may not be able to lock items individually, and may lock an entire collection instead. the number of items or collections that were locked the secret service asynchronous result passed to the callback location to place list of items or collections that were locked Lock items or collections in the secret service. The secret service may not be able to lock items individually, and may lock an entire collection instead. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the number of items or collections that were locked the secret service the items or collections to lock optional cancellation object location to place list of items or collections that were locked Lookup a secret value in the secret service. The @attributes should be a set of key and value string pairs. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. the secret service the schema for the attributes the attribute keys and values optional cancellation object called when the operation completes data to be passed to the callback Finish asynchronous operation to lookup a secret value in the secret service. If no secret is found then %NULL is returned. a newly allocated [struct@Value], which should be released with [method@Value.unref], or %NULL if no secret found the secret service the asynchronous result passed to the callback Lookup a secret value in the secret service. The @attributes should be a set of key and value string pairs. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. a newly allocated [struct@Value], which should be released with [method@Value.unref], or %NULL if no secret found the secret service the schema for the attributes the attribute keys and values optional cancellation object Perform prompting for a [class@Prompt]. This function is called by other parts of this library to handle prompts for the various actions that can require prompting. Override the #SecretServiceClass [vfunc@Service.prompt_async] virtual method to change the behavior of the prompting. The default behavior is to simply run [method@Prompt.perform] on the prompt. the secret service the prompt the variant type of the prompt result optional cancellation object called when the operation completes data to be passed to the callback Perform prompting for a [class@Prompt]. This function is called by other parts of this library to handle prompts for the various actions that can require prompting. Override the #SecretServiceClass [vfunc@Service.prompt_async] virtual method to change the behavior of the propmting. The default behavior is to simply run [method@Prompt.perform] on the prompt. the secret service the D-Bus object path of the prompt the variant type of the prompt result optional cancellation object called when the operation completes data to be passed to the callback Complete asynchronous operation to perform prompting for a [class@Prompt]. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the asynchronous result passed to the callback Perform prompting for a [class@Prompt]. Override the #SecretServiceClass [vfunc@Service.prompt_async] virtual method to change the behavior of the propmting. The default behavior is to simply run [method@Prompt.perform] on the prompt. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. This method may block and should not be used in user interface threads. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the D-Bus object path of the prompt optional cancellation object the variant type of the prompt result Complete asynchronous operation to perform prompting for a [class@Prompt]. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the asynchronous result passed to the callback Perform prompting for a [class@Prompt]. Runs a prompt and performs the prompting. Returns a variant result if the prompt was completed and not dismissed. The type of result depends on the action the prompt is completing, and is defined in the Secret Service DBus API specification. This function is called by other parts of this library to handle prompts for the various actions that can require prompting. Override the #SecretServiceClass [vfunc@Service.prompt_sync] virtual method to change the behavior of the prompting. The default behavior is to simply run [method@Prompt.perform_sync] on the prompt with a %NULL `window_id`. %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the prompt optional cancellation object the variant type of the prompt result Lookup which collection is assigned to this alias. Aliases help determine well known collections, such as 'default'. This method looks up the dbus object path of the well known collection. This method will return immediately and complete asynchronously. a secret service object the alias to lookup optional cancellation object called when the operation completes data to pass to the callback Finish an asynchronous operation to lookup which collection is assigned to an alias. This method returns the DBus object path of the collection the collection dbus object path, or %NULL if none assigned to the alias a secret service object asynchronous result passed to callback Lookup which collection is assigned to this alias. Aliases help determine well known collections, such as 'default'. This method returns the dbus object path of the collection. This method may block and should not be used in user interface threads. the collection dbus object path, or %NULL if none assigned to the alias a secret service object the alias to lookup optional cancellation object Search for items matching the @attributes. All collections are searched. The @attributes should be a table of string keys and string values. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the search will be returned. Otherwise only the first item will be returned. This is almost always the unlocked item that was most recently stored. If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked if necessary. In either case, locked and unlocked items will match the search and be returned. If the unlock fails, the search does not fail. If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items will have their secret values loaded and available via [method@Item.get_secret]. This function returns immediately and completes asynchronously. the secret service the schema for the attributes search for items matching these attributes search option flags optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to search for items. a list of items that matched the search the secret service asynchronous result passed to callback Search for items matching the @attributes, and return their D-Bus object paths. All collections are searched. The @attributes should be a table of string keys and string values. This function returns immediately and completes asynchronously. When your callback is called use [method@Service.search_for_dbus_paths_finish] to get the results of this function. Only the D-Bus object paths of the items will be returned. If you would like [class@Item] objects to be returned instead, then use the [method@Service.search] function. the secret service the schema for the attributes search for items matching these attributes optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to search for items, and return their D-Bus object paths. Matching items that are locked or unlocked, have their D-Bus paths placed in the @locked or @unlocked arrays respectively. D-Bus object paths of the items will be returned in the @unlocked or @locked arrays. If you would to have [class@Item] objects to be returned instead, then us the [method@Service.search] and [method@Service.search_finish] functions. whether the search was successful or not the secret service asynchronous result passed to callback location to place an array of D-Bus object paths for matching items which were locked. location to place an array of D-Bus object paths for matching items which were locked. Search for items matching the @attributes, and return their D-Bus object paths. All collections are searched. The @attributes should be a table of string keys and string values. This function may block indefinitely. Use the asynchronous version in user interface threads. Matching items that are locked or unlocked, have their D-Bus paths placed in the @locked or @unlocked arrays respectively. D-Bus object paths of the items will be returned in the @unlocked or @locked arrays. If you would to have [class@Item] objects to be returned instead, then use the [method@Service.search_sync] function. whether the search was successful or not the secret service the schema for the attributes search for items matching these attributes optional cancellation object location to place an array of D-Bus object paths for matching items which were locked. location to place an array of D-Bus object paths for matching items which were locked. Search for items matching the @attributes. All collections are searched. The @attributes should be a table of string keys and string values. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. If %SECRET_SEARCH_ALL is set in @flags, then all the items matching the search will be returned. Otherwise only the first item will be returned. This is almost always the unlocked item that was most recently stored. If %SECRET_SEARCH_UNLOCK is set in @flags, then items will be unlocked if necessary. In either case, locked and unlocked items will match the search and be returned. If the unlock fails, the search does not fail. If %SECRET_SEARCH_LOAD_SECRETS is set in @flags, then the items' secret values will be loaded for any unlocked items. Loaded item secret values are available via [method@Item.get_secret]. If the load of a secret values fail, then the This function may block indefinitely. Use the asynchronous version in user interface threads. a list of items that matched the search the secret service the schema for the attributes search for items matching these attributes search option flags optional cancellation object Assign a collection to this alias. Aliases help determine well known collections, such as 'default'. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method will return immediately and complete asynchronously. a secret service object the alias to assign the collection to the collection to assign to the alias optional cancellation object called when the operation completes data to pass to the callback Finish an asynchronous operation to assign a collection to an alias. %TRUE if successful a secret service object asynchronous result passed to callback Assign a collection to this alias. Aliases help determine well known collections, such as 'default'. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block and should not be used in user interface threads. %TRUE if successful a secret service object the alias to assign the collection to the collection to assign to the alias optional cancellation object Assign a collection to this alias. Aliases help determine well known collections, such as 'default'. This method takes the dbus object path of the collection to assign to the alias. This method will return immediately and complete asynchronously. a secret service object the alias to assign the collection to the dbus object path of the collection to assign to the alias optional cancellation object called when the operation completes data to pass to the callback Finish an asynchronous operation to assign a collection to an alias. %TRUE if successful a secret service object asynchronous result passed to callback Assign a collection to this alias. Aliases help determine well known collections, such as 'default'. This method takes the dbus object path of the collection to assign to the alias. This method may block and should not be used in user interface threads. %TRUE if successful a secret service object the alias to assign the collection to the D-Bus object path of the collection to assign to the alias optional cancellation object Store a secret value in the secret service. The @attributes should be a set of key and value string pairs. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. If @collection is not specified, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. This method will return immediately and complete asynchronously. the secret service the schema to use to check attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the secret value optional cancellation object called when the operation completes data to be passed to the callback Finish asynchronous operation to store a secret value in the secret service. whether the storage was successful or not the secret service the asynchronous result passed to the callback Store a secret value in the secret service. The @attributes should be a set of key and value string pairs. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @collection is %NULL, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. whether the storage was successful or not the secret service the schema for the attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the secret value optional cancellation object Unlock items or collections in the secret service. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. If @service is %NULL, then [func@Service.get] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the secret service the items or collections to unlock optional cancellation object called when the operation completes data to pass to the callback Unlock items or collections in the secret service. The items or collections are represented by their D-Bus object paths. If you already have [class@Item] and [class@Collection] proxy objects, use use [method@Service.unlock] instead. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. This method returns immediately and completes asynchronously. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the secret service the D-Bus paths for items or collections to unlock optional cancellation object called when the operation completes data to pass to the callback Complete asynchronous operation to unlock items or collections in the secret service. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. the number of items or collections that were unlocked the secret service asynchronous result passed to the callback location to place array of D-Bus paths of items or collections that were unlocked Unlock items or collections in the secret service. The items or collections are represented by their D-Bus object paths. If you already have [class@Item] and [class@Collection] proxy objects, use use [method@Service.unlock_sync] instead. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the number of items or collections that were unlocked the secret service the D-Bus object paths of the items or collections to unlock optional cancellation object location to place array of D-Bus paths of items or collections that were unlocked Complete asynchronous operation to unlock items or collections in the secret service. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. the number of items or collections that were unlocked the secret service asynchronous result passed to the callback location to place list of items or collections that were unlocked Unlock items or collections in the secret service. The secret service may not be able to unlock items individually, and may unlock an entire collection instead. If @service is %NULL, then [func@Service.get_sync] will be called to get the default [class@Service] proxy. This method may block indefinitely and should not be used in user interface threads. The secret service may prompt the user. [method@Service.prompt] will be used to handle any prompts that show up. the number of items or collections that were unlocked the secret service the items or collections to unlock optional cancellation object location to place list of items or collections that were unlocked A list of [class@Collection] objects representing the collections in the Secret Service. This list may be %NULL if the collections have not been loaded. To load the collections, specify the %SECRET_SERVICE_LOAD_COLLECTIONS initialization flag when calling the [func@Service.get] or [func@Service.open] functions. Or call the [method@Service.load_collections] method. The class for #SecretService. the parent class the [alias@GObject.Type] of the [class@Collection] objects instantiated by the #SecretService proxy the [alias@GObject.Type] of the [class@Item] objects instantiated by the #SecretService proxy called to perform synchronous prompting when necessary %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the prompt optional cancellation object the variant type of the prompt result called to perform asynchronous prompting when necessary called to complete an asynchronous prompt operation %NULL if the prompt was dismissed or an error occurred, a variant result if the prompt was successful the secret service the asynchronous result passed to the callback called to get the GObject type for collections instantiated by the #SecretService proxy the gobject type for collections the secret service called to get the GObject type for collections instantiated by the #SecretService proxy the gobject type for items the service Flags which determine which parts of the #SecretService proxy are initialized during a [func@Service.get] or [func@Service.open] operation. no flags for initializing the #SecretService establish a session for transfer of secrets while initializing the #SecretService load collections while initializing the #SecretService A value containing a secret A #SecretValue contains a password or other secret value. Use [method@Value.get] to get the actual secret data, such as a password. The secret data is not necessarily null-terminated, unless the content type is "text/plain". Each #SecretValue has a content type. For passwords, this is `text/plain`. Use [method@Value.get_content_type] to look at the content type. #SecretValue is reference counted and immutable. The secret data is only freed when all references have been released via [method@Value.unref]. Create a #SecretValue for the secret data passed in. The secret data is copied into non-pageable 'secure' memory. If the length is less than zero, then @secret is assumed to be null-terminated. the new #SecretValue the secret data the length of the data the content type of the data Create a #SecretValue for the secret data passed in. The secret data is not copied, and will later be freed with the @destroy function. If the length is less than zero, then @secret is assumed to be null-terminated. the new #SecretValue the secret data the length of the data the content type of the data function to call to free the secret data Get the secret data in the #SecretValue. The value is not necessarily null-terminated unless it was created with [ctor@Value.new] or a null-terminated string was passed to [ctor@Value.new_full]. the secret data the value the length of the secret Get the content type of the secret value, such as `text/plain`. the content type the value Get the secret data in the #SecretValue if it contains a textual value. The content type must be `text/plain`. the content type the value Add another reference to the #SecretValue. For each reference [method@Value.unref] should be called to unreference the value. the value value to reference Unreference a #SecretValue. When the last reference is gone, then the value will be freed. value to unreference Unreference a #SecretValue and steal the secret data in #SecretValue as nonpageable memory. a new password string stored in nonpageable memory which must be freed with [func@password_free] when done the value the length of the secret Build up a hash table of attribute values. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. a new table of attributes, to be released with [func@GLib.HashTable.unref] the schema for the attributes the attribute keys and values, terminated with %NULL Build up a hash table of attribute values. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. a new table of attributes, to be released with [func@GLib.HashTable.unref] the schema for the attributes the attribute keys and values, terminated with %NULL Check if attributes are valid according to the provided schema. Verifies schema name if available, attribute names and parsing of attribute values. whether or not the given attributes table is valid the schema for the attributes the attributes to be validated Get a #SecretBackend instance. If such a backend already exists, then the same backend is returned. If @flags contains any flags of which parts of the secret backend to ensure are initialized, then those will be initialized before completing. This method will return immediately and complete asynchronously. flags for which service functionality to ensure is initialized optional cancellation object called when the operation completes data to be passed to the callback Complete an asynchronous operation to get a #SecretBackend. a new reference to a #SecretBackend proxy, which should be released with [method@GObject.Object.unref]. the asynchronous result passed to the callback Get the error quark. the quark Get a secret storage schema of the given @type. C code may access the schemas (such as %SECRET_SCHEMA_NOTE) directly, but language bindings cannot, and must use this accessor. schema type type of schema to get Clear unlocked matching passwords from the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. All unlocked items that match the attributes will be deleted. This method will return immediately and complete asynchronously. the schema for the attributes optional cancellation object called when the operation completes data to be passed to the callback the attribute keys and values, terminated with %NULL Finish an asynchronous operation to remove passwords from the secret service. whether any passwords were removed the asynchronous result passed to the callback Remove unlocked matching passwords from the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. All unlocked items that match the attributes will be deleted. This method may block indefinitely and should not be used in user interface threads. whether the any passwords were removed the schema for the attributes optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Remove unlocked matching passwords from the secret service. The @attributes should be a set of key and value string pairs. All unlocked items that match the attributes will be deleted. This method will return immediately and complete asynchronously. the schema for the attributes the attribute keys and values optional cancellation object called when the operation completes data to be passed to the callback Remove unlocked matching passwords from the secret service. The @attributes should be a set of key and value string pairs. All unlocked items that match the attributes will be deleted. This method may block indefinitely and should not be used in user interface threads. whether any passwords were removed the schema for the attributes the attribute keys and values optional cancellation object Clear the memory used by a password, and then free it. This function must be used to free nonpageable memory returned by [func@password_lookup_nonpageable_finish], [func@password_lookup_nonpageable_sync] or [func@password_lookupv_nonpageable_sync]. password to free Lookup a password in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. If no secret is found then %NULL is returned. This method will return immediately and complete asynchronously. the schema for the attributes optional cancellation object called when the operation completes data to be passed to the callback the attribute keys and values, terminated with %NULL Finish an asynchronous operation to lookup a password in the secret service. a newly allocated [struct@Value], which should be released with [method@Value.unref], or %NULL if no secret found the asynchronous result passed to the callback Lookup a password in the secret service. This is similar to [func@password_lookup_sync], but returns a [struct@Value] instead of a null-terminated password. This method may block indefinitely and should not be used in user interface threads. a newly allocated [struct@Value], which should be released with [method@Value.unref], or %NULL if no secret found the schema for the attributes optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Finish an asynchronous operation to lookup a password in the secret service. a new password string which should be freed with [func@password_free] or may be freed with [func@GLib.free] when done the asynchronous result passed to the callback Finish an asynchronous operation to lookup a password in the secret service. a new password string stored in nonpageable memory which must be freed with [func@password_free] when done the asynchronous result passed to the callback Lookup a password in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a new password string stored in nonpageable memory which must be freed with [func@password_free] when done the schema for the attributes optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Lookup a password in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a new password string which should be freed with [func@password_free] or may be freed with [func@GLib.free] when done the schema for the attributes optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Lookup a password in the secret service. The @attributes should be a set of key and value string pairs. If no secret is found then %NULL is returned. This method will return immediately and complete asynchronously. the schema for attributes the attribute keys and values optional cancellation object called when the operation completes data to be passed to the callback Lookup a password in the secret service. This is similar to [func@password_lookupv_sync], but returns a [struct@Value] instead of a null-terminated password. This method may block indefinitely and should not be used in user interface threads. a newly allocated [struct@Value], which should be released with [method@Value.unref], or %NULL if no secret found the schema for attributes the attribute keys and values optional cancellation object Lookup a password in the secret service. The @attributes should be a set of key and value string pairs. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a new password string stored in non pageable memory which should be freed with [func@password_free] when done the schema for attributes the attribute keys and values optional cancellation object Lookup a password in the secret service. The @attributes should be a set of key and value string pairs. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a new password string which should be freed with [func@password_free] or may be freed with [func@GLib.free] when done the schema for attributes the attribute keys and values optional cancellation object Search for items in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. This method will return immediately and complete asynchronously. the schema for the attributes search option flags optional cancellation object called when the operation completes data to be passed to the callback the attribute keys and values, terminated with %NULL Finish an asynchronous operation to search for items in the secret service. a list of [iface@Retrievable] containing attributes of the matched items the asynchronous result passed to the callback Search for items in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the password @schema. The list of attributes should be terminated with a %NULL. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a list of [iface@Retrievable] containing attributes of the matched items the schema for the attributes search option flags optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Search for items in the secret service. The @attributes should be a set of key and value string pairs. This method will return immediately and complete asynchronously. the schema for attributes the attribute keys and values search option flags optional cancellation object called when the operation completes data to be passed to the callback Search for items in the secret service. The @attributes should be a set of key and value string pairs. If no secret is found then %NULL is returned. This method may block indefinitely and should not be used in user interface threads. a list of [iface@Retrievable] containing attributes of the matched items the schema for attributes the attribute keys and values search option flags optional cancellation object Store a password in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the @schema. The list of attributes should be terminated with a %NULL. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @collection is %NULL, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. This method will return immediately and complete asynchronously. the schema for attributes a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the null-terminated password to store optional cancellation object called when the operation completes data to be passed to the callback the attribute keys and values, terminated with %NULL Store a password in the secret service. This is similar to [func@password_store], but takes a [struct@Value] as the argument instead of a null-terminated password. This method will return immediately and complete asynchronously. the schema for attributes a collection alias, or D-Bus object path of the collection where to store the secret label for the secret a [struct@Value] optional cancellation object called when the operation completes data to be passed to the callback the attribute keys and values, terminated with %NULL Store a password in the secret service. This is similar to [func@password_store_sync], but takes a [struct@Value] as the argument instead of a null terminated password. This method may block indefinitely and should not be used in user interface threads. whether the storage was successful or not the schema for attributes a collection alias, or D-Bus object path of the collection where to store the secret label for the secret a [struct@Value] optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Finish asynchronous operation to store a password in the secret service. whether the storage was successful or not the asynchronous result passed to the callback Store a password in the secret service. The variable argument list should contain pairs of a) The attribute name as a null-terminated string, followed by b) attribute value, either a character string, an int number, or a gboolean value, as defined in the @schema. The list of attributes should be terminated with a %NULL. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @collection is %NULL, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. This method may block indefinitely and should not be used in user interface threads. whether the storage was successful or not the schema for attributes a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the null-terminated password to store optional cancellation object location to place an error on failure the attribute keys and values, terminated with %NULL Store a password in the secret service. The @attributes should be a set of key and value string pairs. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @collection is %NULL, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. This method will return immediately and complete asynchronously. the schema for attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the null-terminated password to store optional cancellation object called when the operation completes data to be passed to the callback Store a password in the secret service. This is similar to [func@password_storev], but takes a [struct@Value] as the argument instead of a null-terminated password. This method will return immediately and complete asynchronously. the schema for attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret a [struct@Value] optional cancellation object called when the operation completes data to be passed to the callback Store a password in the secret service. This is similar to [func@password_storev_sync], but takes a [struct@Value] as the argument instead of a null-terminated passwords. This method may block indefinitely and should not be used in user interface threads. whether the storage was successful or not the schema for attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret a [struct@Value] optional cancellation object Store a password in the secret service. The @attributes should be a set of key and value string pairs. If the attributes match a secret item already stored in the collection, then the item will be updated with these new values. If @collection is %NULL, then the default collection will be used. Use [const@COLLECTION_SESSION] to store the password in the session collection, which doesn't get stored across login sessions. This method may block indefinitely and should not be used in user interface threads. whether the storage was successful or not the schema for attributes the attribute keys and values a collection alias, or D-Bus object path of the collection where to store the secret label for the secret the null-terminated password to store optional cancellation object Clear the memory used by a password. password to clear