From: Daniel Dehennin <daniel.dehennin@baby-gnu.org>
To: ding@gnus.org
Subject: [PATCH] Only one sender.
Date: Wed, 28 Jan 2009 13:02:14 +0100 [thread overview]
Message-ID: <87iqnz3agp.fsf@hati.baby-gnu.org> (raw)
In-Reply-To: <87d4e7skx6.fsf@hati.baby-gnu.org>
[-- Attachment #1: Type: text/plain, Size: 366 bytes --]
------------------------------------------------------------
revno: 118
committer: Daniel Dehennin <daniel.dehennin@baby-gnu.org>
branch nick: gnus.mml2015
timestamp: Tue 2009-01-27 23:23:42 +0100
message:
Only one sender.
* lisp/mml2015.el (mml2015-epg-encrypt): From header should have only one
sender address. Split it and fetch only the first one.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Gnus118.patch --]
[-- Type: text/x-patch, Size: 5156 bytes --]
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: daniel.dehennin@baby-gnu.org-20090127222342-\
# 994z6t8g80vrzj9q
# target_branch: ../../gnus.head
# testament_sha1: 11829d0d11b87d6d050bbece843b2c5c4b5941e9
# timestamp: 2009-01-28 13:02:08 +0100
# source_branch: .
# base_revision_id: daniel.dehennin@baby-gnu.org-20090126152327-\
# ccpvwbbxys1zto9f
#
# Begin patch
=== modified file 'lisp/mml2015.el'
--- lisp/mml2015.el 2009-01-22 07:02:15 +0000
+++ lisp/mml2015.el 2009-01-27 22:23:42 +0000
@@ -1025,6 +1025,43 @@
(setq pointer (cdr pointer))))
(setq keys (cdr keys)))))
+(defun mml2015-epg-split-addresses (config addresses)
+ "Split a string of addresses delimited by [ \f\t\n\r\v,]+."
+ (apply #'nconc
+ (mapcar
+ (lambda (recipient)
+ (or (epg-expand-group config recipient)
+ (list (concat "<" recipient ">"))))
+ (split-string
+ (or addresses
+ (read-string "Addresses: "))
+ "[ \f\t\n\r\v,]+"))))
+
+(defun mml2015-epg-prompt-select-keys (context &optional names usage)
+ "Return a key matching NAME.
+USAGE is nil or encrypt to search private keyring.
+USAGE is t or sign to search secret keyring.
+Mostly a wrapper around epa-select-keys."
+ (let ((action (cond
+ ((memq usage '(t sign)) "signing")
+ ((memq usage '(nil encrypt)) "encryption")
+ (t "encryption")))
+ (key-type (cond
+ ((memq usage '(t sign)) 'secret)
+ ((memq usage '(nil encrypt)) 'public)
+ (t 'public)))
+ (no-selection (cond
+ ((memq usage '(t sign)) "default secret key is used")
+ ((memq usage '(nil encrypt)) "symmetric encryption will be performed")
+ (t "symmetric encryption will be performed"))))
+ (epa-select-keys context
+ (format "\
+Select a key for %s.
+If no one is selected, %s
+If more than one is select, first one is used. "
+ action no-selection)
+ names key-type)))
+
(defun mml2015-epg-decrypt (handle ctl)
(catch 'error
(let ((inhibit-redisplay t)
@@ -1182,17 +1219,19 @@
(let* ((inhibit-redisplay t)
(context (epg-make-context))
(boundary (mml-compute-boundary cont))
+ (config (epg-configuration))
+ (sender (list (car
+ (mml2015-epg-split-addresses
+ config
+ (message-options-get 'message-sender)))))
signer-key
(signers
(or (message-options-get 'mml2015-epg-signers)
(message-options-set
'mml2015-epg-signers
(if mml2015-verbose
- (epa-select-keys context "\
-Select keys for signing.
-If no one is selected, default secret key is used. "
- mml2015-signers t)
- (if mml2015-signers
+ (mml2015-epg-prompt-select-keys context sender 'sign)
+ (if sender
(delq nil
(mapcar
(lambda (signer)
@@ -1206,7 +1245,7 @@
signer)))
(error "No secret key for %s" signer))
signer-key)
- mml2015-signers)))))))
+ sender)))))))
signature micalg)
(epg-context-set-armor context t)
(epg-context-set-textmode context t)
@@ -1249,32 +1288,26 @@
(let ((inhibit-redisplay t)
(context (epg-make-context))
(config (epg-configuration))
+ (sender (list (car
+ (mml2015-epg-split-addresses
+ config
+ (message-options-get 'message-sender)))))
(recipients (message-options-get 'mml2015-epg-recipients))
cipher signers
(boundary (mml-compute-boundary cont))
recipient-key signer-key)
(unless recipients
(setq recipients
- (apply #'nconc
- (mapcar
- (lambda (recipient)
- (or (epg-expand-group config recipient)
- (list (concat "<" recipient ">"))))
- (split-string
- (or (message-options-get 'message-recipients)
- (message-options-set 'message-recipients
- (read-string "Recipients: ")))
- "[ \f\t\n\r\v,]+"))))
+ (mml2015-epg-split-addresses
+ config
+ (message-options-get 'message-recipients)))
(when mml2015-encrypt-to-self
- (unless mml2015-signers
- (error "mml2015-signers not set"))
- (setq recipients (nconc recipients mml2015-signers)))
+ (unless sender
+ (error "Message sender not set"))
+ (setq recipients (nconc recipients sender)))
(if mml2015-verbose
(setq recipients
- (epa-select-keys context "\
-Select recipients for encryption.
-If no one is selected, symmetric encryption will be performed. "
- recipients))
+ (mml2015-epg-prompt-select-keys context recipients 'encrypt))
(setq recipients
(delq nil
(mapcar
@@ -1298,11 +1331,8 @@
(message-options-set
'mml2015-epg-signers
(if mml2015-verbose
- (epa-select-keys context "\
-Select keys for signing.
-If no one is selected, default secret key is used. "
- mml2015-signers t)
- (if mml2015-signers
+ (mml2015-epg-prompt-select-keys context sender 'sign)
+ (if sender
(delq nil
(mapcar
(lambda (signer)
@@ -1316,7 +1346,7 @@
signer)))
(error "No secret key for %s" signer))
signer-key)
- mml2015-signers)))))))
+ sender)))))))
(epg-context-set-signers context signers))
(epg-context-set-armor context t)
(epg-context-set-textmode context t)
next prev parent reply other threads:[~2009-01-28 12:02 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-25 20:11 mml2015-epg-sign do not use from header Daniel Dehennin
2009-01-25 20:37 ` Reiner Steib
2009-01-25 20:43 ` Daniel Dehennin
2009-01-26 1:34 ` Daiki Ueno
2009-02-28 11:25 ` Reiner Steib
2009-03-01 3:27 ` Daiki Ueno
2009-01-28 11:57 ` Daniel Dehennin
2009-01-28 11:59 ` [PATCH] mml2015-epg-sign does " Daniel Dehennin
2009-03-01 17:13 ` Daiki Ueno
2009-03-03 18:59 ` Daniel Dehennin
2009-04-13 20:31 ` Daniel Dehennin
2009-04-13 20:32 ` [PATCH] mml2015-epg-encrypt do not use from header to sign Daniel Dehennin
2009-01-28 12:00 ` [PATCH] Factor spliting mail addresses Daniel Dehennin
2009-04-13 20:32 ` Daniel Dehennin
2009-01-28 12:01 ` [PATCH] Cleanup selecting a key for sign and encryption Daniel Dehennin
2009-04-13 20:32 ` Daniel Dehennin
2009-01-28 12:02 ` [PATCH] Only one sender Daniel Dehennin
2009-04-13 20:32 ` Daniel Dehennin
2009-01-28 12:02 ` Daniel Dehennin [this message]
2009-04-13 20:32 ` Daniel Dehennin
2009-01-28 12:02 ` [PATCH] Factorize choosing a key Daniel Dehennin
2009-04-13 20:33 ` Daniel Dehennin
2009-01-28 12:02 ` [PATCH] mml2015-epg-choose-keys handle the verbose selection of keys Daniel Dehennin
2009-04-13 20:33 ` Daniel Dehennin
2009-01-28 12:02 ` [PATCH] Fix variable name, only one sender Daniel Dehennin
2009-01-28 12:02 ` [PATCH] Remove useless variables Daniel Dehennin
2009-04-13 20:33 ` Daniel Dehennin
2009-01-28 12:03 ` [PATCH] Permit to select a key if more than one match a mail address Daniel Dehennin
2009-04-13 20:33 ` Daniel Dehennin
2009-04-13 20:31 ` mml2015-epg-sign do not use from header Daniel Dehennin
2009-04-13 22:48 ` Daiki Ueno
2010-11-15 23:11 ` Daniel Dehennin
2010-11-15 23:13 ` mml2015-epg-sign does not use From header Daniel Dehennin
2010-11-15 23:23 ` Daniel Dehennin
2010-11-16 18:21 ` mml2015-epg-sign do not use from header Lars Magne Ingebrigtsen
2010-11-16 20:23 ` Daniel Dehennin
2010-11-16 20:27 ` Lars Magne Ingebrigtsen
2010-11-16 20:45 ` Daniel Dehennin
2010-11-17 7:34 ` Katsumi Yamaoka
2010-11-17 17:06 ` Daniel Dehennin
2010-11-17 17:13 ` Lars Magne Ingebrigtsen
2010-11-17 17:37 ` Merging ChangeLogs (was: mml2015-epg-sign do not use from header) Sven Joachim
2010-11-21 4:51 ` Merging ChangeLogs Lars Magne Ingebrigtsen
2010-11-21 7:38 ` Sven Joachim
2010-11-21 7:43 ` Lars Magne Ingebrigtsen
2010-11-21 8:12 ` Sven Joachim
2010-11-21 8:19 ` Sven Joachim
2010-11-22 19:42 ` Ted Zlatanov
2010-11-24 21:13 ` Lars Magne Ingebrigtsen
2010-11-17 18:07 ` mml2015-epg-sign do not use from header Julien Danjou
2010-11-21 4:49 ` Lars Magne Ingebrigtsen
2010-11-17 23:08 ` Daniel Dehennin
2010-11-21 4:47 ` Lars Magne Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87iqnz3agp.fsf@hati.baby-gnu.org \
--to=daniel.dehennin@baby-gnu.org \
--cc=ding@gnus.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).