Eu fiz o seguinte para deixar o Emacs abrir .asc
arquivos da mesma forma que .gpg
files
(require 'epa-file)
(epa-file-enable)
(setq epa-file-name-regexp "\.\(gpg\|asc\)$")
(epa-file-name-regexp-update)
gpg -ca passwords.txt
cria o arquivo ASCII criptografado passwords.txt.asc
. O Emacs abre o arquivo como um arquivo de texto normal:
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2.0.19 (GNU/Linux)
jA0EAwMCkIp3+bQkLWJgyTQYLGVN8EUEG0BE42sEj/8PrnSzgviSiENxtK+/2n73
WXD7EtndVS/MX4lFJ96h8VozChUA
=zSwh
-----END PGP MESSAGE-----
Como eu faço o Emacs descriptografar e criptografar o arquivo quando abro e o salvo?
Tudo deve funcionar bem com a configuração padrão, mas você pode verificar sua configuração.
Primeiro, você precisa ter certeza de que o EasyPG Assistant está instalado.
M-x locate-library
RET epa
RET deve retornar algo como:
Library is file /usr/local/share/emacs/24.2.50/lisp/epa.elc
Se não, então você tem que instalá-lo. (ou atualizar para o Emacs23 ou Emacs24)
Em seguida, verifique o valor da variável auto-mode-alist
com
C-h v auto-mode-alist
RET e pesquisa
para epa
.
Se você não conseguir encontrá-lo, adicione este snippet ao seu .emacs
.
(add-to-list 'auto-mode-alist '("\.gpg\(~\|\.~[0-9]+~\)?\'" nil epa-file))
Eu tive o mesmo problema que o pôster original. Eu quero que o EasyPG salve arquivos com uma extensão .asc em texto cifrado com blindagem ASCII, não binário. Há algumas boas informações nas respostas, mas nenhuma foi completa o suficiente para resolver a questão do OP. Acho que resolvi com a seguinte configuração.
(epa-file-enable)
(setq epa-file-name-regexp "\.\(gpg\|\asc\)\(~\|\.~[0-9]+~\)?\'")
(epa-file-name-regexp-update)
;; Minor mode for ASCII-armored gpg-encrypted files
(define-minor-mode auto-encryption-armored-mode
"Save files in encrypted, ASCII-armored format"
;; The initial value.
nil
;; The indicator for the mode line.
" Encrypted,Armored"
;; The minor mode bindings.
nil
(if (symbol-value auto-encryption-armored-mode)
(set (make-local-variable 'epa-armor) t)
(kill-local-variable 'epa-armor))
)
(add-to-list 'auto-mode-alist '("\.asc$" . auto-encryption-armored-mode))
Primeiro, isso adiciona nomes de backup .asc e Emacs às extensões de nome de arquivo que o EasyPG salvará como dados criptografados, por padrão, binário.
Em seguida, define um modo secundário que define o epa-armor como uma variável local do buffer. Inspirado pelo modo sensível: link
Por último, define esse modo secundário para ativar automaticamente ao abrir arquivos .asc. TODO: Ativar também ao abrir arquivos de backup do Emacs.
Note que a sintaxe "extra" do regexp regexp epa-file-regexp é crítica se você não quiser cópias em texto puro de seus arquivos .gpg e .asc que estejam flutuando como backups do Emacs.
Parece funcionar bem até agora.
Esta questão é bastante obsoleta, mas também não existe uma solução fácil fornecida com o EasyPG e o Emacs 24 no Debian 8.3. Espero que ajude.
A resposta de Daimrod (atualmente no topo do ranking) não funciona para mim, porque o EasyPG (epa) não é um modo automático, portanto, modificar o modo automático está errado, pelo menos no emacs 24.3.1.
Em vez disso, você precisa modificar o valor de epa-file-name-regexp para adicionar um padrão para corresponder aos arquivos * .asc.
(setq epa-file-name-regexp "\.gpg\(~\|\.~[0-9]+~\)?\'\|\.asc")
Pessoalmente, acho que toda a sintaxe extra necessária para corresponder aos arquivos de backup do emacs é desnecessária para quase todos os propósitos, além de não permitir a fácil compreensão e manutenção, então deixei isso fora do padrão ".asc". Adicione-o se preferir na íntegra como aparece após o padrão ".gpg".
Note que se você fizer isso após o emacs ter iniciado e ativado o epa, você terá que executar a função epa-file-name-regexp-update para pegar um valor alterado. Isso é desnecessário se você adicionar esse código ao seu arquivo de inicialização .emacs (nem precisa ativar explicitamente o epa).
Qui Set 3 01:31:53 BST 2015
Além do acima (para criptografar automaticamente arquivos .asc com blindagem ascii), epa-armor
deve ser não-nulo:
Adicionar ao init.el:
(setq epa-armor t)
epa-armor is a variable defined in 'epa.el' Its value is t If non-nil, epa commands create ASCII armored output.
You should bind this variable with 'let', but do not set it globally.
Tags emacs gpg mime-types