From: Todd Short Date: Fri, 12 May 2017 13:02:41 +0000 (-0400) Subject: Handle the server refusing to reneg in a reneg_setup X-Git-Tag: OpenSSL_1_1_1-pre1~1375 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=84344efa7a992bfe3232a0b1dbd34b13b94f841c;p=oweals%2Fopenssl.git 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) --- 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