Hi
while experimenting with SSL protocol extensions I think I found a newly
introduced bug. In fact there was a fault in an if-statement for a long
time and now it has been corrected. But I think the code is not compilant
with the SSL-3.0 spec, which reads:
"Forward compatibility note:
In the interesst of forward compatibility, it is permitted for a client
hello message to include extra data after the compression methods. This
data must be included in the handshake hashes, but must otherwise be
ignored."
The code segment earlier looked like the following:
(=> the second if statement evaluated never to true)
---------- ssl/s3_srvr.c ---------
/* TLS does not mind if there is extra stuff */
if (s->version == SSL3_VERSION)
{
if (p > (d+n))
{
/* wrong number of bytes,
* there could be more to follow */
al=SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_LENGTH_MISMATCH);
goto f_err;
}
}
----------------------------------
The actual code segment looks like the following:
---------- ssl/s3_srvr.c ---------
/* TLS does not mind if there is extra stuff */
if (s->version == SSL3_VERSION)
{
if (p < (d+n))
{
/* wrong number of bytes,
* there could be more to follow */
al=SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_LENGTH_MISMATCH);
goto f_err;
}
}
----------------------------------
I think the whole code segment should be deleted.
regards
Matthias
P.S: this is a repost of a mail I sent to the openssl-dev list on 2003-03-25
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]