#include <algorithm>
#include <memory>
#include <optional>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/macros.h"
#include "openssl/hpke.h"
#include "openssl/ssl.h"
#include "quiche/quic/core/crypto/quic_decrypter.h"
#include "quiche/quic/core/crypto/quic_encrypter.h"
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/core/quic_packets.h"
#include "quiche/quic/core/quic_server_id.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/core/quic_versions.h"
#include "quiche/quic/platform/api/quic_expect_bug.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/crypto_test_utils.h"
#include "quiche/quic/test_tools/quic_connection_peer.h"
#include "quiche/quic/test_tools/quic_framer_peer.h"
#include "quiche/quic/test_tools/quic_session_peer.h"
#include "quiche/quic/test_tools/quic_test_utils.h"
#include "quiche/quic/test_tools/simple_session_cache.h"
#include "quiche/quic/tools/fake_proof_verifier.h"
#include "quiche/common/test_tools/quiche_test_utils.h"
_;
namespace quic {
namespace test {
namespace {
constexpr char kServerHostname[] = …;
constexpr uint16_t kServerPort = …;
class TestProofVerifier : public ProofVerifier { … };
class TlsClientHandshakerTest : public QuicTestWithParam<ParsedQuicVersion> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(TlsClientHandshakerTest, NotInitiallyConnected) { … }
TEST_P(TlsClientHandshakerTest, ConnectedAfterHandshake) { … }
TEST_P(TlsClientHandshakerTest, ConnectionClosedOnTlsError) { … }
TEST_P(TlsClientHandshakerTest, ProofVerifyDetailsAvailableAfterHandshake) { … }
TEST_P(TlsClientHandshakerTest, HandshakeWithAsyncProofVerifier) { … }
TEST_P(TlsClientHandshakerTest, Resumption) { … }
TEST_P(TlsClientHandshakerTest, ResumptionRejection) { … }
TEST_P(TlsClientHandshakerTest, ZeroRttResumption) { … }
TEST_P(TlsClientHandshakerTest, ZeroRttResumptionWithAyncProofVerifier) { … }
TEST_P(TlsClientHandshakerTest, ZeroRttRejection) { … }
TEST_P(TlsClientHandshakerTest, ZeroRttAndResumptionRejection) { … }
TEST_P(TlsClientHandshakerTest, ClientSendsNoSNI) { … }
TEST_P(TlsClientHandshakerTest, ClientSendingTooManyALPNs) { … }
TEST_P(TlsClientHandshakerTest, ServerRequiresCustomALPN) { … }
TEST_P(TlsClientHandshakerTest, ZeroRTTNotAttemptedOnALPNChange) { … }
TEST_P(TlsClientHandshakerTest, InvalidSNI) { … }
TEST_P(TlsClientHandshakerTest, BadTransportParams) { … }
TEST_P(TlsClientHandshakerTest, ECH) { … }
TEST_P(TlsClientHandshakerTest, ECHWithConfigAndGREASE) { … }
TEST_P(TlsClientHandshakerTest, ECHInvalidConfig) { … }
TEST_P(TlsClientHandshakerTest, ECHWrongKeys) { … }
TEST_P(TlsClientHandshakerTest, ECHGrease) { … }
#if BORINGSSL_API_VERSION >= 22
TEST_P(TlsClientHandshakerTest, EnableKyber) { … }
#endif
#if BORINGSSL_API_VERSION >= 27
TEST_P(TlsClientHandshakerTest, EnableClientAlpsUseNewCodepoint) { … }
#endif
}
}
}