GnuTLS: fix the advertising of acceptable certs by the server. Bug 2389
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 19 May 2019 11:12:36 +0000 (12:12 +0100)
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Fri, 19 Jul 2019 06:55:06 +0000 (08:55 +0200)
(cherry picked from commit 12d95aa62042377fc9f603245a17a43142972447)
(cherry picked from commit 44893ba5249c6c6d5a0d62a1cc57ba3fbf7185b4)

doc/doc-txt/ChangeLog
src/src/tls-gnu.c

index dbede67b62718618f0046b1864fbbeb679129996..9c3127b1b2f039335d4c9a5650ebefe60a5dec12 100644 (file)
@@ -67,6 +67,10 @@ JH/19 Bug 2398: fix listing of a named-queue.  Previously, even with the option
       queue_list_requires_admin set to false, non-admin users were denied the
       facility.
 
       queue_list_requires_admin set to false, non-admin users were denied the
       facility.
 
+JH/20 Bug 2389: fix server advertising of usable certificates, under GnuTLS in
+      directory-of-certs mode.  Previously they were advertised despite the
+      documentation.
+
 
 Exim version 4.92
 -----------------
 
 Exim version 4.92
 -----------------
index 746eabfdeb4f6f9411afef84f8fd6153006f4788..867dbbe3dd8a438bcb1a951011068c39ab30e8d3 100644 (file)
@@ -1136,6 +1136,14 @@ else
 #endif
     gnutls_certificate_set_x509_trust_file(state->x509_cred,
       CS state->exp_tls_verify_certificates, GNUTLS_X509_FMT_PEM);
 #endif
     gnutls_certificate_set_x509_trust_file(state->x509_cred,
       CS state->exp_tls_verify_certificates, GNUTLS_X509_FMT_PEM);
+
+#ifdef SUPPORT_CA_DIR
+  /* Mimic the behaviour with OpenSSL of not advertising a usable-cert list
+  when using the directory-of-certs config model. */
+
+  if ((statbuf.st_mode & S_IFMT) == S_IFDIR)
+    gnutls_certificate_send_x509_rdn_sequence(state->session, 1);
+#endif
   }
 
 if (cert_count < 0)
   }
 
 if (cert_count < 0)