<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <c:include name="gnome-keyring.h"/>
  <namespace name="GnomeKeyring"
             version="1.0"
             shared-library="libgnome-keyring.so.0"
             c:identifier-prefixes="GnomeKeyring"
             c:symbol-prefixes="gnome_keyring">
    <alias name="AttributeList" c:type="GnomeKeyringAttributeList">
      <type name="GLib.Array" c:type="GArray"/>
    </alias>
    <record name="AccessControl"
            c:type="GnomeKeyringAccessControl"
            glib:type-name="GnomeKeyringAccessControl"
            glib:get-type="gnome_keyring_access_control_get_type"
            c:symbol-prefix="access_control">
      <doc xml:space="preserve">A structure which contains access control information.</doc>
      <constructor name="new"
                   c:identifier="gnome_keyring_access_control_new"
                   deprecated="1">
        <doc xml:space="preserve">Create a new access control for an item. Combine the various access
rights allowed.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GnomeKeyringAccessControl pointer. Use
gnome_keyring_access_control_free() to free the memory.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </return-value>
        <parameters>
          <parameter name="application" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringApplicationRef pointer</doc>
            <type name="ApplicationRef"
                  c:type="const GnomeKeyringApplicationRef*"/>
          </parameter>
          <parameter name="types_allowed" transfer-ownership="none">
            <doc xml:space="preserve">Access types allowed.</doc>
            <type name="AccessType" c:type="GnomeKeyringAccessType"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy"
              c:identifier="gnome_keyring_access_control_copy"
              deprecated="1">
        <doc xml:space="preserve">Copy an access control for an item.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GnomeKeyringAccessControl pointer. Use
gnome_keyring_access_control_free() to free the memory.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ac" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer</doc>
            <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="gnome_keyring_access_control_free"
              deprecated="1">
        <doc xml:space="preserve">Free an access control for an item.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ac" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer</doc>
            <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="AccessRestriction"
                 deprecated="1"
                 c:type="GnomeKeyringAccessRestriction">
      <doc xml:space="preserve">Type of access restriction.</doc>
      <doc-deprecated xml:space="preserve">No permission prompts are supported.</doc-deprecated>
      <member name="ask" value="0" c:identifier="GNOME_KEYRING_ACCESS_ASK">
        <doc xml:space="preserve">Ask permission.</doc>
      </member>
      <member name="deny" value="1" c:identifier="GNOME_KEYRING_ACCESS_DENY">
        <doc xml:space="preserve">Deny permission.</doc>
      </member>
      <member name="allow" value="2" c:identifier="GNOME_KEYRING_ACCESS_ALLOW">
        <doc xml:space="preserve">Give permission.</doc>
      </member>
    </enumeration>
    <bitfield name="AccessType" deprecated="1" c:type="GnomeKeyringAccessType">
      <doc xml:space="preserve">Type of access.</doc>
      <doc-deprecated xml:space="preserve">libsecret only supports string attributes.</doc-deprecated>
      <member name="read" value="1" c:identifier="GNOME_KEYRING_ACCESS_READ">
        <doc xml:space="preserve">Read access</doc>
      </member>
      <member name="write" value="2" c:identifier="GNOME_KEYRING_ACCESS_WRITE">
        <doc xml:space="preserve">Write access</doc>
      </member>
      <member name="remove"
              value="4"
              c:identifier="GNOME_KEYRING_ACCESS_REMOVE">
        <doc xml:space="preserve">Delete access</doc>
      </member>
    </bitfield>
    <record name="ApplicationRef"
            c:type="GnomeKeyringApplicationRef"
            glib:type-name="GnomeKeyringApplicationRef"
            glib:get-type="gnome_keyring_application_ref_get_type"
            c:symbol-prefix="application_ref">
      <constructor name="new"
                   c:identifier="gnome_keyring_application_ref_new"
                   deprecated="1">
        <doc xml:space="preserve">Create a new application reference.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GnomeKeyringApplicationRef pointer.</doc>
          <type name="ApplicationRef" c:type="GnomeKeyringApplicationRef*"/>
        </return-value>
      </constructor>
      <method name="copy"
              c:identifier="gnome_keyring_application_ref_copy"
              deprecated="1">
        <doc xml:space="preserve">Copy an application reference.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GnomeKeyringApplicationRef pointer.</doc>
          <type name="ApplicationRef" c:type="GnomeKeyringApplicationRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringApplicationRef pointer</doc>
            <type name="ApplicationRef"
                  c:type="const GnomeKeyringApplicationRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="gnome_keyring_application_ref_free"
              deprecated="1">
        <doc xml:space="preserve">Free an application reference.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringApplicationRef pointer</doc>
            <type name="ApplicationRef" c:type="GnomeKeyringApplicationRef*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="Attribute"
            c:type="GnomeKeyringAttribute"
            deprecated="1"
            glib:type-name="GnomeKeyringAttribute"
            glib:get-type="gnome_keyring_attribute_get_type"
            c:symbol-prefix="attribute">
      <doc xml:space="preserve">An item attribute. Set &lt;code&gt;string&lt;/code&gt; if data type is
%GNOME_KEYRING_ATTRIBUTE_TYPE_STRING or &lt;code&gt;integer&lt;/code&gt; if data type is
%GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32</doc>
      <doc-deprecated xml:space="preserve">libsecret only supports string attributes.</doc-deprecated>
      <field name="name" writable="1">
        <doc xml:space="preserve">The name of the attribute.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">The data type.</doc>
        <type name="AttributeType" c:type="GnomeKeyringAttributeType"/>
      </field>
      <union name="value" c:type="value">
        <field name="string" writable="1">
          <type name="utf8" c:type="char*"/>
        </field>
        <field name="integer" writable="1">
          <type name="guint32" c:type="guint32"/>
        </field>
      </union>
      <method name="get_string"
              c:identifier="gnome_keyring_attribute_get_string"
              deprecated="1">
        <doc xml:space="preserve">Return the string value. It is an error to call this method if
@attribute.type is not #GNOME_KEYRING_ATTRIBUTE_TYPE_STRING. This method is
mostly useful for language bindings which do not provide union access. In C
you should just use attribute-&gt;value.string.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value.string pointer of @attribute. This is
not a copy, do not free.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attribute" transfer-ownership="none">
            <doc xml:space="preserve">a #GnomeKeyringAttribute</doc>
            <type name="Attribute" c:type="GnomeKeyringAttribute*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uint32"
              c:identifier="gnome_keyring_attribute_get_uint32"
              deprecated="1">
        <doc xml:space="preserve">Return the uint32 value. It is an error to call this method if
@attribute.type is not #GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32. This method is
mostly useful for language bindings which do not provide union access. In C
you should just use attribute-&gt;value.integer.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The value.integer of @attribute.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="attribute" transfer-ownership="none">
            <doc xml:space="preserve">a #GnomeKeyringAttribute</doc>
            <type name="Attribute" c:type="GnomeKeyringAttribute*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="list_append_string"
                c:identifier="gnome_keyring_attribute_list_append_string"
                deprecated="1">
        <doc xml:space="preserve">Store a key-value-pair with a string value in @attributes.</doc>
        <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values, use g_hash_table_replace() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
            <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the new attribute</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The value to store in @attributes</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="list_append_uint32"
                c:identifier="gnome_keyring_attribute_list_append_uint32"
                deprecated="1">
        <doc xml:space="preserve">Store a key-value-pair with an unsigned 32bit number value in @attributes.</doc>
        <doc-deprecated xml:space="preserve">libsecret does not support number attributes.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
            <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the new attribute</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The value to store in @attributes</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </function>
      <function name="list_copy"
                c:identifier="gnome_keyring_attribute_list_copy"
                deprecated="1">
        <doc xml:space="preserve">Copy a list of item attributes.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </return-value>
        <parameters>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAttributeList to copy.</doc>
            <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
          </parameter>
        </parameters>
      </function>
      <function name="list_free"
                c:identifier="gnome_keyring_attribute_list_free"
                deprecated="1">
        <doc xml:space="preserve">Free the memory used by @attributes.

If a %NULL pointer is passed, it is ignored.</doc>
        <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values, use g_hash_table_unref() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
            <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
          </parameter>
        </parameters>
      </function>
      <function name="list_new"
                c:identifier="gnome_keyring_attribute_list_new"
                deprecated="1">
        <doc xml:space="preserve">Create a new #GnomeKeyringAttributeList.</doc>
        <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values; use g_hash_table_new() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </return-value>
      </function>
      <function name="list_to_glist"
                c:identifier="gnome_keyring_attribute_list_to_glist"
                version="3.4"
                deprecated="1">
        <doc xml:space="preserve">Create #GList of #GnomeKeyringAttribute pointers from @attributes. This is
