Emacsを使用してASCIIアーマー形式のGPG暗号化ファイルを識別して自動的に開く方法は?

Emacsを使用してASCIIアーマー形式のGPG暗号化ファイルを識別して自動的に開く方法は?

gpg -ca passwords.txt暗号化されたASCIIファイルを作成しますpasswords.txt.asc。 Emacsはファイルをプレーンテキストファイルとして開きます。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v2.0.19 (GNU/Linux)

jA0EAwMCkIp3+bQkLWJgyTQYLGVN8EUEG0BE42sEj/8PrnSzgviSiENxtK+/2n73
WXD7EtndVS/MX4lFJ96h8VozChUA
=zSwh
-----END PGP MESSAGE-----

Emacsがファイルを開いて保存するときにファイルを自動的に復号化して暗号化するようにするにはどうすればよいですか?

答え1

デフォルト設定では、すべてが正常に動作しますが、設定を確認できます。

まず、EasyPG Assistantがインストールされていることを確認する必要があります。

M-xlocate-libraryRETepaRET次のようなものを返す必要があります。

ライブラリーは /usr/local/share/emacs/24.2.50/lisp/epa.elc ファイルです。

それ以外の場合はインストールする必要があります。 (またはEmacs23またはEmacs24にアップグレード)

  1. http://emacswiki.org/emacs/EasyPG
  2. http://epg.sourceforge.jp/

次に、変数の値を確認してauto-mode-alist検索 C-hvauto-mode-alistRETしますepa

見つからない場合は、このスニペットをに追加してください.emacs

(add-to-list 'auto-mode-alist '("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" nil epa-file))

答え2

元のポスターと同じ問題があります。 EasyPGは、バイナリの代わりにASCII手袋暗号文で.asc拡張子を持つファイルを保存したいと思います。答えには良い情報がありますが、OPの質問を解決するのに十分な情報はありません。次の構成で問題を解決したと思います。

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

まず、EasyPGが暗号化データ(デフォルトではバイナリ)として保存するファイル拡張子に.ascおよびEmacsバックアップ名を追加します。

次に、epa-armorをバッファローカル変数に設定してマイナーモードを定義します。敏感なパターンに触発されました:http://anirudhsasikumar.net/blog/2005.01.21.html

最後に、.ascファイルを開くと自動的に有効になるようにセカンダリモードを設定します。 TODO:Emacsバックアップファイルを開くときも有効になります。

Emacsバックアップにフローティングする.gpgファイルと.ascファイルのプレーンテキストコピーを望まない場合は、「追加」epa-file-name-regexp正規表現構文が重要です。

これまでうまく動作しているようです。

この問題はかなり古いですが、Debian 8.3のEasyPGとEmacs 24に対する簡単な解決策はありません。お役に立てば幸いです。

答え3

.ascEmacsに次のようにファイルを開くようにするには、次のようにしました。.gpg

(require 'epa-file)
(epa-file-enable)
(setq epa-file-name-regexp "\\.\\(gpg\\|asc\\)$")
(epa-file-name-regexp-update)

答え4

2015年9月3日木曜日01:31:53 BST

上記の内容(ascii armorを使用して.ascファイルを自動的に暗号化)に加えて、ゼロではepa-armorありません。

init.elに追加: (setq epa-armor t)

epa-armor は、値 t の 'epa.el' で定義された変数です。 nil 以外の場合、epa コマンドは ASCII armor 出力を生成します。

この変数をバインドするには「let」を使用する必要がありますが、グローバルに設定しないでください。

関連情報