* https://www.openssl.org/source/license.html
*/
+#include "../e_os.h"
#include <string.h>
#include <openssl/e_os2.h>
#include <openssl/crypto.h>
-#include <internal/nelem.h>
+#include "internal/nelem.h"
#include "ssl_test_ctx.h"
#include "testutil.h"
{"None", SSL_TEST_SERVERNAME_CB_NONE},
{"IgnoreMismatch", SSL_TEST_SERVERNAME_IGNORE_MISMATCH},
{"RejectMismatch", SSL_TEST_SERVERNAME_REJECT_MISMATCH},
- {"EarlyIgnoreMismatch", SSL_TEST_SERVERNAME_EARLY_IGNORE_MISMATCH},
- {"EarlyRejectMismatch", SSL_TEST_SERVERNAME_EARLY_REJECT_MISMATCH},
- {"EarlyNoV12", SSL_TEST_SERVERNAME_EARLY_NO_V12},
+ {"ClientHelloIgnoreMismatch",
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH},
+ {"ClientHelloRejectMismatch",
+ SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH},
+ {"ClientHelloNoV12", SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12},
};
__owur static int parse_servername_callback(SSL_TEST_SERVER_CONF *server_conf,
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, compression_expected)
+/* SessionIdExpected */
+
+static const test_enum ssl_session_id[] = {
+ {"Ignore", SSL_TEST_SESSION_ID_IGNORE},
+ {"Yes", SSL_TEST_SESSION_ID_YES},
+ {"No", SSL_TEST_SESSION_ID_NO},
+};
+
+__owur static int parse_session_id(SSL_TEST_CTX *test_ctx, const char *value)
+{
+ int ret_value;
+ if (!parse_enum(ssl_session_id, OSSL_NELEM(ssl_session_id),
+ &ret_value, value)) {
+ return 0;
+ }
+ test_ctx->session_id_expected = ret_value;
+ return 1;
+}
+
+const char *ssl_session_id_name(ssl_session_id_t server)
+{
+ return enum_name(ssl_session_id,
+ OSSL_NELEM(ssl_session_id),
+ server);
+}
+
/* Method */
static const test_enum ssl_test_methods[] = {
{ "ExpectedServerName", &parse_expected_servername },
{ "SessionTicketExpected", &parse_session_ticket },
{ "CompressionExpected", &parse_test_compression_expected },
+ { "SessionIdExpected", &parse_session_id },
{ "Method", &parse_test_method },
{ "ExpectedNPNProtocol", &parse_test_expected_npn_protocol },
{ "ExpectedALPNProtocol", &parse_test_expected_alpn_protocol },
/* Subsections */
if (strcmp(option->name, "client") == 0) {
- if (!parse_client_options(&ctx->extra.client, conf,
- option->value))
+ if (!parse_client_options(&ctx->extra.client, conf, option->value))
goto err;
} else if (strcmp(option->name, "server") == 0) {
- if (!TEST_true(parse_server_options(&ctx->extra.server, conf,
- option->value)))
+ if (!parse_server_options(&ctx->extra.server, conf, option->value))
goto err;
} else if (strcmp(option->name, "server2") == 0) {
- if (!TEST_true(parse_server_options(&ctx->extra.server2, conf,
- option->value)))
+ if (!parse_server_options(&ctx->extra.server2, conf, option->value))
goto err;
} else if (strcmp(option->name, "resume-client") == 0) {
- if (!TEST_true(parse_client_options(&ctx->resume_extra.client, conf,
- option->value)))
+ if (!parse_client_options(&ctx->resume_extra.client, conf,
+ option->value))
goto err;
} else if (strcmp(option->name, "resume-server") == 0) {
- if (!TEST_true(parse_server_options(&ctx->resume_extra.server, conf,
- option->value)))
+ if (!parse_server_options(&ctx->resume_extra.server, conf,
+ option->value))
goto err;
} else if (strcmp(option->name, "resume-server2") == 0) {
if (!parse_server_options(&ctx->resume_extra.server2, conf,
option->value))
goto err;
-
} else {
for (j = 0; j < OSSL_NELEM(ssl_test_ctx_options); j++) {
if (strcmp(option->name, ssl_test_ctx_options[j].name) == 0) {