No se puede descifrar el archivo .gpg usando emacs pero la línea de comando gpg funciona

12

Tengo un accounts.org.gpgarchivo Puedo abrirlo usando gpg directamente:

$ 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>

Pero no puedo abrir el mismo archivo usando Emacs. Intentar abrirlo en emacs me da un error:

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

¿Hay algo que deba configurar en el lado de emacs para que esto funcione?

Para algunos antecedentes adicionales, creé este archivo en otra máquina (usando la misma versión de Emacs), en el que Emacs podía leer / escribir en ese archivo muy bien. Luego copié el contenido de ~/.gnupg esta máquina. Y ahora gpg todavía puede leerlo, pero Emacs no.

EDITAR: ¿Podría ser esta una diferencia entre gpg1 y gpg2?

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

¿Cómo leyeron y escribieron los Emacs en la otra máquina (usando la misma configuración, la misma versión de Emacs (25.1) y el mismo sistema operativo (Fedora 24 x86_64, la misma versión de los paquetes gpg y gpg2))? De todos modos usando,

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

Todavía da como resultado el mismo error.

Omair Majid
fuente
¿Lo has intentado (setq epg-gpg-program "gpg2")?
caisah
Yo hice. Es el valor predeterminado también. Y no funciona. Al igual que el programa de línea de comando gpg2 no. Estoy empezando a pensar que esto es un problema con gpg2 en sí, no con emacs.
Omair Majid
3
@caisah Ver Bug # 24229 , setqno funciona epg-gpg-program, tienes que personalizarlo.
npostavs

Respuestas:

15

No dice qué sistema operativo ni qué versión de emacs tiene.

Ayer resolví exactamente el mismo problema en OSX y emacs 25.1 usando la información de este enlace: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

Ejecuté estos comandos:

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

y establecer el modo de pinentry en mi archivo conf de emacs:

(setf epa-pinentry-mode 'loopback)
Heikki
fuente
Consulte mis ediciones para las versiones de SO y Emacs. Definitivamente no planeo anular las versiones del sistema de gpg / gpg2.
Omair Majid
El paquete de preparación estándar gnupg lleva algún tiempo siendo la versión 2.1. Las versiones anteriores 1.4 y 2.0 que no son totalmente compatibles con él están disponibles como paquetes separados.
Heikki
Solo una información: tuve un problema similar en Linux y esta solución también solucionó mi problema.
Manoel Vilela
2
Gracias por señalar el (setf epa-pinentry-mode 'loopback)truco.
phs
1
Agregar la (setf epa-pinentry-mode 'loopback)línea en .emacs fue suficiente para mi Gnu Emacs 26.2 con gpg 2.2.16 de homebrew.
Dave X