committed after fixing the issues pointed out by your comments.
Jeff
On Tue, 2004-11-09 at 06:37 +0800, Not Zed wrote:
>
> None of the checks are required, these are performed in the mail code.
> If the wrong data gets passed by other clients thats their fault.
>
> You should use CAMEL_MULTIPART_ENCRYPTED_CONTENT rather than 1 as the
> multipart number.
>
> And you should check that the content part actually exists (and fail
> if it doesn't). It'd probably also be better if it didn't re-use the
> ipart variable.
>
> On Mon, 2004-11-08 at 14:25 -0500, Jeffrey Stedfast wrote:
> > 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
> >
> > text/plain attachment (69241.patch)
> > 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);
> >
--
Jeffrey Stedfast
Evolution Hacker - Novell, Inc.
fejj ximian com - www.novell.com
Attachment:
smime.p7s
Description: S/MIME cryptographic signature