55 Client(
const std::shared_ptr<Callbacks>& callbacks,
56 const std::shared_ptr<Session_Manager>& session_manager,
57 const std::shared_ptr<Credentials_Manager>& creds,
58 const std::shared_ptr<const Policy>& policy,
59 const std::shared_ptr<RandomNumberGenerator>& rng,
62 const std::vector<std::string>& next_protocols = {},
63 size_t reserved_io_buffer_size = TLS::Client::IO_BUF_DEFAULT_SIZE);
70 std::string application_protocol()
const override;
72 size_t from_peer(std::span<const uint8_t> data)
override;
74 bool is_handshake_complete()
const override;
76 bool is_active()
const override;
78 bool is_closed()
const override;
80 bool is_closed_for_reading()
const override;
81 bool is_closed_for_writing()
const override;
83 std::vector<X509_Certificate> peer_cert_chain()
const override;
84 std::shared_ptr<const Public_Key> peer_raw_public_key()
const override;
85 std::optional<std::string> external_psk_identity()
const override;
87 SymmetricKey key_material_export(std::string_view label, std::string_view context,
size_t length)
const override;
89 void renegotiate(
bool force_full_renegotiation =
false)
override;
91 void update_traffic_keys(
bool request_peer_update =
false)
override;
93 bool secure_renegotiation_supported()
const override;
95 void to_peer(std::span<const uint8_t> data)
override;
97 void send_alert(
const Alert& alert)
override;
103 void close()
override;
105 bool timeout_check()
override;
111 std::unique_ptr<Channel_Impl> m_impl;