mostly useful in language bindings which cannot directly use a #GArray.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">#GList
of #GnomeKeyringAttribute.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Attribute"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
            <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="AttributeType" c:type="GnomeKeyringAttributeType">
      <member name="string"
              value="0"
              c:identifier="GNOME_KEYRING_ATTRIBUTE_TYPE_STRING">
      </member>
      <member name="uint32"
              value="1"
              c:identifier="GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32">
      </member>
    </enumeration>
    <record name="Found"
            c:type="GnomeKeyringFound"
            deprecated="1"
            glib:type-name="GnomeKeyringFound"
            glib:get-type="gnome_keyring_found_get_type"
            c:symbol-prefix="found">
      <doc xml:space="preserve">A found structure returned by a found operation. Use gnome_keyring_found_list_free()
to free a list of these structures.</doc>
      <doc-deprecated xml:space="preserve">Not used with libsecret.</doc-deprecated>
      <field name="keyring" writable="1">
        <doc xml:space="preserve">The keyring the item was found in.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="item_id" writable="1">
        <doc xml:space="preserve">The identifier for the item.</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="attributes" writable="1">
        <doc xml:space="preserve">The item's attributes.</doc>
        <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
      </field>
      <field name="secret" writable="1">
        <doc xml:space="preserve">The item's secret.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <method name="copy"
              c:identifier="gnome_keyring_found_copy"
              deprecated="1">
        <doc xml:space="preserve">Copy a #GnomeKeyringFound item.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GnomeKeyringFound</doc>
          <type name="Found" c:type="GnomeKeyringFound*"/>
        </return-value>
        <parameters>
          <instance-parameter name="found" transfer-ownership="none">
            <doc xml:space="preserve">a #GnomeKeyringFound</doc>
            <type name="Found" c:type="GnomeKeyringFound*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="gnome_keyring_found_free"
              deprecated="1">
        <doc xml:space="preserve">Free the memory used by a #GnomeKeyringFound item.

You usually want to use gnome_keyring_found_list_free() on the list of
results.</doc>
        <doc-deprecated xml:space="preserve">Deprecated: Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="found" transfer-ownership="none">
            <doc xml:space="preserve">a #GnomeKeyringFound</doc>
            <type name="Found" c:type="GnomeKeyringFound*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="list_free"
                c:identifier="gnome_keyring_found_list_free"
                deprecated="1">
        <doc xml:space="preserve">Free the memory used by the #GnomeKeyringFound items in @found_list.</doc>
        <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="found_list" transfer-ownership="none">
            <doc xml:space="preserve">a #GList of #GnomeKeyringFound</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Found"/>
            </type>
          </parameter>
        </parameters>
      </function>
    </record>
    <constant name="ITEM_APPLICATION_SECRET"
              value="16777216"
              c:type="GNOME_KEYRING_ITEM_APPLICATION_SECRET">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ITEM_INFO_ALL"
              value="0"
              c:type="GNOME_KEYRING_ITEM_INFO_ALL">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ITEM_TYPE_MASK"
              value="65535"
              c:type="GNOME_KEYRING_ITEM_TYPE_MASK">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Info"
            c:type="GnomeKeyringInfo"
            glib:type-name="GnomeKeyringInfo"
            glib:get-type="gnome_keyring_info_get_type"
            c:symbol-prefix="info">
      <method name="copy"
              c:identifier="gnome_keyring_info_copy"
              deprecated="1">
        <doc xml:space="preserve">Copy a #GnomeKeyringInfo object.</doc>
        <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The newly allocated #GnomeKeyringInfo. This must be freed with
gnome_keyring_info_free()</doc>
          <type name="Info" c:type="GnomeKeyringInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info to copy.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="gnome_keyring_info_free"
              deprecated="1">
        <doc xml:space="preserve">Free a #GnomeKeyringInfo object. If a %NULL pointer is passed
nothing occurs.</doc>
        <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info to free.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ctime"
              c:identifier="gnome_keyring_info_get_ctime"
              deprecated="1">
        <doc xml:space="preserve">Get the time at which the keyring was created.</doc>
        <doc-deprecated xml:space="preserve">Use secret_collection_get_created() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The created time.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_locked"
              c:identifier="gnome_keyring_info_get_is_locked"
              deprecated="1">
        <doc xml:space="preserve">Get whether the keyring is locked or not.</doc>
        <doc-deprecated xml:space="preserve">Use secret_collection_get_locked() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether the keyring is locked or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lock_on_idle"
              c:identifier="gnome_keyring_info_get_lock_on_idle"
              deprecated="1">
        <doc xml:space="preserve">Get whether or not to lock a keyring after a certain amount of idle time.

See also gnome_keyring_info_get_lock_timeout().</doc>
        <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether to lock or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lock_timeout"
              c:identifier="gnome_keyring_info_get_lock_timeout"
              deprecated="1">
        <doc xml:space="preserve">Get the idle timeout, in seconds, after which to lock the keyring.

See also gnome_keyring_info_get_lock_on_idle().</doc>
        <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The idle timeout, in seconds.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mtime"
              c:identifier="gnome_keyring_info_get_mtime"
              deprecated="1">
        <doc xml:space="preserve">Get the time at which the keyring was last modified.</doc>
        <doc-deprecated xml:space="preserve">Use secret_collection_get_modified() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The last modified time.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_lock_on_idle"
              c:identifier="gnome_keyring_info_set_lock_on_idle"
              deprecated="1">
        <doc xml:space="preserve">Set whether or not to lock a keyring after a certain amount of idle time.

See also gnome_keyring_info_set_lock_timeout().</doc>
        <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">Whether to lock or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_lock_timeout"
              c:identifier="gnome_keyring_info_set_lock_timeout"
              deprecated="1">
        <doc xml:space="preserve">Set the idle timeout, in seconds, after which to lock the keyring.

See also gnome_keyring_info_set_lock_on_idle().</doc>
        <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="keyring_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring info.</doc>
            <type name="Info" c:type="GnomeKeyringInfo*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The lock timeout in seconds.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="ItemInfo"
            c:type="GnomeKeyringItemInfo"
            glib:type-name="GnomeKeyringItemInfo"
            glib:get-type="gnome_keyring_item_info_get_gtype"
            c:symbol-prefix="item_info">
      <constructor name="new"
                   c:identifier="gnome_keyring_item_info_new"
                   deprecated="1">
        <doc xml:space="preserve">Create a new #GnomeKeyringItemInfo object.
Free the #GnomeKeyringItemInfo object.</doc>
        <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A keyring item info pointer.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
        </return-value>
      </constructor>
      <method name="copy"
              c:identifier="gnome_keyring_item_info_copy"
              deprecated="1">
        <doc xml:space="preserve">Copy a #GnomeKeyringItemInfo object.</doc>
        <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A keyring item info pointer.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free"
              c:identifier="gnome_keyring_item_info_free"
              deprecated="1">
        <doc xml:space="preserve">Free the #GnomeKeyringItemInfo object.

