#include "quiche/quic/core/crypto/tls_server_connection.h"
#include <cstddef>
#include <cstdint>
#include <utility>
#include <vector>
#include "absl/status/status.h"
#include "absl/strings/string_view.h"
#include "openssl/base.h"
#include "openssl/ssl.h"
#include "quiche/quic/core/crypto/proof_source.h"
#include "quiche/quic/core/crypto/tls_connection.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_flag_utils.h"
#include "quiche/common/platform/api/quiche_logging.h"
namespace quic {
TlsServerConnection::TlsServerConnection(SSL_CTX* ssl_ctx, Delegate* delegate,
QuicSSLConfig ssl_config)
: … { … }
bssl::UniquePtr<SSL_CTX> TlsServerConnection::CreateSslCtx(
ProofSource* proof_source) { … }
absl::Status TlsServerConnection::ConfigureSSL(
ProofSourceHandleCallback::ConfigureSSLFunc configure_ssl) { … }
void TlsServerConnection::SetCertChain(
const std::vector<CRYPTO_BUFFER*>& cert_chain) { … }
void TlsServerConnection::SetClientCertMode(ClientCertMode client_cert_mode) { … }
void TlsServerConnection::UpdateCertVerifyCallback() { … }
const SSL_PRIVATE_KEY_METHOD TlsServerConnection::kPrivateKeyMethod{ … };
TlsServerConnection* TlsServerConnection::ConnectionFromSsl(SSL* ssl) { … }
ssl_select_cert_result_t TlsServerConnection::EarlySelectCertCallback(
const SSL_CLIENT_HELLO* client_hello) { … }
int TlsServerConnection::TlsExtServernameCallback(SSL* ssl, int* out_alert,
void* ) { … }
int TlsServerConnection::SelectAlpnCallback(SSL* ssl, const uint8_t** out,
uint8_t* out_len, const uint8_t* in,
unsigned in_len, void* ) { … }
ssl_private_key_result_t TlsServerConnection::PrivateKeySign(
SSL* ssl, uint8_t* out, size_t* out_len, size_t max_out, uint16_t sig_alg,
const uint8_t* in, size_t in_len) { … }
ssl_private_key_result_t TlsServerConnection::PrivateKeyComplete(
SSL* ssl, uint8_t* out, size_t* out_len, size_t max_out) { … }
const SSL_TICKET_AEAD_METHOD TlsServerConnection::kSessionTicketMethod{ … };
size_t TlsServerConnection::SessionTicketMaxOverhead(SSL* ssl) { … }
int TlsServerConnection::SessionTicketSeal(SSL* ssl, uint8_t* out,
size_t* out_len, size_t max_out_len,
const uint8_t* in, size_t in_len) { … }
enum ssl_ticket_aead_result_t TlsServerConnection::SessionTicketOpen(
SSL* ssl, uint8_t* out, size_t* out_len, size_t max_out_len,
const uint8_t* in, size_t in_len) { … }
}