From 51506cce7d6ca06e3d61adb45da5673708761d62 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Fri, 28 Jul 2006 02:44:47 +0000 Subject: [PATCH] * mml2015.el (mml2015-signers): New user option. (mml2015-epg-sign): Reflect the value of mml2015-signers. (mml2015-epg-encrypt): Allow to select signing keys. * mml1991.el (mml1991-signers): New variable. (mml1991-epg-sign): Reflect the value of mml1991-signers. (mml1991-epg-encrypt): Allow to select signing keys. --- lisp/ChangeLog | 10 ++++++++++ lisp/mml1991.el | 24 +++++++++++++++++++----- lisp/mml2015.el | 29 ++++++++++++++++++++++------- 3 files changed, 51 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0c498cef5..614614094 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2006-07-28 Daiki Ueno + + * mml2015.el (mml2015-signers): New user option. + (mml2015-epg-sign): Reflect the value of mml2015-signers. + (mml2015-epg-encrypt): Allow to select signing keys. + + * mml1991.el (mml1991-signers): New variable. + (mml1991-epg-sign): Reflect the value of mml1991-signers. + (mml1991-epg-encrypt): Allow to select signing keys. + 2006-07-27 Katsumi Yamaoka * nnheader.el (nnheader-insert-head): Make it work even if the file diff --git a/lisp/mml1991.el b/lisp/mml1991.el index ca7f5b918..44e8c6672 100644 --- a/lisp/mml1991.el +++ b/lisp/mml1991.el @@ -64,6 +64,9 @@ Whether the passphrase is cached at all is controlled by `mml1991-cache-passphrase'.") +(defvar mml1991-signers nil + "A list of key ID which will be used to sign a message.") + ;;; mailcrypt wrapper (eval-and-compile @@ -356,10 +359,11 @@ Whether the passphrase is cached at all is controlled by (if mml1991-verbose (setq signers (epa-select-keys context "Select keys for signing. If no one is selected, default secret key is used. " - nil t)) - (setq signers (list (car (epg-list-keys - context - (message-options-get 'mml-sender) t))))) + mml1991-signers t)) + (setq signers (mapcar (lambda (name) + (car (epg-list-keys context name t))) + (or mml1991-signers + (list (message-options-get 'mml-sender)))))) (epg-context-set-armor context t) (epg-context-set-textmode context t) (epg-context-set-signers context signers) @@ -414,7 +418,7 @@ If no one is selected, default secret key is used. " (when cte (mm-decode-content-transfer-encoding (intern (downcase cte)))))) (let ((context (epg-make-context)) - recipients cipher) + recipients cipher signers) (if (or mml1991-verbose (null (message-options-get 'message-recipients))) (setq recipients @@ -430,6 +434,16 @@ If no one is selected, symmetric encryption will be performed. " (split-string (message-options-get 'message-recipients) "[ \f\t\n\r\v,]+")))) + (when sign + (if mml1991-verbose + (setq signers (epa-select-keys context "Select keys for signing. +If no one is selected, default secret key is used. " + mml1991-signers t)) + (setq signers (mapcar (lambda (name) + (car (epg-list-keys context name t))) + (or mml1991-signers + (list (message-options-get 'mml-sender)))))) + (epg-context-set-signers context signers)) (epg-context-set-armor context t) (epg-context-set-textmode context t) (if mml1991-cache-passphrase diff --git a/lisp/mml2015.el b/lisp/mml2015.el index 35d025a6d..54d5f3530 100644 --- a/lisp/mml2015.el +++ b/lisp/mml2015.el @@ -120,6 +120,11 @@ Whether the passphrase is cached at all is controlled by :group 'mime-security :type 'integer) +(defcustom mml2015-signers nil + "A list of key ID which will be used to sign a message." + :group 'mime-security + :type '(repeat (string :tag "Key ID"))) + ;;; mailcrypt wrapper (eval-and-compile @@ -1106,10 +1111,11 @@ Whether the passphrase is cached at all is controlled by (if mml2015-verbose (setq signers (epa-select-keys context "Select keys for signing. If no one is selected, default secret key is used. " - nil t)) - (setq signers (list (car (epg-list-keys - context - (message-options-get 'mml-sender) t))))) + mml2015-signers t)) + (setq signers (mapcar (lambda (name) + (car (epg-list-keys context name t))) + (or mml2015-signers + (list (message-options-get 'mml-sender)))))) (epg-context-set-armor context t) (epg-context-set-textmode context t) (epg-context-set-signers context signers) @@ -1150,10 +1156,9 @@ If no one is selected, default secret key is used. " (defun mml2015-epg-encrypt (cont &optional sign) (let ((inhibit-redisplay t) (context (epg-make-context)) - recipients cipher + recipients cipher signers (boundary (mml-compute-boundary cont))) - (if (or mml2015-verbose - (null (message-options-get 'message-recipients))) + (if mml2015-verbose (setq recipients (epa-select-keys context "Select recipients for encryption. If no one is selected, symmetric encryption will be performed. " @@ -1167,6 +1172,16 @@ If no one is selected, symmetric encryption will be performed. " (split-string (message-options-get 'message-recipients) "[ \f\t\n\r\v,]+")))) + (when sign + (if mml2015-verbose + (setq signers (epa-select-keys context "Select keys for signing. +If no one is selected, default secret key is used. " + mml2015-signers t)) + (setq signers (mapcar (lambda (name) + (car (epg-list-keys context name t))) + (or mml2015-signers + (list (message-options-get 'mml-sender)))))) + (epg-context-set-signers context signers)) (epg-context-set-armor context t) (epg-context-set-textmode context t) (if mml2015-cache-passphrase -- 2.25.1