2001-08-02 Simon Josefsson <jas@extundo.com>
authorSimon Josefsson <jas@extundo.com>
Wed, 1 Aug 2001 22:24:54 +0000 (22:24 +0000)
committerSimon Josefsson <jas@extundo.com>
Wed, 1 Aug 2001 22:24:54 +0000 (22:24 +0000)
* smime.el (smime-sign-region): Handle stderr.
(smime-encrypt-region): Ditto.

lisp/ChangeLog
lisp/smime.el

index ab2abc2..b1fa09a 100644 (file)
@@ -1,5 +1,8 @@
 2001-08-02  Simon Josefsson  <jas@extundo.com>
 
+       * smime.el (smime-sign-region): Handle stderr.
+       (smime-encrypt-region): Ditto.
+
        * mm-view.el (mm-pkcs7-signed-magic): Make it a regexp.  Don't
        match the ASN.1 length bytes.
        (mm-pkcs7-enveloped-magic): Ditto.
index 2d47307..f7442de 100644 (file)
@@ -233,23 +233,28 @@ to include in its caar."
   (let ((keyfile (car keyfiles))
        (certfiles (and (cdr keyfiles) (cadr keyfiles)))
        (buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
-       (passphrase (smime-ask-passphrase)))
+       (passphrase (smime-ask-passphrase))
+       (tmpfile (make-temp-file "smime")))
     (if passphrase
        (setenv "GNUS_SMIME_PASSPHRASE" passphrase))
     (prog1
-       (when (apply 'smime-call-openssl-region b e buffer "smime" "-sign"
-                    "-signer" (expand-file-name keyfile)
-                    (append
-                     (smime-make-certfiles certfiles)
-                     (if passphrase
-                         (list "-passin" "env:GNUS_SMIME_PASSPHRASE"))))
+       (when (prog1
+                 (apply 'smime-call-openssl-region b e (list buffer tmpfile)
+                        "smime" "-sign" "-signer" (expand-file-name keyfile)
+                        (append
+                         (smime-make-certfiles certfiles)
+                         (if passphrase
+                             (list "-passin" "env:GNUS_SMIME_PASSPHRASE"))))
+               (if passphrase
+                   (setenv "GNUS_SMIME_PASSPHRASE" "" t))
+               (with-current-buffer smime-details-buffer
+                 (insert-file-contents tmpfile)
+                 (delete-file tmpfile)))
          (delete-region b e)
          (insert-buffer-substring buffer)
          (when (looking-at "^MIME-Version: 1.0$")
            (delete-region (point) (progn (forward-line 1) (point))))
          t)
-      (if passphrase
-         (setenv "GNUS_SMIME_PASSPHRASE" "" t))
       (with-current-buffer (get-buffer-create smime-details-buffer)
        (goto-char (point-max))
        (insert-buffer-substring buffer))
@@ -260,10 +265,16 @@ to include in its caar."
 If encryption fails, the buffer is not modified.  Region is assumed to
 have proper MIME tags.  CERTFILES is a list of filenames, each file
 is expected to contain of a PEM encoded certificate."
-  (let ((buffer (generate-new-buffer (generate-new-buffer-name " *smime*"))))
+  (let ((buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
+       (tmpfile (make-temp-file "smime")))
     (prog1
-       (when (apply 'smime-call-openssl-region b e buffer "smime" "-encrypt"
-                    smime-encrypt-cipher (mapcar 'expand-file-name certfiles))
+       (when (prog1
+                 (apply 'smime-call-openssl-region b e (list buffer tmpfile)
+                        "smime" "-encrypt" smime-encrypt-cipher
+                        (mapcar 'expand-file-name certfiles))
+               (with-current-buffer smime-details-buffer
+                 (insert-file-contents tmpfile)
+                 (delete-file tmpfile)))
          (delete-region b e)
          (insert-buffer-substring buffer)
          (when (looking-at "^MIME-Version: 1.0$")