9 #ifndef BOTAN_TLS_SERVER_H__
10 #define BOTAN_TLS_SERVER_H__
12 #include <botan/tls_channel.h>
13 #include <botan/credentials_manager.h>
21 class Server_Handshake_State;
57 bool is_datagram =
false,
75 bool is_datagram = false,
76 size_t reserved_io_buffer_size = TLS::
Server::IO_BUF_DEFAULT_SIZE
87 handshake_cb handshake_cb,
93 next_protocol_fn next_proto = next_protocol_fn(),
94 bool is_datagram = false
103 std::
string next_protocol()
const {
return m_next_protocol; }
106 std::vector<X509_Certificate>
110 bool force_full_renegotiation)
override;
115 const std::vector<uint8_t>& contents)
override;
118 Server_Handshake_State& pending_state,
119 const std::vector<uint8_t>& contents);
121 void process_certificate_msg(Server_Handshake_State& pending_state,
122 const std::vector<uint8_t>& contents);
124 void process_client_key_exchange_msg(Server_Handshake_State& pending_state,
125 const std::vector<uint8_t>& contents);
127 void process_change_cipher_spec_msg(Server_Handshake_State& pending_state);
129 void process_certificate_verify_msg(Server_Handshake_State& pending_state,
131 const std::vector<uint8_t>& contents);
133 void process_finished_msg(Server_Handshake_State& pending_state,
135 const std::vector<uint8_t>& contents);
137 void session_resume(Server_Handshake_State& pending_state,
138 bool have_session_ticket_key,
141 void session_create(Server_Handshake_State& pending_state,
142 bool have_session_ticket_key);
147 std::string m_next_protocol;
150 next_protocol_fn m_choose_next_protocol;
std::function< void(Alert, const uint8_t[], size_t)> alert_cb
std::function< void(const uint8_t[], size_t)> output_fn
class BOTAN_DLL BOTAN_DEPRECATED("LibraryInitializer is no longer required") LibraryInitializer
std::function< bool(const Session &)> handshake_cb
static size_t IO_BUF_DEFAULT_SIZE
std::function< std::string(std::vector< std::string >)> next_protocol_fn
std::function< void(const uint8_t[], size_t)> data_cb
std::function< void(const Handshake_Message &)> handshake_msg_cb