mozilla-gnome-keyring icon indicating copy to clipboard operation
mozilla-gnome-keyring copied to clipboard

Use libsecret

Open snaggen opened this issue 10 years ago • 15 comments

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.

snaggen avatar May 01 '14 18:05 snaggen

On 2014-01-05, snaggen [email protected] 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

seschwar avatar May 02 '14 19:05 seschwar

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.

mathstuf avatar Apr 09 '15 05:04 mathstuf

I'm going to look into it.

swick avatar Apr 09 '15 14:04 swick

Thanks!

mathstuf avatar Apr 09 '15 14:04 mathstuf

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.

fcrozat avatar Apr 17 '15 16:04 fcrozat

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

infinity0 avatar May 26 '15 08:05 infinity0

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

fcrozat avatar May 26 '15 08:05 fcrozat

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.

swick avatar May 30 '15 21:05 swick

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

mathstuf avatar Oct 01 '15 03:10 mathstuf

libsecret is a wrapper around Secret DBus api..

fcrozat avatar Oct 01 '15 08:10 fcrozat

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

swick avatar Oct 01 '15 12:10 swick

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

I love this extension for thunderbird!

mir06 avatar Oct 07 '19 10:10 mir06

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.

swick avatar Oct 07 '19 14:10 swick

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.

mir06 avatar Oct 07 '19 17:10 mir06

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.

swick avatar Oct 07 '19 21:10 swick