X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmml2015.el;h=69d71ab4a0bb90aded4049c698ced1428f0bd54c;hb=72d1fcb3d2889a6eef814f750cef8e643f521b71;hp=3199df8fad51bb02ec72ee8295d47b3e30d5218e;hpb=20bc985a3232ebba106d335afcfd6b596bb8efba;p=gnus diff --git a/lisp/mml2015.el b/lisp/mml2015.el index 3199df8fa..69d71ab4a 100644 --- a/lisp/mml2015.el +++ b/lisp/mml2015.el @@ -1,6 +1,7 @@ ;;; mml2015.el --- MIME Security with Pretty Good Privacy (PGP) -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 -;; Free Software Foundation, Inc. + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu ;; Keywords: PGP MIME MML @@ -34,6 +35,8 @@ (require 'mm-util) (require 'mml) +(defvar mc-pgp-always-sign) + (defvar mml2015-use (or (progn (ignore-errors @@ -645,7 +648,8 @@ Valid packages include `pgg', `gpg' and `mailcrypt'.") (autoload 'pgg-decrypt-region "pgg") (autoload 'pgg-verify-region "pgg") (autoload 'pgg-sign-region "pgg") - (autoload 'pgg-encrypt-region "pgg")) + (autoload 'pgg-encrypt-region "pgg") + (autoload 'pgg-parse-armor "pgg-parse")) (defun mml2015-pgg-decrypt (handle ctl) (catch 'error @@ -813,15 +817,24 @@ Valid packages include `pgg', `gpg' and `mailcrypt'.") (let ((pgg-errors-buffer mml2015-result-buffer) (boundary (mml-compute-boundary cont)) (pgg-default-user-id (or (message-options-get 'mml-sender) - pgg-default-user-id))) + pgg-default-user-id)) + (pgg-text-mode t) + entry) (unless (pgg-sign-region (point-min) (point-max)) (pop-to-buffer mml2015-result-buffer) (error "Sign error")) (goto-char (point-min)) (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n" boundary)) - ;;; FIXME: what is the micalg? - (insert "\tmicalg=pgp-sha1; protocol=\"application/pgp-signature\"\n") + (if (setq entry (assq 2 (pgg-parse-armor + (with-current-buffer pgg-output-buffer + (buffer-string))))) + (setq entry (assq 'hash-algorithm (cdr entry)))) + (insert (format "\tmicalg=%s; " + (if (cdr entry) + (downcase (format "pgp-%s" (cdr entry))) + "pgp-sha1"))) + (insert "protocol=\"application/pgp-signature\"\n") (insert (format "\n--%s\n" boundary)) (goto-char (point-max)) (insert (format "\n--%s\n" boundary)) @@ -833,6 +846,7 @@ Valid packages include `pgg', `gpg' and `mailcrypt'.") (defun mml2015-pgg-encrypt (cont &optional sign) (let ((pgg-errors-buffer mml2015-result-buffer) + (pgg-text-mode t) (boundary (mml-compute-boundary cont))) (unless (pgg-encrypt-region (point-min) (point-max) (split-string @@ -867,7 +881,7 @@ Valid packages include `pgg', `gpg' and `mailcrypt'.") (erase-buffer) t) (setq mml2015-result-buffer - (gnus-get-buffer-create "*MML2015 Result*")) + (gnus-get-buffer-create " *MML2015 Result*")) nil)) (defsubst mml2015-clear-decrypt-function ()