* mml-smime: mml-sime-encrypt-to-self
@ 2013-01-06 10:35 Uwe Brauer
2013-01-08 11:14 ` Uwe Brauer
0 siblings, 1 reply; 5+ messages in thread
From: Uwe Brauer @ 2013-01-06 10:35 UTC (permalink / raw)
To: ding
Hello
Mml2015 has the useful variable
mml2015-encrypt-to-self but mml-smime has no equivalent.
I had a look at the code and for me it is not obvious how include this
functionality.
Can somebody familiar with the code have a look please.
Thanks
Uwe Brauer
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: mml-smime: mml-sime-encrypt-to-self
2013-01-06 10:35 mml-smime: mml-sime-encrypt-to-self Uwe Brauer
@ 2013-01-08 11:14 ` Uwe Brauer
2013-01-10 9:08 ` Daiki Ueno
0 siblings, 1 reply; 5+ messages in thread
From: Uwe Brauer @ 2013-01-08 11:14 UTC (permalink / raw)
To: ding
[-- Attachment #1: Type: text/plain, Size: 426 bytes --]
>> "Uwe" == Uwe Brauer <oub@mat.ucm.es> writes:
> Hello Mml2015 has the useful variable mml2015-encrypt-to-self
> but mml-smime has no equivalent.
> I had a look at the code and for me it is not obvious how
> include this functionality.
> Can somebody familiar with the code have a look please.
I think I have implemented it. I attach a patch, since I am not
familiar
with bzr.
Uwe Brauer
[-- Attachment #2: mml-smime-diff --]
[-- Type: application/octet-stream, Size: 4594 bytes --]
diff -u /home/oub/xemacs/site-lisp/packages/gnus-git-28-9-2011/lisp/mml-smime-git.el /home/oub/xemacs/site-lisp/packages/gnus-git-28-9-2011/lisp/mml-smime.el
--- /home/oub/xemacs/site-lisp/packages/gnus-git-28-9-2011/lisp/mml-smime-git.el 2013-01-08 11:31:07.882405203 +0100
+++ /home/oub/xemacs/site-lisp/packages/gnus-git-28-9-2011/lisp/mml-smime.el 2013-01-08 11:31:07.890405032 +0100
@@ -79,6 +79,12 @@
:group 'mime-security
:type 'boolean)
+
+(defcustom mml-smime-encrypt-to-self nil
+ "If t, add your own key ID to recipient list when encryption."
+ :group 'mime-security
+ :type 'boolean)
+
(defun mml-smime-sign (cont)
(let ((func (nth 1 (assq mml-smime-use mml-smime-function-alist))))
(if func
@@ -474,59 +480,68 @@
(defun mml-smime-epg-encrypt (cont)
(let ((inhibit-redisplay t)
- (context (epg-make-context 'CMS))
- (config (epg-configuration))
- (recipients (message-options-get 'mml-smime-epg-recipients))
- cipher signers
- (boundary (mml-compute-boundary cont))
- recipient-key)
+ (context (epg-make-context 'CMS))
+ (config (epg-configuration))
+ (recipients (message-options-get 'mml-smime-epg-recipients))
+ cipher
+ (sender (message-options-get 'message-sender))
+ (signer-names (or mml-smime-signers
+ (if (and mml-smime-sign-with-sender sender)
+ (list (concat "<" sender ">")))))
+ signers
+ (boundary (mml-compute-boundary cont))
+ recipient-key)
(unless recipients
(setq recipients
- (apply #'nconc
- (mapcar
- (lambda (recipient)
- (or (epg-expand-group config recipient)
- (list recipient)))
- (split-string
- (or (message-options-get 'message-recipients)
- (message-options-set 'message-recipients
- (read-string "Recipients: ")))
- "[ \f\t\n\r\v,]+"))))
+ (apply #'nconc
+ (mapcar
+ (lambda (recipient)
+ (or (epg-expand-group config recipient)
+ (list recipient)))
+ (split-string
+ (or (message-options-get 'message-recipients)
+ (message-options-set 'message-recipients
+ (read-string "Recipients: ")))
+ "[ \f\t\n\r\v,]+"))))
+ (when mml-smime-encrypt-to-self
+ (unless signer-names
+ (error "Neither message sender nor mml-smime-signers are set"))
+ (setq recipients (nconc recipients signer-names)))
(if (eq mm-encrypt-option 'guided)
- (setq recipients
- (epa-select-keys context "\
+ (setq recipients
+ (epa-select-keys context "\
Select recipients for encryption.
If no one is selected, symmetric encryption will be performed. "
- recipients))
- (setq recipients
- (mapcar
- (lambda (recipient)
- (setq recipient-key (mml-smime-epg-find-usable-key
- (epg-list-keys context recipient)
- 'encrypt))
- (unless (or recipient-key
- (y-or-n-p
- (format "No public key for %s; skip it? "
- recipient)))
- (error "No public key for %s" recipient))
- recipient-key)
- recipients))
- (unless recipients
- (error "No recipient specified")))
+ recipients))
+ (setq recipients
+ (mapcar
+ (lambda (recipient)
+ (setq recipient-key (mml-smime-epg-find-usable-key
+ (epg-list-keys context recipient)
+ 'encrypt))
+ (unless (or recipient-key
+ (y-or-n-p
+ (format "No public key for %s; skip it? "
+ recipient)))
+ (error "No public key for %s" recipient))
+ recipient-key)
+ recipients))
+ (unless recipients
+ (error "No recipient specified")))
(message-options-set 'mml-smime-epg-recipients recipients))
(if mml-smime-cache-passphrase
- (epg-context-set-passphrase-callback
- context
- #'mml-smime-epg-passphrase-callback))
+ (epg-context-set-passphrase-callback
+ context
+ #'mml-smime-epg-passphrase-callback))
(condition-case error
- (setq cipher
- (epg-encrypt-string context (buffer-string) recipients)
- mml-smime-epg-secret-key-id-list nil)
+ (setq cipher
+ (epg-encrypt-string context (buffer-string) recipients)
+ mml-smime-epg-secret-key-id-list nil)
(error
(while mml-smime-epg-secret-key-id-list
- (password-cache-remove (car mml-smime-epg-secret-key-id-list))
- (setq mml-smime-epg-secret-key-id-list
- (cdr mml-smime-epg-secret-key-id-list)))
+ (password-cache-remove (car mml-smime-epg-secret-key-id-list))
+ (setq mml-smime-epg-secret-key-id-list
+ (cdr mml-smime-epg-secret-key-id-list)))
(signal (car error) (cdr error))))
(delete-region (point-min) (point-max))
(goto-char (point-min))
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: mml-smime: mml-sime-encrypt-to-self
2013-01-08 11:14 ` Uwe Brauer
@ 2013-01-10 9:08 ` Daiki Ueno
2013-01-10 11:16 ` Uwe Brauer
2013-01-11 17:36 ` Uwe Brauer
0 siblings, 2 replies; 5+ messages in thread
From: Daiki Ueno @ 2013-01-10 9:08 UTC (permalink / raw)
To: Uwe Brauer; +Cc: ding
Uwe Brauer <oub@mat.ucm.es> writes:
> I think I have implemented it. I attach a patch, since I am not
> familiar with bzr.
Thanks, looks almost good. I'm going to push a slightly modified
version (attached).
By the way, could you please preserve indentation from the next time
when you send a patch? Also good to use "git diff" or "git
format-patch" to generate diff.
Regards,
--
Daiki Ueno
From 0abd8b04f1c3e1cbe29de65bd6f2b8eac9204ab9 Mon Sep 17 00:00:00 2001
From: Uwe Brauer <oub@mat.ucm.es>
Date: Thu, 10 Jan 2013 18:00:56 +0900
Subject: [PATCH] Add mml-smime-encrypt-to-self.
* mml-smime.el (mml-smime-encrypt-to-self): New user option analogous
to mml2015-encrypt-to-self.
(mml-smime-epg-encrypt): Respect mml-smime-encrypt-to-self.
---
lisp/ChangeLog | 6 ++++++
lisp/mml-smime.el | 28 +++++++++++++++++++++-------
2 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cd8ea7c..2ed5647 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-10 Uwe Brauer <oub@mat.ucm.es> (tiny change)
+
+ * mml-smime.el (mml-smime-encrypt-to-self): New user option analogous
+ to mml2015-encrypt-to-self.
+ (mml-smime-epg-encrypt): Respect mml-smime-encrypt-to-self.
+
2013-01-09 Daiki Ueno <ueno@gnu.org>
* mml-smime.el (epg-sub-key-fingerprint): Autoload for
diff --git a/lisp/mml-smime.el b/lisp/mml-smime.el
index e5e99de..6ea5537 100644
--- a/lisp/mml-smime.el
+++ b/lisp/mml-smime.el
@@ -80,6 +80,12 @@ Whether the passphrase is cached at all is controlled by
:version "24.4"
:type 'boolean)
+(defcustom mml-smime-encrypt-to-self nil
+ "If t, add your own key ID to recipient list when encryption."
+ :group 'mime-security
+ :version "24.4"
+ :type 'boolean)
+
(defun mml-smime-sign (cont)
(let ((func (nth 1 (assq mml-smime-use mml-smime-function-alist))))
(if func
@@ -475,13 +481,17 @@ Content-Disposition: attachment; filename=smime.p7s
(goto-char (point-max))))
(defun mml-smime-epg-encrypt (cont)
- (let ((inhibit-redisplay t)
- (context (epg-make-context 'CMS))
- (config (epg-configuration))
- (recipients (message-options-get 'mml-smime-epg-recipients))
- cipher signers
- (boundary (mml-compute-boundary cont))
- recipient-key)
+ (let* ((inhibit-redisplay t)
+ (context (epg-make-context 'CMS))
+ (config (epg-configuration))
+ (recipients (message-options-get 'mml-smime-epg-recipients))
+ cipher signers
+ (sender (message-options-get 'message-sender))
+ (signer-names (or mml-smime-signers
+ (if (and mml-smime-sign-with-sender sender)
+ (list (concat "<" sender ">")))))
+ (boundary (mml-compute-boundary cont))
+ recipient-key)
(unless recipients
(setq recipients
(apply #'nconc
@@ -494,6 +504,10 @@ Content-Disposition: attachment; filename=smime.p7s
(message-options-set 'message-recipients
(read-string "Recipients: ")))
"[ \f\t\n\r\v,]+"))))
+ (when mml-smime-encrypt-to-self
+ (unless signer-names
+ (error "Neither message sender nor mml-smime-signers are set"))
+ (setq recipients (nconc recipients signer-names)))
(if (eq mm-encrypt-option 'guided)
(setq recipients
(epa-select-keys context "\
--
1.8.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: mml-smime: mml-sime-encrypt-to-self
2013-01-10 9:08 ` Daiki Ueno
@ 2013-01-10 11:16 ` Uwe Brauer
2013-01-11 17:36 ` Uwe Brauer
1 sibling, 0 replies; 5+ messages in thread
From: Uwe Brauer @ 2013-01-10 11:16 UTC (permalink / raw)
To: Daiki Ueno; +Cc: Uwe Brauer, ding
[-- Attachment #1: Type: text/plain, Size: 889 bytes --]
>> "Daiki" == Daiki Ueno <ueno@gnu.org> writes:
> Uwe Brauer <oub@mat.ucm.es> writes:
>> I think I have implemented it. I attach a patch, since I am not
>> familiar with bzr.
> Thanks, looks almost good. I'm going to push a slightly modified
> version (attached).
> By the way, could you please preserve indentation from the next time
> when you send a patch? Also good to use "git diff" or "git
> format-patch" to generate diff.
Oops, I swore I marked the function and run
indent-region-or-balanced-expression!
I run diff -u, I thought that was the preferred way, I have not tried
git. I just did and I obtained
Using git -diff
error: unable to find 7a7b3f6d82d0e18c71ed15b561f186c12dc0ec3d
git format-patch mml-smime.el mml-smime-old.el
fatal: bad object HEAD
I have never every really used git, I admit.
regards
Uwe
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 4488 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: mml-smime: mml-sime-encrypt-to-self
2013-01-10 9:08 ` Daiki Ueno
2013-01-10 11:16 ` Uwe Brauer
@ 2013-01-11 17:36 ` Uwe Brauer
1 sibling, 0 replies; 5+ messages in thread
From: Uwe Brauer @ 2013-01-11 17:36 UTC (permalink / raw)
To: Daiki Ueno; +Cc: Uwe Brauer, ding
[-- Attachment #1: Type: text/plain, Size: 403 bytes --]
>> "Daiki" == Daiki Ueno <ueno@gnu.org> writes:
> Uwe Brauer <oub@mat.ucm.es> writes:
>> I think I have implemented it. I attach a patch, since I am not
>> familiar with bzr.
> Thanks, looks almost good. I'm going to push a slightly modified
> version (attached).
It seems that I cannot apply your patch. You did not commit it yet? I
just wanted to compare your patch with mine.
Uwe
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 4474 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-01-11 17:36 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-06 10:35 mml-smime: mml-sime-encrypt-to-self Uwe Brauer
2013-01-08 11:14 ` Uwe Brauer
2013-01-10 9:08 ` Daiki Ueno
2013-01-10 11:16 ` Uwe Brauer
2013-01-11 17:36 ` Uwe Brauer
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).