swick / mozilla-gnome-keyring

GNU General Public License v3.0
74 stars 18 forks source link

Use libsecret #2

Open snaggen opened 10 years ago

snaggen commented 10 years ago

As infinity0 writes ( in https://github.com/infinity0/mozilla-gnome-keyring/issues/43 ): could you use libsecret instead of libgnome-keyring? That would work for KDE keyring too, I believe. There is more information about it in #23 and https://bugzilla.gnome.org/show_bug.cgi?id=672356.

seschwar commented 10 years ago

On 2014-01-05, snaggen notifications@github.com wrote:

could you use libsecret instead of libgnome-keyring? That would work for KDE keyring too, I believe.

Furthermore libgnome-keyring has been deprecated: https://github.com/GNOME/libgnome-keyring/commit/6a5adea4aec931708d2b16decff7405fb0ae67c3

mathstuf commented 9 years ago

I'm working on getting the libsecret DBus API working with keepassx as well, so if this were added, users could use it as well.

swick commented 9 years ago

I'm going to look into it.

mathstuf commented 9 years ago

Thanks!

fcrozat commented 9 years ago

I have a WIP prototype at https://github.com/fcrozat/moz-gnome-keyring-integration/tree/libsecret

It is NOT functionnal (still fighting with type conversion between JS and C) but it doesn't crash firefox anymore. Feel free to look at it.

I did a big replace in gnome-keyring.js, a saner approach (once libsecret works) would be to move the code to libsecret.js and loads this code and fallback to gnome-keyring.js if libsecret is not found.

infinity0 commented 9 years ago

I thought both gnome-keyring and libsecret already have JS APIs? Why is it necessary to redeclare them in js-ctypes?

fcrozat commented 9 years ago

The API from gnome-keyring and libsecret are for use in gnome-shell and gjs (and are autogenerated by gobject-introspection). They aren't available in Firefox AFAIK

swick commented 9 years ago

The JS bindings for gobject are indeed only useable in gjs, which means that the gobject introspection data is kinda useless for us. One could try to implement gobject bindings for firefox but that would be a bigger project (gjs has >10k LOC).

That leaves us to either writing all the bindings by hand, which is really awkward and hard, or to write a c wrapper.

I'd honestly prefer to use ctypes just to bind to a library which does all the heavy lifting. The disadvantage is that the addon would contain a binary which is platform specific.

If that's the route we're going to take, I'd like to make this a new project and break with the current storage format, implementing the password meta data and maybe even get compatibility with either chrome or gnome-web.

mathstuf commented 8 years ago

Is there some way to just talk over DBus directly? I think Firefox already talks to DBus, so maybe there's some API available?

fcrozat commented 8 years ago

libsecret is a wrapper around Secret DBus api..

swick commented 8 years ago

@mathstuf Firefox uses dbus internally, there is no way to use it from JS.

mir06 commented 4 years ago

Any news on that? libgnome-keyring0 not available on debian buster anymore see here.

I love this extension for thunderbird!

swick commented 4 years ago

Sorry, no news. libsecret in flatpak saves passwords locally and not to the global keyring now anyways so I don't see any value in this addon anymore at all.

mir06 commented 4 years ago

Thx @swick for the fast reply. Bad news though. There is no alternative!? I like to open my keyring at login and there is no need to enter another master-password.

swick commented 4 years ago

Even if I would support libsecret the addon would only work in non-flatpak thunderbird so I won't do it. It can obviously be done but I won't be the one doing it.