[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