Function: gnus-mime-security-verify-or-decrypt

gnus-mime-security-verify-or-decrypt is a byte-compiled function defined in gnus-art.el.gz.

Signature

(gnus-mime-security-verify-or-decrypt HANDLE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-mime-security-verify-or-decrypt (handle)
  (mm-remove-parts (cdr handle))
  (let ((region (mm-handle-multipart-ctl-parameter handle 'gnus-region))
	point (inhibit-read-only t))
    (if region
	(goto-char (car region)))
    (setq point (point))
    (with-current-buffer (mm-handle-multipart-original-buffer handle)
      (let* ((mm-verify-option 'known)
             (mm-decrypt-option 'known)
             (pkcs7-mime-p (or (equal (car handle) "application/pkcs7-mime")
                               (equal (car handle) "application/x-pkcs7-mime")))
             (nparts (if pkcs7-mime-p
                         (list (mm-possibly-verify-or-decrypt
                                (cadr handle) (cadadr handle)))
                       (mm-possibly-verify-or-decrypt (cdr handle) handle))))
        (unless (eq nparts (cdr handle))
          ;; if pkcs7-mime don't destroy the parts as the buffer in
          ;; the cdr still needs to be accessible
          (when (not pkcs7-mime-p)
            (mm-destroy-parts (cdr handle)))
          (setcdr handle nparts))))
    (gnus-mime-display-security handle)
    (when region
      (delete-region (point) (cdr region))
      (set-marker (car region) nil)
      (set-marker (cdr region) nil))
    (goto-char point)))