Update key share extension number for draft23.

Change-Id: I7561fc7e04d726ea9e26f645da10e45b62a20627
Reviewed-on: https://boringssl-review.googlesource.com/24704
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/ssl/ssl_versions.cc b/ssl/ssl_versions.cc
index 4ef54da..15012dc 100644
--- a/ssl/ssl_versions.cc
+++ b/ssl/ssl_versions.cc
@@ -35,6 +35,7 @@
       return true;
 
     case TLS1_3_DRAFT22_VERSION:
+    case TLS1_3_DRAFT23_VERSION:
     case TLS1_3_EXPERIMENT2_VERSION:
       *out = TLS1_3_VERSION;
       return true;
@@ -57,6 +58,7 @@
 // decreasing preference.
 
 static const uint16_t kTLSVersions[] = {
+    TLS1_3_DRAFT23_VERSION,
     TLS1_3_DRAFT22_VERSION,
     TLS1_3_EXPERIMENT2_VERSION,
     TLS1_2_VERSION,
@@ -102,6 +104,7 @@
 static const char *ssl_version_to_string(uint16_t version) {
   switch (version) {
     case TLS1_3_DRAFT22_VERSION:
+    case TLS1_3_DRAFT23_VERSION:
     case TLS1_3_EXPERIMENT2_VERSION:
       return "TLSv1.3";
 
@@ -132,6 +135,7 @@
   switch (version) {
     // Report TLS 1.3 draft versions as TLS 1.3 in the public API.
     case TLS1_3_DRAFT22_VERSION:
+    case TLS1_3_DRAFT23_VERSION:
     case TLS1_3_EXPERIMENT2_VERSION:
       return TLS1_3_VERSION;
     default:
@@ -144,6 +148,7 @@
 // used in context where that does not matter.
 static bool api_version_to_wire(uint16_t *out, uint16_t version) {
   if (version == TLS1_3_DRAFT22_VERSION ||
+      version == TLS1_3_DRAFT23_VERSION ||
       version == TLS1_3_EXPERIMENT2_VERSION) {
     return false;
   }
@@ -303,8 +308,10 @@
   if (protocol_version != TLS1_3_VERSION ||
       (ssl->tls13_variant == tls13_experiment2 &&
        version == TLS1_3_EXPERIMENT2_VERSION) ||
+      (ssl->tls13_variant == tls13_draft22 &&
+       version == TLS1_3_DRAFT22_VERSION) ||
       (ssl->tls13_variant == tls13_default &&
-       version == TLS1_3_DRAFT22_VERSION)) {
+       version == TLS1_3_DRAFT23_VERSION)) {
     return true;
   }
 
@@ -362,7 +369,15 @@
 }
 
 bool ssl_is_draft22(uint16_t version) {
-  return version == TLS1_3_DRAFT22_VERSION;
+  return version == TLS1_3_DRAFT22_VERSION || version == TLS1_3_DRAFT23_VERSION;
+}
+
+bool ssl_is_draft23(uint16_t version) {
+  return version == TLS1_3_DRAFT23_VERSION;
+}
+
+bool ssl_is_draft23_variant(tls13_variant_t variant) {
+  return variant == tls13_default;
 }
 
 }  // namespace bssl