Update IETF QUIC to draft 25

Note that the initial salts were not changed between draft 24 and draft 25.

gfe-relnote: update IETF version, protected by disabled t099 flag
PiperOrigin-RevId: 291769594
Change-Id: Ib52ceb042fb59cfe9fc16d4095b09dc43dae264f
diff --git a/quic/core/crypto/crypto_utils.cc b/quic/core/crypto/crypto_utils.cc
index 09057ff..94b1c2c 100644
--- a/quic/core/crypto/crypto_utils.cc
+++ b/quic/core/crypto/crypto_utils.cc
@@ -111,9 +111,9 @@
 
 namespace {
 
-static_assert(kQuicIetfDraftVersion == 24, "Salts do not match draft version");
-// Salt from https://tools.ietf.org/html/draft-ietf-quic-tls-24#section-5.2
-const uint8_t kDraft23InitialSalt[] = {0xc3, 0xee, 0xf7, 0x12, 0xc7, 0x2e, 0xbb,
+static_assert(kQuicIetfDraftVersion == 25, "Salts do not match draft version");
+// Salt from https://tools.ietf.org/html/draft-ietf-quic-tls-25#section-5.2
+const uint8_t kDraft25InitialSalt[] = {0xc3, 0xee, 0xf7, 0x12, 0xc7, 0x2e, 0xbb,
                                        0x5a, 0x11, 0xa7, 0xd2, 0x43, 0x2b, 0xb4,
                                        0x63, 0x65, 0xbe, 0xf9, 0xf5, 0x02};
 
@@ -144,8 +144,8 @@
           // QUIC_VERSION_RESERVED_FOR_NEGOTIATION, but some tests try to use a
           // QuicFramer with QUIC_VERSION_RESERVED_FOR_NEGOTIATION and will hit
           // the following QUIC_BUG if there isn't a case for it. ):
-          *out_len = QUICHE_ARRAYSIZE(kDraft23InitialSalt);
-          return kDraft23InitialSalt;
+          *out_len = QUICHE_ARRAYSIZE(kDraft25InitialSalt);
+          return kDraft25InitialSalt;
         default:
           QUIC_BUG << "No initial obfuscation salt for version " << version;
       }
@@ -158,8 +158,8 @@
         case QUIC_VERSION_99:
           // ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99) uses the IETF
           // salt.
-          *out_len = QUICHE_ARRAYSIZE(kDraft23InitialSalt);
-          return kDraft23InitialSalt;
+          *out_len = QUICHE_ARRAYSIZE(kDraft25InitialSalt);
+          return kDraft25InitialSalt;
         default:
           QUIC_BUG << "No initial obfuscation salt for version " << version;
       }
@@ -168,8 +168,8 @@
     default:
       QUIC_BUG << "No initial obfuscation salt for version " << version;
   }
-  *out_len = QUICHE_ARRAYSIZE(kDraft23InitialSalt);
-  return kDraft23InitialSalt;
+  *out_len = QUICHE_ARRAYSIZE(kDraft25InitialSalt);
+  return kDraft25InitialSalt;
 }
 
 const char kPreSharedKeyLabel[] = "QUIC PSK";
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index 37dc5cd..299f247 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -124,7 +124,7 @@
     QuicTransportVersion transport_version);
 
 // IETF draft version most closely approximated by TLS + v99.
-static const int kQuicIetfDraftVersion = 24;
+static const int kQuicIetfDraftVersion = 25;
 
 // The crypto handshake protocols that can be used with QUIC.
 enum HandshakeProtocol {
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index f397d7e..cc7bf05 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -423,8 +423,8 @@
   EXPECT_EQ("h3-Q049", AlpnForVersion(parsed_version_q049));
   EXPECT_EQ("h3-Q050", AlpnForVersion(parsed_version_q050));
   EXPECT_EQ("h3-T050", AlpnForVersion(parsed_version_t050));
-  EXPECT_EQ("h3-24", AlpnForVersion(parsed_version_t099));
-  static_assert(kQuicIetfDraftVersion == 24,
+  EXPECT_EQ("h3-25", AlpnForVersion(parsed_version_t099));
+  static_assert(kQuicIetfDraftVersion == 25,
                 "ALPN does not match draft version");
 }