Hi,

after having problems with the cipher sorting after enabling the 56bit
ciphers, I have written a patch to "ssl_create_cipher_list()".
The problem became visible in client mode, since the list of ciphers
presented by the client is used to decide about the cipher used.

Since the patch is a 70kB context diff, I don't want to send it over the
mailing list. It can be downloaded in its latest version "B.02" from
   ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/related/openssl-patch/
- From my point of view, the work on the patch is finished.
  (With the exception of the bit strength values that are now hardcoded
  in the tables; is 3DES 168 bits or 112 as discussed on this list?)
- I would appreciate any bug report, comment etc.
- This patch should be included into the OpenSSL source for the next release.

For details, please check the appended README.
This patch was partly inspired by Ben Laurie in private communication.

Best regards,
        Lutz Jaenicke
-- 
Lutz Jaenicke                             [EMAIL PROTECTED]
BTU Cottbus               http://www.aet.TU-Cottbus.DE/personen/jaenicke/
Lehrstuhl Allgemeine Elektrotechnik                  Tel. +49 355 69-4129
Universitaetsplatz 3-4, D-03044 Cottbus              Fax. +49 355 69-4153
-README--README--README--README--README--README--README--README-

OpenSSL 56bit cipher handling patch:
====================================

Filename: cipher56-patch.X.xx

Reason:
=======
This patch enhances the SSL/TLS cipher mechanism to correctly handle
the TLS 56bit ciphers. Without this patch the 56bit ciphers can be enabled,
but the sorting is wrong (visible in client mode, since the first cipher
the client lists and that is available on the server will be used).

Changes:
========
After applying the patch, 56bit ciphers are automatically activated.
This patch does not realize the ciphers itself, they are already included
in OpenSSL.

The patch also corrects a problem with round-off when calculating the number
of bits (actually by hardcoding the values into the tables).
Please understand that I am no expert on the ciphers themselve, so somebody
should go over the hardcoded values I have collected from mod_ssl and/or
Apache+SSL.

Interface changes:
==================
The syntax for the cipher sorting has been extended to support sorting
by cipher-strength (using the strength_bits hard coded in the tables).
The new command is "@STRENGTH" (see also doc/ssl_ciph).

Remark:
=======
Due to the strength-sorting extension, the code of the ssl_create_cipher_list()
function was completely rearranged. I hope that the readability was also
increased :-)

Side-effects:
=============
After applying this patch, data structures (SSL_CIPHER) have changed;
typically you only use pointers to the SSL_CIPHER structure, so you might
come away without recompiling your application.

I had problems while loading the CAcert-data with openssl-SNAP-19991101
(not related to this patch), but the patch will work against openssl-0.9.4.
Testplatform was HP-UX 10.20 with HP-cc.

Things still to be considered:
==============================
- removal of the TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES conditional compilation
  option and full inclusion of the 56bit ciphers
- Correctness of bit values for the ciphers.

References/History:
===================
I have been in private conversation with Ben Laurie during the development
of this patch.
- The "A" series included only the corrected sorting.
- The "B" series was inspired by Ben's proposal for an additional strength
  sorting.

13 Dec 1999, [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to