A %NULL pointer may be passed, in which case it will be ignored.</doc>
        <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">The keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ctime"
              c:identifier="gnome_keyring_item_info_get_ctime"
              deprecated="1">
        <doc xml:space="preserve">Get the item created time.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_get_created() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The item created time.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="gnome_keyring_item_info_get_display_name"
              deprecated="1">
        <doc xml:space="preserve">Get the item display name.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_get_label() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The newly allocated string containing the item display name.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mtime"
              c:identifier="gnome_keyring_item_info_get_mtime"
              deprecated="1">
        <doc xml:space="preserve">Get the item last modified time.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_get_modified() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The item last modified time.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_secret"
              c:identifier="gnome_keyring_item_info_get_secret"
              deprecated="1">
        <doc xml:space="preserve">Get the item secret.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_get_secret() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The newly allocated string containing the item secret.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type"
              c:identifier="gnome_keyring_item_info_get_type"
              deprecated="1">
        <doc xml:space="preserve">Get the item type.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_get_schema_name() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The item type</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_display_name"
              c:identifier="gnome_keyring_item_info_set_display_name"
              deprecated="1">
        <doc xml:space="preserve">Set the display name on an item info.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_set_label() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The new display name.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secret"
              c:identifier="gnome_keyring_item_info_set_secret"
              deprecated="1">
        <doc xml:space="preserve">Set the secret on an item info.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_set_secret() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The new item secret</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_type"
              c:identifier="gnome_keyring_item_info_set_type"
              deprecated="1">
        <doc xml:space="preserve">Set the type on an item info.</doc>
        <doc-deprecated xml:space="preserve">Use secret_item_set_attributes() instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item_info" transfer-ownership="none">
            <doc xml:space="preserve">A keyring item info pointer.</doc>
            <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">The new item type</doc>
            <type name="ItemType" c:type="GnomeKeyringItemType"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="ItemInfoFlags" c:type="GnomeKeyringItemInfoFlags">
      <member name="basics"
              value="0"
              c:identifier="GNOME_KEYRING_ITEM_INFO_BASICS">
      </member>
      <member name="secret"
              value="1"
              c:identifier="GNOME_KEYRING_ITEM_INFO_SECRET">
      </member>
    </bitfield>
    <enumeration name="ItemType" deprecated="1" c:type="GnomeKeyringItemType">
      <doc xml:space="preserve">The types of items.</doc>
      <doc-deprecated xml:space="preserve">Use #SecretSchema instead.</doc-deprecated>
      <member name="generic_secret"
              value="0"
              c:identifier="GNOME_KEYRING_ITEM_GENERIC_SECRET">
        <doc xml:space="preserve">Generic secret</doc>
      </member>
      <member name="network_password"
              value="1"
              c:identifier="GNOME_KEYRING_ITEM_NETWORK_PASSWORD">
        <doc xml:space="preserve">Network password</doc>
      </member>
      <member name="note" value="2" c:identifier="GNOME_KEYRING_ITEM_NOTE">
        <doc xml:space="preserve">Note</doc>
      </member>
      <member name="chained_keyring_password"
              value="3"
              c:identifier="GNOME_KEYRING_ITEM_CHAINED_KEYRING_PASSWORD">
        <doc xml:space="preserve">Keyring password</doc>
      </member>
      <member name="encryption_key_password"
              value="4"
              c:identifier="GNOME_KEYRING_ITEM_ENCRYPTION_KEY_PASSWORD">
        <doc xml:space="preserve">Password for encryption key</doc>
      </member>
      <member name="pk_storage"
              value="256"
              c:identifier="GNOME_KEYRING_ITEM_PK_STORAGE">
        <doc xml:space="preserve">Key storage password</doc>
      </member>
      <member name="last_type"
              value="257"
              c:identifier="GNOME_KEYRING_ITEM_LAST_TYPE">
        <doc xml:space="preserve">Not used</doc>
      </member>
    </enumeration>
    <record name="NetworkPasswordData"
            c:type="GnomeKeyringNetworkPasswordData"
            deprecated="1">
      <doc xml:space="preserve">Network password info.</doc>
      <doc-deprecated xml:space="preserve">Use #SECRET_SCHEMA_COMPAT_NETWORK instead.</doc-deprecated>
      <field name="keyring" writable="1">
        <doc xml:space="preserve">Keyring item stored in.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="item_id" writable="1">
        <doc xml:space="preserve">The identifier of the item.</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="protocol" writable="1">
        <doc xml:space="preserve">Network protocol or scheme.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="server" writable="1">
        <doc xml:space="preserve">Server or host name.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="object" writable="1">
        <doc xml:space="preserve">Share or other object on server.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="authtype" writable="1">
        <doc xml:space="preserve">Type of authentication.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="port" writable="1">
        <doc xml:space="preserve">TCP port.</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="user" writable="1">
        <doc xml:space="preserve">User name.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="domain" writable="1">
        <doc xml:space="preserve">User domain</doc>
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="password" writable="1">
        <doc xml:space="preserve">The password.</doc>
        <type name="utf8" c:type="char*"/>
      </field>
    </record>
    <callback name="OperationDoneCallback"
              c:type="GnomeKeyringOperationDoneCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetAttributesCallback"
              c:type="GnomeKeyringOperationGetAttributesCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetIntCallback"
              c:type="GnomeKeyringOperationGetIntCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="val" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetItemInfoCallback"
              c:type="GnomeKeyringOperationGetItemInfoCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetKeyringInfoCallback"
              c:type="GnomeKeyringOperationGetKeyringInfoCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <type name="Info" c:type="GnomeKeyringInfo*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetListCallback"
              c:type="GnomeKeyringOperationGetListCallback"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="list" transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OperationGetStringCallback"
              c:type="GnomeKeyringOperationGetStringCallback">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <doc xml:space="preserve">result of the operation</doc>
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
        <parameter name="string"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the string, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <doc xml:space="preserve">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="PasswordSchema" c:type="GnomeKeyringPasswordSchema">
      <doc xml:space="preserve">Describes a password schema. Often you'll want to use a predefined schema such
as %GNOME_KEYRING_NETWORK_PASSWORD.

&lt;para&gt;
The last attribute name in a schema must be %NULL.

