unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Jani Nikula <jani@nikula.org>
To: notmuch@notmuchmail.org
Subject: [PATCH] emacs: sign/encrypt replies to signed/encrypted messages
Date: Sat,  5 Apr 2014 12:18:06 +0300	[thread overview]
Message-ID: <1396689486-19232-1-git-send-email-jani@nikula.org> (raw)
In-Reply-To: <87a9f1c8aq.fsf@servo.finestructure.net>

This is a simple approach to improving security when replying to
signed or encrypted messages. If the message being replied to was
signed, add mml tag to sign the reply. If the message being replied to
was encrypted, add mml tag to sign and encrypt the reply.

This may need configuration; I for one might want to encrypt replies
to encrypted messages, but not always sign replies to signed messages.

This still includes a slight bug: if any mml tags are added, they are
included in the region containing the quoted parts. Killing the region
will kill the mml tags too.
---
 emacs/notmuch-mua.el | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index ba3ef275ec5e..9fb84b57b030 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -115,6 +115,15 @@ list."
 	    (push header message-hidden-headers)))
 	notmuch-mua-hidden-headers))
 
+(defun notmuch-mua-reply-crypto (parts)
+  (loop for part in parts
+	if (notmuch-match-content-type (plist-get part :content-type) "multipart/signed")
+	  do (mml-secure-message-sign)
+	else if (notmuch-match-content-type (plist-get part :content-type) "multipart/encrypted")
+	  do (mml-secure-message-sign-encrypt)
+	else if (notmuch-match-content-type (plist-get part :content-type) "multipart/*")
+	  do (notmuch-mua-reply-crypto (plist-get part :content))))
+
 (defun notmuch-mua-get-quotable-parts (parts)
   (loop for part in parts
 	if (notmuch-match-content-type (plist-get part :content-type) "multipart/alternative")
@@ -224,7 +233,10 @@ list."
 	(set-mark (point))
 	(goto-char start)
 	;; Quote the original message according to the user's configured style.
-	(message-cite-original))))
+	(message-cite-original)))
+
+    ;; Sign and/or encrypt replies to signed and/or encrypted messages.
+    (notmuch-mua-reply-crypto (plist-get original :body)))
 
   ;; Push mark right before signature, if any.
   (message-goto-signature)
-- 
1.9.1

  parent reply	other threads:[~2014-04-05  9:18 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-12 19:24 encrypting replies to encrypted mail Jameson Graef Rollins
2014-01-12 20:01 ` Nicolás Reynolds
2014-01-12 20:21   ` Jameson Graef Rollins
2014-01-12 20:50 ` Jani Nikula
2014-04-05  9:18 ` Jani Nikula [this message]
2014-04-07  6:16   ` [PATCH] emacs: sign/encrypt replies to signed/encrypted messages Jameson Graef Rollins
2014-04-07  6:40   ` [PATCH] emacs: process crypto for reply only when specified Jameson Graef Rollins
2014-04-13  1:46     ` David Bremner
2014-04-13 11:00       ` Tomi Ollila
2014-04-13 12:56         ` David Bremner
2014-04-13 20:41           ` Tomi Ollila
2014-04-13 22:15             ` David Bremner
2014-04-13 23:37             ` Jameson Graef Rollins
2014-04-14  8:42               ` Tomi Ollila
2014-04-14 12:26                 ` Tomi Ollila
2014-04-14 17:15   ` [PATCH] emacs: sign/encrypt replies to signed/encrypted messages David Bremner
2014-04-14 17:51     ` Jani Nikula
2014-04-14 18:24       ` Jameson Graef Rollins
2014-04-14 18:59         ` David Bremner
2014-04-14 19:40           ` [PATCH] emacs: remove auto-signing of replies to signed messages Jameson Graef Rollins
2014-04-14 19:48             ` Tomi Ollila
2014-04-15 10:02             ` David Bremner
2014-04-15 15:26               ` Jameson Graef Rollins

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

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1396689486-19232-1-git-send-email-jani@nikula.org \
    --to=jani@nikula.org \
    --cc=notmuch@notmuchmail.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.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

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 read-only IMAP folder(s) and NNTP newsgroup(s).