+static int check_servername(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (result->servername != test_ctx->expected_servername) {
+ fprintf(stderr, "Client ServerName mismatch, expected %s, got %s\n.",
+ ssl_servername_name(test_ctx->expected_servername),
+ ssl_servername_name(result->servername));
+ return 0;
+ }
+ return 1;
+}
+
+static int check_session_ticket(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (test_ctx->session_ticket_expected == SSL_TEST_SESSION_TICKET_IGNORE)
+ return 1;
+ if (result->session_ticket != test_ctx->session_ticket_expected) {
+ fprintf(stderr, "Client SessionTicketExpected mismatch, expected %s, got %s\n.",
+ ssl_session_ticket_name(test_ctx->session_ticket_expected),
+ ssl_session_ticket_name(result->session_ticket));
+ return 0;
+ }
+ return 1;
+}
+
+#ifndef OPENSSL_NO_NEXTPROTONEG
+static int check_npn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ ret &= strings_equal("NPN Negotiated (client vs server)",
+ result->client_npn_negotiated,
+ result->server_npn_negotiated);
+ ret &= strings_equal("ExpectedNPNProtocol",
+ test_ctx->expected_npn_protocol,
+ result->client_npn_negotiated);
+ return ret;
+}
+#endif
+
+static int check_alpn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ int ret = 1;
+ ret &= strings_equal("ALPN Negotiated (client vs server)",
+ result->client_alpn_negotiated,
+ result->server_alpn_negotiated);
+ ret &= strings_equal("ExpectedALPNProtocol",
+ test_ctx->expected_alpn_protocol,
+ result->client_alpn_negotiated);
+ return ret;
+}
+
+static int check_resumption(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
+{
+ if (result->client_resumed != result->server_resumed) {
+ fprintf(stderr, "Resumption mismatch (client vs server): %d vs %d\n",
+ result->client_resumed, result->server_resumed);
+ return 0;
+ }
+ if (result->client_resumed != test_ctx->resumption_expected) {
+ fprintf(stderr, "ResumptionExpected mismatch: %d vs %d\n",
+ test_ctx->resumption_expected, result->client_resumed);
+ return 0;
+ }
+ return 1;
+}
+