| Server IP : 134.236.49.22 / Your IP : 216.73.216.114 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/include/gnome-keyring-1/ |
Upload File : |
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* gnome-keyring.h - library for talking to the keyring daemon.
Copyright (C) 2003 Red Hat, Inc
The Gnome Keyring Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The Gnome Keyring Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the Gnome Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Author: Alexander Larsson <alexl@redhat.com>
*/
#ifndef GNOME_KEYRING_H
#define GNOME_KEYRING_H
#include <glib.h>
#include <time.h>
#include "gnome-keyring-result.h"
G_BEGIN_DECLS
#define GNOME_KEYRING_SESSION "session"
#define GNOME_KEYRING_DEFAULT NULL
typedef enum {
/* The item types */
GNOME_KEYRING_ITEM_GENERIC_SECRET = 0,
GNOME_KEYRING_ITEM_NETWORK_PASSWORD,
GNOME_KEYRING_ITEM_NOTE,
GNOME_KEYRING_ITEM_CHAINED_KEYRING_PASSWORD,
GNOME_KEYRING_ITEM_ENCRYPTION_KEY_PASSWORD,
GNOME_KEYRING_ITEM_PK_STORAGE = 0x100,
/* Not used, remains here only for compatibility */
GNOME_KEYRING_ITEM_LAST_TYPE,
} GnomeKeyringItemType;
#define GNOME_KEYRING_ITEM_TYPE_MASK 0x0000ffff
#define GNOME_KEYRING_ITEM_NO_TYPE GNOME_KEYRING_ITEM_TYPE_MASK
#define GNOME_KEYRING_ITEM_APPLICATION_SECRET 0x01000000
typedef enum {
GNOME_KEYRING_ACCESS_ASK,
GNOME_KEYRING_ACCESS_DENY,
GNOME_KEYRING_ACCESS_ALLOW
} GnomeKeyringAccessRestriction;
typedef enum {
GNOME_KEYRING_ATTRIBUTE_TYPE_STRING,
GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32
} GnomeKeyringAttributeType;
typedef struct GnomeKeyringAccessControl GnomeKeyringAccessControl;
typedef struct GnomeKeyringApplicationRef GnomeKeyringApplicationRef;
typedef GArray GnomeKeyringAttributeList;
typedef enum {
GNOME_KEYRING_ACCESS_READ = 1<<0,
GNOME_KEYRING_ACCESS_WRITE = 1<<1,
GNOME_KEYRING_ACCESS_REMOVE = 1<<2
} GnomeKeyringAccessType;
typedef enum {
GNOME_KEYRING_ITEM_INFO_BASICS = 0,
GNOME_KEYRING_ITEM_INFO_SECRET = 1<<0
} GnomeKeyringItemInfoFlags;
/* Add flags here as they are added above */
#define GNOME_KEYRING_ITEM_INFO_ALL (GNOME_KEYRING_ITEM_INFO_BASICS | GNOME_KEYRING_ITEM_INFO_SECRET)
typedef struct GnomeKeyringInfo GnomeKeyringInfo;
typedef struct GnomeKeyringItemInfo GnomeKeyringItemInfo;
typedef struct {
char *name;
GnomeKeyringAttributeType type;
union {
char *string;
guint32 integer;
} value;
} GnomeKeyringAttribute;
typedef struct {
char *keyring;
guint item_id;
GnomeKeyringAttributeList *attributes;
char *secret;
} GnomeKeyringFound;
void gnome_keyring_string_list_free (GList *strings);
typedef void (*GnomeKeyringOperationDoneCallback) (GnomeKeyringResult result,
gpointer data);
typedef void (*GnomeKeyringOperationGetStringCallback) (GnomeKeyringResult result,
const char *string,
gpointer data);
typedef void (*GnomeKeyringOperationGetIntCallback) (GnomeKeyringResult result,
guint32 val,
gpointer data);
typedef void (*GnomeKeyringOperationGetListCallback) (GnomeKeyringResult result,
GList *list,
gpointer data);
typedef void (*GnomeKeyringOperationGetKeyringInfoCallback) (GnomeKeyringResult result,
GnomeKeyringInfo *info,
gpointer data);
typedef void (*GnomeKeyringOperationGetItemInfoCallback) (GnomeKeyringResult result,
GnomeKeyringItemInfo*info,
gpointer data);
typedef void (*GnomeKeyringOperationGetAttributesCallback) (GnomeKeyringResult result,
GnomeKeyringAttributeList *attributes,
gpointer data);
#define gnome_keyring_attribute_list_index(a, i) g_array_index ((a), GnomeKeyringAttribute, (i))
#define gnome_keyring_attribute_list_new() (g_array_new (FALSE, FALSE, sizeof (GnomeKeyringAttribute)))
void gnome_keyring_attribute_list_append_string (GnomeKeyringAttributeList *attributes,
const char *name,
const char *value);
void gnome_keyring_attribute_list_append_uint32 (GnomeKeyringAttributeList *attributes,
const char *name,
guint32 value);
void gnome_keyring_attribute_list_free (GnomeKeyringAttributeList *attributes);
GnomeKeyringAttributeList *gnome_keyring_attribute_list_copy (GnomeKeyringAttributeList *attributes);
const gchar* gnome_keyring_result_to_message (GnomeKeyringResult res);
gboolean gnome_keyring_is_available (void);
void gnome_keyring_found_free (GnomeKeyringFound *found);
void gnome_keyring_found_list_free (GList *found_list);
void gnome_keyring_cancel_request (gpointer request);
gpointer gnome_keyring_set_default_keyring (const char *keyring,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_set_default_keyring_sync (const char *keyring);
gpointer gnome_keyring_get_default_keyring (GnomeKeyringOperationGetStringCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_get_default_keyring_sync (char **keyring);
gpointer gnome_keyring_list_keyring_names (GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_list_keyring_names_sync (GList **keyrings);
gpointer gnome_keyring_lock_all (GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_lock_all_sync (void);
/* NULL password means ask user */
gpointer gnome_keyring_create (const char *keyring_name,
const char *password,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_create_sync (const char *keyring_name,
const char *password);
gpointer gnome_keyring_unlock (const char *keyring,
const char *password,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_unlock_sync (const char *keyring,
const char *password);
gpointer gnome_keyring_lock (const char *keyring,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_lock_sync (const char *keyring);
gpointer gnome_keyring_delete (const char *keyring,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_delete_sync (const char *keyring);
gpointer gnome_keyring_change_password (const char *keyring,
const char *original,
const char *password,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_change_password_sync (const char *keyring,
const char *original,
const char *password);
gpointer gnome_keyring_get_info (const char *keyring,
GnomeKeyringOperationGetKeyringInfoCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_get_info_sync (const char *keyring,
GnomeKeyringInfo **info);
gpointer gnome_keyring_set_info (const char *keyring,
GnomeKeyringInfo *info,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_set_info_sync (const char *keyring,
GnomeKeyringInfo *info);
gpointer gnome_keyring_list_item_ids (const char *keyring,
GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_list_item_ids_sync (const char *keyring,
GList **ids);
void gnome_keyring_info_free (GnomeKeyringInfo *keyring_info);
GnomeKeyringInfo *gnome_keyring_info_copy (GnomeKeyringInfo *keyring_info);
void gnome_keyring_info_set_lock_on_idle (GnomeKeyringInfo *keyring_info,
gboolean value);
gboolean gnome_keyring_info_get_lock_on_idle (GnomeKeyringInfo *keyring_info);
void gnome_keyring_info_set_lock_timeout (GnomeKeyringInfo *keyring_info,
guint32 value);
guint32 gnome_keyring_info_get_lock_timeout (GnomeKeyringInfo *keyring_info);
time_t gnome_keyring_info_get_mtime (GnomeKeyringInfo *keyring_info);
time_t gnome_keyring_info_get_ctime (GnomeKeyringInfo *keyring_info);
gboolean gnome_keyring_info_get_is_locked (GnomeKeyringInfo *keyring_info);
gpointer gnome_keyring_find_items (GnomeKeyringItemType type,
GnomeKeyringAttributeList *attributes,
GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data);
gpointer gnome_keyring_find_itemsv (GnomeKeyringItemType type,
GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data,
...);
GnomeKeyringResult gnome_keyring_find_items_sync (GnomeKeyringItemType type,
GnomeKeyringAttributeList *attributes,
GList **found);
GnomeKeyringResult gnome_keyring_find_itemsv_sync (GnomeKeyringItemType type,
GList **found,
...);
gpointer gnome_keyring_item_create (const char *keyring,
GnomeKeyringItemType type,
const char *display_name,
GnomeKeyringAttributeList *attributes,
const char *secret,
gboolean update_if_exists,
GnomeKeyringOperationGetIntCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_create_sync (const char *keyring,
GnomeKeyringItemType type,
const char *display_name,
GnomeKeyringAttributeList *attributes,
const char *secret,
gboolean update_if_exists,
guint32 *item_id);
gpointer gnome_keyring_item_delete (const char *keyring,
guint32 id,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_delete_sync (const char *keyring,
guint32 id);
gpointer gnome_keyring_item_get_info (const char *keyring,
guint32 id,
GnomeKeyringOperationGetItemInfoCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_get_info_sync (const char *keyring,
guint32 id,
GnomeKeyringItemInfo **info);
gpointer gnome_keyring_item_get_info_full (const char *keyring,
guint32 id,
guint32 flags,
GnomeKeyringOperationGetItemInfoCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_get_info_full_sync (const char *keyring,
guint32 id,
guint32 flags,
GnomeKeyringItemInfo **info);
gpointer gnome_keyring_item_set_info (const char *keyring,
guint32 id,
GnomeKeyringItemInfo *info,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_set_info_sync (const char *keyring,
guint32 id,
GnomeKeyringItemInfo *info);
gpointer gnome_keyring_item_get_attributes (const char *keyring,
guint32 id,
GnomeKeyringOperationGetAttributesCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_get_attributes_sync (const char *keyring,
guint32 id,
GnomeKeyringAttributeList **attributes);
gpointer gnome_keyring_item_set_attributes (const char *keyring,
guint32 id,
GnomeKeyringAttributeList *attributes,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_set_attributes_sync (const char *keyring,
guint32 id,
GnomeKeyringAttributeList *attributes);
gpointer gnome_keyring_item_get_acl (const char *keyring,
guint32 id,
GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_get_acl_sync (const char *keyring,
guint32 id,
GList **acl);
gpointer gnome_keyring_item_set_acl (const char *keyring,
guint32 id,
GList *acl,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_set_acl_sync (const char *keyring,
guint32 id,
GList *acl);
gpointer gnome_keyring_item_grant_access_rights (const gchar *keyring,
const gchar *display_name,
const gchar *full_path,
const guint32 id,
const GnomeKeyringAccessType rights,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_item_grant_access_rights_sync (const char *keyring,
const char *display_name,
const char *full_path,
const guint32 id,
const GnomeKeyringAccessType rights);
void gnome_keyring_item_info_free (GnomeKeyringItemInfo *item_info);
GnomeKeyringItemInfo *gnome_keyring_item_info_new (void);
GnomeKeyringItemInfo *gnome_keyring_item_info_copy (GnomeKeyringItemInfo *item_info);
GnomeKeyringItemType gnome_keyring_item_info_get_type (GnomeKeyringItemInfo *item_info);
void gnome_keyring_item_info_set_type (GnomeKeyringItemInfo *item_info,
GnomeKeyringItemType type);
char * gnome_keyring_item_info_get_secret (GnomeKeyringItemInfo *item_info);
void gnome_keyring_item_info_set_secret (GnomeKeyringItemInfo *item_info,
const char *value);
char * gnome_keyring_item_info_get_display_name (GnomeKeyringItemInfo *item_info);
void gnome_keyring_item_info_set_display_name (GnomeKeyringItemInfo *item_info,
const char *value);
time_t gnome_keyring_item_info_get_mtime (GnomeKeyringItemInfo *item_info);
time_t gnome_keyring_item_info_get_ctime (GnomeKeyringItemInfo *item_info);
GnomeKeyringApplicationRef * gnome_keyring_application_ref_new (void);
GnomeKeyringApplicationRef * gnome_keyring_application_ref_copy (const GnomeKeyringApplicationRef *app);
void gnome_keyring_application_ref_free (GnomeKeyringApplicationRef *app);
GnomeKeyringAccessControl * gnome_keyring_access_control_new (const GnomeKeyringApplicationRef *application,
GnomeKeyringAccessType types_allowed);
GnomeKeyringAccessControl * gnome_keyring_access_control_copy (GnomeKeyringAccessControl *ac);
void gnome_keyring_access_control_free (GnomeKeyringAccessControl *ac);
GList * gnome_keyring_acl_copy (GList *list);
void gnome_keyring_acl_free (GList *acl);
char * gnome_keyring_item_ac_get_display_name (GnomeKeyringAccessControl *ac);
void gnome_keyring_item_ac_set_display_name (GnomeKeyringAccessControl *ac,
const char *value);
char * gnome_keyring_item_ac_get_path_name (GnomeKeyringAccessControl *ac);
void gnome_keyring_item_ac_set_path_name (GnomeKeyringAccessControl *ac,
const char *value);
GnomeKeyringAccessType gnome_keyring_item_ac_get_access_type (GnomeKeyringAccessControl *ac);
void gnome_keyring_item_ac_set_access_type (GnomeKeyringAccessControl *ac,
const GnomeKeyringAccessType value);
/* ------------------------------------------------------------------------------
* A Simpler API
*/
typedef struct {
GnomeKeyringItemType item_type;
struct {
const gchar* name;
GnomeKeyringAttributeType type;
} attributes[32];
/* <private> */
gpointer reserved1;
gpointer reserved2;
gpointer reserved3;
} GnomeKeyringPasswordSchema;
extern const GnomeKeyringPasswordSchema* GNOME_KEYRING_NETWORK_PASSWORD;
gpointer gnome_keyring_store_password (const GnomeKeyringPasswordSchema* schema,
const gchar *keyring,
const gchar *display_name,
const gchar *password,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data,
...) G_GNUC_NULL_TERMINATED;
GnomeKeyringResult gnome_keyring_store_password_sync (const GnomeKeyringPasswordSchema* schema,
const gchar *keyring,
const gchar *display_name,
const gchar *password,
...) G_GNUC_NULL_TERMINATED;
gpointer gnome_keyring_find_password (const GnomeKeyringPasswordSchema* schema,
GnomeKeyringOperationGetStringCallback callback,
gpointer data,
GDestroyNotify destroy_data,
...) G_GNUC_NULL_TERMINATED;
GnomeKeyringResult gnome_keyring_find_password_sync (const GnomeKeyringPasswordSchema* schema,
gchar **password,
...) G_GNUC_NULL_TERMINATED;
gpointer gnome_keyring_delete_password (const GnomeKeyringPasswordSchema* schema,
GnomeKeyringOperationDoneCallback callback,
gpointer data,
GDestroyNotify destroy_data,
...) G_GNUC_NULL_TERMINATED;
GnomeKeyringResult gnome_keyring_delete_password_sync (const GnomeKeyringPasswordSchema* schema,
...) G_GNUC_NULL_TERMINATED;
void gnome_keyring_free_password (gchar *password);
/* ------------------------------------------------------------------------------
* Special Helpers for network password items
*/
typedef struct {
char *keyring;
guint32 item_id;
char *protocol;
char *server;
char *object;
char *authtype;
guint32 port;
char *user;
char *domain;
char *password;
} GnomeKeyringNetworkPasswordData;
void gnome_keyring_network_password_free (GnomeKeyringNetworkPasswordData *data);
void gnome_keyring_network_password_list_free (GList *list);
gpointer gnome_keyring_find_network_password (const char *user,
const char *domain,
const char *server,
const char *object,
const char *protocol,
const char *authtype,
guint32 port,
GnomeKeyringOperationGetListCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_find_network_password_sync (const char *user,
const char *domain,
const char *server,
const char *object,
const char *protocol,
const char *authtype,
guint32 port,
GList **results);
gpointer gnome_keyring_set_network_password (const char *keyring,
const char *user,
const char *domain,
const char *server,
const char *object,
const char *protocol,
const char *authtype,
guint32 port,
const char *password,
GnomeKeyringOperationGetIntCallback callback,
gpointer data,
GDestroyNotify destroy_data);
GnomeKeyringResult gnome_keyring_set_network_password_sync (const char *keyring,
const char *user,
const char *domain,
const char *server,
const char *object,
const char *protocol,
const char *authtype,
guint32 port,
const char *password,
guint32 *item_id);
/* -----------------------------------------------------------------------------
* USED ONLY BY THE SESSION
*/
/* Deprecated */
GnomeKeyringResult gnome_keyring_daemon_set_display_sync (const char *display);
GnomeKeyringResult gnome_keyring_daemon_prepare_environment_sync (void);
G_END_DECLS
#endif /* GNOME_KEYRING_H */