]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - test/handshake_helper.c
Handle the server refusing to reneg in a reneg_setup
[thirdparty/openssl.git] / test / handshake_helper.c
index 8ad35ce31123cf473e363f8ad99a557a313d8520..509a8f6ede357e64683b8f382a609f79cd91c389 100644 (file)
@@ -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