;;; smime.el --- S/MIME support library
-;; Copyright (c) 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: SMIME X.509 PEM OpenSSL
-;; This file is not a part of GNU Emacs, but the same permissions apply.
+;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
Directory should contain files (in PEM format) named to the X.509
hash of the certificate. This can be done using OpenSSL such as:
-$ ln -s ca.pem `openssl x509 -noout -hash -in ca.pem`
+$ ln -s ca.pem `openssl x509 -noout -hash -in ca.pem`.0
where `ca.pem' is the file containing a PEM encoded X.509 CA
certificate."
(defvar smime-details-buffer "*OpenSSL output*")
+;; Use mm-util?
(eval-and-compile
(defalias 'smime-make-temp-file
(if (fboundp 'make-temp-file)
(point-min) (point-max)
(if keyfile
keyfile
- (smime-get-key-by-email
+ (smime-get-key-with-certs-by-email
(completing-read
- (concat "Sign using which signature? "
+ (concat "Sign using which key? "
(if smime-keys (concat "(default " (caar smime-keys) ") ")
""))
- smime-keys nil nil nil nil (car-safe (car-safe smime-keys))))))))
+ smime-keys nil nil (car-safe (car-safe smime-keys))))))))
(defun smime-encrypt-buffer (&optional certfiles buffer)
"S/MIME encrypt BUFFER for recipients specified in CERTFILES.
(insert-buffer-substring smime-details-buffer)
nil))
+(eval-when-compile
+ (defvar from))
+
(defun smime-decrypt-region (b e keyfile)
"Decrypt S/MIME message in region between B and E with key in KEYFILE.
On success, replaces region with decrypted data and return non-nil.
(delete-file tmpfile)))
(progn
(delete-region b e)
+ (when (boundp 'from)
+ ;; `from' is dynamically bound in mm-dissect.
+ (insert "From: " from "\n"))
(insert-buffer-substring buffer)
(kill-buffer buffer)
t)
(concat "Decipher using which key? "
(if smime-keys (concat "(default " (caar smime-keys) ") ")
""))
- smime-keys nil nil nil nil (car-safe (car-safe smime-keys)))))))))
+ smime-keys nil nil (car-safe (car-safe smime-keys)))))))))
;; Various operations
(caddr curkey)
(smime-get-certfiles keyfile otherkeys)))))
+;; Use mm-util?
(eval-and-compile
(defalias 'smime-point-at-eol
(if (fboundp 'point-at-eol)
(defun smime-get-key-by-email (email)
(cadr (assoc email smime-keys)))
+(defun smime-get-key-with-certs-by-email (email)
+ (cdr (assoc email smime-keys)))
+
(provide 'smime)
;;; smime.el ends here