;;; mime-pgp.el --- mime-view internal methods for PGP.
-;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko
+;; Copyright (C) 1995,1996,1997,1998,1999 MORIOKA Tomohiko
;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Created: 1995/12/7
(defun mime-verify-multipart/signed (entity situation)
"Internal method to verify multipart/signed."
- (mime-raw-play-entity
+ (mime-play-entity
(nth 1 (mime-entity-children entity)) ; entity-info of signature
- (cdr (assq 'mode situation)) ; play-mode
+ (list (assq 'mode situation)) ; play-mode
))
;;; It is based on draft-kazu-pgp-mime-00.txt (PGP-kazu).
(defun mime-view-application/pgp (entity situation)
- (let* ((start (mime-entity-point-min entity))
- (end (mime-entity-point-max entity))
- (entity-number (mime-raw-point-to-entity-number start))
- (p-win (or (get-buffer-window mime-preview-buffer)
+ (let* ((p-win (or (get-buffer-window (current-buffer))
(get-largest-window)))
- (new-name (format "%s-%s" (buffer-name) entity-number))
- (the-buf (current-buffer))
- (mother mime-preview-buffer)
- (mode major-mode)
+ (new-name
+ (format "%s-%s" (buffer-name) (mime-entity-number entity)))
+ (mother (current-buffer))
representation-type)
(set-buffer (get-buffer-create new-name))
(erase-buffer)
- (insert-buffer-substring the-buf start end)
+ (mime-insert-entity entity)
(cond ((progn
(goto-char (point-min))
(re-search-forward "^-+BEGIN PGP SIGNED MESSAGE-+$" nil t))
(while (re-search-forward "^- -" nil t)
(replace-match "-")
)
- (setq representation-type
- (cdr (or (assq mode mime-raw-representation-type-alist)
- (assq t mime-raw-representation-type-alist))))
+ (setq representation-type (if (mime-entity-cooked-p entity)
+ 'cooked))
)
((progn
(goto-char (point-min))
(setq representation-type 'binary)
))
(setq major-mode 'mime-show-message-mode)
- (setq mime-raw-representation-type representation-type)
- (save-window-excursion (mime-view-mode mother))
+ (save-window-excursion (mime-view-buffer nil nil mother
+ nil representation-type))
(set-window-buffer p-win mime-preview-buffer)
))
(defun mime-verify-application/pgp-signature (entity situation)
"Internal method to check PGP/MIME signature."
- (let* ((start (mime-entity-point-min entity))
- (end (mime-entity-point-max entity))
- (encoding (cdr (assq 'encoding situation)))
- (entity-node-id (mime-raw-point-to-entity-node-id start))
- (mother-node-id (cdr entity-node-id))
+ (let* ((entity-node-id (mime-entity-node-id entity))
+ (mother (mime-entity-parent entity))
(knum (car entity-node-id))
(onum (if (> knum 0)
(1- knum)
(1+ knum)))
- (oinfo (mime-raw-find-entity-from-node-id
- (cons onum mother-node-id) mime-message-structure))
- (basename (expand-file-name "tm" mime-temp-directory))
+ (orig-entity (nth onum (mime-entity-children mother)))
+ (basename (expand-file-name "tm" temporary-file-directory))
(orig-file (make-temp-name basename))
(sig-file (concat orig-file ".sig"))
)
- (mime-raw-write-region (mime-entity-point-min oinfo)
- (mime-entity-point-max oinfo)
- orig-file)
+ (mime-write-entity orig-entity orig-file)
(save-excursion (mime-show-echo-buffer))
- (mime-write-decoded-region (save-excursion
- (goto-char start)
- (and (search-forward "\n\n")
- (match-end 0))
- ) end sig-file encoding)
+ (mime-write-entity-content entity sig-file)
(or (mime-pgp-check-signature mime-echo-buffer-name orig-file)
(let (pgp-id)
(save-excursion
(defun mime-decrypt-application/pgp-encrypted (entity situation)
(let* ((entity-node-id (mime-entity-node-id entity))
- (mother-node-id (cdr entity-node-id))
+ (mother (mime-entity-parent entity))
(knum (car entity-node-id))
(onum (if (> knum 0)
(1- knum)
(1+ knum)))
- (oinfo (mime-raw-find-entity-from-node-id
- (cons onum mother-node-id) mime-message-structure)))
- (mime-view-application/pgp oinfo situation)
+ (orig-entity (nth onum (mime-entity-children mother))))
+ (mime-view-application/pgp orig-entity situation)
))