&lt;programlisting&gt;
  GnomeKeyringPasswordSchema my_schema = {
      GNOME_KEYRING_ITEM_GENERIC_SECRET,
      {
           { "string-attr", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
           { "uint-attr", GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 },
           { NULL, 0 }
      }
  };
&lt;/programlisting&gt;
&lt;/para&gt;</doc>
      <field name="item_type" writable="1">
        <doc xml:space="preserve">The item type for this schema.</doc>
        <type name="ItemType" c:type="GnomeKeyringItemType"/>
      </field>
      <field name="attributes" writable="1">
        <doc xml:space="preserve">list of attributes</doc>
        <array zero-terminated="0" fixed-size="32">
          <type name="PasswordSchemaAttribute"/>
        </array>
      </field>
      <field name="reserved1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="PasswordSchemaAttribute"
            c:type="GnomeKeyringPasswordSchemaAttribute">
      <doc xml:space="preserve">One attribute of a #GnomeKeyringPasswordSchema.</doc>
      <field name="name" writable="1">
        <doc xml:space="preserve">the attribute name</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">the attribute data type</doc>
        <type name="AttributeType" c:type="GnomeKeyringAttributeType"/>
      </field>
    </record>
    <enumeration name="Result" deprecated="1" c:type="GnomeKeyringResult">
      <doc xml:space="preserve">Various result codes returned by functions.</doc>
      <doc-deprecated xml:space="preserve">Errors are returned from libsecret functions as #GError.</doc-deprecated>
      <member name="ok" value="0" c:identifier="GNOME_KEYRING_RESULT_OK">
        <doc xml:space="preserve">The operation completed successfully.</doc>
      </member>
      <member name="denied"
              value="1"
              c:identifier="GNOME_KEYRING_RESULT_DENIED">
        <doc xml:space="preserve">Either the user or daemon denied access.</doc>
      </member>
      <member name="no_keyring_daemon"
              value="2"
              c:identifier="GNOME_KEYRING_RESULT_NO_KEYRING_DAEMON">
        <doc xml:space="preserve">Keyring daemon is not available.</doc>
      </member>
      <member name="already_unlocked"
              value="3"
              c:identifier="GNOME_KEYRING_RESULT_ALREADY_UNLOCKED">
        <doc xml:space="preserve">Keyring was already unlocked.</doc>
      </member>
      <member name="no_such_keyring"
              value="4"
              c:identifier="GNOME_KEYRING_RESULT_NO_SUCH_KEYRING">
        <doc xml:space="preserve">No such keyring exists.</doc>
      </member>
      <member name="bad_arguments"
              value="5"
              c:identifier="GNOME_KEYRING_RESULT_BAD_ARGUMENTS">
        <doc xml:space="preserve">Bad arguments to function.</doc>
      </member>
      <member name="io_error"
              value="6"
              c:identifier="GNOME_KEYRING_RESULT_IO_ERROR">
        <doc xml:space="preserve">Problem communicating with daemon.</doc>
      </member>
      <member name="cancelled"
              value="7"
              c:identifier="GNOME_KEYRING_RESULT_CANCELLED">
        <doc xml:space="preserve">Operation was cancelled.</doc>
      </member>
      <member name="keyring_already_exists"
              value="8"
              c:identifier="GNOME_KEYRING_RESULT_KEYRING_ALREADY_EXISTS">
        <doc xml:space="preserve">The keyring already exists.</doc>
      </member>
      <member name="no_match"
              value="9"
              c:identifier="GNOME_KEYRING_RESULT_NO_MATCH">
        <doc xml:space="preserve">No such match found.</doc>
      </member>
    </enumeration>
    <constant name="SESSION" value="session" c:type="GNOME_KEYRING_SESSION">
      <doc xml:space="preserve">&lt;para&gt;
A keyring only stored in memory.
&lt;/para&gt;</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function name="acl_copy"
              c:identifier="gnome_keyring_acl_copy"
              deprecated="1">
      <doc xml:space="preserve">Copy an access control list.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">
A new list of #GnomeKeyringAccessControl items. Use gnome_keyring_acl_free()
to free the memory.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="AccessControl"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:space="preserve">A list of
       #GnomeKeyringAccessControl pointers.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="AccessControl"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="acl_free"
              c:identifier="gnome_keyring_acl_free"
              deprecated="1">
      <doc xml:space="preserve">Free an access control list.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="acl" transfer-ownership="none">
          <doc xml:space="preserve">A list of
      #GnomeKeyringAccessControl pointers.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="AccessControl"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="attribute_list_append_string"
              c:identifier="gnome_keyring_attribute_list_append_string"
              moved-to="Attribute.list_append_string"
              deprecated="1">
      <doc xml:space="preserve">Store a key-value-pair with a string value in @attributes.</doc>
      <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values, use g_hash_table_replace() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the new attribute</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">The value to store in @attributes</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="attribute_list_append_uint32"
              c:identifier="gnome_keyring_attribute_list_append_uint32"
              moved-to="Attribute.list_append_uint32"
              deprecated="1">
      <doc xml:space="preserve">Store a key-value-pair with an unsigned 32bit number value in @attributes.</doc>
      <doc-deprecated xml:space="preserve">libsecret does not support number attributes.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the new attribute</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">The value to store in @attributes</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="attribute_list_copy"
              c:identifier="gnome_keyring_attribute_list_copy"
              moved-to="Attribute.list_copy"
              deprecated="1">
      <doc xml:space="preserve">Copy a list of item attributes.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new #GnomeKeyringAttributeList</doc>
        <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
      </return-value>
      <parameters>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAttributeList to copy.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="attribute_list_free"
              c:identifier="gnome_keyring_attribute_list_free"
              moved-to="Attribute.list_free"
              deprecated="1">
      <doc xml:space="preserve">Free the memory used by @attributes.

If a %NULL pointer is passed, it is ignored.</doc>
      <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values, use g_hash_table_unref() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="attribute_list_get_type"
              c:identifier="gnome_keyring_attribute_list_get_type">
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="attribute_list_new"
              c:identifier="gnome_keyring_attribute_list_new"
              moved-to="Attribute.list_new"
              deprecated="1">
      <doc xml:space="preserve">Create a new #GnomeKeyringAttributeList.</doc>
      <doc-deprecated xml:space="preserve">libsecret stores attributes as a #GHashTable containing
            string keys and values; use g_hash_table_new() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new #GnomeKeyringAttributeList</doc>
        <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
      </return-value>
    </function>
    <function name="attribute_list_to_glist"
              c:identifier="gnome_keyring_attribute_list_to_glist"
              moved-to="Attribute.list_to_glist"
              version="3.4"
              deprecated="1">
      <doc xml:space="preserve">Create #GList of #GnomeKeyringAttribute pointers from @attributes. This is
mostly useful in language bindings which cannot directly use a #GArray.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">#GList
of #GnomeKeyringAttribute.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="Attribute"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAttributeList</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cancel_request"
              c:identifier="gnome_keyring_cancel_request"
              deprecated="1">
      <doc xml:space="preserve">Cancel an asynchronous request.

If a callback was registered when making the asynchronous request, that callback
function will be called with a result of %GNOME_KEYRING_RESULT_CANCELLED</doc>
      <doc-deprecated xml:space="preserve">When using libsecret, use #GCancellable to cancel asynchronous
            requests.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="request" transfer-ownership="none">
          <doc xml:space="preserve">The request returned from the asynchronous call function.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="change_password"
              c:identifier="gnome_keyring_change_password"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Change the password for a @keyring. In most cases you would specify %NULL for
both the @original and @password arguments and allow the user to type the
correct passwords.

For a synchronous version of this function see gnome_keyring_change_password_sync().</doc>
      <doc-deprecated xml:space="preserve">Not used with libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The name of the keyring to change the password for. Cannot be %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="original"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The old keyring password, or %NULL to prompt the
           user for it.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The new keyring password, or %NULL to prompt the
           user for it.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="change_password_sync"
              c:identifier="gnome_keyring_change_password_sync"
              deprecated="1">
      <doc xml:space="preserve">Change the password for @keyring. In most cases you would specify %NULL for
both the @original and @password arguments and allow the user to type the
correct passwords.

For an asynchronous version of this function see gnome_keyring_change_password().</doc>
      <doc-deprecated xml:space="preserve">Not used with libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The name of the keyring to change the password for. Cannot be %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="original"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The old keyring password, or %NULL to prompt the
           user for it.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The new keyring password, or %NULL to prompt the
           user for it.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="create"
              c:identifier="gnome_keyring_create"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Create a new keyring with the specified name. In most cases %NULL will be
passed as the @password, which will prompt the user to enter a password
of their choice.

For a synchronous version of this function see gnome_keyring_create_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_create() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring_name" transfer-ownership="none">
          <doc xml:space="preserve">The new keyring name. Must not be %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The password for the new keyring. If %NULL user
           will be prompted.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="create_sync"
              c:identifier="gnome_keyring_create_sync"
              deprecated="1">
      <doc xml:space="preserve">Create a new keyring with the specified name. In most cases %NULL will be
passed in as the @password, which will prompt the user to enter a password
of their choice.

For an asynchronous version of this function see gnome_keyring_create().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_create_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring_name" transfer-ownership="none">
          <doc xml:space="preserve">The new keyring name. Must not be %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The password for the new keyring. If %NULL user
           will be prompted.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="daemon_prepare_environment_sync"
              c:identifier="gnome_keyring_daemon_prepare_environment_sync"
              deprecated="1">
      <doc-deprecated xml:space="preserve">No longer supported, call is ignored.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">GNOME_KEYRING_RESULT_OK</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
    </function>
    <function name="daemon_set_display_sync"
              c:identifier="gnome_keyring_daemon_set_display_sync"
              deprecated="1">
      <doc-deprecated xml:space="preserve">No longer supported, always fails.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">GNOME_KEYRING_RESULT_DENIED</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve">Deprecated</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="delete"
              c:identifier="gnome_keyring_delete"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Delete @keyring. Once a keyring is deleted there is no mechanism for
recovery of its contents.

For a synchronous version of this function see gnome_keyring_delete_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_delete() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The name of the keyring to delete. Cannot be %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="delete_password"
              c:identifier="gnome_keyring_delete_password"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Delete a password that matches a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

Another more complex way to find items in the keyrings is using
gnome_keyring_item_delete().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_clear() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="delete_password_sync"
              c:identifier="gnome_keyring_delete_password_sync"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Delete a password that matches a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

This function may block for an unspecified period. If your application must
remain responsive to the user, then use gnome_keyring_delete_password().

Another more complex way to find items in the keyrings is using
gnome_keyring_item_delete_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_clear_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="delete_sync"
              c:identifier="gnome_keyring_delete_sync"
              deprecated="1">
      <doc xml:space="preserve">Delete @keyring. Once a keyring is deleted there is no mechanism for
recovery of its contents.

For an asynchronous version of this function see gnome_keyring_delete().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_delete_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The name of the keyring to delete. Cannot be %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="find_items"
              c:identifier="gnome_keyring_find_items"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Searches through all keyrings for items that match the @attributes. The matches
are for exact equality.

A %GList of GnomeKeyringFound structures are passed to the @callback. The
list and structures are freed after the callback returns.

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

For a synchronous version of this function see gnome_keyring_find_items_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup() or secret_service_search() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The type of items to find.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A list of attributes to search for. This cannot be an empty list.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="find_items_sync"
              c:identifier="gnome_keyring_find_items_sync"
              deprecated="1">
      <doc xml:space="preserve">Searches through all keyrings for items that match the @attributes and @type.
The matches are for exact equality.

A %GList of GnomeKeyringFound structures is returned in @found. The list may
have zero items if nothing matched the criteria. The list should be freed
using gnome_keyring_found_list_free().

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

For an asynchronous version of this function see gnome_keyring_find_items().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup_sync() or secret_service_search_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The type of items to find.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A list of attributes to search for. This cannot be an empty list.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="found"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to return a
        list of #GnomeKeyringFound pointers.</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="Found"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="find_itemsv"
              c:identifier="gnome_keyring_find_itemsv"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Searches through all keyrings for items that match the specified attributes.
The matches are for exact equality.

The variable argument list should contain a) The attribute name as a null
terminated string, followed by b) The attribute type, either
%GNOME_KEYRING_ATTRIBUTE_TYPE_STRING or %GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32
and then the c) attribute value, either a character string, or 32-bit
unsigned int. The list should be terminated with a NULL.

