aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@novell.com>2004-11-10 01:10:26 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2004-11-10 01:10:26 +0800
commiteebf9be69590771ec04c254ec6391237dee3622c (patch)
tree570fc27a007d05cba2246a094834d0ef46a4dc06 /camel
parentdf5bede1f424f7829ddee0ec3d93e0bc47283c75 (diff)
downloadgsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar.gz
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar.bz2
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar.lz
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar.xz
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.tar.zst
gsoc2013-evolution-eebf9be69590771ec04c254ec6391237dee3622c.zip
Fix for bug #69241.
2004-11-08 Jeffrey Stedfast <fejj@novell.com> Fix for bug #69241. * camel-gpg-context.c (gpg_decrypt): We need to extract just the application/pgp-encrypted part from the multipart/encrypted that gets passed in. Added checks to verify that the input part is the correct type as well. Once we have the application/pgp-encrypted part, we need to use camel_data_wrapper_decode_to_stream() in case the part was encoded in any way. svn path=/trunk/; revision=27876
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog11
-rw-r--r--camel/camel-gpg-context.c26
2 files changed, 27 insertions, 10 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index f343b0439b..ab9a878995 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,14 @@
+2004-11-08 Jeffrey Stedfast <fejj@novell.com>
+
+ Fix for bug #69241.
+
+ * camel-gpg-context.c (gpg_decrypt): We need to extract just the
+ application/pgp-encrypted part from the multipart/encrypted that
+ gets passed in. Added checks to verify that the input part is the
+ correct type as well. Once we have the application/pgp-encrypted
+ part, we need to use camel_data_wrapper_decode_to_stream() in case
+ the part was encoded in any way.
+
2004-11-09 Jeffrey Stedfast <fejj@novell.com>
* providers/imap4/camel-imap4-stream.c (camel_imap4_stream_line):
diff --git a/camel/camel-gpg-context.c b/camel/camel-gpg-context.c
index 5dee244fd4..37c354b923 100644
--- a/camel/camel-gpg-context.c
+++ b/camel/camel-gpg-context.c
@@ -1665,18 +1665,24 @@ gpg_decrypt(CamelCipherContext *context, CamelMimePart *ipart, CamelMimePart *op
struct _GpgCtx *gpg;
CamelCipherValidity *valid = NULL;
CamelStream *ostream, *istream;
-
+ CamelDataWrapper *content;
+ CamelMimePart *encrypted;
+ CamelContentType *ct;
+ const char *protocol;
+ CamelMultipart *mp;
+
+ mp = (CamelMultipart *) camel_medium_get_content_object ((CamelMedium *) ipart);
+ if (!(encrypted = camel_multipart_get_part (mp, CAMEL_MULTIPART_ENCRYPTED_CONTENT))) {
+ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Failed to decrypt MIME part: protocol error"));
+ return NULL;
+ }
+
+ content = camel_medium_get_content_object ((CamelMedium *) encrypted);
+
istream = camel_stream_mem_new();
- camel_data_wrapper_write_to_stream(camel_medium_get_content_object((CamelMedium *)ipart), istream);
+ camel_data_wrapper_decode_to_stream (content, istream);
camel_stream_reset(istream);
-
- /* TODO: de-canonicalise end of lines? */
- /*stream = camel_stream_mem_new ();
- filtered_stream = (CamelStream *) camel_stream_filter_new_with_stream (stream);
- crlf_filter = camel_mime_filter_crlf_new (CAMEL_MIME_FILTER_CRLF_DECODE,
- CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY);
- camel_stream_filter_add (CAMEL_STREAM_FILTER (filtered_stream), crlf_filter);
- camel_object_unref (crlf_filter);*/
+
ostream = camel_stream_mem_new();
camel_stream_mem_set_secure((CamelStreamMem *)ostream);