Function: mm-view-pkcs7-decrypt

mm-view-pkcs7-decrypt is an autoloaded and byte-compiled function defined in mm-view.el.gz.

Signature

(mm-view-pkcs7-decrypt HANDLE &optional FROM)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mm-view.el.gz
(defun mm-view-pkcs7-decrypt (handle &optional from)
  (insert-buffer-substring (mm-handle-buffer handle))
  (goto-char (point-min))
  (if (eq mml-smime-use 'epg)
      ;; Use EPG/gpgsm
      (let ((part (base64-decode-string (buffer-string))))
	(erase-buffer)
	(insert
         (let ((context (epg-make-context 'CMS)))
           (prog1
               (epg-decrypt-string context part)
             (mm-sec-status 'gnus-info "OK")))))
    ;; 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"))
  (goto-char (point-min)))