Não foi possível descriptografar o arquivo .gpg usando o emacs, mas a linha de comando gpg funciona

12

Eu tenho um accounts.org.gpgarquivo Eu posso abri-lo usando o gpg diretamente:

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

Mas não consigo abrir o mesmo arquivo usando o Emacs. Tentar abri-lo no emacs me dá um erro:

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

Existe algo que eu preciso configurar no lado do emacs para fazer isso funcionar?

Para mais informações, criei esse arquivo em outra máquina (usando a mesma versão do Emacs), na qual o Emacs poderia ler / gravar nesse arquivo. Em seguida, copiei o conteúdo de ~/.gnupg over para esta máquina. E agora o gpg ainda pode lê-lo, mas o Emacs não.

EDIT: isso poderia ser uma diferença gpg1 vs gpg2?

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

Como o Emacs na outra máquina (usando a mesma configuração, a mesma versão do Emacs (25.1) e o mesmo sistema operacional (Fedora 24 x86_64, mesma versão dos pacotes gpg e gpg2)) foi lido e gravado nele. De qualquer forma, usando,

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

Ainda resulta no mesmo erro.

Omair Majid
fonte
Você já tentou (setq epg-gpg-program "gpg2")?
caisah 16/10
Eu fiz. É o padrão também. E isso não funciona. Assim como o programa de linha de comando gpg2 não. Estou começando a pensar que este é um problema com o próprio gpg2, não com o emacs.
Omair Majid
3
@caisah Veja o Bug # 24229 , setqnão funciona epg-gpg-program, você precisa personalizá-lo.
N

Respostas:

15

Você não diz qual SO nem versão do emacs você possui.

Ontem resolvi exatamente o mesmo problema no OSX e no emacs 25.1 usando as informações deste link: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

Eu executei estes 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

e defina o modo pinentry no meu arquivo emacs conf:

(setf epa-pinentry-mode 'loopback)
Heikki
fonte
Por favor, veja minhas edições para versões de SO e Emacs. Definitivamente, não pretendo substituir as versões do sistema do gpg / gpg2.
Omair Majid
O pacote de preparação padrão do gnupg já está há algum tempo na versão 2.1. As versões anteriores 1.4 e 2.0 que não são totalmente compatíveis com ele estão disponíveis como pacotes separados.
Heikki
Apenas uma informação: eu tive um problema semelhante no Linux e esta solução também resolveu o meu problema.
Manoel Vilela
2
Obrigado por apontar o (setf epa-pinentry-mode 'loopback)truque.
phs
11
Adicionar a (setf epa-pinentry-mode 'loopback)linha no .emacs foi suficiente para o meu Gnu Emacs 26.2 com o gpg 2.2.16 do homebrew.
Dave X