49 Server(
const std::shared_ptr<Callbacks>& callbacks,
50 const std::shared_ptr<Session_Manager>& session_manager,
51 const std::shared_ptr<Credentials_Manager>& creds,
52 const std::shared_ptr<const Policy>& policy,
53 const std::shared_ptr<RandomNumberGenerator>& rng,
54 bool is_datagram =
false,
55 size_t reserved_io_buffer_size = TLS::Channel::IO_BUF_DEFAULT_SIZE);
65 std::string application_protocol()
const override;
67 size_t from_peer(std::span<const uint8_t> data)
override;
69 bool is_handshake_complete()
const override;
71 bool is_active()
const override;
73 bool is_closed()
const override;
75 bool is_closed_for_reading()
const override;
76 bool is_closed_for_writing()
const override;
78 std::vector<X509_Certificate> peer_cert_chain()
const override;
79 std::shared_ptr<const Public_Key> peer_raw_public_key()
const override;
80 std::optional<std::string> external_psk_identity()
const override;
82 SymmetricKey key_material_export(std::string_view label, std::string_view context,
size_t length)
const override;
84 void renegotiate(
bool force_full_renegotiation =
false)
override;
86 bool new_session_ticket_supported()
const;
87 size_t send_new_session_tickets(
size_t tickets = 1);
89 void update_traffic_keys(
bool request_peer_update =
false)
override;
91 bool secure_renegotiation_supported()
const override;
93 void to_peer(std::span<const uint8_t> data)
override;
95 void send_alert(
const Alert& alert)
override;
101 void close()
override;
103 bool timeout_check()
override;
106 std::unique_ptr<Channel_Impl> m_impl;