Do not replace multipart/signed part with content part when doing verification.
authorJameson Graef Rollins <jrollins@finestructure.net>
Fri, 27 May 2011 10:27:36 +0000 (03:27 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 27 May 2011 23:22:00 +0000 (16:22 -0700)
Some folks have complained about the part renumbering that occurs when
the entire multipart/signed part is replaced with the part contents
after verification.  This is primarily because it incurs an additional
computational cost to retrieve individual parts, since verification
has to be performed again to ensure that part numbering is consistent.
This patch simply leaves the full multipart/signed part as is.

The emacs crypto test is also updated to reflect this change.

show-message.c
test/crypto

index 37252b22b2d05f8d4f01dc47fb9b9f2dabd8cf8d..849c686259d8dc2fee2757718dc2be9af10706b5 100644 (file)
@@ -105,8 +105,6 @@ show_message_part (GMimeObject *part,
                }
                if ((selected || state->in_zone) && format->part_sigstatus)
                    format->part_sigstatus (sigvalidity);
-               /* extract only data part, and ignore signature part */
-               part = g_mime_multipart_get_part (multipart, 0);
                if (sigvalidity)
                    g_mime_signature_validity_free (sigvalidity);
            }
index 21a601391b4b4b4c872c5bb4a0e932f4edd399df..02516430999c31feac5c22250f4ab6ff93a6e44b 100755 (executable)
@@ -57,8 +57,12 @@ expected='[[[{"id": "XXXXX",
  "sigstatus": [{"status": "good",
  "fingerprint": "'$FINGERPRINT'",
  "created": 946728000}],
+ "content-type": "multipart/signed",
+ "content": [{"id": 2,
  "content-type": "text/plain",
- "content": "This is a test signed message.\n"}]},
+ "content": "This is a test signed message.\n"},
+ {"id": 3,
+ "content-type": "application/pgp-signature"}]}]},
  []]]]'
 test_expect_equal \
     "$output" \
@@ -88,8 +92,12 @@ expected='[[[{"id": "XXXXX",
  "fingerprint": "'$FINGERPRINT'",
  "created": 946728000,
  "userid": " Notmuch Test Suite <test_suite@notmuchmail.org> (INSECURE!)"}],
+ "content-type": "multipart/signed",
+ "content": [{"id": 2,
  "content-type": "text/plain",
- "content": "This is a test signed message.\n"}]},
+ "content": "This is a test signed message.\n"},
+ {"id": 3,
+ "content-type": "application/pgp-signature"}]}]},
  []]]]'
 test_expect_equal \
     "$output" \
@@ -117,8 +125,12 @@ expected='[[[{"id": "XXXXX",
  "sigstatus": [{"status": "error",
  "keyid": "'$(echo $FINGERPRINT | cut -c 25-)'",
  "errors": 2}],
+ "content-type": "multipart/signed",
+ "content": [{"id": 2,
  "content-type": "text/plain",
- "content": "This is a test signed message.\n"}]},
+ "content": "This is a test signed message.\n"},
+ {"id": 3,
+ "content-type": "application/pgp-signature"}]}]},
  []]]]'
 test_expect_equal \
     "$output" \
@@ -320,8 +332,12 @@ expected='[[[{"id": "XXXXX",
  "sigstatus": [{"status": "error",
  "keyid": "6D92612D94E46381",
  "errors": 8}],
+ "content-type": "multipart/signed",
+ "content": [{"id": 2,
  "content-type": "text/plain",
- "content": "This is a test signed message.\n"}]},
+ "content": "This is a test signed message.\n"},
+ {"id": 3,
+ "content-type": "application/pgp-signature"}]}]},
  []]]]'
 test_expect_equal \
     "$output" \