Wanderlust で GnuPG を使う場合
何を使うのが最良なのか, ちょっと良くわからなくなってます*1. 調べてみたら wl-mime 内で easypg がある場合にはそれを使うようになっていたので, メモ.
easypg が導入されていると
- message buffer で
- C-c : d (復号)
- C-c : v (署名検証)
が可能.
あとは暗号化と署名だけだな, とじたばたするもうまくいかない...自分の署名が不正な署名になってしまう. うーん?
...どうも, wl-draft の文字コードが iso-2022-jp じゃないと送信時に文字コードの変換を行なっている模様で, 試しに
(add-hook 'wl-draft-mode-hook '(lambda () (set-buffer-file-coding-system 'iso-2022-jp)))
なんてのを ~/.wl につっこんでみたら解決しました. というわけで, 設定は以下の通りに
... (add-hook 'wl-draft-mode-hook '(lambda () (set-buffer-file-coding-system 'iso-2022-jp))) ;; draft で C-c \ s でクリア署名 (define-key wl-draft-mode-map "\C-c\\s" 'epa-mail-sign) ;; draft で C-c \ e で暗号化 (define-key wl-draft-mode-map "\C-c\\e" 'epa-mail-encrypt) ;; summary でメッセージを復号する関数 (defun my-epa-wl-decrypt-message () (interactive) (save-window-excursion (wl-summary-jump-to-current-message) (wl-message-decrypt-pgp-nonmime))) ;; summary で C-c \ d でメッセージを復号 (define-key wl-summary-mode-map "\C-c\\d" 'my-epa-wl-decrypt-message) ;; summary で署名を検証する関数 (defun my-epa-wl-verify-message () (interactive) ;; 次のメッセージに行く場合はともかく, ;; summary-mode からフォルダモードに移ると ;; 検証後の結果が常に残ってしまうので, ちょっと修正する必要がある (save-selected-window (wl-summary-jump-to-current-message) (wl-message-verify-pgp-nonmime))) ;; summary で C-c \ v でメッセージを復号 (define-key wl-summary-mode-map "\C-c\\v" 'my-epa-wl-verify-message) ...
使い方は
- メール作成(draft mode)では
- C-c \ s でクリアサイン
- C-c \ e で暗号化
- C-c m C-s で分離署名
- メール一覧表示(summary mode)では
- C-c \ v で署名検証
- C-c \ d で復号
- メッセージ表示(mime-view)では
- C-c : v で署名検証
- C-c : d で復号
あとは application/pgp-signature にカーソル合わせて"v"を押すと分離署名の検証もできる.
ちなみに以前, Wanderlust の mime-view で xdg-open で mime をハンドリングする関数だと application/pgp-signature を xdg-open (私の環境では exo-open) で開いてしまうため, 署名の検証ができない. というわけで, pgp 関連の mime は emacs でそのまま扱うようにする必要がある.
うーん...なんかかえって面倒な気がしてきたな(笑) ~/.mailcap に xdg-open 書いておいた方が良いのかしら.
暗号化/署名されたメールの扱いについてはやっぱり Mew が楽, という結論に. 使いわけますかね.