aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2017-05-12 09:02:41 -0400
committerMatt Caswell <matt@openssl.org>2017-06-06 22:39:41 +0100
commit84344efa7a992bfe3232a0b1dbd34b13b94f841c (patch)
treee48df676d5ca4d7b88e9aba36da81dd24079faba /test
parent367c55279016527515b237aeaae71bddb82ed316 (diff)
downloadopenssl-84344efa7a992bfe3232a0b1dbd34b13b94f841c.tar.gz
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')
-rw-r--r--test/handshake_helper.c11
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