9#ifndef BOTAN_TLS_RECORD_LAYER_13_H_
10#define BOTAN_TLS_RECORD_LAYER_13_H_
17#include <botan/secmem.h>
18#include <botan/tls_magic.h>
19#include <botan/internal/tls_channel_impl.h>
50 template <
typename ResT>
59 void copy_data(std::span<const uint8_t> data_from_peer);
75 std::span<const uint8_t> data,
97 void set_record_size_limits(uint16_t outgoing_limit, uint16_t incoming_limit);
104 std::vector<uint8_t> m_read_buffer;
109 uint16_t m_outgoing_record_size_limit;
110 uint16_t m_incoming_record_size_limit;
115 bool m_sending_compat_mode;
116 bool m_receiving_compat_mode;
std::variant< BytesNeeded, ResT > ReadResult
Record_Layer(Connection_Side side)
void copy_data(std::span< const uint8_t > data_from_peer)
void disable_sending_compat_mode()
std::vector< uint8_t > prepare_records(Record_Type type, std::span< const uint8_t > data, Cipher_State *cipher_state=nullptr) const
ReadResult< Record > next_record(Cipher_State *cipher_state=nullptr)
void disable_receiving_compat_mode()
void zap(std::vector< T, Alloc > &vec)
std::vector< T, secure_allocator< T > > secure_vector
std::optional< uint64_t > seq_no
secure_vector< uint8_t > fragment
Record(Record_Type record_type, secure_vector< uint8_t > frgmnt)