sendmail broken by libssl in current

Julian Elischer
2015-03-11T06:57:56Z

[sorry for reposting but the original copy I got back had been truncated]

libssl has a new "feature"
implemented by:
crypto/openssl/ssl/t1_lib.c

     672         /* Add padding to workaround bugs in F5 terminators.
     673          * See
https://tools.ietf.org/html/draft-agl-tls-padding-03
     674          *
     675          * NB: because this code works out the length of all
existing
     676          * extensions it MUST always appear last.
     677          */
     678         //if (s->options & SSL_OP_TLSEXT_PADDING)

unfortunatly this makes sendmail incompatible with various email
servers around the world,
including (apparently (ironically (*))) Ironport email gateways.
It fails in TLS handshake.
These are commonly installed at companies and government departments.
consequently if you are mailing an important documant to your bank, or
maybe some tax information to
your friendly tax department, youe emails sit in your queue for a week
until they time out and get dropped.
(you may r may not get notified depending on your spam filters)

I had to make the following "fix" to libssl to get sendmail to be able
to get my tax forms out.

Index: crypto/openssl/ssl/t1_lib.c
==================================================================---
crypto/openssl/ssl/t1_lib.c    (revision 279747)
+++ crypto/openssl/ssl/t1_lib.c    (working copy)
@@ -675,7 +675,8 @@
       * NB: because this code works out the length of all existing
       * extensions it MUST always appear last.
       */
-    if (s->options & SSL_OP_TLSEXT_PADDING)
+    //if (s->options & SSL_OP_TLSEXT_PADDING)
+    if (0)
          {
          int hlen = ret - (unsigned char *)s->init_buf->data;
          /* The code in s23_clnt.c to build ClientHello messages




I saw some hints that there is a change in send mail somewhere that gets
around this but haven't been able to find the exact configuration
change required
to make it happen.

Julian

(*) Ironically because :
1/ Ironport runs on FreeBSD
2/ I used to work there.