On Sun, Apr 22, 2012 at 04:13:03PM -0400, Wietse Venema wrote:

> > On Sun, Apr 22, 2012 at 03:28:43PM -0400, Wietse Venema wrote:
> > 
> > > Why do we need to have (expr & TLS_KNOWN_PROTOCOLS) in the code
> > > in the first place? If we get rid of it, then we don't have to
> > > rush out patches each time the OpenSSL team comes out with a
> > > new incompatible protocol. 
> > 
> > The "TLS_KNOWN_PROTOCOLS" bits are a Postfix tls.h feature, there
> 
> Yes, but do we need this? Otherwise I'll rip this out and avoid
> the need to rush out five inter-operability patches each time 
> that the OpenSSL team enriches our lives with another protocol.

When OpenSSL adds new protocols we still need new code to support
exclusion of new protocols. Nothing in "TLS_KNOWN_PROTOCOLS" changes
that.

The "TLS_KNOWN_PROTOCOLS" bitmask supports conversion of:

        smtp_tls_protocols = TLSv1

to the equivalent (for Postfix 2.9 or earlier)

        smtp_tls_protocols = !SSLv2, !SSLv3

With Postfix 2.10 (patched as proposed), the equivalent exclusion
form is:

        smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1_1, !TLSv1_2

so the mapping from a set to its complement, naturally depends on
the universal set at hand.

Dropping the inclusion syntax creates a backwards compatibility
problem.

I am not sure why you feel there is an imperative to drop it. If
we don't want to implement features to disable new protocols, we
don't need to make any code changes. If we do want to allow
control over new protocols, we need new code, with our without
TLS_KNOWN_PROTOCOLS.

-- 
        Viktor.

Reply via email to