• V
    Protocol version selection and negotiation rewrite · 4fa52141
    Viktor Dukhovni 提交于
    The protocol selection code is now consolidated in a few consecutive
    short functions in a single file and is table driven.  Protocol-specific
    constraints that influence negotiation are moved into the flags
    field of the method structure.  The same protocol version constraints
    are now applied in all code paths.  It is now much easier to add
    new protocol versions without reworking the protocol selection
    logic.
    
    In the presence of "holes" in the list of enabled client protocols
    we no longer select client protocols below the hole based on a
    subset of the constraints and then fail shortly after when it is
    found that these don't meet the remaining constraints (suiteb, FIPS,
    security level, ...).  Ideally, with the new min/max controls users
    will be less likely to create "holes" in the first place.
    Reviewed-by: NKurt Roeckx <kurt@openssl.org>
    4fa52141
ssl_err.c 43.0 KB