* smime.el (smime-sign-region): Handle stderr.
(smime-encrypt-region): Ditto.
2001-08-02 Simon Josefsson <jas@extundo.com>
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.
* mm-view.el (mm-pkcs7-signed-magic): Make it a regexp. Don't
match the ASN.1 length bytes.
(mm-pkcs7-enveloped-magic): Ditto.
(let ((keyfile (car keyfiles))
(certfiles (and (cdr keyfiles) (cadr keyfiles)))
(buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
(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
(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)
(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))
(with-current-buffer (get-buffer-create smime-details-buffer)
(goto-char (point-max))
(insert-buffer-substring buffer))
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."
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")))
- (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$")
(delete-region b e)
(insert-buffer-substring buffer)
(when (looking-at "^MIME-Version: 1.0$")