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"); }