diff options
Diffstat (limited to 'camel/tests/smime')
-rw-r--r-- | camel/tests/smime/Makefile.am | 6 | ||||
-rw-r--r-- | camel/tests/smime/pgp-mime.c | 2 | ||||
-rw-r--r-- | camel/tests/smime/pgp.c | 62 |
3 files changed, 49 insertions, 21 deletions
diff --git a/camel/tests/smime/Makefile.am b/camel/tests/smime/Makefile.am index ea3cab9d52..b14d804dc3 100644 --- a/camel/tests/smime/Makefile.am +++ b/camel/tests/smime/Makefile.am @@ -17,8 +17,8 @@ LDADD = \ $(EVOLUTION_MAIL_LIBS) check_PROGRAMS = \ - pgp \ - pgp-mime + pgp +# pgp-mime # pkcs7 -TESTS = pgp pgp-mime #pkcs7 +TESTS = pgp #pgp-mime pkcs7 diff --git a/camel/tests/smime/pgp-mime.c b/camel/tests/smime/pgp-mime.c index 557b3353ab..102092679a 100644 --- a/camel/tests/smime/pgp-mime.c +++ b/camel/tests/smime/pgp-mime.c @@ -141,7 +141,7 @@ int main (int argc, char **argv) setenv ("GNUPGHOME", "/tmp/camel-test/.gnupg", 1); /* import the gpg keys */ - if ((ret = system ("gpg > /dev/null 2>&1")) == -1) + if ((ret = system ("gpg < /dev/null > /dev/null 2>&1")) == -1) return 77; else if (WEXITSTATUS (ret) == 127) return 77; diff --git a/camel/tests/smime/pgp.c b/camel/tests/smime/pgp.c index 2c8de8ccd1..81ea6fabdf 100644 --- a/camel/tests/smime/pgp.c +++ b/camel/tests/smime/pgp.c @@ -120,8 +120,9 @@ int main (int argc, char **argv) CamelCipherContext *ctx; CamelException *ex; CamelCipherValidity *valid; - CamelStream *stream1, *stream2, *stream3; - struct _CamelMimePart *sigpart; + CamelStream *stream1, *stream2; + struct _CamelMimePart *sigpart, *conpart, *encpart, *outpart; + CamelDataWrapper *dw; GPtrArray *recipients; GByteArray *buf; char *before, *after; @@ -135,7 +136,7 @@ int main (int argc, char **argv) setenv ("GNUPGHOME", "/tmp/camel-test/.gnupg", 1); /* import the gpg keys */ - if ((ret = system ("gpg > /dev/null 2>&1")) == -1) + if ((ret = system ("gpg < /dev/null > /dev/null 2>&1")) == -1) return 77; else if (WEXITSTATUS (ret) == 127) return 77; @@ -155,58 +156,85 @@ int main (int argc, char **argv) stream1 = camel_stream_mem_new (); camel_stream_write (stream1, "Hello, I am a test stream.\n", 27); camel_stream_reset (stream1); - + + conpart = camel_mime_part_new(); + dw = camel_data_wrapper_new(); + camel_data_wrapper_construct_from_stream(dw, stream1); + camel_medium_set_content_object((CamelMedium *)conpart, dw); + camel_object_unref(stream1); + camel_object_unref(dw); + sigpart = camel_mime_part_new(); camel_test_push ("PGP signing"); - camel_cipher_sign (ctx, "no.user@no.domain", CAMEL_CIPHER_HASH_SHA1, stream1, sigpart, ex); + camel_cipher_sign (ctx, "no.user@no.domain", CAMEL_CIPHER_HASH_SHA1, conpart, sigpart, ex); check_msg (!camel_exception_is_set (ex), "%s", camel_exception_get_description (ex)); camel_test_pull (); camel_exception_clear (ex); camel_test_push ("PGP verify"); - camel_stream_reset (stream1); - valid = camel_cipher_verify (ctx, CAMEL_CIPHER_HASH_SHA1, stream1, sigpart, ex); + valid = camel_cipher_verify (ctx, sigpart, ex); check_msg (!camel_exception_is_set (ex), "%s", camel_exception_get_description (ex)); check_msg (camel_cipher_validity_get_valid (valid), "%s", camel_cipher_validity_get_description (valid)); camel_cipher_validity_free (valid); camel_test_pull (); - camel_object_unref(stream1); + camel_object_unref(conpart); camel_object_unref(sigpart); stream1 = camel_stream_mem_new (); - stream2 = camel_stream_mem_new (); - stream3 = camel_stream_mem_new (); - camel_stream_write (stream1, "Hello, I am a test of encryption/decryption.", 44); camel_stream_reset (stream1); + + conpart = camel_mime_part_new(); + dw = camel_data_wrapper_new(); + camel_stream_reset(stream1); + camel_data_wrapper_construct_from_stream(dw, stream1); + camel_medium_set_content_object((CamelMedium *)conpart, dw); + camel_object_unref(stream1); + camel_object_unref(dw); + + encpart = camel_mime_part_new(); camel_exception_clear (ex); camel_test_push ("PGP encrypt"); recipients = g_ptr_array_new (); g_ptr_array_add (recipients, "no.user@no.domain"); - camel_cipher_encrypt (ctx, FALSE, "no.user@no.domain", recipients, - stream1, stream2, ex); + camel_cipher_encrypt (ctx, "no.user@no.domain", recipients, conpart, encpart, ex); check_msg (!camel_exception_is_set (ex), "%s", camel_exception_get_description (ex)); g_ptr_array_free (recipients, TRUE); camel_test_pull (); - - camel_stream_reset (stream2); + camel_exception_clear (ex); camel_test_push ("PGP decrypt"); - camel_cipher_decrypt (ctx, stream2, stream3, ex); + outpart = camel_mime_part_new(); + valid = camel_cipher_decrypt (ctx, encpart, outpart, ex); check_msg (!camel_exception_is_set (ex), "%s", camel_exception_get_description (ex)); + check_msg (valid->encrypt.status == CAMEL_CIPHER_VALIDITY_ENCRYPT_ENCRYPTED, "%s", valid->encrypt.description); + + stream1 = camel_stream_mem_new(); + stream2 = camel_stream_mem_new(); + + camel_data_wrapper_write_to_stream((CamelDataWrapper *)conpart, stream1); + camel_data_wrapper_write_to_stream((CamelDataWrapper *)outpart, stream2); + buf = CAMEL_STREAM_MEM (stream1)->buffer; before = g_strndup (buf->data, buf->len); - buf = CAMEL_STREAM_MEM (stream3)->buffer; + buf = CAMEL_STREAM_MEM (stream2)->buffer; after = g_strndup (buf->data, buf->len); check_msg (string_equal (before, after), "before = '%s', after = '%s'", before, after); g_free (before); g_free (after); + + camel_object_unref(stream1); + camel_object_unref(stream2); + camel_object_unref(conpart); + camel_object_unref(encpart); + camel_object_unref(outpart); + camel_test_pull (); camel_object_unref (CAMEL_OBJECT (ctx)); |