[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/libs/kwalletkeyring
From: Norbert Frese <nf2 () scheinwelt ! at>
Date: 2008-08-22 0:27:18
Message-ID: 1219364838.253760.760.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 850677 by nfrese:
kwalletkeyring: TODOs: keyring migration plan; keyring-ls: use gnome_keyring_item_get_info_full_sync
M +98 -2 TODO.txt
M +16 -10 samples/keyring-ls.cpp
--- trunk/playground/libs/kwalletkeyring/TODO.txt #850676:850677
@@ -1,5 +1,101 @@
-* bug in keyring: hangs when there is a ':' in the keyring name
+Gnome-Keyring:
+==============
-* new mode in keyring to enable acl on keyring level (not on item level)
+To start with:
+--------------
+* allow keyrings with acl on keyring level (not on item level)
+ add a keyring-flags field to keyring-info to optionally enable this
+ when creating a keyring.
+ (this is required, because the KWallet API only provides async-open,
+ but all the functions to retrieve keys are sync-only and therefore may not
+ trigger a dialog)
+
+* change notifications: emit D-Bus signals:
+
+ * "keyring-changed" with the args:
+ - keyring-name
+ - change-type: created/deleted
+
+ * "item-changed" with the args:
+ - keyring-name
+ - item-id
+ - change-type: created/modified/deleted
+
+* peek function: checks if a certain item/attribute/value combination exist,
+ bypassing the ACL. this feature can be enabled in the keyring flags.
+ (required to implement the Wallet::folderDoesNotExist() and keyDoesNotExist() methods in KWallet.
+
+
+later:
+------
+
+* remove GConf dependency
+
+* Change storage path for keyrings to $XDG_DATA_HOME/keyrings
+
+* Standardize binary application to keyring-daemon p2p protocol (or use D-Bus p2p?)
+
+* Allow advanced data structures in the "secret" area of items (similar the attributes-list)
+
+* Switchable GUI dialogs depending on the currently running desktop
+ (an optional kde-keyring-ask executable)
+
+* Make Keyring portable to other platforms
+
+* Improve search functions - support wildcards (maybe useful?)
+
+* change namespace in keyring-client from "gnome_keyring" to "keyring"
+
+
+
+KDE TODOs
+=========
+
+
+To start with:
+--------------
+
+* KWallet implementation which uses Keyring as backend. Maps the kwallet
+ data model into the keyring data model.
+
+ - keyring name: prefixed with "kwallet."
+
+ - item attribute names:
+ "kwallet.folder"
+ "kwallet.key"
+ "kwallet.type"
+
+ 1) passwords
+ "kwallet.password"
+
+ 2) maps:
+ "kwallet.mapentry.*"
+
+ 3) binary
+ "kwallet.base64data"
+
+later:
+------
+
+* Qt/C++ Keyring API -> to get the full Keyring features
+ and share content with GNOME/3rd party apps
+
+* Migrate apps
+
+* Write a pure Qt/C++ client for Keyring - which doesn't link the gnome-keyring client
+ (if required)
+
+* Write a pure Qt/C++ Keyring daemon implementation (if required)
+
+* Migrate the KWallet-Manager to the Keyring model
+
+* Implement Keyring Dialogs in Qt/C++
+
+
+NOTES
+=====
+
+* found a bug in keyring-daemon: hangs when there is a ':' in the keyring name
+
--- trunk/playground/libs/kwalletkeyring/samples/keyring-ls.cpp #850676:850677
@@ -28,7 +28,7 @@
using namespace std;
-bool show_item_info_flag = false; // setting this to true -> request item info (secret)
+bool show_item_info_secret_flag = false; // setting this to true -> request item info (secret)
void presult(GnomeKeyringResult r)
{
@@ -102,8 +102,18 @@
cout << " item-info: " << endl;
GnomeKeyringItemInfo * itemInfo = NULL;
- GnomeKeyringResult r = gnome_keyring_item_get_info_sync (keyringName,
+
+ guint32 flags =
+ show_item_info_secret_flag ?
+ GNOME_KEYRING_ITEM_INFO_BASICS
+ | GNOME_KEYRING_ITEM_INFO_SECRET
+ : GNOME_KEYRING_ITEM_INFO_BASICS;
+
+
+ GnomeKeyringResult r = gnome_keyring_item_get_info_full_sync
+ (keyringName,
id,
+ flags,
&itemInfo);
presult(r);
@@ -114,7 +124,7 @@
GnomeKeyringItemType itemType = gnome_keyring_item_info_get_type(itemInfo);
cout << " - display_name: " << display_name << endl;
- cout << " - secret: " << secret << endl;
+ cout << " - secret: " << (secret ? secret : "") << endl;
cout << " - type: " << item_type_to_string(itemType) << endl;
}
@@ -171,6 +181,7 @@
presult(r);
+ show_keyring_item_info(keyringName, id);
show_keyring_item_acl(keyringName, id);
cout << " attributes: " << endl;
@@ -190,18 +201,13 @@
}
cout << endl;
}
-
- if (show_item_info_flag)
- show_keyring_item_info(keyringName, id);
-
-
}
}
int main(int argc, char *argv[])
{
- if (argc>1 && argv[1] == string("qry_item_info"))
- show_item_info_flag=true;
+ if (argc>1 && argv[1] == string("qry_secret"))
+ show_item_info_secret_flag=true;
g_set_application_name("Keyring Test");
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic