hi,

the implementation of sni in openssl probaly does not
correspond to the rfc. The rfc seems to allow to
change the servername at any time in a client hello,
and the servernamehello extension is wrong when
the client has changed the servername (the name is
not acknoledged but no client actually cares)

the code in t1_lib.c prohibits this. I am working on
a fix according the following outline:

The tests in parsing routine testing the previous values of
ssl->session->tlsext_hostname and servername_done
are removed.

an existing host in ssl->session->tlsext_hostname needs
to be replaced by the new value (if necessary).

server_name done is in a correct way, i.e, signaling
the non-presence of a callback back, or the call back
pretending it.

the servernameindication in the serverhello is send
correctly and also for resumed sessions.

I am tempted to remove (or at least rename) the
servername_done variable in ssl, since it is not
really necessary, i.e. its presence, i.e. the presence
of the bug can be tested at compile/configure time
by an application.

only t1_lib.c code is affected.














______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to