65 Server(
const std::shared_ptr<Callbacks>& callbacks,
66 const std::shared_ptr<Session_Manager>& session_manager,
67 const std::shared_ptr<Credentials_Manager>& creds,
68 const std::shared_ptr<const Policy>& policy,
69 const std::shared_ptr<RandomNumberGenerator>& rng,
70 bool is_datagram =
false,
71 size_t reserved_io_buffer_size = TLS::Channel::IO_BUF_DEFAULT_SIZE);
81 std::string application_protocol()
const override;
83 size_t from_peer(std::span<const uint8_t> data)
override;
85 bool is_handshake_complete()
const override;
87 bool is_active()
const override;
89 bool is_closed()
const override;
91 bool is_closed_for_reading()
const override;
92 bool is_closed_for_writing()
const override;
94 std::vector<X509_Certificate> peer_cert_chain()
const override;
95 std::shared_ptr<const Public_Key> peer_raw_public_key()
const override;
96 std::optional<std::string> external_psk_identity()
const override;
98 SymmetricKey key_material_export(std::string_view label, std::string_view context,
size_t length)
const override;
100 void renegotiate(
bool force_full_renegotiation =
false)
override;
102 bool new_session_ticket_supported()
const;
103 size_t send_new_session_tickets(
size_t tickets = 1);
105 void update_traffic_keys(
bool request_peer_update =
false)
override;
107 bool secure_renegotiation_supported()
const override;
109 void to_peer(std::span<const uint8_t> data)
override;
111 void send_alert(
const Alert& alert)
override;
113 void send_warning_alert(
Alert::Type type)
override;
117 void close()
override;
119 bool timeout_check()
override;
122 std::unique_ptr<Channel_Impl> m_impl;