[Pidgin] #673: Keyring support for password storage
Pidgin
trac at pidgin.im
Tue Sep 18 16:17:14 EDT 2007
#673: Keyring support for password storage
---------------------------+------------------------------------------------
Reporter: shirish | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: pidgin (gtk) | Version: 2.0
Resolution: | Keywords:
Pending: 0 |
---------------------------+------------------------------------------------
Comment (by rlaager):
Now now, I love my single-sign-on at work that I've implemented via gnome-
keyring. I really wish that Pidgin and Epiphany used it. For Pidgin,
though, I haven't had the chance to deal with that yet.
The API here isn't going to be very complicated. Basically, you need to be
able to get and set a password for a given account. The API should be non-
blocking, which means that the core would do something like this:
purple_get_password(account, my_callback);
This function would pass control to the hook registered by the
authentication plugin, which would query the keyring and then call the
callback with the results. If there was no hook function, the existing XML
storage would be used.
The plugins should be set to auto-load, just like SSL plugins do. Similar
to logging, each plugin would register a named method. Then the UI would
present a preference where the user could choose an appropriate method.
The default could be managed like this pseudo-code:
if (purple_running_gnome() && auth_plugin_exists("gnome-keyring")
// Use the gnome-keyring
else
// Use the internal method
Then, someone could implement a plugin for KDE or OS X or whatever and we
could add those.
Changing the preference from one back-end to another could prompt a box
asking if it should copy all the passwords from the old back-end to the
new back-end. Alternatively, it could just do the copy. We may want to
prompt before overwriting a password in the new back-end. This would allow
people to switch over to the internal back-end if they wanted to be
compatible with other systems, for example.
--
Ticket URL: <http://developer.pidgin.im/ticket/673#comment:10>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list