;;; Commentary:
-;; RCS: $Id: mml1991.el,v 6.6 2002/02/20 00:15:32 yamaoka Exp $
+;; RCS: $Id: mml1991.el,v 6.7 2002/05/04 14:20:42 jas Exp $
;;; Code:
'((mailcrypt mml1991-mailcrypt-sign
mml1991-mailcrypt-encrypt)
(gpg mml1991-gpg-sign
- mml1991-gpg-encrypt))
+ mml1991-gpg-encrypt)
+ (pgg mml1991-pgg-sign
+ mml1991-pgg-encrypt))
"Alist of PGP functions.")
;;; mailcrypt wrapper
(insert-buffer cipher)
(goto-char (point-max))))))
+;; pgg wrapper
+
+(defun mml1991-pgg-sign (cont)
+ (let (headers)
+ ;; Don't sign headers.
+ (goto-char (point-min))
+ (while (not (looking-at "^$"))
+ (forward-line))
+ (unless (eobp) ;; no headers?
+ (setq headers (buffer-substring (point-min) (point)))
+ (forward-line) ;; skip header/body separator
+ (kill-region (point-min) (point)))
+ (unless (let ((pgg-gpg-user-id (message-options-get 'message-sender)))
+ (pgg-sign-region (point-min) (point-max) t))
+ (pop-to-buffer pgg-errors-buffer)
+ (error "Encrypt error"))
+ (kill-region (point-min) (point-max))
+ (if headers (insert headers))
+ (insert "\n")
+ (insert-buffer pgg-output-buffer)
+ t))
+
+(defun mml1991-pgg-encrypt (cont)
+ (let (headers)
+ ;; Don't sign headers.
+ (goto-char (point-min))
+ (while (not (looking-at "^$"))
+ (forward-line))
+ (unless (eobp) ;; no headers?
+ (setq headers (buffer-substring (point-min) (point)))
+ (forward-line) ;; skip header/body separator
+ (kill-region (point-min) (point)))
+ (unless (pgg-encrypt-region
+ (point-min) (point-max)
+ (list (or
+ (message-options-get 'message-recipients)
+ (message-options-set 'message-recipients
+ (read-string "Recipients: ")))))
+ (pop-to-buffer pgg-errors-buffer)
+ (error "Encrypt error"))
+ (kill-region (point-min) (point-max))
+ (if headers (insert headers))
+ (insert "\n")
+ (insert-buffer pgg-output-buffer)
+ t))
+
;;;###autoload
(defun mml1991-encrypt (cont)
(let ((func (nth 2 (assq mml1991-use mml1991-function-alist))))