After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 678771 - GPG agent cannot unlock keys with % in passphrase
GPG agent cannot unlock keys with % in passphrase
Status: RESOLVED FIXED
Product: gnome-keyring
Classification: Core
Component: general
3.4.x
Other Linux
: Normal major
: ---
Assigned To: GNOME keyring maintainer(s)
GNOME keyring maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2012-06-25 09:20 UTC by Jan de Groot
Modified: 2012-06-28 13:54 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gpg-agent: Encode passwords when --data was requested (2.45 KB, patch)
2012-06-28 13:52 UTC, Stef Walter
committed Details | Review

Description Jan de Groot 2012-06-25 09:20:09 UTC
Since the upgrade to GNOME 3.4, I can no longer unlock my GPG keys using gnome-keyring as agent. Older versions that didn't integrate the password prompt into gnome-shell worked correctly.

gpg will just say "invalid passphrase" after entering my correct passphrase with % sign in it. Using strace, I found out that the %-sign is not encoded at all when sent from gnome-keyring-daemon to GPG. The default password box that shows up when I unset GPG_AGENT_INFO encodes this character and unlocks my key correctly.
Comment 1 Stef Walter 2012-06-28 13:52:57 UTC
Created attachment 217522 [details] [review]
gpg-agent: Encode passwords when --data was requested

* Use URI encoding to return passwords when gnupg calls us with
   a --data argument.
Comment 2 Stef Walter 2012-06-28 13:54:00 UTC
Comment on attachment 217522 [details] [review]
gpg-agent: Encode passwords when --data was requested

Thanks for catching that. Here's the patch I committed to gnome-keyring to fix it.

There's two ways to request passwords. I guess you must have upgraded to gnupg 2.x or some gnupg version that requests passwords in the less tested way.