2001-07-29 Simon Josefsson <jas@extundo.com>
authorSimon Josefsson <jas@extundo.com>
Sun, 29 Jul 2001 01:06:19 +0000 (01:06 +0000)
committerSimon Josefsson <jas@extundo.com>
Sun, 29 Jul 2001 01:06:19 +0000 (01:06 +0000)
* mm-view.el (mm-view-pkcs7-decrypt): Adhere to `mm-decrypt-option'.

lisp/ChangeLog
lisp/mm-view.el

index 5706658..070390d 100644 (file)
@@ -1,5 +1,7 @@
 2001-07-29  Simon Josefsson  <jas@extundo.com>
 
+       * mm-view.el (mm-view-pkcs7-decrypt): Adhere to `mm-decrypt-option'.
+
        Support S/MIME decryption.
 
        * mm-decode.el (mm-inline-media-tests): 
index 01ee5c9..fa7d0b4 100644 (file)
 
 ;;      id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
-(defvar mm-pkcs7-signed-magic 
+(defvar mm-pkcs7-signed-magic
   (mm-string-as-unibyte
    (apply 'concat
          (mapcar 'char-to-string
   
 ;;      id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 }
-(defvar mm-pkcs7-enveloped-magic 
+(defvar mm-pkcs7-enveloped-magic
   (mm-string-as-unibyte
    (apply 'concat
          (mapcar 'char-to-string
     (otherwise (error "Unknown or unimplemented PKCS#7 type"))))
 
 (defun mm-view-pkcs7-decrypt (handle)
-  (let (res)
-    (with-temp-buffer
-      (insert-buffer (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
-         (completing-read "Decrypt this part with which key? "
-                          smime-keys nil nil
-                          (and (listp (car-safe smime-keys))
-                               (caar smime-keys))))))
-      (setq res (buffer-string)))
-    (mm-insert-inline handle res)))
+  (if (cond
+       ((eq mm-decrypt-option 'never) nil)
+       ((eq mm-decrypt-option 'always) t)
+       ((eq mm-decrypt-option 'known) t)
+       (t (y-or-n-p
+          (format "Decrypt (S/MIME) part? "))))
+      (let (res)
+       (with-temp-buffer
+         (insert-buffer (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
+             (completing-read "Decrypt this part with which key? "
+                              smime-keys nil nil
+                              (and (listp (car-safe smime-keys))
+                                   (caar smime-keys))))))
+         (setq res (buffer-string)))
+       (mm-insert-inline handle res))))
 
 (provide 'mm-view)