<?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.7.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">
        <doc xml:space="preserve">Create a new access control for an item. Combine the various access
rights allowed.</doc>
        <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">
        <doc xml:space="preserve">Copy an access control for an item.</doc>
        <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">
        <doc xml:space="preserve">Free an access control for an item.</doc>
        <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"
                 c:type="GnomeKeyringAccessRestriction">
      <doc xml:space="preserve">Type of access restriction.</doc>
      <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" c:type="GnomeKeyringAccessType">
      <doc xml:space="preserve">Type of access.</doc>
      <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">
        <doc xml:space="preserve">Create a new application reference.</doc>
        <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">
        <doc xml:space="preserve">Copy an application reference.</doc>
        <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">
        <doc xml:space="preserve">Free an application reference.</doc>
        <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"
            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>
      <field name="name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="type" writable="1">
        <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">
        <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>
        <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">
        <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>
        <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">
        <doc xml:space="preserve">Store a key-value-pair with a string value in @attributes.</doc>
        <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">
        <doc xml:space="preserve">Store a key-value-pair with an unsigned 32bit number value in @attributes.</doc>
        <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">
        <doc xml:space="preserve">Copy a list of item attributes.</doc>
        <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">
        <doc xml:space="preserve">Free the memory used by @attributes.

If a %NULL pointer is passed, it is ignored.</doc>
        <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">
        <doc xml:space="preserve">Create a new #GnomeKeyringAttributeList.</doc>
        <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">
        <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>
        <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"
            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>
      <field name="keyring" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="item_id" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="attributes" writable="1">
        <type name="AttributeList" c:type="GnomeKeyringAttributeList*"/>
      </field>
      <field name="secret" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <method name="copy" c:identifier="gnome_keyring_found_copy">
        <doc xml:space="preserve">Copy a #GnomeKeyringFound item.</doc>
        <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">
        <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>
        <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">
        <doc xml:space="preserve">Free the memory used by the #GnomeKeyringFound items in @found_list.</doc>
        <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">
        <doc xml:space="preserve">Copy a #GnomeKeyringInfo object.</doc>
        <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">
        <doc xml:space="preserve">Free a #GnomeKeyringInfo object. If a %NULL pointer is passed
nothing occurs.</doc>
        <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">
        <doc xml:space="preserve">Get the time at which the keyring was created.</doc>
        <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">
        <doc xml:space="preserve">Get whether the keyring is locked or not.</doc>
        <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">
        <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>
        <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">
        <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>
        <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">
        <doc xml:space="preserve">Get the time at which the keyring was last modified.</doc>
        <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">
        <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>
        <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">
        <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>
        <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">
        <doc xml:space="preserve">Create a new #GnomeKeyringItemInfo object.
Free the #GnomeKeyringItemInfo object.</doc>
        <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">
        <doc xml:space="preserve">Copy a #GnomeKeyringItemInfo object.</doc>
        <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">
        <doc xml:space="preserve">Free the #GnomeKeyringItemInfo object.

A %NULL pointer may be passed, in which case it will be ignored.</doc>
        <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">
        <doc xml:space="preserve">Get the item created time.</doc>
        <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">
        <doc xml:space="preserve">Get the item display name.</doc>
        <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">
        <doc xml:space="preserve">Get the item last modified time.</doc>
        <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">
        <doc xml:space="preserve">Get the item secret.</doc>
        <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">
        <doc xml:space="preserve">Get the item type.</doc>
        <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">
        <doc xml:space="preserve">Set the display name on an item info.</doc>
        <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">
        <doc xml:space="preserve">Set the secret on an item info.</doc>
        <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">
        <doc xml:space="preserve">Set the type on an item info.</doc>
        <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" c:type="GnomeKeyringItemType">
      <doc xml:space="preserve">The types of items.</doc>
      <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">
      <doc xml:space="preserve">Network password info.</doc>
      <field name="keyring" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="item_id" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="protocol" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="server" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="object" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="authtype" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="port" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="user" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="domain" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="password" writable="1">
        <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" 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">
        <type name="ItemType" c:type="GnomeKeyringItemType"/>
      </field>
      <field name="attributes" writable="1">
        <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">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="type" writable="1">
        <type name="AttributeType" c:type="GnomeKeyringAttributeType"/>
      </field>
    </record>
    <enumeration name="Result" c:type="GnomeKeyringResult">
      <doc xml:space="preserve">Various result codes returned by functions.</doc>
      <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">
      <doc xml:space="preserve">Copy an access control list.</doc>
      <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">
      <doc xml:space="preserve">Free an access control list.</doc>
      <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">
      <doc xml:space="preserve">Store a key-value-pair with a string value in @attributes.</doc>
      <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">
      <doc xml:space="preserve">Store a key-value-pair with an unsigned 32bit number value in @attributes.</doc>
      <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">
      <doc xml:space="preserve">Copy a list of item attributes.</doc>
      <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">
      <doc xml:space="preserve">Free the memory used by @attributes.

