|
Botan 3.13.0
Crypto and TLS for C&
|
#include <tls_handshake_io.h>
Public Types | |
| using | steady_clock_fn = std::function<uint64_t()> |
| using | writer_fn = std::function<void(uint16_t, Record_Type, const std::vector<uint8_t>&)> |
Public Member Functions | |
| void | add_record (const uint8_t record[], size_t record_len, Record_Type type, uint64_t sequence_number) override |
| void | add_retransmitted_record (const uint8_t record[], size_t record_len, Record_Type type, uint64_t sequence_number) |
| Datagram_Handshake_IO (writer_fn writer, steady_clock_fn clock_ms, class Connection_Sequence_Numbers &seq, uint16_t mtu, uint64_t initial_timeout_ms, uint64_t max_timeout_ms, std::optional< size_t > max_retransmissions, size_t max_handshake_msg_size, uint16_t initial_epoch=0) | |
| void | finalize_handshake (bool retransmit_terminal_flight) |
| std::vector< uint8_t > | format (const std::vector< uint8_t > &handshake_msg, Handshake_Type handshake_type) const override |
| std::pair< Handshake_Type, std::vector< uint8_t > > | get_next_record (bool expecting_ccs, size_t max_message_size) override |
| bool | have_more_data () const override |
| Protocol_Version | initial_record_version () const override |
| std::optional< std::chrono::milliseconds > | next_retransmission_timeout () const override |
| std::vector< uint8_t > | send (const Handshake_Message &msg) override |
| std::vector< uint8_t > | send_under_epoch (const Handshake_Message &msg, uint16_t epoch) override |
| bool | timeout_check () override |
Handshake IO for datagram-based handshakes
Definition at line 128 of file tls_handshake_io.h.
| using Botan::TLS::Datagram_Handshake_IO::steady_clock_fn = std::function<uint64_t()> |
Definition at line 133 of file tls_handshake_io.h.
| using Botan::TLS::Datagram_Handshake_IO::writer_fn = std::function<void(uint16_t, Record_Type, const std::vector<uint8_t>&)> |
Definition at line 130 of file tls_handshake_io.h.
| Botan::TLS::Datagram_Handshake_IO::Datagram_Handshake_IO | ( | writer_fn | writer, |
| steady_clock_fn | clock_ms, | ||
| class Connection_Sequence_Numbers & | seq, | ||
| uint16_t | mtu, | ||
| uint64_t | initial_timeout_ms, | ||
| uint64_t | max_timeout_ms, | ||
| std::optional< size_t > | max_retransmissions, | ||
| size_t | max_handshake_msg_size, | ||
| uint16_t | initial_epoch = 0 ) |
Definition at line 193 of file tls_handshake_io.cpp.
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 374 of file tls_handshake_io.cpp.
References add_record().
Referenced by add_record(), and add_retransmitted_record().
| void Botan::TLS::Datagram_Handshake_IO::add_retransmitted_record | ( | const uint8_t | record[], |
| size_t | record_len, | ||
| Record_Type | type, | ||
| uint64_t | sequence_number ) |
Definition at line 381 of file tls_handshake_io.cpp.
References add_record().
| void Botan::TLS::Datagram_Handshake_IO::finalize_handshake | ( | bool | retransmit_terminal_flight | ) |
Enter FINISHED after channel activation. Intermediate outgoing flights are finalized implicitly when the peer's next handshake message is requested. The terminal-flight sender retains reactive replay behavior.
Definition at line 306 of file tls_handshake_io.cpp.
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 887 of file tls_handshake_io.cpp.
References BOTAN_ASSERT_NOMSG.
|
overridevirtual |
Returns (HANDSHAKE_NONE, std::vector<>()) if no message currently available
Implements Botan::TLS::Handshake_IO.
Definition at line 734 of file tls_handshake_io.cpp.
References Botan::TLS::ClientHello, Botan::TLS::HandshakeCCS, and Botan::TLS::None.
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 299 of file tls_handshake_io.cpp.
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 216 of file tls_handshake_io.cpp.
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 348 of file tls_handshake_io.cpp.
Referenced by timeout_check().
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 896 of file tls_handshake_io.cpp.
References send_under_epoch().
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 900 of file tls_handshake_io.cpp.
References Botan::TLS::ChangeCipherSpec, Botan::TLS::HandshakeCCS, Botan::TLS::HelloVerifyRequest, Botan::TLS::Handshake_Message::serialize(), and Botan::TLS::Handshake_Message::type().
Referenced by send().
|
overridevirtual |
Implements Botan::TLS::Handshake_IO.
Definition at line 323 of file tls_handshake_io.cpp.
References next_retransmission_timeout().