From f94e5fd31e70ee59a1d53e4808ec8cda38840271 Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Tue, 21 Feb 2006 15:32:04 +0000 Subject: [PATCH] * mm-view.el (mm-view-pkcs7-verify): Implement using smime.el. --- lisp/ChangeLog | 4 ++++ lisp/mm-view.el | 25 +++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 299f6a423..ca9d8e980 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2006-02-21 Arne J,Ax(Brgensen + + * mm-view.el (mm-view-pkcs7-verify): Implement using smime.el. + 2006-02-21 Wolfram Fenske (tiny change) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 2853a4159..466bc32dc 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -623,19 +623,24 @@ (otherwise (error "Unknown or unimplemented PKCS#7 type")))) (defun mm-view-pkcs7-verify (handle) - ;; A bogus implementation of PKCS#7. FIXME:: - (mm-insert-part handle) - (goto-char (point-min)) - (if (search-forward "Content-Type: " nil t) - (delete-region (point-min) (match-beginning 0))) - (goto-char (point-max)) - (if (re-search-backward "--\r?\n?" nil t) - (delete-region (match-end 0) (point-max))) + (let ((verified nil)) + (with-temp-buffer + (insert "MIME-Version: 1.0\n") + (mm-insert-headers "application/pkcs7-mime" "base64" "smime.p7m") + (insert-buffer-substring (mm-handle-buffer handle)) + (setq verified (smime-verify-region (point-min) (point-max)))) + (goto-char (point-min)) + (mm-insert-part handle) + (if (search-forward "Content-Type: " nil t) + (delete-region (point-min) (match-beginning 0))) + (goto-char (point-max)) + (if (re-search-backward "--\r?\n?" nil t) + (delete-region (match-end 0) (point-max))) + (unless verified + (insert-buffer-substring smime-details-buffer))) (goto-char (point-min)) (while (search-forward "\r\n" nil t) (replace-match "\n")) - (message "Verify signed PKCS#7 message is unimplemented.") - (sit-for 1) t) (defun mm-view-pkcs7-decrypt (handle) -- 2.25.1