If a %NULL pointer is passed, it is ignored.</doc>
      <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">
      <doc xml:space="preserve">Create a new #GnomeKeyringAttributeList.</doc>
      <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">
      <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>
      <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">
      <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>
      <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">
      <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>
      <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" 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" 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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <doc xml:space="preserve">Deprecated. No longer supported, call is ignored.</doc>
      <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">
      <doc xml:space="preserve">Deprecated. No longer supported, always fails.</doc>
      <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">
      <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>
      <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" 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">
      <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>
      <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" 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="arg4" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="delete_password_sync"
              c:identifier="gnome_keyring_delete_password_sync"
              version="2.22"
              introspectable="0">
      <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>
      <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="arg1" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="delete_sync" c:identifier="gnome_keyring_delete_sync">
      <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>
      <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">
      <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>
      <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" 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">
      <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>
      <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">
      <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>
      <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" 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="arg4" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="find_itemsv_sync"
              c:identifier="gnome_keyring_find_itemsv_sync"
              introspectable="0">
      <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>
      <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="arg2" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="find_network_password"
              c:identifier="gnome_keyring_find_network_password"
              introspectable="0">
      <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>
      <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" 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" 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" 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" 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" 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" 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" 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">
      <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>
      <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" 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" 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" 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" 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" 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" 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">
      <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>
      <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" 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="arg4" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="find_password_sync"
              c:identifier="gnome_keyring_find_password_sync"
              version="2.22"
              introspectable="0">
      <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>
      <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="arg2" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="found_list_free"
              c:identifier="gnome_keyring_found_list_free"
              moved-to="Found.list_free">
      <doc xml:space="preserve">Free the memory used by the #GnomeKeyringFound items in @found_list.</doc>
      <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">
      <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>
      <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">
      <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>
      <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" 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">
      <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>
      <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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <doc xml:space="preserve">Check whether you can communicate with a gnome-keyring-daemon.</doc>
      <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">
      <doc xml:space="preserve">Get the application access rights for the access control.</doc>
      <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">
      <doc xml:space="preserve">Get the access control application's display name.</doc>
      <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">
      <doc xml:space="preserve">Get the access control application's full path name.</doc>
      <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">
      <doc xml:space="preserve">Set the application access rights for the access control.</doc>
      <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">
      <doc xml:space="preserve">Set the access control application's display name.</doc>
      <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">
      <doc xml:space="preserve">Set the access control application's full path name.</doc>
      <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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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="Never returns any ACL values.">
      <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" 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" 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="Never returns any acls.">
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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="This function no longer has any effect.">
      <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" 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" 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="This function no longer has any effect.">
      <doc xml:space="preserve">Will grant the application access rights to the item, provided
callee has write access to said item.</doc>
      <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" 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="This function no longer has any effect.">
      <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" 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" 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="This function no longer has any effect.">
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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">
      <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>
      <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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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">
      <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>
      <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" 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">
      <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>
      <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">
      <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>
      <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">
      <doc xml:space="preserve">Check if a pointer is in non-pageable memory allocated by gnome-keyring.</doc>
      <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">
      <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>
      <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" 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">
      <doc xml:space="preserve">Copy a string into non-pageable memory. If the input string is %NULL, then
%NULL will be returned.</doc>
      <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">
      <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>
      <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">
      <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>
      <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" 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">
      <doc xml:space="preserve">Free a network password data pointer. If %NULL is passed in,
nothing happens.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none" 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">
      <doc xml:space="preserve">Free a list of network password data.</doc>
      <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">
      <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>
      <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">
      <doc xml:space="preserve">Change the default keyring.

For a synchronous version of this function see gnome_keyring_set_default_keyring_sync().</doc>
      <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" 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">
      <doc xml:space="preserve">Change the default keyring.

For an asynchronous version of this function see gnome_keyring_set_default_keyring().</doc>
      <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">
      <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>
      <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" 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" 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">
      <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>
      <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" 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">
      <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>
      <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" 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" 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" 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" 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" 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" 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" 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" 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">
      <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>
      <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" 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" 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" 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" 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" 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" 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" 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">
      <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>
      <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" 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" 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="arg7" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="store_password_sync"
              c:identifier="gnome_keyring_store_password_sync"
              version="2.22"
              introspectable="0">
      <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>
      <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" 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="arg4" transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="string_list_free"
              c:identifier="gnome_keyring_string_list_free">
      <doc xml:space="preserve">Free a list of string pointers.</doc>
      <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">
      <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>
      <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" 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" 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" 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">
      <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>
      <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" 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" 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>