A %GList of GnomeKeyringFound structures are passed to the @callback. The
list and structures are freed after the callback returns.

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

For a synchronous version of this function see gnome_keyring_find_itemsv_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup() or secret_service_search() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The type of items to find.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">Attribute name, followed by the attribute type, and string or 32-bit unsigned int value. Terminated with %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="find_itemsv_sync"
              c:identifier="gnome_keyring_find_itemsv_sync"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Searches through all keyrings for items that match the @attributes and @type.
The matches are for exact equality.

The variable argument list should contain a) The attribute name as a null
terminated string, followed by b) The attribute type, either
%GNOME_KEYRING_ATTRIBUTE_TYPE_STRING or %GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32
and then the c) attribute value, either a character string, or 32-bit
unsigned int. The list should be terminated with a %NULL.

A %GList of GnomeKeyringFound structures is returned in @found. The list may
have zero items if nothing matched the criteria. The list should be freed
using gnome_keyring_found_list_free().

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

For an asynchronous version of this function see gnome_keyring_find_items().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup_sync() or secret_service_search_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The type of items to find.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="found"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to return a
        list of #GnomeKeyringFound pointers.</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="Found"/>
          </type>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">Attribute name, followed by the attribute type, and string or 32-bit unsigned int value. Terminated with %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="find_network_password"
              c:identifier="gnome_keyring_find_network_password"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Find a previously stored network password. Searches all keyrings.

A %GList of #GnomeKeyringNetworkPasswordData structures are passed to the
@callback. The list and structures are freed after the callback returns.

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

Network passwords are items with the item type %GNOME_KEYRING_ITEM_NETWORK_PASSWORD</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup() with %SECRET_SCHEMA_COMPAT_NETWORK.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="user"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The user name or %NULL for any user.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="domain"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The domain name or %NULL for any domain.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="server"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The server or %NULL for any server.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The remote object or %NULL for any object.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="protocol"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The network protocol or %NULL for any protocol.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="authtype"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The authentication type or %NULL for any type.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="port" transfer-ownership="none">
          <doc xml:space="preserve">The network port or zero for any port.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="8"
                   destroy="9">
          <doc xml:space="preserve">Callback which is called when the operation completes</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">Data to be passed to callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">Function to be called when data is no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="find_network_password_sync"
              c:identifier="gnome_keyring_find_network_password_sync"
              deprecated="1">
      <doc xml:space="preserve">Find a previously stored network password. Searches all keyrings.

A %GList of #GnomeKeyringNetworkPasswordData structures are returned in the
@out_list argument. The list should be freed with gnome_keyring_network_password_list_free()

The user may have been prompted to unlock necessary keyrings, and user will
have been prompted for access to the items if needed.

Network passwords are items with the item type %GNOME_KEYRING_ITEM_NETWORK_PASSWORD</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup_sync() with %SECRET_SCHEMA_COMPAT_NETWORK.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="user"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The user name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="domain"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The domain name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="server"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The server or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The remote object or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="protocol"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The network protocol or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="authtype"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The authentication type or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="port" transfer-ownership="none">
          <doc xml:space="preserve">The network port or zero.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="results"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">A location
          to return a %GList of #GnomeKeyringNetworkPasswordData pointers.</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="NetworkPasswordData"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="find_password"
              c:identifier="gnome_keyring_find_password"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Find a password that matches a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

The string that is passed to @callback is automatically freed when the
function returns.

Another more complex way to find items in the keyrings is using
gnome_keyring_find_items().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetStringCallback"
                c:type="GnomeKeyringOperationGetStringCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="find_password_sync"
              c:identifier="gnome_keyring_find_password_sync"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Find a password that matches a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

This function may block for an unspecified period. If your application must
remain responsive to the user, then use gnome_keyring_find_password().

Another more complex way to find items in the keyrings is using
gnome_keyring_find_items_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_lookup_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="password"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">An address to store password that was found. The password
           must be freed with gnome_keyring_free_password().</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="found_list_free"
              c:identifier="gnome_keyring_found_list_free"
              moved-to="Found.list_free"
              deprecated="1">
      <doc xml:space="preserve">Free the memory used by the #GnomeKeyringFound items in @found_list.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="found_list" transfer-ownership="none">
          <doc xml:space="preserve">a #GList of #GnomeKeyringFound</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Found"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="free_password"
              c:identifier="gnome_keyring_free_password"
              deprecated="1">
      <doc xml:space="preserve">Clears the memory used by password by filling with '\0' and frees the memory
after doing this. You should use this function instead of g_free() for
secret information.</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_free() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">the password to be freed</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_default_keyring"
              c:identifier="gnome_keyring_get_default_keyring"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get the default keyring name, which will be passed to the @callback. If no
default keyring exists, then %NULL will be passed to the @callback. The
string will be freed after @callback returns.

For a synchronous version of this function see gnome_keyring_get_default_keyring_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_for_alias() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetStringCallback"
                c:type="GnomeKeyringOperationGetStringCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_default_keyring_sync"
              c:identifier="gnome_keyring_get_default_keyring_sync"
              deprecated="1">
      <doc xml:space="preserve">Get the default keyring name.

The string returned in @keyring must be freed with g_free().

For an asynchronous version of this function see gnome_keyring_get_default_keyring().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_for_alias_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">Location for the default keyring name to be returned.</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_info"
              c:identifier="gnome_keyring_get_info"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get information about the @keyring. The resulting #GnomeKeyringInfo structure
will be passed to @callback. The structure is freed after @callback returns.

For a synchronous version of this function see gnome_keyring_get_info_sync().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetKeyringInfoCallback"
                c:type="GnomeKeyringOperationGetKeyringInfoCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_info_sync"
              c:identifier="gnome_keyring_get_info_sync"
              deprecated="1">
      <doc xml:space="preserve">Get information about @keyring.

The #GnomeKeyringInfo structure returned in @info must be freed with
gnome_keyring_info_free().

For an asynchronous version of this function see gnome_keyring_get_info().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="info"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">Location for the information about the keyring to be returned.</doc>
          <type name="Info" c:type="GnomeKeyringInfo**"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_available"
              c:identifier="gnome_keyring_is_available"
              deprecated="1">
      <doc xml:space="preserve">Check whether you can communicate with a gnome-keyring-daemon.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret. The gnome-keyring daemon is
            automatically started as needed.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%FALSE if you can't communicate with the daemon (so you
can't load and save passwords).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="item_ac_get_access_type"
              c:identifier="gnome_keyring_item_ac_get_access_type"
              deprecated="1">
      <doc xml:space="preserve">Get the application access rights for the access control.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The access rights.</doc>
        <type name="AccessType" c:type="GnomeKeyringAccessType"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_ac_get_display_name"
              c:identifier="gnome_keyring_item_ac_get_display_name"
              deprecated="1">
      <doc xml:space="preserve">Get the access control application's display name.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A newly allocated string containing the display name.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_ac_get_path_name"
              c:identifier="gnome_keyring_item_ac_get_path_name"
              deprecated="1">
      <doc xml:space="preserve">Get the access control application's full path name.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">A newly allocated string containing the display name.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_ac_set_access_type"
              c:identifier="gnome_keyring_item_ac_set_access_type"
              deprecated="1">
      <doc xml:space="preserve">Set the application access rights for the access control.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">The new access rights.</doc>
          <type name="AccessType" c:type="const GnomeKeyringAccessType"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_ac_set_display_name"
              c:identifier="gnome_keyring_item_ac_set_display_name"
              deprecated="1">
      <doc xml:space="preserve">Set the access control application's display name.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer.</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">The new application display name.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_ac_set_path_name"
              c:identifier="gnome_keyring_item_ac_set_path_name"
              deprecated="1">
      <doc xml:space="preserve">Set the access control application's full path name.</doc>
      <doc-deprecated xml:space="preserve">Not supported when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ac" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringAccessControl pointer</doc>
          <type name="AccessControl" c:type="GnomeKeyringAccessControl*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">The new application full path.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_create"
              c:identifier="gnome_keyring_item_create"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Create a new item in a keyring.

The @secret must be a null terminated string. It should be allocated using secure
memory whenever possible. See gnome_keyring_memory_strdup()

