CASA/c_adlib/ad_gk/native/casa-gnome-keyring.h
Jim Norman a601b19764 Remove our dependency on gnome-keyring.h, since they depend
on us.  This was creating a circular build dependency.
2006-05-22 17:48:53 +00:00

411 lines
22 KiB
C

/* -*- 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>
typedef enum {
GNOME_KEYRING_RESULT_OK,
GNOME_KEYRING_RESULT_DENIED,
GNOME_KEYRING_RESULT_NO_KEYRING_DAEMON,
GNOME_KEYRING_RESULT_ALREADY_UNLOCKED,
GNOME_KEYRING_RESULT_NO_SUCH_KEYRING,
GNOME_KEYRING_RESULT_BAD_ARGUMENTS,
GNOME_KEYRING_RESULT_IO_ERROR,
GNOME_KEYRING_RESULT_CANCELLED,
GNOME_KEYRING_RESULT_ALREADY_EXISTS
} GnomeKeyringResult;
typedef enum {
GNOME_KEYRING_ITEM_GENERIC_SECRET,
GNOME_KEYRING_ITEM_NETWORK_PASSWORD,
GNOME_KEYRING_ITEM_NOTE,
GNOME_KEYRING_ITEM_LAST_TYPE,
GNOME_KEYRING_ITEM_NO_TYPE = 0xffffffff,
} GnomeKeyringItemType;
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 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;
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 *attribute,
const char *value);
void gnome_keyring_attribute_list_append_uint32 (GnomeKeyringAttributeList *attributes,
const char *attribute,
guint32 value);
void gnome_keyring_attribute_list_free (GnomeKeyringAttributeList *attributes);
GnomeKeyringAttributeList *gnome_keyring_attribute_list_copy (GnomeKeyringAttributeList *attributes);
gboolean gnome_keyring_is_available (void);
void gnome_keyring_free_password (char *password);
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_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_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);
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);
/* Specialized Helpers for network passwords 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 **result);
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);
#endif /* GNOME_KEYRING_H */