### Method

# Secret Service store_sync

#### Declaration [src]

    gboolean
    secret_service_store_sync (
      SecretService* service,
      const SecretSchema* schema,
      GHashTable* attributes,
      const gchar* collection,
      const gchar* label,
      SecretValue* value,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

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 `SECRET_COLLECTION_SESSION` to store the password in the session collection, which doesn’t get stored across login sessions.

If `service` is `NULL`, then `secret_service_get_sync()` will be called to get the default `SecretService` proxy.

This method may block indefinitely and should not be used in user interface threads.

#### Parameters

`schema`

  Type: `SecretSchema`

  The schema for the attributes.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`attributes`

  Type: `GHashTable`

  The attribute keys and values.

  The data is owned by the caller of the method.

`collection`

  Type: `const gchar*`

  A collection alias, or D-Bus object path of the collection where to store the secret.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`label`

  Type: `const gchar*`

  Label for the secret.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`value`

  Type: `SecretValue`

  The secret value.

  The data is owned by the caller of the method.

`cancellable`

  Type: `GCancellable`

  Optional cancellation object.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will be left initialized to `NULL` by the method if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `gboolean`

Whether the storage was successful or not.