summaryrefslogtreecommitdiff
path: root/mail/opendkim/files/patch-libopendkim_dkim.c
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2020-07-10 13:10:56 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2020-07-10 13:10:56 +0000
commit388b188225c282f9e5e947643df258fdc23ea68f (patch)
tree42dc78939901176cf03bd108b31ca5b2a4034142 /mail/opendkim/files/patch-libopendkim_dkim.c
parentgraphics/mesa-dri: switch powerpc64 to llvmpipe (diff)
Unbreak the build with options GNUTLS and/or OPENDBX.
PR: 247634
Diffstat (limited to '')
-rw-r--r--mail/opendkim/files/patch-libopendkim_dkim.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/mail/opendkim/files/patch-libopendkim_dkim.c b/mail/opendkim/files/patch-libopendkim_dkim.c
new file mode 100644
index 000000000000..a38e543f0e0b
--- /dev/null
+++ b/mail/opendkim/files/patch-libopendkim_dkim.c
@@ -0,0 +1,34 @@
+--- libopendkim/dkim.c.orig 2015-05-12 18:43:09 UTC
++++ libopendkim/dkim.c
+@@ -5301,6 +5301,10 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ size_t diglen = 0;
+ #ifdef USE_GNUTLS
+ gnutls_datum_t key;
++#if GNUTLS_VERSION_MAJOR > 2
++ gnutls_digest_algorithm_t hash;
++ gnutls_sign_algorithm_t sign_algo;
++#endif
+ #else /* USE_GNUTLS */
+ BIO *key;
+ #endif /* USE_GNUTLS */
+@@ -5442,7 +5446,20 @@ dkim_sig_process(DKIM *dkim, DKIM_SIGINFO *sig)
+ return DKIM_STAT_OK;
+ }
+
++#if GNUTLS_VERSION_MAJOR < 3
+ rsastat = gnutls_pubkey_verify_hash(rsa->rsa_pubkey, 0,
++#else
++ hash = dkim_libfeature(dkim->dkim_libhandle,
++ DKIM_FEATURE_SHA256) &&
++ sig->sig_hashtype == DKIM_HASHTYPE_SHA256
++ ? GNUTLS_DIG_SHA256 : GNUTLS_DIG_SHA1;
++
++ sign_algo = gnutls_pk_to_sign(GNUTLS_PK_RSA, hash);
++ assert(sign_algo != GNUTLS_SIGN_UNKNOWN);
++
++ rsastat = gnutls_pubkey_verify_hash2(rsa->rsa_pubkey,
++ sign_algo, 0,
++#endif
+ &rsa->rsa_digest,
+ &rsa->rsa_sig);
+ if (rsastat < 0)