The user may have been prompted to unlock necessary keyrings. If %NULL is
specified as the @keyring and no default keyring exists, the user will be
prompted to create a new keyring.

When @update_if_exists is set to %TRUE, the user may be prompted for access
to the previously existing item.

Whether a new item is created or not, id of the item will be passed to
the @callback.

For a synchronous version of this function see gnome_keyring_item_create_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store() or secret_item_create() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which to create the item,
          or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The item type.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the item. This will be displayed to the user where necessary.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A (possibly empty) list of attributes to store with the item.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="secret" transfer-ownership="none">
          <doc xml:space="preserve">The password or secret of the item.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="update_if_exists" transfer-ownership="none">
          <doc xml:space="preserve">If true, then another item matching the type, and attributes
 will be updated instead of creating a new item.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="7"
                   destroy="8">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetIntCallback"
                c:type="GnomeKeyringOperationGetIntCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_create_sync"
              c:identifier="gnome_keyring_item_create_sync"
              deprecated="1">
      <doc xml:space="preserve">Create a new item in a keyring.

The @secret must be a null terminated string. It should be allocated using secure
memory whenever possible. See gnome_keyring_memory_strdup()

The user may have been prompted to unlock necessary keyrings. If %NULL is
specified as the @keyring and no default keyring exists, the user will be
prompted to create a new keyring.

When @update_if_exists is set to %TRUE, the user may be prompted for access
to the previously existing item.

For an asynchronous version of this function see gnome_keyring_item_create().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store_sync() or secret_item_create_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which to create the item,
          or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The item type.</doc>
          <type name="ItemType" c:type="GnomeKeyringItemType"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the item. This will be displayed to the user where necessary.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">A (possibly empty) list of attributes to store with the item.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="secret" transfer-ownership="none">
          <doc xml:space="preserve">The password or secret of the item.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="update_if_exists" transfer-ownership="none">
          <doc xml:space="preserve">If true, then another item matching the type, and attributes
 will be updated instead of creating a new item.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="item_id"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">return location for the id of the created/updated keyring item.</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_delete"
              c:identifier="gnome_keyring_item_delete"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Delete an item in a keyring.

The user may be prompted if the calling application doesn't have necessary
access to delete the item.

For an asynchronous version of this function see gnome_keyring_delete().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_clear() or secret_item_delete() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring from which to delete the
          item, or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_delete_sync"
              c:identifier="gnome_keyring_item_delete_sync"
              deprecated="1">
      <doc xml:space="preserve">Delete an item in a keyring.

The user may be prompted if the calling application doesn't have necessary
access to delete the item.

For an asynchronous version of this function see gnome_keyring_item_delete().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_clear_sync() or secret_item_delete_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring from which to delete the
          item, or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_acl"
              c:identifier="gnome_keyring_item_get_acl"
              introspectable="0"
              deprecated="1">
      <doc-deprecated xml:space="preserve">Never returns any ACL values.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_acl_sync"
              c:identifier="gnome_keyring_item_get_acl_sync"
              deprecated="1">
      <doc-deprecated xml:space="preserve">Never returns any acls.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">Always %GNOME_KEYRING_RESULT_OK.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="acl"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to return
a pointer to the access control list.</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="AccessControl"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_attributes"
              c:identifier="gnome_keyring_item_get_attributes"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get all the attributes for an item.

A #GnomeKeyringAttributeList will be passed to the @callback. This list will
be freed after @callback returns.

For a synchronous version of this function see gnome_keyring_item_get_attributes_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_item_get_attributes() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetAttributesCallback"
                c:type="GnomeKeyringOperationGetAttributesCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_attributes_sync"
              c:identifier="gnome_keyring_item_get_attributes_sync"
              deprecated="1">
      <doc xml:space="preserve">Get all attributes for an item.

A #GnomeKeyringAttributeList will be returned in @attributes. This should be
freed using gnome_keyring_attribute_list_free().

For an asynchronous version of this function see gnome_keyring_item_get_attributes().</doc>
      <doc-deprecated xml:space="preserve">Use secret_item_get_attributes() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">The location to return a pointer to the attribute list.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList**"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_info"
              c:identifier="gnome_keyring_item_get_info"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get information about an item and its secret.

The user may be prompted if the calling application doesn't have necessary
access to read the item with its secret.

A #GnomeKeyringItemInfo structure will be passed to the @callback. This structure
will be freed after @callback returns.

For a synchronous version of this function see gnome_keyring_item_get_info_sync().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetItemInfoCallback"
                c:type="GnomeKeyringOperationGetItemInfoCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_info_full"
              c:identifier="gnome_keyring_item_get_info_full"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get information about an item, optionally retrieving its secret.

If @flags includes %GNOME_KEYRING_ITEM_INFO_SECRET then the user may be
prompted if the calling application doesn't have necessary access to read
the item with its secret.

A #GnomeKeyringItemInfo pointer will be passed to the @callback. Certain fields
of this structure may be %NULL or zero if they were not specified in @flags. This
structure will be freed after @callback returns.

For a synchronous version of this function see gnome_keyring_item_get_info_full_sync().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">The parts of the item to retrieve.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetItemInfoCallback"
                c:type="GnomeKeyringOperationGetItemInfoCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_info_full_sync"
              c:identifier="gnome_keyring_item_get_info_full_sync"
              deprecated="1">
      <doc xml:space="preserve">Get information about an item, optionally retrieving its secret.

If @flags includes %GNOME_KEYRING_ITEM_INFO_SECRET then the user may be
prompted if the calling application doesn't have necessary access to read
the item with its secret.

A #GnomeKeyringItemInfo structure will be returned in @info. Certain fields
of this structure may be %NULL or zero if they were not specified in @flags.
This must be freed using gnome_keyring_item_info_free().

For an asynchronous version of this function see gnome_keyring_item_get_info_full().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">The parts of the item to retrieve.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="info"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to return a #GnomeKeyringItemInfo pointer.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo**"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_get_info_sync"
              c:identifier="gnome_keyring_item_get_info_sync"
              deprecated="1">
      <doc xml:space="preserve">Get information about an item and its secret.

The user may be prompted if the calling application doesn't have necessary
access to read the item with its secret.

A #GnomeKeyringItemInfo structure will be returned in @info. This must be
freed using gnome_keyring_item_info_free().

For an asynchronous version of this function see gnome_keyring_item_get_info().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="info"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to return a #GnomeKeyringItemInfo pointer.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo**"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_grant_access_rights"
              c:identifier="gnome_keyring_item_grant_access_rights"
              version="2.20"
              introspectable="0"
              deprecated="1">
      <doc-deprecated xml:space="preserve">This function no longer has any effect.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring name, or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">The display name for the application, as returned by g_get_application_name().</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="full_path" transfer-ownership="none">
          <doc xml:space="preserve">The full filepath to the application.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item to grant access to.</doc>
          <type name="guint32" c:type="const guint32"/>
        </parameter>
        <parameter name="rights" transfer-ownership="none">
          <doc xml:space="preserve">The type of rights to grant.</doc>
          <type name="AccessType" c:type="const GnomeKeyringAccessType"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="6"
                   destroy="7">
          <doc xml:space="preserve">Callback which is called when the operation completes</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">Data to be passed to callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">Function to be called when data is no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_grant_access_rights_sync"
              c:identifier="gnome_keyring_item_grant_access_rights_sync"
              deprecated="1">
      <doc xml:space="preserve">Will grant the application access rights to the item, provided
callee has write access to said item.</doc>
      <doc-deprecated xml:space="preserve">This function no longer has any effect.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring name, or %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">The display name for the application, as returned by g_get_application_name().</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="full_path" transfer-ownership="none">
          <doc xml:space="preserve">The full filepath to the application.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item to grant access to.</doc>
          <type name="guint32" c:type="const guint32"/>
        </parameter>
        <parameter name="rights" transfer-ownership="none">
          <doc xml:space="preserve">The type of rights to grant.</doc>
          <type name="AccessType" c:type="const GnomeKeyringAccessType"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_acl"
              c:identifier="gnome_keyring_item_set_acl"
              introspectable="0"
              deprecated="1">
      <doc-deprecated xml:space="preserve">This function no longer has any effect.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="acl" transfer-ownership="none">
          <doc xml:space="preserve">The access control list to
      set on the item.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="AccessControl"/>
          </type>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_acl_sync"
              c:identifier="gnome_keyring_item_set_acl_sync"
              deprecated="1">
      <doc-deprecated xml:space="preserve">This function no longer has any effect.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="acl" transfer-ownership="none">
          <doc xml:space="preserve">The access control list to
      set on the item.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="AccessControl"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_attributes"
              c:identifier="gnome_keyring_item_set_attributes"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Set all the attributes for an item. This will replace any previous attributes
