er, this patch didn't work. I've attached a patch that works this time :) Jeff On Mon, 2004-11-08 at 13:32 -0500, Jeffrey Stedfast wrote: > Needed to decode the content stream to gpg, not pass it the encoded > stream. > > Jeff -- Jeffrey Stedfast Evolution Hacker - Novell, Inc. fejj ximian com - www.novell.com
Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/camel/ChangeLog,v retrieving revision 1.2296 diff -u -r1.2296 ChangeLog --- ChangeLog 4 Nov 2004 20:52:49 -0000 1.2296 +++ ChangeLog 8 Nov 2004 19:24:08 -0000 @@ -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-04 Jeffrey Stedfast <fejj novell com> * providers/imap4/camel-imap4-engine.c: Added much in-line Index: camel-gpg-context.c =================================================================== RCS file: /cvs/gnome/evolution/camel/camel-gpg-context.c,v retrieving revision 1.63 diff -u -r1.63 camel-gpg-context.c --- camel-gpg-context.c 20 Sep 2004 05:59:53 -0000 1.63 +++ camel-gpg-context.c 8 Nov 2004 19:24:08 -0000 @@ -1665,18 +1665,28 @@ struct _GpgCtx *gpg; CamelCipherValidity *valid = NULL; CamelStream *ostream, *istream; - + CamelContentType *ct; + const char *protocol; + CamelMultipart *mp; + + mp = (CamelMultipart *) camel_medium_get_content_object ((CamelMedium *) ipart); + ct = ((CamelDataWrapper *) mp)->mime_type; + protocol = camel_content_type_param (ct, "protocol"); + if (!camel_content_type_is (ct, "multipart", "encrypted") + || !CAMEL_IS_MULTIPART_ENCRYPTED (mp) + || protocol == NULL + || g_ascii_strcasecmp (protocol, context->encrypt_protocol) != 0) { + camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, + _("Cannot decrypt message: Incorrect message format")); + return NULL; + } + + ipart = camel_multipart_get_part (mp, 1); + 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(camel_medium_get_content_object((CamelMedium *)ipart), 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);
Attachment:
smime.p7s
Description: S/MIME cryptographic signature