75 Client(
const std::shared_ptr<Callbacks>& callbacks,
76 const std::shared_ptr<Session_Manager>& session_manager,
77 const std::shared_ptr<Credentials_Manager>& creds,
78 const std::shared_ptr<const Policy>& policy,
79 const std::shared_ptr<RandomNumberGenerator>& rng,
82 const std::vector<std::string>& next_protocols = {},
83 size_t reserved_io_buffer_size = TLS::Client::IO_BUF_DEFAULT_SIZE);
90 std::string application_protocol()
const override;
92 size_t from_peer(std::span<const uint8_t> data)
override;
94 bool is_handshake_complete()
const override;
96 bool is_active()
const override;
98 bool is_closed()
const override;
100 bool is_closed_for_reading()
const override;
101 bool is_closed_for_writing()
const override;
103 std::vector<X509_Certificate> peer_cert_chain()
const override;
104 std::shared_ptr<const Public_Key> peer_raw_public_key()
const override;
105 std::optional<std::string> external_psk_identity()
const override;
107 SymmetricKey key_material_export(std::string_view label, std::string_view context,
size_t length)
const override;
109 void renegotiate(
bool force_full_renegotiation =
false)
override;
111 void update_traffic_keys(
bool request_peer_update =
false)
override;
113 bool secure_renegotiation_supported()
const override;
115 void to_peer(std::span<const uint8_t> data)
override;
117 void send_alert(
const Alert& alert)
override;
119 void send_warning_alert(
Alert::Type type)
override;
123 void close()
override;
125 bool timeout_check()
override;
131 std::unique_ptr<Channel_Impl> m_impl;