#include "quiche/quic/core/tls_handshaker.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/macros.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "openssl/crypto.h"
#include "openssl/ssl.h"
#include "quiche/quic/core/quic_crypto_stream.h"
#include "quiche/quic/platform/api/quic_bug_tracker.h"
#include "quiche/quic/platform/api/quic_stack_trace.h"
namespace quic {
#define ENDPOINT …
TlsHandshaker::ProofVerifierCallbackImpl::ProofVerifierCallbackImpl(
TlsHandshaker* parent)
: … { … }
TlsHandshaker::ProofVerifierCallbackImpl::~ProofVerifierCallbackImpl() { … }
void TlsHandshaker::ProofVerifierCallbackImpl::Run(
bool ok, const std::string& ,
std::unique_ptr<ProofVerifyDetails>* details) { … }
void TlsHandshaker::ProofVerifierCallbackImpl::Cancel() { … }
TlsHandshaker::TlsHandshaker(QuicCryptoStream* stream, QuicSession* session)
: … { … }
TlsHandshaker::~TlsHandshaker() { … }
bool TlsHandshaker::ProcessInput(absl::string_view input,
EncryptionLevel level) { … }
void TlsHandshaker::AdvanceHandshake() { … }
void TlsHandshaker::CloseConnection(QuicErrorCode error,
const std::string& reason_phrase) { … }
void TlsHandshaker::CloseConnection(QuicErrorCode error,
QuicIetfTransportErrorCodes ietf_error,
const std::string& reason_phrase) { … }
void TlsHandshaker::OnConnectionClosed(QuicErrorCode ,
ConnectionCloseSource ) { … }
bool TlsHandshaker::ShouldCloseConnectionOnUnexpectedError(int ) { … }
size_t TlsHandshaker::BufferSizeLimitForLevel(EncryptionLevel level) const { … }
ssl_early_data_reason_t TlsHandshaker::EarlyDataReason() const { … }
const EVP_MD* TlsHandshaker::Prf(const SSL_CIPHER* cipher) { … }
enum ssl_verify_result_t TlsHandshaker::VerifyCert(uint8_t* out_alert) { … }
void TlsHandshaker::SetWriteSecret(EncryptionLevel level,
const SSL_CIPHER* cipher,
absl::Span<const uint8_t> write_secret) { … }
bool TlsHandshaker::SetReadSecret(EncryptionLevel level,
const SSL_CIPHER* cipher,
absl::Span<const uint8_t> read_secret) { … }
std::unique_ptr<QuicDecrypter>
TlsHandshaker::AdvanceKeysAndCreateCurrentOneRttDecrypter() { … }
std::unique_ptr<QuicEncrypter> TlsHandshaker::CreateCurrentOneRttEncrypter() { … }
bool TlsHandshaker::ExportKeyingMaterialForLabel(absl::string_view label,
absl::string_view context,
size_t result_len,
std::string* result) { … }
void TlsHandshaker::WriteMessage(EncryptionLevel level,
absl::string_view data) { … }
void TlsHandshaker::FlushFlight() { … }
void TlsHandshaker::SendAlert(EncryptionLevel level, uint8_t desc) { … }
void TlsHandshaker::MessageCallback(bool is_write, int ,
int content_type, absl::string_view data) { … }
}