1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 /* gnome-keyring.h - library for talking to the keyring daemon. 3 4 Copyright (C) 2003 Red Hat, Inc 5 6 The Gnome Keyring Library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Library General Public License as 8 published by the Free Software Foundation; either version 2 of the 9 License, or (at your option) any later version. 10 11 The Gnome Keyring Library is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Library General Public License for more details. 15 16 You should have received a copy of the GNU Library General Public 17 License along with the Gnome Library; see the file COPYING.LIB. If not, 18 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. 20 21 Author: Alexander Larsson <alexl@redhat.com> 22 */ 23 24 #ifndef GNOME_KEYRING_H 25 #define GNOME_KEYRING_H 26 27 #include <glib.h> 28 #include <glib-object.h> 29 #include <time.h> 30 31 #if !defined(GNOME_KEYRING_DEPRECATED) 32 #if !defined(GNOME_KEYRING_COMPILATION) && defined(G_DEPRECATED) 33 #define GNOME_KEYRING_DEPRECATED G_DEPRECATED 34 #define GNOME_KEYRING_DEPRECATED_FOR(x) G_DEPRECATED_FOR(x) 35 #else 36 #define GNOME_KEYRING_DEPRECATED 37 #define GNOME_KEYRING_DEPRECATED_FOR(x) 38 #endif 39 #endif 40 41 #include "gnome-keyring-result.h" 42 43 G_BEGIN_DECLS 44 45 #ifndef GNOME_KEYRING_DISABLE_DEPRECATED 46 47 #define GNOME_KEYRING_SESSION "session" 48 #define GNOME_KEYRING_DEFAULT NULL 49 50 typedef enum { 51 52 /* The item types */ 53 GNOME_KEYRING_ITEM_GENERIC_SECRET = 0, 54 GNOME_KEYRING_ITEM_NETWORK_PASSWORD, 55 GNOME_KEYRING_ITEM_NOTE, 56 GNOME_KEYRING_ITEM_CHAINED_KEYRING_PASSWORD, 57 GNOME_KEYRING_ITEM_ENCRYPTION_KEY_PASSWORD, 58 59 GNOME_KEYRING_ITEM_PK_STORAGE = 0x100, 60 61 /* Not used, remains here only for compatibility */ 62 GNOME_KEYRING_ITEM_LAST_TYPE, 63 64 } GnomeKeyringItemType; 65 66 #define GNOME_KEYRING_ITEM_TYPE_MASK 0x0000ffff 67 #define GNOME_KEYRING_ITEM_NO_TYPE GNOME_KEYRING_ITEM_TYPE_MASK 68 #define GNOME_KEYRING_ITEM_APPLICATION_SECRET 0x01000000 69 70 typedef enum { 71 GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, 72 GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32 73 } GnomeKeyringAttributeType; 74 75 typedef GArray GnomeKeyringAttributeList; 76 77 typedef enum { 78 GNOME_KEYRING_ITEM_INFO_BASICS = 0, 79 GNOME_KEYRING_ITEM_INFO_SECRET = 1<<0 80 } GnomeKeyringItemInfoFlags; 81 82 /* Add flags here as they are added above */ 83 #define GNOME_KEYRING_ITEM_INFO_ALL (GNOME_KEYRING_ITEM_INFO_BASICS | GNOME_KEYRING_ITEM_INFO_SECRET) 84 85 typedef struct GnomeKeyringInfo GnomeKeyringInfo; 86 typedef struct GnomeKeyringItemInfo GnomeKeyringItemInfo; 87 88 typedef struct { 89 char *name; 90 GnomeKeyringAttributeType type; 91 union { 92 char *string; 93 guint32 integer; 94 } value; 95 } GnomeKeyringAttribute; 96 97 typedef struct { 98 char *keyring; 99 guint item_id; 100 GnomeKeyringAttributeList *attributes; 101 char *secret; 102 } GnomeKeyringFound; 103 104 GNOME_KEYRING_DEPRECATED 105 void gnome_keyring_string_list_free (GList *strings); 106 107 typedef void (*GnomeKeyringOperationDoneCallback) (GnomeKeyringResult result, 108 gpointer user_data); 109 /** 110 * GnomeKeyringOperationGetStringCallback: 111 * @result: result of the operation 112 * @string: (allow-none): the string, or %NULL 113 * @user_data: user data 114 */ 115 typedef void (*GnomeKeyringOperationGetStringCallback) (GnomeKeyringResult result, 116 const char *string, 117 gpointer user_data); 118 typedef void (*GnomeKeyringOperationGetIntCallback) (GnomeKeyringResult result, 119 guint32 val, 120 gpointer user_data); 121 typedef void (*GnomeKeyringOperationGetListCallback) (GnomeKeyringResult result, 122 GList *list, 123 gpointer user_data); 124 typedef void (*GnomeKeyringOperationGetKeyringInfoCallback) (GnomeKeyringResult result, 125 GnomeKeyringInfo *info, 126 gpointer user_data); 127 typedef void (*GnomeKeyringOperationGetItemInfoCallback) (GnomeKeyringResult result, 128 GnomeKeyringItemInfo*info, 129 gpointer user_data); 130 typedef void (*GnomeKeyringOperationGetAttributesCallback) (GnomeKeyringResult result, 131 GnomeKeyringAttributeList *attributes, 132 gpointer user_data); 133 134 GNOME_KEYRING_DEPRECATED 135 GType gnome_keyring_attribute_get_type (void) G_GNUC_CONST; 136 GNOME_KEYRING_DEPRECATED 137 const gchar* gnome_keyring_attribute_get_string (GnomeKeyringAttribute *attribute); 138 GNOME_KEYRING_DEPRECATED 139 guint32 gnome_keyring_attribute_get_uint32 (GnomeKeyringAttribute *attribute); 140 141 #define GNOME_KEYRING_TYPE_ATTRIBUTE (gnome_keyring_attribute_get_type ()) 142 143 #define gnome_keyring_attribute_list_index(a, i) g_array_index ((a), GnomeKeyringAttribute, (i)) 144 GNOME_KEYRING_DEPRECATED_FOR(g_hash_table_replace) 145 void gnome_keyring_attribute_list_append_string (GnomeKeyringAttributeList *attributes, 146 const char *name, 147 const char *value); 148 GNOME_KEYRING_DEPRECATED 149 void gnome_keyring_attribute_list_append_uint32 (GnomeKeyringAttributeList *attributes, 150 const char *name, 151 guint32 value); 152 GNOME_KEYRING_DEPRECATED_FOR(g_hash_table_new) 153 GnomeKeyringAttributeList *gnome_keyring_attribute_list_new (void); 154 GNOME_KEYRING_DEPRECATED_FOR(g_hash_table_unref) 155 void gnome_keyring_attribute_list_free (GnomeKeyringAttributeList *attributes); 156 GNOME_KEYRING_DEPRECATED 157 GnomeKeyringAttributeList *gnome_keyring_attribute_list_copy (GnomeKeyringAttributeList *attributes); 158 GNOME_KEYRING_DEPRECATED 159 GType gnome_keyring_attribute_list_get_type (void) G_GNUC_CONST; 160 GNOME_KEYRING_DEPRECATED 161 GList *gnome_keyring_attribute_list_to_glist (GnomeKeyringAttributeList *attributes); 162 163 #define GNOME_KEYRING_TYPE_ATTRIBUTE_LIST (gnome_keyring_attribute_list_get_type ()) 164 165 GNOME_KEYRING_DEPRECATED 166 const gchar* gnome_keyring_result_to_message (GnomeKeyringResult res); 167 168 GNOME_KEYRING_DEPRECATED 169 gboolean gnome_keyring_is_available (void); 170 171 GNOME_KEYRING_DEPRECATED 172 void gnome_keyring_found_free (GnomeKeyringFound *found); 173 GNOME_KEYRING_DEPRECATED 174 void gnome_keyring_found_list_free (GList *found_list); 175 GNOME_KEYRING_DEPRECATED 176 GnomeKeyringFound* gnome_keyring_found_copy (GnomeKeyringFound *found); 177 GNOME_KEYRING_DEPRECATED 178 GType gnome_keyring_found_get_type (void) G_GNUC_CONST; 179 180 #define GNOME_KEYRING_TYPE_FOUND (gnome_keyring_found_get_type ()) 181 182 GNOME_KEYRING_DEPRECATED 183 void gnome_keyring_cancel_request (gpointer request); 184 185 GNOME_KEYRING_DEPRECATED_FOR(secret_service_set_alias) 186 gpointer gnome_keyring_set_default_keyring (const char *keyring, 187 GnomeKeyringOperationDoneCallback callback, 188 gpointer data, 189 GDestroyNotify destroy_data); 190 GNOME_KEYRING_DEPRECATED_FOR(secret_service_set_alias_sync) 191 GnomeKeyringResult gnome_keyring_set_default_keyring_sync (const char *keyring); 192 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_for_alias) 193 gpointer gnome_keyring_get_default_keyring (GnomeKeyringOperationGetStringCallback callback, 194 gpointer data, 195 GDestroyNotify destroy_data); 196 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_for_alias_sync) 197 GnomeKeyringResult gnome_keyring_get_default_keyring_sync (char **keyring); 198 GNOME_KEYRING_DEPRECATED_FOR(secret_service_get_collections) 199 gpointer gnome_keyring_list_keyring_names (GnomeKeyringOperationGetListCallback callback, 200 gpointer data, 201 GDestroyNotify destroy_data); 202 GNOME_KEYRING_DEPRECATED_FOR(secret_service_get_collections) 203 GnomeKeyringResult gnome_keyring_list_keyring_names_sync (GList **keyrings); 204 GNOME_KEYRING_DEPRECATED 205 gpointer gnome_keyring_lock_all (GnomeKeyringOperationDoneCallback callback, 206 gpointer data, 207 GDestroyNotify destroy_data); 208 GNOME_KEYRING_DEPRECATED 209 GnomeKeyringResult gnome_keyring_lock_all_sync (void); 210 211 212 /* NULL password means ask user */ 213 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_create) 214 gpointer gnome_keyring_create (const char *keyring_name, 215 const char *password, 216 GnomeKeyringOperationDoneCallback callback, 217 gpointer data, 218 GDestroyNotify destroy_data); 219 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_create_sync) 220 GnomeKeyringResult gnome_keyring_create_sync (const char *keyring_name, 221 const char *password); 222 GNOME_KEYRING_DEPRECATED_FOR(secret_service_unlock) 223 gpointer gnome_keyring_unlock (const char *keyring, 224 const char *password, 225 GnomeKeyringOperationDoneCallback callback, 226 gpointer data, 227 GDestroyNotify destroy_data); 228 GNOME_KEYRING_DEPRECATED_FOR(secret_service_unlock_sync) 229 GnomeKeyringResult gnome_keyring_unlock_sync (const char *keyring, 230 const char *password); 231 GNOME_KEYRING_DEPRECATED_FOR(secret_service_lock) 232 gpointer gnome_keyring_lock (const char *keyring, 233 GnomeKeyringOperationDoneCallback callback, 234 gpointer data, 235 GDestroyNotify destroy_data); 236 GNOME_KEYRING_DEPRECATED_FOR(secret_service_lock_sync) 237 GnomeKeyringResult gnome_keyring_lock_sync (const char *keyring); 238 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_delete) 239 gpointer gnome_keyring_delete (const char *keyring, 240 GnomeKeyringOperationDoneCallback callback, 241 gpointer data, 242 GDestroyNotify destroy_data); 243 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_delete_sync) 244 GnomeKeyringResult gnome_keyring_delete_sync (const char *keyring); 245 GNOME_KEYRING_DEPRECATED 246 gpointer gnome_keyring_change_password (const char *keyring, 247 const char *original, 248 const char *password, 249 GnomeKeyringOperationDoneCallback callback, 250 gpointer data, 251 GDestroyNotify destroy_data); 252 GNOME_KEYRING_DEPRECATED 253 GnomeKeyringResult gnome_keyring_change_password_sync (const char *keyring, 254 const char *original, 255 const char *password); 256 GNOME_KEYRING_DEPRECATED 257 gpointer gnome_keyring_get_info (const char *keyring, 258 GnomeKeyringOperationGetKeyringInfoCallback callback, 259 gpointer data, 260 GDestroyNotify destroy_data); 261 GNOME_KEYRING_DEPRECATED 262 GnomeKeyringResult gnome_keyring_get_info_sync (const char *keyring, 263 GnomeKeyringInfo **info); 264 GNOME_KEYRING_DEPRECATED 265 gpointer gnome_keyring_set_info (const char *keyring, 266 GnomeKeyringInfo *info, 267 GnomeKeyringOperationDoneCallback callback, 268 gpointer data, 269 GDestroyNotify destroy_data); 270 GNOME_KEYRING_DEPRECATED 271 GnomeKeyringResult gnome_keyring_set_info_sync (const char *keyring, 272 GnomeKeyringInfo *info); 273 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_get_items) 274 gpointer gnome_keyring_list_item_ids (const char *keyring, 275 GnomeKeyringOperationGetListCallback callback, 276 gpointer data, 277 GDestroyNotify destroy_data); 278 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_get_items) 279 GnomeKeyringResult gnome_keyring_list_item_ids_sync (const char *keyring, 280 GList **ids); 281 282 GNOME_KEYRING_DEPRECATED 283 void gnome_keyring_info_free (GnomeKeyringInfo *keyring_info); 284 GNOME_KEYRING_DEPRECATED 285 GnomeKeyringInfo *gnome_keyring_info_copy (GnomeKeyringInfo *keyring_info); 286 GNOME_KEYRING_DEPRECATED 287 GType gnome_keyring_info_get_type (void) G_GNUC_CONST; 288 GNOME_KEYRING_DEPRECATED 289 void gnome_keyring_info_set_lock_on_idle (GnomeKeyringInfo *keyring_info, 290 gboolean value); 291 GNOME_KEYRING_DEPRECATED 292 gboolean gnome_keyring_info_get_lock_on_idle (GnomeKeyringInfo *keyring_info); 293 GNOME_KEYRING_DEPRECATED 294 void gnome_keyring_info_set_lock_timeout (GnomeKeyringInfo *keyring_info, 295 guint32 value); 296 GNOME_KEYRING_DEPRECATED 297 guint32 gnome_keyring_info_get_lock_timeout (GnomeKeyringInfo *keyring_info); 298 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_get_modified) 299 time_t gnome_keyring_info_get_mtime (GnomeKeyringInfo *keyring_info); 300 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_get_created) 301 time_t gnome_keyring_info_get_ctime (GnomeKeyringInfo *keyring_info); 302 GNOME_KEYRING_DEPRECATED_FOR(secret_collection_get_locked) 303 gboolean gnome_keyring_info_get_is_locked (GnomeKeyringInfo *keyring_info); 304 305 #define GNOME_KEYRING_TYPE_INFO (gnome_keyring_info_get_type ()) 306 307 GNOME_KEYRING_DEPRECATED_FOR(secret_service_search) 308 gpointer gnome_keyring_find_items (GnomeKeyringItemType type, 309 GnomeKeyringAttributeList *attributes, 310 GnomeKeyringOperationGetListCallback callback, 311 gpointer data, 312 GDestroyNotify destroy_data); 313 GNOME_KEYRING_DEPRECATED_FOR(secret_service_search) 314 gpointer gnome_keyring_find_itemsv (GnomeKeyringItemType type, 315 GnomeKeyringOperationGetListCallback callback, 316 gpointer data, 317 GDestroyNotify destroy_data, 318 ...); 319 320 GNOME_KEYRING_DEPRECATED_FOR(secret_service_search_sync) 321 GnomeKeyringResult gnome_keyring_find_items_sync (GnomeKeyringItemType type, 322 GnomeKeyringAttributeList *attributes, 323 GList **found); 324 GNOME_KEYRING_DEPRECATED_FOR(secret_service_search_sync) 325 GnomeKeyringResult gnome_keyring_find_itemsv_sync (GnomeKeyringItemType type, 326 GList **found, 327 ...); 328 329 GNOME_KEYRING_DEPRECATED_FOR(secret_item_create) 330 gpointer gnome_keyring_item_create (const char *keyring, 331 GnomeKeyringItemType type, 332 const char *display_name, 333 GnomeKeyringAttributeList *attributes, 334 const char *secret, 335 gboolean update_if_exists, 336 GnomeKeyringOperationGetIntCallback callback, 337 gpointer data, 338 GDestroyNotify destroy_data); 339 GNOME_KEYRING_DEPRECATED_FOR(secret_item_create_sync) 340 GnomeKeyringResult gnome_keyring_item_create_sync (const char *keyring, 341 GnomeKeyringItemType type, 342 const char *display_name, 343 GnomeKeyringAttributeList *attributes, 344 const char *secret, 345 gboolean update_if_exists, 346 guint32 *item_id); 347 GNOME_KEYRING_DEPRECATED_FOR(secret_item_delete) 348 gpointer gnome_keyring_item_delete (const char *keyring, 349 guint32 id, 350 GnomeKeyringOperationDoneCallback callback, 351 gpointer data, 352 GDestroyNotify destroy_data); 353 GNOME_KEYRING_DEPRECATED_FOR(secret_item_delete_sync) 354 GnomeKeyringResult gnome_keyring_item_delete_sync (const char *keyring, 355 guint32 id); 356 GNOME_KEYRING_DEPRECATED 357 gpointer gnome_keyring_item_get_info (const char *keyring, 358 guint32 id, 359 GnomeKeyringOperationGetItemInfoCallback callback, 360 gpointer data, 361 GDestroyNotify destroy_data); 362 GNOME_KEYRING_DEPRECATED 363 GnomeKeyringResult gnome_keyring_item_get_info_sync (const char *keyring, 364 guint32 id, 365 GnomeKeyringItemInfo **info); 366 GNOME_KEYRING_DEPRECATED 367 gpointer gnome_keyring_item_get_info_full (const char *keyring, 368 guint32 id, 369 guint32 flags, 370 GnomeKeyringOperationGetItemInfoCallback callback, 371 gpointer data, 372 GDestroyNotify destroy_data); 373 GNOME_KEYRING_DEPRECATED 374 GnomeKeyringResult gnome_keyring_item_get_info_full_sync (const char *keyring, 375 guint32 id, 376 guint32 flags, 377 GnomeKeyringItemInfo **info); 378 GNOME_KEYRING_DEPRECATED 379 gpointer gnome_keyring_item_set_info (const char *keyring, 380 guint32 id, 381 GnomeKeyringItemInfo *info, 382 GnomeKeyringOperationDoneCallback callback, 383 gpointer data, 384 GDestroyNotify destroy_data); 385 GNOME_KEYRING_DEPRECATED 386 GnomeKeyringResult gnome_keyring_item_set_info_sync (const char *keyring, 387 guint32 id, 388 GnomeKeyringItemInfo *info); 389 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_attributes) 390 gpointer gnome_keyring_item_get_attributes (const char *keyring, 391 guint32 id, 392 GnomeKeyringOperationGetAttributesCallback callback, 393 gpointer data, 394 GDestroyNotify destroy_data); 395 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_attributes) 396 GnomeKeyringResult gnome_keyring_item_get_attributes_sync (const char *keyring, 397 guint32 id, 398 GnomeKeyringAttributeList **attributes); 399 GNOME_KEYRING_DEPRECATED_FOR(secret_item_set_attributes) 400 gpointer gnome_keyring_item_set_attributes (const char *keyring, 401 guint32 id, 402 GnomeKeyringAttributeList *attributes, 403 GnomeKeyringOperationDoneCallback callback, 404 gpointer data, 405 GDestroyNotify destroy_data); 406 GNOME_KEYRING_DEPRECATED_FOR(secret_item_set_attributes_sync) 407 GnomeKeyringResult gnome_keyring_item_set_attributes_sync (const char *keyring, 408 guint32 id, 409 GnomeKeyringAttributeList *attributes); 410 411 GNOME_KEYRING_DEPRECATED 412 void gnome_keyring_item_info_free (GnomeKeyringItemInfo *item_info); 413 GNOME_KEYRING_DEPRECATED 414 GnomeKeyringItemInfo *gnome_keyring_item_info_new (void); 415 GNOME_KEYRING_DEPRECATED 416 GnomeKeyringItemInfo *gnome_keyring_item_info_copy (GnomeKeyringItemInfo *item_info); 417 GNOME_KEYRING_DEPRECATED 418 GType gnome_keyring_item_info_get_gtype (void) G_GNUC_CONST; 419 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_schema_name) 420 GnomeKeyringItemType gnome_keyring_item_info_get_type (GnomeKeyringItemInfo *item_info); 421 GNOME_KEYRING_DEPRECATED 422 void gnome_keyring_item_info_set_type (GnomeKeyringItemInfo *item_info, 423 GnomeKeyringItemType type); 424 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_secret) 425 char * gnome_keyring_item_info_get_secret (GnomeKeyringItemInfo *item_info); 426 GNOME_KEYRING_DEPRECATED_FOR(secret_item_set_secret) 427 void gnome_keyring_item_info_set_secret (GnomeKeyringItemInfo *item_info, 428 const char *value); 429 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_label) 430 char * gnome_keyring_item_info_get_display_name (GnomeKeyringItemInfo *item_info); 431 GNOME_KEYRING_DEPRECATED_FOR(secret_item_set_label) 432 void gnome_keyring_item_info_set_display_name (GnomeKeyringItemInfo *item_info, 433 const char *value); 434 GNOME_KEYRING_DEPRECATED_FOR(secret_item_get_modified) 435 time_t gnome_keyring_item_info_get_mtime (GnomeKeyringItemInfo *item_info); 436 GNOME_KEYRING_DEPRECATED_FOR(secret_item_set_modified) 437 time_t gnome_keyring_item_info_get_ctime (GnomeKeyringItemInfo *item_info); 438 439 #define GNOME_KEYRING_TYPE_ITEM_INFO (gnome_keyring_item_info_get_gtype ()) 440 441 /* ------------------------------------------------------------------------------ 442 * A Simpler API 443 */ 444 445 /* 446 * This structure exists to help languages which have difficulty with 447 * anonymous structures and is the same as the anonymous struct which 448 * is defined in GnomeKeyringPasswordSchema, but it cannot be used 449 * directly in GnomeKeyringPasswordSchema for API compatibility 450 * reasons. 451 */ 452 typedef struct { 453 const gchar* name; 454 GnomeKeyringAttributeType type; 455 } GnomeKeyringPasswordSchemaAttribute; 456 457 typedef struct { 458 GnomeKeyringItemType item_type; 459 struct { 460 const gchar* name; 461 GnomeKeyringAttributeType type; 462 } attributes[32]; 463 464 /* <private> */ 465 gpointer reserved1; 466 gpointer reserved2; 467 gpointer reserved3; 468 } GnomeKeyringPasswordSchema; 469 470 extern const GnomeKeyringPasswordSchema* GNOME_KEYRING_NETWORK_PASSWORD; 471 472 GNOME_KEYRING_DEPRECATED_FOR(secret_password_store) 473 gpointer gnome_keyring_store_password (const GnomeKeyringPasswordSchema* schema, 474 const gchar *keyring, 475 const gchar *display_name, 476 const gchar *password, 477 GnomeKeyringOperationDoneCallback callback, 478 gpointer data, 479 GDestroyNotify destroy_data, 480 ...) G_GNUC_NULL_TERMINATED; 481 482 GNOME_KEYRING_DEPRECATED_FOR(secret_password_store_sync) 483 GnomeKeyringResult gnome_keyring_store_password_sync (const GnomeKeyringPasswordSchema* schema, 484 const gchar *keyring, 485 const gchar *display_name, 486 const gchar *password, 487 ...) G_GNUC_NULL_TERMINATED; 488 489 GNOME_KEYRING_DEPRECATED_FOR(secret_password_lookup) 490 gpointer gnome_keyring_find_password (const GnomeKeyringPasswordSchema* schema, 491 GnomeKeyringOperationGetStringCallback callback, 492 gpointer data, 493 GDestroyNotify destroy_data, 494 ...) G_GNUC_NULL_TERMINATED; 495 496 GNOME_KEYRING_DEPRECATED_FOR(secret_password_lookup_sync) 497 GnomeKeyringResult gnome_keyring_find_password_sync (const GnomeKeyringPasswordSchema* schema, 498 gchar **password, 499 ...) G_GNUC_NULL_TERMINATED; 500 501 GNOME_KEYRING_DEPRECATED_FOR(secret_password_clear) 502 gpointer gnome_keyring_delete_password (const GnomeKeyringPasswordSchema* schema, 503 GnomeKeyringOperationDoneCallback callback, 504 gpointer data, 505 GDestroyNotify destroy_data, 506 ...) G_GNUC_NULL_TERMINATED; 507 508 GNOME_KEYRING_DEPRECATED_FOR(secret_password_clear_sync) 509 GnomeKeyringResult gnome_keyring_delete_password_sync (const GnomeKeyringPasswordSchema* schema, 510 ...) G_GNUC_NULL_TERMINATED; 511 512 GNOME_KEYRING_DEPRECATED_FOR(secret_password_free) 513 void gnome_keyring_free_password (gchar *password); 514 515 /* ------------------------------------------------------------------------------ 516 * Special Helpers for network password items 517 */ 518 519 typedef struct { 520 char *keyring; 521 guint32 item_id; 522 523 char *protocol; 524 char *server; 525 char *object; 526 char *authtype; 527 guint32 port; 528 529 char *user; 530 char *domain; 531 char *password; 532 } GnomeKeyringNetworkPasswordData; 533 534 GNOME_KEYRING_DEPRECATED 535 void gnome_keyring_network_password_free (GnomeKeyringNetworkPasswordData *data); 536 GNOME_KEYRING_DEPRECATED 537 void gnome_keyring_network_password_list_free (GList *list); 538 539 GNOME_KEYRING_DEPRECATED_FOR(SECRET_SCHEMA_COMPAT_NETWORK) 540 gpointer gnome_keyring_find_network_password (const char *user, 541 const char *domain, 542 const char *server, 543 const char *object, 544 const char *protocol, 545 const char *authtype, 546 guint32 port, 547 GnomeKeyringOperationGetListCallback callback, 548 gpointer data, 549 GDestroyNotify destroy_data); 550 GNOME_KEYRING_DEPRECATED_FOR(SECRET_SCHEMA_COMPAT_NETWORK) 551 GnomeKeyringResult gnome_keyring_find_network_password_sync (const char *user, 552 const char *domain, 553 const char *server, 554 const char *object, 555 const char *protocol, 556 const char *authtype, 557 guint32 port, 558 GList **results); 559 GNOME_KEYRING_DEPRECATED_FOR(SECRET_SCHEMA_COMPAT_NETWORK) 560 gpointer gnome_keyring_set_network_password (const char *keyring, 561 const char *user, 562 const char *domain, 563 const char *server, 564 const char *object, 565 const char *protocol, 566 const char *authtype, 567 guint32 port, 568 const char *password, 569 GnomeKeyringOperationGetIntCallback callback, 570 gpointer data, 571 GDestroyNotify destroy_data); 572 GNOME_KEYRING_DEPRECATED_FOR(SECRET_SCHEMA_COMPAT_NETWORK) 573 GnomeKeyringResult gnome_keyring_set_network_password_sync (const char *keyring, 574 const char *user, 575 const char *domain, 576 const char *server, 577 const char *object, 578 const char *protocol, 579 const char *authtype, 580 guint32 port, 581 const char *password, 582 guint32 *item_id); 583 584 typedef enum { 585 GNOME_KEYRING_ACCESS_ASK, 586 GNOME_KEYRING_ACCESS_DENY, 587 GNOME_KEYRING_ACCESS_ALLOW 588 } GnomeKeyringAccessRestriction; 589 590 typedef struct GnomeKeyringAccessControl GnomeKeyringAccessControl; 591 typedef struct GnomeKeyringApplicationRef GnomeKeyringApplicationRef; 592 593 typedef enum { 594 GNOME_KEYRING_ACCESS_READ = 1<<0, 595 GNOME_KEYRING_ACCESS_WRITE = 1<<1, 596 GNOME_KEYRING_ACCESS_REMOVE = 1<<2 597 } GnomeKeyringAccessType; 598 599 GNOME_KEYRING_DEPRECATED 600 GnomeKeyringResult gnome_keyring_daemon_set_display_sync (const char *display); 601 602 GNOME_KEYRING_DEPRECATED 603 GnomeKeyringResult gnome_keyring_daemon_prepare_environment_sync (void); 604 605 GNOME_KEYRING_DEPRECATED 606 gpointer gnome_keyring_item_grant_access_rights (const gchar *keyring, 607 const gchar *display_name, 608 const gchar *full_path, 609 const guint32 id, 610 const GnomeKeyringAccessType rights, 611 GnomeKeyringOperationDoneCallback callback, 612 gpointer data, 613 GDestroyNotify destroy_data); 614 615 GNOME_KEYRING_DEPRECATED 616 GnomeKeyringResult gnome_keyring_item_grant_access_rights_sync (const char *keyring, 617 const char *display_name, 618 const char *full_path, 619 const guint32 id, 620 const GnomeKeyringAccessType rights); 621 622 623 GNOME_KEYRING_DEPRECATED 624 GnomeKeyringApplicationRef * gnome_keyring_application_ref_new (void); 625 GNOME_KEYRING_DEPRECATED 626 GnomeKeyringApplicationRef * gnome_keyring_application_ref_copy (const GnomeKeyringApplicationRef *app); 627 GNOME_KEYRING_DEPRECATED 628 void gnome_keyring_application_ref_free (GnomeKeyringApplicationRef *app); 629 GNOME_KEYRING_DEPRECATED 630 GType gnome_keyring_application_ref_get_type (void) G_GNUC_CONST; 631 632 #define GNOME_KEYRING_TYPE_APPLICATION_REF (gnome_keyring_application_ref_get_type ()) 633 634 GNOME_KEYRING_DEPRECATED 635 GnomeKeyringAccessControl * gnome_keyring_access_control_new (const GnomeKeyringApplicationRef *application, 636 GnomeKeyringAccessType types_allowed); 637 GNOME_KEYRING_DEPRECATED 638 GnomeKeyringAccessControl * gnome_keyring_access_control_copy (GnomeKeyringAccessControl *ac); 639 GNOME_KEYRING_DEPRECATED 640 GType gnome_keyring_access_control_get_type (void) G_GNUC_CONST; 641 GNOME_KEYRING_DEPRECATED 642 void gnome_keyring_access_control_free (GnomeKeyringAccessControl *ac); 643 644 #define GNOME_KEYRING_TYPE_ACCESS_CONTROL (gnome_keyring_access_control_get_type ()) 645 646 GNOME_KEYRING_DEPRECATED 647 GList * gnome_keyring_acl_copy (GList *list); 648 GNOME_KEYRING_DEPRECATED 649 void gnome_keyring_acl_free (GList *acl); 650 651 GNOME_KEYRING_DEPRECATED 652 char * gnome_keyring_item_ac_get_display_name (GnomeKeyringAccessControl *ac); 653 GNOME_KEYRING_DEPRECATED 654 void gnome_keyring_item_ac_set_display_name (GnomeKeyringAccessControl *ac, 655 const char *value); 656 657 GNOME_KEYRING_DEPRECATED 658 char * gnome_keyring_item_ac_get_path_name (GnomeKeyringAccessControl *ac); 659 GNOME_KEYRING_DEPRECATED 660 void gnome_keyring_item_ac_set_path_name (GnomeKeyringAccessControl *ac, 661 const char *value); 662 663 GNOME_KEYRING_DEPRECATED 664 GnomeKeyringAccessType gnome_keyring_item_ac_get_access_type (GnomeKeyringAccessControl *ac); 665 GNOME_KEYRING_DEPRECATED 666 void gnome_keyring_item_ac_set_access_type (GnomeKeyringAccessControl *ac, 667 const GnomeKeyringAccessType value); 668 669 GNOME_KEYRING_DEPRECATED 670 gpointer gnome_keyring_item_get_acl (const char *keyring, 671 guint32 id, 672 GnomeKeyringOperationGetListCallback callback, 673 gpointer data, 674 GDestroyNotify destroy_data); 675 GNOME_KEYRING_DEPRECATED 676 GnomeKeyringResult gnome_keyring_item_get_acl_sync (const char *keyring, 677 guint32 id, 678 GList **acl); 679 GNOME_KEYRING_DEPRECATED 680 gpointer gnome_keyring_item_set_acl (const char *keyring, 681 guint32 id, 682 GList *acl, 683 GnomeKeyringOperationDoneCallback callback, 684 gpointer data, 685 GDestroyNotify destroy_data); 686 GNOME_KEYRING_DEPRECATED 687 GnomeKeyringResult gnome_keyring_item_set_acl_sync (const char *keyring, 688 guint32 id, 689 GList *acl); 690 691 #endif /* GNOME_KEYRING_DISABLE_DEPRECATED */ 692 693 G_END_DECLS 694 695 #endif /* GNOME_KEYRING_H */ 696