diff options
author | Todd Short <tshort@akamai.com> | 2017-05-12 09:02:41 -0400 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2017-06-06 22:39:41 +0100 |
commit | 84344efa7a992bfe3232a0b1dbd34b13b94f841c (patch) | |
tree | e48df676d5ca4d7b88e9aba36da81dd24079faba /test/handshake_helper.c | |
parent | 367c55279016527515b237aeaae71bddb82ed316 (diff) |
Handle the server refusing to reneg in a reneg_setup
During setup of a reneg test the server can refuse to start reneg.
If that happens we should let the client continue and then fail.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3432)
Diffstat (limited to 'test/handshake_helper.c')
-rw-r--r-- | test/handshake_helper.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/handshake_helper.c b/test/handshake_helper.c index 8ad35ce311..509a8f6ede 100644 --- a/test/handshake_helper.c +++ b/test/handshake_helper.c @@ -764,6 +764,17 @@ static void do_reneg_setup_step(const SSL_TEST_CTX *test_ctx, PEER *peer) int ret; char buf; + if (peer->status == PEER_SUCCESS) { + /* + * We are a client that succeeded this step previously, but the server + * wanted to retry. Probably there is a no_renegotiation warning alert + * waiting for us. Attempt to continue the handshake. + */ + peer->status = PEER_RETRY; + do_handshake_step(peer); + return; + } + TEST_check(peer->status == PEER_RETRY); TEST_check(test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_SERVER || test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_CLIENT |