diff options
author | Not Zed <NotZed@Ximian.com> | 2003-10-30 12:58:33 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2003-10-30 12:58:33 +0800 |
commit | 52759f2d4018b8ff0ce173aa1237b08783f1424c (patch) | |
tree | c6b392bea311df4d965b3e234cb769d6bf78e7e0 /camel/camel-multipart-signed.c | |
parent | 4c9e3c871c301e92711b91f0df0aca2521567db1 (diff) | |
download | gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.gz gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.bz2 gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.lz gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.xz gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.zst gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.zip |
Added a note about api inconsistencies.
2003-10-30 Not Zed <NotZed@Ximian.com>
* camel-cipher-context.h: Added a note about api inconsistencies.
2003-10-30 Not Zed <NotZed@Ximian.com>
* camel-multipart-encrypted.c (camel_multipart_encrypted_decrypt):
fix for cipher_decrypt changes.
* camel-gpg-context.c, camel-cipher-context.c: moved all the init
code to the end to save having to keep forward declarations
around.
(camel_cipher_decrypt): changed to take mimepart input and return
a mimepart.
(gpg_decrypt): fix for changed args.
2003-10-29 Not Zed <NotZed@Ximian.com>
* camel-smime-context.[ch]: replaced entirely with a new
implementation which inherits from camel-cipher-context, and add
to build.
* camel-multipart-encrypted.c (camel_multipart_encrypted_encrypt):
fix for cipher_encrypt api changes.
(camel_multipart_encrypted_decrypt): use g_ascii_strcasecmp.
* camel-gpg-context.c (gpg_encrypt): Fix to handle input/output as
parts not streams
* camel-cipher-context.c (camel_cipher_encrypt): change to take
mimeparts rather than streams as input/output. And remove the
'sign' argument, it is implied if userid is supplied.
2003-10-28 Not Zed <NotZed@Ximian.com>
* tests/smime/pgp.c (main): fix for ciphercontext api changes.
* camel-multipart-signed.c (camel_multipart_signed_verify): pass
in the part to cipher_verify directly.
(camel_multipart_signed_sign): let the cipher context setup the
part details.
* camel-gpg-context.c (gpg_sign): put the signature stream into a
mimepart, with appropriate headers/encoding.
(swrite): write out a mimepart rather than a stream.
(gpg_verify): handle changed args.
* camel-cipher-context.c (camel_cipher_sign): write the signature
to a mimepart rather than a simple stream.
(camel_cipher_verify): take the signature as a mimepart not a
stream.
2003-10-22 Not Zed <NotZed@Ximian.com>
* camel-utf8.c (camel_ucs2_utf8, camel_utf8_ucs2): helpers for
ucs2 stuff. ucs2 is 16 bit truncated unicode.
svn path=/trunk/; revision=23127
Diffstat (limited to 'camel/camel-multipart-signed.c')
-rw-r--r-- | camel/camel-multipart-signed.c | 39 |
1 files changed, 10 insertions, 29 deletions
diff --git a/camel/camel-multipart-signed.c b/camel/camel-multipart-signed.c index c249690ad4..bc5e363c8d 100644 --- a/camel/camel-multipart-signed.c +++ b/camel/camel-multipart-signed.c @@ -593,12 +593,10 @@ int camel_multipart_signed_sign(CamelMultipartSigned *mps, CamelCipherContext *context, CamelMimePart *content, const char *userid, CamelCipherHash hash, CamelException *ex) { CamelMimeFilter *canon_filter; - CamelStream *sigstream, *mem; + CamelStream *mem; CamelStreamFilter *filter; CamelContentType *mime_type; - CamelMimePart *signature; - CamelDataWrapper *dw; - char *type; + CamelMimePart *sigpart; /* this needs to be set */ g_return_val_if_fail(context->sign_protocol != NULL, -1); @@ -624,27 +622,14 @@ camel_multipart_signed_sign(CamelMultipartSigned *mps, CamelCipherContext *conte printf("-- end\n"); #endif - sigstream = camel_stream_mem_new(); + sigpart = camel_mime_part_new(); - if (camel_cipher_sign(context, userid, hash, mem, sigstream, ex) == -1) { - camel_object_unref((CamelObject *)mem); - camel_object_unref((CamelObject *)sigstream); + if (camel_cipher_sign(context, userid, hash, mem, sigpart, ex) == -1) { + camel_object_unref(mem); + camel_object_unref(sigpart); return -1; } - /* create the signature wrapper object */ - signature = camel_mime_part_new(); - dw = camel_data_wrapper_new(); - type = alloca(strlen(context->sign_protocol) + 32); - sprintf(type, "%s; name=signature.asc", context->sign_protocol); - camel_data_wrapper_set_mime_type(dw, type); - camel_stream_reset(sigstream); - camel_data_wrapper_construct_from_stream(dw, sigstream); - camel_object_unref((CamelObject *)sigstream); - camel_medium_set_content_object((CamelMedium *)signature, dw); - camel_object_unref((CamelObject *)dw); - camel_mime_part_set_description(signature, _("This is a digitally signed message part")); - /* setup our mime type and boundary */ mime_type = camel_content_type_new("multipart", "signed"); camel_content_type_set_param(mime_type, "micalg", camel_cipher_hash_to_id(context, hash)); @@ -655,7 +640,7 @@ camel_multipart_signed_sign(CamelMultipartSigned *mps, CamelCipherContext *conte /* just keep the whole raw content. We dont *really* need to do this because we know how we just proccessed it, but, well, better to be safe than sorry */ - mps->signature = signature; + mps->signature = sigpart; mps->contentraw = mem; camel_stream_reset(mem); @@ -685,7 +670,7 @@ camel_multipart_signed_verify(CamelMultipartSigned *mps, CamelCipherContext *con { CamelCipherValidity *valid; CamelMimePart *sigpart; - CamelStream *sigstream, *constream; + CamelStream *constream; /* we need to be able to verify stuff we just signed as well as stuff we loaded from a stream/parser */ @@ -713,13 +698,10 @@ camel_multipart_signed_verify(CamelMultipartSigned *mps, CamelCipherContext *con } /* we do this as a normal mime part so we can have it handle transfer encoding etc */ - sigstream = camel_stream_mem_new(); sigpart = camel_multipart_get_part((CamelMultipart *)mps, CAMEL_MULTIPART_SIGNED_SIGNATURE); - camel_data_wrapper_write_to_stream((CamelDataWrapper *)sigpart, sigstream); - camel_stream_reset(sigstream); /* do the magic, the caller must supply the right context for this kind of object */ - valid = camel_cipher_verify(context, camel_cipher_id_to_hash(context, mps->micalg), constream, sigstream, ex); + valid = camel_cipher_verify(context, camel_cipher_id_to_hash(context, mps->micalg), constream, sigpart, ex); #if 0 { @@ -733,8 +715,7 @@ camel_multipart_signed_verify(CamelMultipartSigned *mps, CamelCipherContext *con } #endif - camel_object_unref((CamelObject *)constream); - camel_object_unref((CamelObject *)sigstream); + camel_object_unref(constream); return valid; } |