From: David Engster Date: Sun, 2 Jan 2011 07:03:02 +0000 (+0100) Subject: * mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=84f33dd19f522a59528341682bf9093c2834bab1 * mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, use EPG to decrypt S/MIME messages instead of openssl. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d15ecdd20..70c65119d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-12-20 David Engster + + * mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, + use EPG to decrypt S/MIME messages instead of openssl. + 2011-01-02 Lars Magne Ingebrigtsen * nnimap.el (nnimap-request-group): Avoid double SELECT on `M-g'. diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 083781b0f..f097a2f4d 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -683,17 +683,23 @@ (defun mm-view-pkcs7-decrypt (handle &optional from) (insert-buffer-substring (mm-handle-buffer handle)) (goto-char (point-min)) - (insert "MIME-Version: 1.0\n") - (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m") - (smime-decrypt-region - (point-min) (point-max) - (if (= (length smime-keys) 1) - (cadar smime-keys) - (smime-get-key-by-email - (gnus-completing-read - "Decipher using key" - smime-keys nil nil nil (car-safe (car-safe smime-keys))))) - from) + (if (eq mml-smime-use 'epg) + ;; Use EPG/gpgsm + (let ((part (base64-decode-string (buffer-string)))) + (erase-buffer) + (insert (epg-decrypt-string (epg-make-context 'CMS) part))) + ;; Use openssl + (insert "MIME-Version: 1.0\n") + (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m") + (smime-decrypt-region + (point-min) (point-max) + (if (= (length smime-keys) 1) + (cadar smime-keys) + (smime-get-key-by-email + (gnus-completing-read + "Decipher using key" + smime-keys nil nil nil (car-safe (car-safe smime-keys))))) + from)) (goto-char (point-min)) (while (search-forward "\r\n" nil t) (replace-match "\n"))