Hi all I am a PGP user and I use SHA-512 as my default OpenPGP message digest (hash).. it's also set in my key preferences. Using Evolution, I get the hash type force-set to SHA-1 every time I send a mail. I looked at the source code just now, and I see that it enforces SHA-1 instead of using the GnuPG defaults. Attached are two patches against my Fedora Core 4 Evolution SRPMS (evolution-2.2.3-2.fc4 and evolution-data-server-1.2.3-3.fc4) to fix this behaviour and also introduce SHA256, SHA384 and SHA512 message digests which GnuPG 1.4.x stable supports. Attached is a screenshot of a working patched Evolution too. Mukund
diff -ru evolution-2.2.3.orig/composer/e-msg-composer.c evolution-2.2.3/composer/e-msg-composer.c --- evolution-2.2.3.orig/composer/e-msg-composer.c 2005-04-08 15:48:22.000000000 +0100 +++ evolution-2.2.3/composer/e-msg-composer.c 2005-11-07 13:46:10.000000000 +0000 @@ -670,7 +670,7 @@ CamelMimePart *npart = camel_mime_part_new(); cipher = mail_crypto_get_pgp_cipher_context(hdrs->account); - camel_cipher_sign(cipher, pgp_userid, CAMEL_CIPHER_HASH_SHA1, part, npart, &ex); + camel_cipher_sign(cipher, pgp_userid, CAMEL_CIPHER_HASH_DEFAULT, part, npart, &ex); camel_object_unref(cipher); if (camel_exception_is_set(&ex)) {
diff -ru evolution-data-server-1.2.3.orig/camel/camel-cipher-context.h evolution-data-server-1.2.3/camel/camel-cipher-context.h --- evolution-data-server-1.2.3.orig/camel/camel-cipher-context.h 2004-12-02 08:03:29.000000000 +0000 +++ evolution-data-server-1.2.3/camel/camel-cipher-context.h 2005-11-07 13:37:07.000000000 +0000 @@ -52,7 +52,10 @@ CAMEL_CIPHER_HASH_SHA1, CAMEL_CIPHER_HASH_RIPEMD160, CAMEL_CIPHER_HASH_TIGER192, - CAMEL_CIPHER_HASH_HAVAL5160 + CAMEL_CIPHER_HASH_HAVAL5160, + CAMEL_CIPHER_HASH_SHA256, + CAMEL_CIPHER_HASH_SHA384, + CAMEL_CIPHER_HASH_SHA512 } CamelCipherHash; enum _camel_cipher_validity_sign_t { diff -ru evolution-data-server-1.2.3.orig/camel/camel-gpg-context.c evolution-data-server-1.2.3/camel/camel-gpg-context.c --- evolution-data-server-1.2.3.orig/camel/camel-gpg-context.c 2005-02-01 05:57:15.000000000 +0000 +++ evolution-data-server-1.2.3/camel/camel-gpg-context.c 2005-11-07 13:42:44.000000000 +0000 @@ -122,7 +122,6 @@ case CAMEL_CIPHER_HASH_MD5: return "pgp-md5"; case CAMEL_CIPHER_HASH_SHA1: - case CAMEL_CIPHER_HASH_DEFAULT: return "pgp-sha1"; case CAMEL_CIPHER_HASH_RIPEMD160: return "pgp-ripemd160"; @@ -130,6 +129,14 @@ return "pgp-tiger192"; case CAMEL_CIPHER_HASH_HAVAL5160: return "pgp-haval-5-160"; + case CAMEL_CIPHER_HASH_SHA256: + return "pgp-sha256"; + case CAMEL_CIPHER_HASH_SHA384: + return "pgp-sha384"; + case CAMEL_CIPHER_HASH_SHA512: + return "pgp-sha512"; + case CAMEL_CIPHER_HASH_DEFAULT: + return "pgp-default"; } return NULL; @@ -151,6 +158,14 @@ return CAMEL_CIPHER_HASH_TIGER192; else if (!strcmp (id, "haval-5-160")) return CAMEL_CIPHER_HASH_HAVAL5160; + else if (!strcmp (id, "pgp-sha256")) + return CAMEL_CIPHER_HASH_SHA256; + else if (!strcmp (id, "pgp-sha384")) + return CAMEL_CIPHER_HASH_SHA384; + else if (!strcmp (id, "pgp-sha512")) + return CAMEL_CIPHER_HASH_SHA512; + else if (!strcmp (id, "pgp-default")) + return CAMEL_CIPHER_HASH_DEFAULT; } return CAMEL_CIPHER_HASH_DEFAULT; @@ -476,6 +491,12 @@ return "--digest-algo=SHA1"; case CAMEL_CIPHER_HASH_RIPEMD160: return "--digest-algo=RIPEMD160"; + case CAMEL_CIPHER_HASH_SHA256: + return "--digest-algo=SHA256"; + case CAMEL_CIPHER_HASH_SHA384: + return "--digest-algo=SHA384"; + case CAMEL_CIPHER_HASH_SHA512: + return "--digest-algo=SHA512"; default: return NULL; }
Attachment:
it-works.png
Description: PNG image