summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2017-03-04 00:53:11 +0200
committerAlon Bar-Lev <alonbl@gentoo.org>2017-03-04 00:54:02 +0200
commit93fe7824125191ae98cfdd05704a516cb78fac35 (patch)
tree7e25f01adba40c857b2567765ec5b75ef7c81bcd /mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch
parentmedia-libs/vulkan-loader: Drop old versions. (diff)
downloadgentoo-93fe7824125191ae98cfdd05704a516cb78fac35.tar.gz
gentoo-93fe7824125191ae98cfdd05704a516cb78fac35.tar.bz2
gentoo-93fe7824125191ae98cfdd05704a516cb78fac35.zip
mail-filter/opendkim: support gnutls-3.4 + eapi bump
Bug: 583752 Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch')
-rw-r--r--mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch b/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch
new file mode 100644
index 000000000000..f4594efaac94
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim-2.10.3-gnutls-3.4.patch
@@ -0,0 +1,52 @@
+From 3eea12e5f9af7739d5d009c6888b65bd4875a554 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Sat, 4 Mar 2017 00:41:35 +0200
+Subject: [PATCH] crypto: support gnutls-3.4
+
+https://sourceforge.net/p/opendkim/patches/36/
+
+Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
+---
+ libopendkim/dkim.c | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/libopendkim/dkim.c b/libopendkim/dkim.c
+index d0d75a5..0c2278e 100644
+--- a/libopendkim/dkim.c
++++ b/libopendkim/dkim.c
+@@ -5301,6 +5301,8 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ size_t diglen = 0;
+ #ifdef USE_GNUTLS
+ gnutls_datum_t key;
++ gnutls_digest_algorithm_t hash;
++ gnutls_sign_algorithm_t sign_algo;
+ #else /* USE_GNUTLS */
+ BIO *key;
+ #endif /* USE_GNUTLS */
+@@ -5442,7 +5444,22 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ return DKIM_STAT_OK;
+ }
+
+- rsastat = gnutls_pubkey_verify_hash(rsa->rsa_pubkey, 0,
++ hash = GNUTLS_DIG_SHA1;
++
++ if (dkim_libfeature(dkim->dkim_libhandle,
++ DKIM_FEATURE_SHA256) &&
++ sig->sig_hashtype == DKIM_HASHTYPE_SHA256)
++ hash = GNUTLS_DIG_SHA256;
++
++ sign_algo = gnutls_pk_to_sign(GNUTLS_PK_RSA, hash);
++ if (sign_algo == GNUTLS_SIGN_UNKNOWN)
++ {
++ assert(0);
++ /* NOTREACHED */
++ }
++
++ rsastat = gnutls_pubkey_verify_hash2(rsa->rsa_pubkey,
++ sign_algo, 0,
+ &rsa->rsa_digest,
+ &rsa->rsa_sig);
+ if (rsastat < 0)
+--
+2.10.2
+