summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mail/evolution-data-server/distinfo3
-rw-r--r--mail/evolution-data-server/patches/patch-bd44
2 files changed, 46 insertions, 1 deletions
diff --git a/mail/evolution-data-server/distinfo b/mail/evolution-data-server/distinfo
index 2c362729db2..3e4f40a32d3 100644
--- a/mail/evolution-data-server/distinfo
+++ b/mail/evolution-data-server/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.56 2009/02/16 23:31:38 drochner Exp $
+$NetBSD: distinfo,v 1.57 2009/02/17 11:01:43 drochner Exp $
SHA1 (evolution-data-server-2.24.4.1.tar.bz2) = 95ec53d366d82d51aea8e253b4360cb0db9ba984
RMD160 (evolution-data-server-2.24.4.1.tar.bz2) = d08d08e85a9da85f24fee845bc98de62bddfb717
@@ -14,3 +14,4 @@ SHA1 (patch-at) = 32bb4f9de33a3799ad7a1a00dd072b38a800185c
SHA1 (patch-ba) = d90f9aa715725780d01b71e3464d20c9575d2db4
SHA1 (patch-bb) = 915106112ec4606dc6b7626c6d81ccce1cab0d57
SHA1 (patch-bc) = 6a1f6a549325f1067e4ff85c845b81e024955411
+SHA1 (patch-bd) = b00c9886bded9775020dfba5bb8c3bd8d009341b
diff --git a/mail/evolution-data-server/patches/patch-bd b/mail/evolution-data-server/patches/patch-bd
new file mode 100644
index 00000000000..0539063f8e7
--- /dev/null
+++ b/mail/evolution-data-server/patches/patch-bd
@@ -0,0 +1,44 @@
+$NetBSD: patch-bd,v 1.1 2009/02/17 11:01:43 drochner Exp $
+
+--- camel/camel-smime-context.c.orig 2008-10-13 10:07:53.000000000 +0200
++++ camel/camel-smime-context.c
+@@ -40,6 +40,7 @@
+ #include <smime.h>
+ #include <pkcs11t.h>
+ #include <pk11func.h>
++#include <secoid.h>
+
+ #include <errno.h>
+
+@@ -545,6 +546,11 @@ sm_verify_cmsg(CamelCipherContext *conte
+
+ /* need to build digests of the content */
+ if (!NSS_CMSSignedData_HasDigests(sigd)) {
++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests"));
++ goto fail;
++ } else {
++ int which_digest;
++
+ if (extstream == NULL) {
+ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Digests missing from enveloped data"));
+ goto fail;
+@@ -573,9 +579,16 @@ sm_verify_cmsg(CamelCipherContext *conte
+ goto fail;
+ }
+
+- if (NSS_CMSSignedData_SetDigests(sigd, digestalgs, digests) != SECSuccess) {
+- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests"));
+- goto fail;
++ for (which_digest = 0; digests[which_digest] != NULL; which_digest++) {
++ SECOidData *digest_alg = SECOID_FindOID(&digestalgs[which_digest]->algorithm);
++ if (digest_alg == NULL) {
++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests"));
++ goto fail;
++ }
++ if (NSS_CMSSignedData_SetDigestValue(sigd, digest_alg->offset, digests[which_digest]) != SECSuccess) {
++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests"));
++ goto fail;
++ }
+ }
+
+ PORT_FreeArena(poolp, PR_FALSE);