Save Ukraine

Wanderlust: easily decrypt an inline-encrypted GPG/PGP message

Christian Kruse,

As I recently switched to Emacs, I noticed that there seems to be no easy way to decrypt an inline-encrypted message. You basically have to switch to the message buffer, select the encryption block and call (manually) wl-message-decrypt-pgp-nonmime. This makes sense as one can encrypt only parts (plural, yes – a message may contain multiple encrypted blocks) of the message. But the default case for me is that the whole message is encrypted. Thus I created a small snippet for exactly this task:

(defun ck-message-decrypt-pgp-nonmime()
(interactive)

(if (and wl-message-buffer (get-buffer-window wl-message-buffer)) (let ((start) (ends)) (wl-summary-toggle-disp-msg 'on) (save-excursion (set-buffer wl-message-buffer) (goto-char (point-min)) (re-search-forward "^-----BEGIN PGP MESSAGE-----$") (setq start (point))

      (goto-char (point-min))
      (re-search-forward "^-----END PGP MESSAGE-----$")
      (setq ends (point))

      (goto-char start)
      (set-mark-command nil)
      (goto-char ends)

      (wl-message-decrypt-pgp-nonmime)))

(message "no message to decrypt")))

(define-key wl-summary-mode-map (kbd "C-c d") 'ck-message-decrypt-pgp-nonmime)

This opens a message (if not yet opened), searches for the first PGP block, marks it and decrypts it.