Use trampoline for TicketCrypterGoogle3::Decrypt
Fix QUIC session ticket decryption bug, protected by gfe2_restart_flag_quic_enable_tls_resumption_v4
PiperOrigin-RevId: 324935765
Change-Id: I93dff953fe71911909fe4b5df0a4564795985c05
diff --git a/quic/core/crypto/tls_server_connection.cc b/quic/core/crypto/tls_server_connection.cc
index 69c5a82..0e59997 100644
--- a/quic/core/crypto/tls_server_connection.cc
+++ b/quic/core/crypto/tls_server_connection.cc
@@ -24,7 +24,7 @@
SSL_CTX_set_alpn_select_cb(ssl_ctx.get(), &SelectAlpnCallback, nullptr);
// We don't actually need the TicketCrypter here, but we need to know
// whether it's set.
- if (GetQuicRestartFlag(quic_enable_tls_resumption_v3) &&
+ if (GetQuicRestartFlag(quic_enable_tls_resumption_v4) &&
proof_source->GetTicketCrypter()) {
SSL_CTX_set_ticket_aead_method(ssl_ctx.get(),
&TlsServerConnection::kSessionTicketMethod);
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 5e50cc5..2f5e7b9 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -202,7 +202,7 @@
SetQuicReloadableFlag(quic_fix_packet_number_length, true);
SetQuicReloadableFlag(quic_support_handshake_done_in_t050, true);
- SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
+ SetQuicRestartFlag(quic_enable_tls_resumption_v4, true);
SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
}
diff --git a/quic/core/http/quic_spdy_client_session_test.cc b/quic/core/http/quic_spdy_client_session_test.cc
index 15ac198..a6be1e6 100644
--- a/quic/core/http/quic_spdy_client_session_test.cc
+++ b/quic/core/http/quic_spdy_client_session_test.cc
@@ -96,7 +96,7 @@
QuicUtils::GetInvalidStreamId(GetParam().transport_version)) {
auto client_cache = std::make_unique<test::SimpleSessionCache>();
client_session_cache_ = client_cache.get();
- SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
+ SetQuicRestartFlag(quic_enable_tls_resumption_v4, true);
SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
client_crypto_config_ = std::make_unique<QuicCryptoClientConfig>(
crypto_test_utils::ProofVerifierForTesting(), std::move(client_cache));
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index fbd6c0f..93b5748 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -683,7 +683,7 @@
void QuicVersionInitializeSupportForIetfDraft() {
// Enable necessary flags.
- SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
+ SetQuicRestartFlag(quic_enable_tls_resumption_v4, true);
SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
}
diff --git a/quic/core/tls_client_handshaker_test.cc b/quic/core/tls_client_handshaker_test.cc
index adf06ad..e2988d9 100644
--- a/quic/core/tls_client_handshaker_test.cc
+++ b/quic/core/tls_client_handshaker_test.cc
@@ -174,7 +174,7 @@
server_id_(kServerHostname, kServerPort, false),
server_compressed_certs_cache_(
QuicCompressedCertsCache::kQuicCompressedCertsCacheSize) {
- SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
+ SetQuicRestartFlag(quic_enable_tls_resumption_v4, true);
SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
crypto_config_ = std::make_unique<QuicCryptoClientConfig>(
std::make_unique<TestProofVerifier>(),
diff --git a/quic/core/tls_server_handshaker.cc b/quic/core/tls_server_handshaker.cc
index 2c7c77e..ac3b056 100644
--- a/quic/core/tls_server_handshaker.cc
+++ b/quic/core/tls_server_handshaker.cc
@@ -502,7 +502,7 @@
memcpy(out, decrypted_session_ticket_.data(),
decrypted_session_ticket_.size());
*out_len = decrypted_session_ticket_.size();
- QUIC_RESTART_FLAG_COUNT(quic_enable_tls_resumption_v3);
+ QUIC_RESTART_FLAG_COUNT(quic_enable_tls_resumption_v4);
return ssl_ticket_aead_success;
}
diff --git a/quic/core/tls_server_handshaker_test.cc b/quic/core/tls_server_handshaker_test.cc
index ac7b530..05b7d68 100644
--- a/quic/core/tls_server_handshaker_test.cc
+++ b/quic/core/tls_server_handshaker_test.cc
@@ -48,7 +48,7 @@
: server_compressed_certs_cache_(
QuicCompressedCertsCache::kQuicCompressedCertsCacheSize),
server_id_(kServerHostname, kServerPort, false) {
- SetQuicRestartFlag(quic_enable_tls_resumption_v3, true);
+ SetQuicRestartFlag(quic_enable_tls_resumption_v4, true);
SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
client_crypto_config_ = std::make_unique<QuicCryptoClientConfig>(
crypto_test_utils::ProofVerifierForTesting(),