set on the item.

For a synchronous version of this function see gnome_keyring_item_set_attributes_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_item_set_attributes() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">The full list of attributes to set on the item.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_attributes_sync"
              c:identifier="gnome_keyring_item_set_attributes_sync"
              deprecated="1">
      <doc xml:space="preserve">Set all the attributes for an item. This will replace any previous attributes
set on the item.

For an asynchronous version of this function see gnome_keyring_item_set_attributes().</doc>
      <doc-deprecated xml:space="preserve">Use secret_item_set_attributes_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve">The full list of attributes to set on the item.</doc>
          <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_info"
              c:identifier="gnome_keyring_item_set_info"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Set information on an item, like its display name, secret etc...

Only the fields in the @info pointer that are non-null or non-zero will be
set on the item.

For a synchronous version of this function see gnome_keyring_item_set_info_sync().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">The item info to save into the item.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="item_set_info_sync"
              c:identifier="gnome_keyring_item_set_info_sync"
              deprecated="1">
      <doc xml:space="preserve">Set information on an item, like its display name, secret etc...

Only the fields in the @info pointer that are non-null or non-zero will be
set on the item.

For an asynchronous version of this function see gnome_keyring_item_set_info().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretItem objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring in which the item exists, or
          %NULL for the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve">The id of the item</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">The item info to save into the item.</doc>
          <type name="ItemInfo" c:type="GnomeKeyringItemInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="list_item_ids"
              c:identifier="gnome_keyring_list_item_ids"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get a list of all the ids for items in @keyring. These are passed in a %GList
to the @callback. Use GPOINTER_TO_UINT() on the list to access the integer ids.
The list is freed after @callback returns.

All items that are not flagged as %GNOME_KEYRING_ITEM_APPLICATION_SECRET are
included in the list. This includes items that the calling application may not
(yet) have access to.

For a synchronous version of this function see gnome_keyring_list_item_ids_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_get_items() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="list_item_ids_sync"
              c:identifier="gnome_keyring_list_item_ids_sync"
              deprecated="1">
      <doc xml:space="preserve">Get a list of all the ids for items in @keyring.

Use GPOINTER_TO_UINT() on the list to access the integer ids. The list
should be freed with g_list_free().

For an asynchronous version of this function see gnome_keyring_list_item_ids().</doc>
      <doc-deprecated xml:space="preserve">Use secret_collection_get_items() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="ids"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The location to store a %GList of item ids
      (ie: unsigned integers).</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="guint"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="list_keyring_names"
              c:identifier="gnome_keyring_list_keyring_names"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Get a list of keyring names.

A %GList of null terminated strings will be passed to
the @callback. If no keyrings exist then an empty list will be passed to the
@callback. The list is freed after @callback returns.

For a synchronous version of this function see gnome_keyring_list_keyring_names_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_get_collections() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationGetListCallback"
                c:type="GnomeKeyringOperationGetListCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="list_keyring_names_sync"
              c:identifier="gnome_keyring_list_keyring_names_sync"
              deprecated="1">
      <doc xml:space="preserve">Get a list of keyring names.

The list returned in in @keyrings must be freed using
gnome_keyring_string_list_free().

For an asynchronous version of this function see gnome_keyring_list_keyring_names().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_get_collections() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyrings"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">Location for a %GList of keyring names to be returned.</doc>
          <type name="GLib.List" c:type="GList**">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="lock"
              c:identifier="gnome_keyring_lock"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Lock a @keyring, so that its contents may not be accessed without first
supplying a password.

Most keyring operations involving items require that you first unlock the
keyring. One exception is gnome_keyring_find_items() and related functions.

For a synchronous version of this function see gnome_keyring_lock_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_lock() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring to lock, or %NULL for the
          default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="lock_all"
              c:identifier="gnome_keyring_lock_all"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Lock all the keyrings, so that their contents may not be accessed without
first unlocking them with a password.

For a synchronous version of this function see gnome_keyring_lock_all_sync().</doc>
      <doc-deprecated xml:space="preserve">Use libsecret instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="lock_all_sync"
              c:identifier="gnome_keyring_lock_all_sync"
              deprecated="1">
      <doc xml:space="preserve">Lock all the keyrings, so that their contents may not eb accessed without
first unlocking them with a password.

For an asynchronous version of this function see gnome_keyring_lock_all().</doc>
      <doc-deprecated xml:space="preserve">Use libsecret instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
    </function>
    <function name="lock_sync"
              c:identifier="gnome_keyring_lock_sync"
              deprecated="1">
      <doc xml:space="preserve">Lock a @keyring, so that its contents may not be accessed without first
supplying a password.

Most keyring opretaions involving items require that you first unlock the
keyring. One exception is gnome_keyring_find_items_sync() and related functions.

For an asynchronous version of this function see gnome_keyring_lock().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_lock_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring to lock, or %NULL for the
          default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_alloc"
              c:identifier="gnome_keyring_memory_alloc"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Allocate a block of gnome-keyring non-pageable memory.

If non-pageable memory cannot be allocated then normal memory will be
returned.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_alloc() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new memory block which should be freed
with gnome_keyring_memory_free()</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="sz" transfer-ownership="none">
          <doc xml:space="preserve">The new desired size of the memory block.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_free"
              c:identifier="gnome_keyring_memory_free"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Free a block of gnome-keyring non-pageable memory.

Glib memory is also freed correctly when passed to this function. If called
with a null pointer then no action is taken.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_free() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="p" transfer-ownership="none">
          <doc xml:space="preserve">The pointer to the beginning of the block of memory to free.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_is_secure"
              c:identifier="gnome_keyring_memory_is_secure"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Check if a pointer is in non-pageable memory allocated by gnome-keyring.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_is_secure() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">Whether the memory is non-pageable or not</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="p" transfer-ownership="none">
          <doc xml:space="preserve">The pointer to check</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_realloc"
              c:identifier="gnome_keyring_memory_realloc"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Reallocate a block of gnome-keyring non-pageable memory.

Glib memory is also reallocated correctly. If called with a null pointer,
then a new block of memory is allocated. If called with a zero size,
then the block of memory is freed.

If non-pageable memory cannot be allocated then normal memory will be
returned.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_realloc() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new block, or %NULL if the block was
freed. The memory block should be freed with gnome_keyring_memory_free()</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The pointer to reallocate or %NULL to allocate a new
    block.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="sz" transfer-ownership="none">
          <doc xml:space="preserve">The new desired size of the memory block, or 0 to free the memory.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_strdup"
              c:identifier="gnome_keyring_memory_strdup"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Copy a string into non-pageable memory. If the input string is %NULL, then
%NULL will be returned.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_strdup() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The copied string, should be freed with gnome_keyring_memory_free()</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve">The null terminated string to copy</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_try_alloc"
              c:identifier="gnome_keyring_memory_try_alloc"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Allocate a block of gnome-keyring non-pageable memory.

If non-pageable memory cannot be allocated, then %NULL is returned.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_try_alloc() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new block, or %NULL if memory cannot be
allocated. The memory block should be freed with gnome_keyring_memory_free()</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="sz" transfer-ownership="none">
          <doc xml:space="preserve">The new desired size of the memory block.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
      </parameters>
    </function>
    <function name="memory_try_realloc"
              c:identifier="gnome_keyring_memory_try_realloc"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Reallocate a block of gnome-keyring non-pageable memory.

Glib memory is also reallocated correctly when passed to this function.
If called with a null pointer, then a new block of memory is allocated.
If called with a zero size, then the block of memory is freed.

If memory cannot be allocated, %NULL is returned and the original block
of memory remains intact.</doc>
      <doc-deprecated xml:space="preserve">Use gcr_secure_memory_try_realloc() instead.</doc-deprecated>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">The new block, or %NULL if memory cannot be
allocated. The memory block should be freed with gnome_keyring_memory_free()</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The pointer to reallocate or %NULL to allocate a new block.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="sz" transfer-ownership="none">
          <doc xml:space="preserve">The new desired size of the memory block.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
      </parameters>
    </function>
    <function name="network_password_free"
              c:identifier="gnome_keyring_network_password_free"
              deprecated="1">
      <doc xml:space="preserve">Free a network password data pointer. If %NULL is passed in,
