Botan 3.6.1
Crypto and TLS for C&
|
#include <tls_handshake_io.h>
Public Member Functions | |
virtual void | add_record (const uint8_t record[], size_t record_len, Record_Type type, uint64_t sequence_number)=0 |
virtual std::vector< uint8_t > | format (const std::vector< uint8_t > &handshake_msg, Handshake_Type handshake_type) const =0 |
virtual std::pair< Handshake_Type, std::vector< uint8_t > > | get_next_record (bool expecting_ccs)=0 |
Handshake_IO ()=default | |
Handshake_IO (const Handshake_IO &)=delete | |
virtual bool | have_more_data () const =0 |
virtual Protocol_Version | initial_record_version () const =0 |
Handshake_IO & | operator= (const Handshake_IO &)=delete |
virtual std::vector< uint8_t > | send (const Handshake_Message &msg)=0 |
virtual std::vector< uint8_t > | send_under_epoch (const Handshake_Message &msg, uint16_t epoch)=0 |
virtual bool | timeout_check ()=0 |
virtual | ~Handshake_IO ()=default |
Handshake IO Interface
This interface abstracts over stream and datagram processing of handshake messages. It receives individual records from the channel via add_record
and provides a sending interface via a callback function provided by the channel.
Handshake message headers are parsed and removed in get_next_record
. The result is provided back to the channel via Handshake_State::get_next_handshake_msg
.
send
is used by individual handshake message implementations, which send themselves, as well as both client and server to dispatch CCS messaged (and Hello_Verify_Request in the server case). Before calling the writer_fn
, format
is called to add the handshake message header (except for CCS).
The buffer returned by send
is used to update the transcript record hash (where desired).
Definition at line 44 of file tls_handshake_io.h.
|
default |
|
delete |
|
virtualdefault |
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
pure virtual |
Returns (HANDSHAKE_NONE, std::vector<>()) if no message currently available
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
delete |
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
Referenced by Botan::TLS::Certificate_12::Certificate_12(), Botan::TLS::Certificate_Status::Certificate_Status(), Botan::TLS::Certificate_Status::Certificate_Status(), Botan::TLS::Certificate_Verify_12::Certificate_Verify_12(), Botan::TLS::Client_Hello_12::Client_Hello_12(), Botan::TLS::Client_Hello_12::Client_Hello_12(), Botan::TLS::Client_Key_Exchange::Client_Key_Exchange(), Botan::TLS::Finished_12::Finished_12(), Botan::TLS::Hello_Request::Hello_Request(), Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12(), Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12(), Botan::TLS::Server_Hello_Done::Server_Hello_Done(), and Botan::TLS::Server_Key_Exchange::Server_Key_Exchange().
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.
|
pure virtual |
Implemented in Botan::TLS::Datagram_Handshake_IO, and Botan::TLS::Stream_Handshake_IO.