25#ifndef MYSQL_HARNESS_TLS_CLIENT_CONTEXT_INCLUDED
26#define MYSQL_HARNESS_TLS_CLIENT_CONTEXT_INCLUDED
33#include <system_error>
45 void operator()(SSL_SESSION *sess) { SSL_SESSION_free(sess); }
47 using SslSession = std::unique_ptr<SSL_SESSION, SslSessionDeleter>;
88 const std::string &ciphers);
101 const std::string &server_host);
Client TLS Context.
Definition: tls_client_context.h:42
std::unique_ptr< Sessions > sessions_
Definition: tls_client_context.h:124
std::unique_ptr< SSL_SESSION, SslSessionDeleter > SslSession
Definition: tls_client_context.h:47
TlsClientContext & operator=(TlsClientContext &&)=default
TlsClientContext(TlsClientContext &&)=default
std::chrono::seconds session_cache_timeout_
Definition: tls_client_context.h:128
bool session_cache_mode_
Definition: tls_client_context.h:126
TlsClientContext(const TlsClientContext &)=delete
TlsClientContext & operator=(const TlsClientContext &)=delete
size_t session_cache_size_
Definition: tls_client_context.h:127
wraps SSL_CTX.
Definition: tls_context.h:84
std::vector< std::string > cipher_list() const
get current cipher-list.
Definition: tls_context.cc:357
Definition: expected.h:943
bool verify(const std::string &digest, const std::string &message, const std::string &public_key_content)
Verify a message signed by the private key pair of the provided public key.
Definition: ssl.cc:114
mode
Definition: file_handle.h:59
Definition: tls_client_context.h:117
std::list< SessionData > sessions_
Definition: tls_client_context.h:121
std::pair< SessionId, SslSession > SessionData
Definition: tls_client_context.h:119
std::mutex mtx_
Definition: tls_client_context.h:122
std::vector< uint8_t > SessionId
Definition: tls_client_context.h:118
Definition: tls_client_context.h:44
void operator()(SSL_SESSION *sess)
Definition: tls_client_context.h:45
double seconds()
Definition: task.cc:309
TlsVerify
Verification of Cerifiticates.
Definition: tls_context.h:61
#define HARNESS_TLS_EXPORT
Definition: tls_export.h:15