Merge branch 'v2'
[pwmd.git] / TODO
blob749d4c93b07d030f4b2d35fed11862d584f990c0
1 Here are some ideas that might make it into later versions. Things that break
2 compatibility will definitely have to wait until 2.0.
4 + = started
5 - = not started
6 ? = not sure to included it
8 ? - Use the DBUS protocol instead of libassuan. Better asynchronous IO. More
9     language bindings. Better handling of large amounts of data. Might be
10     better to hack libassuan though since DBUS is a binary protocol.
12 ? - Port to pthreads. Depends on whether porting to DBUS or not. No real
13     reason to do it otherwise. Libpth has a nice message event design.
14     Pthreads is also alot faster but isn't really necessary.
16 ? - Use libgpgme to encrypt the data file. This will let pwmd use a secret
17     GnuPG key and also use gpg-agent for password retrieval and supports
18     smartcards. We can't use gpg-agent right now because of the limited
19     support of symmetric password caching in gpg-agent (presetting the
20     passphrase for example).
22 ? - Make a standard that applications should follow when accessing or storing
23     the XML elements. This way two clients (say, one for console and another
24     for GUI) that require the same data (mail client) could use the same
25     element paths and not duplicate each others data.
27     For example, a POP3 client would require a hostname, username, password
28     and optional port along with an ssl request (fingerprint, certificate),
29     etc. The root element of the service might have an attribute
30     "service=pop3" along with "default=1" or "active=1" (if you have more than
31     one POP3 account) so all the client needs to get the pop3 server info is
32     the type of service ("pop3" here). The client would then loop through the
33     LIST command output and search for the required service attribute. Using
34     the XPATH command would be faster (especially over remote connections) but
35     it won't resolve "target" attributes and the output is raw XML which
36     doesn't have TAB delimited elements.