Control: severity important

Hi Jeremy,

Cc'ing the OpenSSL maintainers.

On Mon, Nov 21, 2016 at 07:42:17AM +0100, Salvatore Bonaccorso wrote:
> Hi Jeremy,
>
> On Thu, Oct 13, 2016 at 06:20:49PM -0400, Jeremy T. Bouse wrote:
> > Upstream has been completely MIA for several years now. I've not really
> > checked to determine if there's actually anything dependent on libesmtp
> > and have contemplated archive removal as I am not taking over as
> > upstream and the project itself has appeared to be lifeless and I've
> > merely been keeping the packaging updated.
>
> Some time ago you wrote the above. In case you are interested, I might
> happy to help maintaining it until someone steps up who as well will
> take it over from upstream development point of view.
>
> popcon is increasing for libesmtp actually, it is not dead, and some
> packages depend on it.
>
> And from my personal point of view, I have the additional patch to
> support TSL 1.1+ running since several months now.
>
> Let me know, and regards. Thanks a lot for maintaining it for Debian.

I guess now we need to take action. OpenSSL changed as follows with
the upload of openssl today, the "should support" might now be
rewritten to "needs to support":

https://lists.debian.org/debian-devel-announce/2017/08/msg00004.html

[...]
When building it will now already show the deprecation:

/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.   
-Wdate-time -D_FORTIFY_SOURCE=2 -pthread -std=c99 -pedantic -g -O2 
-fdebug-prefix-map=/build/libesmtp-1.0.6=. -fstack-protector-strong -Wformat 
-Werror=format-security          -Wall -Wchar-subscripts -Wmis
sing-declarations -Wmissing-prototypes         -Wstrict-prototypes 
-Wnested-externs -Wpointer-arith         -Wbad-function-cast -Wcast-align 
-pthread -std=c99 -pedantic -g -O2 -fdebug-prefix-map=/build/libesmtp-1.0.6=. 
-fstack-protector-strong -Wformat -Werror=format-security -c -o
smtp-tls.lo smtp-tls.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -Wdate-time -D_FORTIFY_SOURCE=2 
-pthread -std=c99 -pedantic -g -O2 -fdebug-prefix-map=/build/libesmtp-1.0.6=. 
-fstack-protector-strong -Wformat -Werror=format-security -Wall 
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes
-Wstrict-prototypes -Wnested-externs -Wpointer-arith -Wbad-function-cast 
-Wcast-align -pthread -std=c99 -pedantic -g -O2 
-fdebug-prefix-map=/build/libesmtp-1.0.6=. -fstack-protector-strong -Wformat 
-Werror=format-security -c smtp-tls.c  -fPIC -DPIC -o .libs/smtp-tls.o
smtp-tls.c: In function 'starttls_create_ctx':
smtp-tls.c:204:3: warning: 'TLSv1_client_method' is deprecated 
[-Wdeprecated-declarations]
   ctx = SSL_CTX_new (TLSv1_client_method ());
   ^~~
In file included from /usr/include/openssl/ct.h:13:0,
                 from /usr/include/openssl/ssl.h:61,
                 from libesmtp-private.h:28,
                 from smtp-tls.c:46:
/usr/include/openssl/ssl.h:1614:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* 
TLSv1.0 */
 ^
[...]

Please find attached a (refreshed) patch which is still valid to add
the proper support for TLSv1.1+

Regards,
Salvatore
Description: Add TLSv1.1 and TLSv1.2 support
Origin: vendor
Bug-Debian: https://bugs.debian.org/802658
Author: Salvatore Bonaccorso <car...@debian.org>
Last-Update: 2015-11-07

--- a/smtp-tls.c
+++ b/smtp-tls.c
@@ -197,11 +197,24 @@ starttls_create_ctx (smtp_session_t sess
   ckf_t status;
 
   /* The decision not to support SSL v2 and v3 but instead to use only
-     TLSv1 is deliberate.  This is in line with the intentions of RFC
+     TLSv1.X is deliberate.  This is in line with the intentions of RFC
      3207.  Servers typically support SSL as well as TLS because some
      versions of Netscape do not support TLS.  I am assuming that all
      currently deployed servers correctly support TLS.  */
-  ctx = SSL_CTX_new (TLSv1_client_method ());
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && \
+    !defined(LIBRESSL_VERSION_NUMBER)  && !defined(OPENSSL_IS_BORINGSSL)
+    ctx = SSL_CTX_new (TLS_client_method ());
+#else
+    ctx = SSL_CTX_new (SSLv23_client_method ());
+#endif
+
+#ifdef OPENSSL_NO_SSL3
+    SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3);
+#endif
+
+#ifdef OPENSSL_NO_SSL2
+    SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
+#endif
 
   /* Load our keys and certificates.  To avoid messing with configuration
      variables etc, use fixed paths for the certificate store.  These are

Reply via email to