Como usar o Emacs para reconhecer e abrir automaticamente o arquivo criptografado GPG em formato blindado ASCII?

6

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?

    
por RNA 10.11.2012 / 06:13

5 respostas

2

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)
    
por 16.01.2013 / 21:35
5

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)

  1. link
  2. link

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))
    
por 10.11.2012 / 10:26
4

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.

    
por 14.04.2016 / 14:11
1

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).

    
por 07.01.2014 / 19:08
0

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.

    
por 03.09.2015 / 02:39