From 84344efa7a992bfe3232a0b1dbd34b13b94f841c Mon Sep 17 00:00:00 2001 From: Todd Short Date: Fri, 12 May 2017 09:02:41 -0400 Subject: 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 Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/3432) --- test/handshake_helper.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/handshake_helper.c') 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 -- cgit v1.2.3