Ignore the session when setting SNI in s_client

As per this comment:

https://github.com/openssl/openssl/issues/4496#issuecomment-337767145

Since the server is entitled to reject our session our ClientHello
should include everything that we would want if a full handshake were
to happen. Therefore we shouldn't use the session as a source of
information for setting SNI.

Reviewed-by: Ben Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/4738)
This commit is contained in:
Matt Caswell 2017-11-14 13:43:42 +00:00
parent 665d899fa6
commit b510b740fb
3 changed files with 3 additions and 17 deletions

View File

@ -1923,18 +1923,7 @@ int s_client_main(int argc, char **argv)
ERR_print_errors(bio_err);
goto end;
}
/* By default the SNI should be the same as was set in the session */
if (!noservername && servername == NULL) {
servername = SSL_SESSION_get0_hostname(sess);
if (servername == NULL) {
/*
* Force no SNI to be sent so we are consistent with the
* session.
*/
noservername = 1;
}
}
SSL_SESSION_free(sess);
}

View File

@ -164,8 +164,7 @@ $proxy->clientflags("-no_tls1_3 -sess_in ".$session);
$proxy->clientstart();
checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
checkhandshake::DEFAULT_EXTENSIONS
& ~checkhandshake::SESSION_TICKET_SRV_EXTENSION
& ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
& ~checkhandshake::SESSION_TICKET_SRV_EXTENSION,
"Resumption handshake test");
unlink $session;

View File

@ -167,8 +167,7 @@ $proxy->clientstart();
checkhandshake($proxy, checkhandshake::RESUME_HANDSHAKE,
(checkhandshake::DEFAULT_EXTENSIONS
| checkhandshake::PSK_CLI_EXTENSION
| checkhandshake::PSK_SRV_EXTENSION)
& ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
| checkhandshake::PSK_SRV_EXTENSION),
"Resumption handshake test");
#Test 3: A status_request handshake (client request only)
@ -312,8 +311,7 @@ checkhandshake($proxy, checkhandshake::HRR_RESUME_HANDSHAKE,
(checkhandshake::DEFAULT_EXTENSIONS
| checkhandshake::KEY_SHARE_HRR_EXTENSION
| checkhandshake::PSK_CLI_EXTENSION
| checkhandshake::PSK_SRV_EXTENSION)
& ~checkhandshake::SERVER_NAME_CLI_EXTENSION,
| checkhandshake::PSK_SRV_EXTENSION),
"Resumption handshake with HRR test");
#Test 16: Acceptable but non preferred key_share