Impossible de décrypter le fichier .gpg à l'aide d'emacs mais la ligne de commande gpg fonctionne

12

J'ai un accounts.org.gpgdossier. Je peux l'ouvrir directement en utilisant gpg:

$ gpg -d ./accounts.org.gpg 

You need a passphrase to unlock the secret key for
user: "Omair Majid <removed@removed>"
4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18 (main key ID 66484681)

gpg: encrypted with 4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18
    "Omair Majid <removed@removed>"
+TITLE: Accounts
<rest of output removed>

Mais je ne peux pas ouvrir le même fichier en utilisant Emacs. Essayer de l'ouvrir dans emacs me donne une erreur:

epa-file--find-file-not-found-function: Opening input file: Decryption failed, No secret key: E295ECEC7CC8AAC6

Y a-t-il quelque chose que je dois configurer du côté emacs pour que cela fonctionne?

Pour des informations supplémentaires, j'ai créé ce fichier sur une autre machine (en utilisant la même version d'Emacs), sur laquelle Emacs pouvait très bien lire / écrire dans ce fichier. J'ai ensuite copié le contenu de ~/.gnupg sur cette machine. Et maintenant, gpg peut toujours le lire, mais pas Emacs.

EDIT: Cela pourrait-il être une différence gpg1 vs gpg2?

$ gpg2 --decrypt accounts.org.gpg 
gpg: encrypted with RSA key, ID E295ECEC7CC8AAC6
gpg: decryption failed: No secret key

Comment les Emacs sur l'autre machine (utilisant la même configuration, la même version d'Emacs (25.1) et le même système d'exploitation (Fedora 24 x86_64, même version des packages gpg et gpg2)) en ont-ils été lus et écrits? Quoi qu'il en soit en utilisant,

(setq epg-gpg-program "/usr/bin/gpg")

Toujours la même erreur.

Omair Majid
la source
As-tu essayé (setq epg-gpg-program "gpg2")?
caisah
J'ai fait. C'est aussi la valeur par défaut. Et ça ne marche pas. Tout comme le programme de ligne de commande gpg2 ne le fait pas. Je commence à penser que c'est un problème avec gpg2 lui-même, pas avec emacs du tout.
Omair Majid
3
@caisah See Bug # 24229 , setqne fonctionne pas epg-gpg-program, vous devez le personnaliser.
npostavs

Réponses:

15

Vous ne dites pas quel système d'exploitation ni quelle version d'emacs vous avez.

J'ai résolu hier exactement le même problème dans OSX et emacs 25.1 en utilisant les informations de ce lien: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

J'ai exécuté ces commandes:

brew unlink gnupg2 gpg-agent dirmngr
brew uninstall gnupg2 gpg-agent dirmngr
brew install gnupg21
ln -s /usr/local/bin/gpg2 /usr/local/bin/gpg

et définissez le mode pinentry dans mon fichier de configuration emacs:

(setf epa-pinentry-mode 'loopback)
Heikki
la source
Veuillez consulter mes modifications pour les versions OS et Emacs. Je n'ai certainement pas l'intention de remplacer les versions système de gpg / gpg2.
Omair Majid
Le paquet de brassage standard gnupg est depuis quelque temps la version 2.1. Les anciennes versions 1.4 et 2.0 qui ne sont pas entièrement compatibles avec celui-ci sont disponibles dans des packages séparés.
Heikki
Juste une info: j'ai eu un problème similaire sous Linux et cette solution a également résolu mon problème.
Manoel Vilela
2
Merci d'avoir souligné l' (setf epa-pinentry-mode 'loopback)astuce.
phs
1
L'ajout de la (setf epa-pinentry-mode 'loopback)ligne dans .emacs était suffisant pour mon Gnu Emacs 26.2 avec gpg 2.2.16 de homebrew.
Dave X