Allow enabling all TLS 1.3 variants by setting |tls13_default|. Update-Note: Enabling TLS 1.3 now enables both draft-23 and draft-28 by default, in preparation for cycling all to draft-28. Change-Id: I9405f39081f2e5f7049aaae8a9c85399f21df047 Reviewed-on: https://boringssl-review.googlesource.com/28304 Commit-Queue: Steven Valdez <svaldez@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/tool/server.cc b/tool/server.cc index 7a4e53b..bc90630 100644 --- a/tool/server.cc +++ b/tool/server.cc
@@ -68,7 +68,8 @@ "-early-data", kBooleanArgument, "Allow early data", }, { - "-tls13-variant", kBooleanArgument, "Enables all TLS 1.3 variants", + "-tls13-variant", kOptionalArgument, + "Enable the specified experimental TLS 1.3 variant", }, { "-www", kBooleanArgument, @@ -147,6 +148,18 @@ return x509; } +static bool GetTLS13Variant(tls13_variant_t *out, const std::string &in) { + if (in == "draft23") { + *out = tls13_draft23; + return true; + } + if (in == "draft28") { + *out = tls13_draft28; + return true; + } + return false; +} + static void InfoCallback(const SSL *ssl, int type, int value) { switch (type) { case SSL_CB_HANDSHAKE_START: @@ -307,7 +320,13 @@ } if (args_map.count("-tls13-variant") != 0) { - SSL_CTX_set_tls13_variant(ctx.get(), tls13_draft28); + tls13_variant_t variant; + if (!GetTLS13Variant(&variant, args_map["-tls13-variant"])) { + fprintf(stderr, "Unknown TLS 1.3 variant: %s\n", + args_map["-tls13-variant"].c_str()); + return false; + } + SSL_CTX_set_tls13_variant(ctx.get(), variant); } if (args_map.count("-debug") != 0) {