nothing happens.</doc>
      <doc-deprecated xml:space="preserve">Not used with libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A #GnomeKeyringNetworkPasswordData pointer.</doc>
          <type name="NetworkPasswordData"
                c:type="GnomeKeyringNetworkPasswordData*"/>
        </parameter>
      </parameters>
    </function>
    <function name="network_password_list_free"
              c:identifier="gnome_keyring_network_password_list_free"
              deprecated="1">
      <doc xml:space="preserve">Free a list of network password data.</doc>
      <doc-deprecated xml:space="preserve">Not used with libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:space="preserve">A list of
       #GnomeKeyringNetworkPasswordData pointers.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="NetworkPasswordData"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="result_to_message"
              c:identifier="gnome_keyring_result_to_message"
              deprecated="1">
      <doc xml:space="preserve">The #GNOME_KEYRING_RESULT_OK and #GNOME_KEYRING_RESULT_CANCELLED
codes will return an empty string.

Note that there are some results for which the application will need to
take appropriate action rather than just display an error message to
the user.</doc>
      <doc-deprecated xml:space="preserve">libsecret returns errors as #GError directly. Use the
            error message field for a description.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string suitable for display to the user for a given
#GnomeKeyringResult, or an empty string if the message wouldn't make
sense to a user.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <doc xml:space="preserve">A #GnomeKeyringResult</doc>
          <type name="Result" c:type="GnomeKeyringResult"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_default_keyring"
              c:identifier="gnome_keyring_set_default_keyring"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Change the default keyring.

For a synchronous version of this function see gnome_keyring_set_default_keyring_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_set_alias() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The keyring to make default</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_default_keyring_sync"
              c:identifier="gnome_keyring_set_default_keyring_sync"
              deprecated="1">
      <doc xml:space="preserve">Change the default keyring.

For an asynchronous version of this function see gnome_keyring_set_default_keyring().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_set_alias_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring" transfer-ownership="none">
          <doc xml:space="preserve">The keyring to make default</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_info"
              c:identifier="gnome_keyring_set_info"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Set flags and info for the @keyring. The only fields in @info that are used
are lock_on_idle and lock_timeout.

For a synchronous version of this function see gnome_keyring_set_info_sync().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">A structure containing flags and info for the keyring.</doc>
          <type name="Info" c:type="GnomeKeyringInfo*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_info_sync"
              c:identifier="gnome_keyring_set_info_sync"
              deprecated="1">
      <doc xml:space="preserve">Set flags and info for @keyring. The only fields in @info that are used
are lock_on_idle and lock_timeout.

For an asynchronous version of this function see gnome_keyring_set_info().</doc>
      <doc-deprecated xml:space="preserve">Use #SecretCollection objects instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring, or %NULL for the default
          keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve">A structure containing flags and info for the keyring.</doc>
          <type name="Info" c:type="GnomeKeyringInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_network_password"
              c:identifier="gnome_keyring_set_network_password"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Store a network password.

If an item already exists for with this network info (ie: user, server etc...)
then it will be updated.

Whether a new item is created or not, id of the item will be passed to
the @callback.

Network passwords are items with the item type %GNOME_KEYRING_ITEM_NETWORK_PASSWORD</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store() with %SECRET_SCHEMA_COMPAT_NETWORK.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring to store the password in, or %NULL for
          the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The user name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="domain"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The domain name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="server"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The server or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The remote object or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="protocol"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The network protocol or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="authtype"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The authentication type or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="port" transfer-ownership="none">
          <doc xml:space="preserve">The network port or zero.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">The password to store, must not be %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="10"
                   destroy="11">
          <doc xml:space="preserve">Callback which is called when the operation completes</doc>
          <type name="OperationGetIntCallback"
                c:type="GnomeKeyringOperationGetIntCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">Data to be passed to callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">Function to be called when data is no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_network_password_sync"
              c:identifier="gnome_keyring_set_network_password_sync"
              deprecated="1">
      <doc xml:space="preserve">Store a network password.

If an item already exists for with this network info (ie: user, server etc...)
then it will be updated.

The created or updated item id will be returned in @item_id.

Network passwords are items with the item type %GNOME_KEYRING_ITEM_NETWORK_PASSWORD</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store_sync() with %SECRET_SCHEMA_COMPAT_NETWORK.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring to store the password in, or %NULL for
          the default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The user name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="domain"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The domain name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="server"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The server or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The remote object or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="protocol"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The network protocol or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="authtype"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The authentication type or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="port" transfer-ownership="none">
          <doc xml:space="preserve">The network port or zero.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">The password to store, must not be %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="item_id"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">A location to store the resulting item's id.</doc>
          <type name="guint32" c:type="guint32*"/>
        </parameter>
      </parameters>
    </function>
    <function name="store_password"
              c:identifier="gnome_keyring_store_password"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Store a password associated with a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

If a password exists in the keyring that already has all the same arguments,
then the password will be updated.

Another more complex way to create a keyring item is using gnome_keyring_item_create().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring to store the password in. Specify %NULL
          for the default keyring. Use %GNOME_KEYRING_SESSION to store the
          password in memory only.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">A human readable description of what the password is for.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">The password to store.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="5"
                   destroy="6">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="store_password_sync"
              c:identifier="gnome_keyring_store_password_sync"
              version="2.22"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Store a password associated with a given set of attributes.

Attributes which identify this password must be passed as additional
arguments. Attributes passed must be defined in the schema.

This function may block for an unspecified period. If your application must
remain responsive to the user, then use gnome_keyring_store_password().

If a password exists in the keyring that already has all the same arguments,
then the password will be updated.

Another more complex way to create a keyring item is using
gnome_keyring_item_create_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_password_store_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="schema" transfer-ownership="none">
          <doc xml:space="preserve">The password schema.</doc>
          <type name="PasswordSchema"
                c:type="const GnomeKeyringPasswordSchema*"/>
        </parameter>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The keyring to store the password in. Specify %NULL
          for the default keyring. Use %GNOME_KEYRING_SESSION to store the
          password in memory only.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="display_name" transfer-ownership="none">
          <doc xml:space="preserve">A human readable description of what the password is for.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="password" transfer-ownership="none">
          <doc xml:space="preserve">The password to store.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">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,
      or 32-bit unsigned int, as defined in the password @schema. The list of attribtues
      should be terminated with a %NULL.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="string_list_free"
              c:identifier="gnome_keyring_string_list_free"
              deprecated="1">
      <doc xml:space="preserve">Free a list of string pointers.</doc>
      <doc-deprecated xml:space="preserve">Not needed when using libsecret.</doc-deprecated>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="strings" transfer-ownership="none">
          <doc xml:space="preserve">A %GList of string pointers.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="unlock"
              c:identifier="gnome_keyring_unlock"
              introspectable="0"
              deprecated="1">
      <doc xml:space="preserve">Unlock a @keyring, so that its contents may be accessed. In most cases %NULL
will be passed as the @password, which will prompt the user to enter the
correct password.

Most keyring operations involving items require that you first unlock the
keyring. One exception is gnome_keyring_find_items() and related functions.

For a synchronous version of this function see gnome_keyring_unlock_sync().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_unlock() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The asynchronous request, which can be passed
to gnome_keyring_cancel_request().</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring to unlock, or %NULL for the
          default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The password to unlock the keyring with, or %NULL
           to prompt the user.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <doc xml:space="preserve">A callback which will be called when the request completes or fails.</doc>
          <type name="OperationDoneCallback"
                c:type="GnomeKeyringOperationDoneCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A pointer to arbitrary data that will be passed to the
       @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">A function to free @data when it's no longer needed.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="unlock_sync"
              c:identifier="gnome_keyring_unlock_sync"
              deprecated="1">
      <doc xml:space="preserve">Unlock a @keyring, so that its contents may be accessed. In most cases %NULL
will be passed in as the @password, which will prompt the user to enter the
correct password.

Most keyring opretaions involving items require that yo ufirst unlock the
keyring. One exception is gnome_keyring_find_items_sync() and related functions.

For an asynchronous version of this function see gnome_keyring_unlock().</doc>
      <doc-deprecated xml:space="preserve">Use secret_service_unlock_sync() instead.</doc-deprecated>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%GNOME_KEYRING_RESULT_OK if the operation was succcessful or
an error result otherwise.</doc>
        <type name="Result" c:type="GnomeKeyringResult"/>
      </return-value>
      <parameters>
        <parameter name="keyring"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The name of the keyring to unlock, or %NULL for the
          default keyring.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="password"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The password to unlock the keyring with, or %NULL
           to prompt the user.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
