browserpass-extension: Browserpass does not unlock GPG keys in Firefox + GNOME 3

General information

  • Operating system + version: Arch Linux
  • Browser + version: Mozilla Firefox 68.0.1, Mozilla Firefox Developer Edition 69.0b8
  • Information about the host app:
    • How did you install it? Installed via a package manager
    • If installed an official release, put a version ($ browserpass --version): 3.0.6
  • Information about the browser extension:
    • How did you install it? Installed via a package manager
    • Browserpass extension version as reported by your browser: 3.1.1

Exact steps to reproduce the problem

  1. Configure pass to use a password-protected GPG key (pass init id_of_password_key)
  2. Install browserpass and browserpass-firefox
  3. Create at least one entry in the pass store
  4. Do not unlock the GPG key, or, if you have already, kill the gpg-agent process
  5. Go to a website that corresponds to an entry in the pass store
  6. Attempt to autofill a login, copy a password, or copy a username

What should happen?

Note: this does happen in Chrome(ium) The gpg-agent pinentry dialog should appear and allow the user to unlock the key. If they unlock the key successfully, browserpass should complete the requested action. Otherwise, it should report an error.

What happened instead?

In Firefox, browserpass simply displays e.g. “Filling login details” for a fraction of a second, and then fails silently and does not complete the action.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 21 (7 by maintainers)

Most upvoted comments

I submitted a bug on the Firefox bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1571259.

Thanks for tracking this down @nonnymoose . I’ve been wrestling with this myself. I like your workaround.

A more straightforward, but less theme-appropriate workaround is simply using pinentry-gtk2 as a default by adding the line

pinentry-program /usr/bin/pinentry-gtk-2

to ~/.gnupg/gpg-agent.conf

I can’t tell yet… Here’s what I’ve found so far through testing:

  • There’s no significant difference in the environment variables of gpg when called from firefox vs. when called by chrome
  • If firefox is in focus when pass is run from the terminal, the pinentry dialogue appears (so that means that it’s not some sort of obscure window conflict issue between firefox and pinentry-gnome3)
  • There’s no significant difference in the environment variables of pinentry-gnome3 when called from firefox vs chrome

Edit: I did an awful job of that 🤷‍♂️