Botan  1.11.15
Public Member Functions
Botan::TLS::TLS_Data_Reader Class Reference

#include <tls_reader.h>

List of all members.

Public Member Functions

void assert_done () const
void discard_next (size_t bytes)
byte get_byte ()
template<typename T , typename Container >
Container get_elem (size_t num_elems)
template<typename T >
std::vector< T > get_fixed (size_t size)
template<typename T >
std::vector< T > get_range (size_t len_bytes, size_t min_elems, size_t max_elems)
template<typename T >
std::vector< T > get_range_vector (size_t len_bytes, size_t min_elems, size_t max_elems)
std::vector< byteget_remaining ()
std::string get_string (size_t len_bytes, size_t min_bytes, size_t max_bytes)
u16bit get_u16bit ()
u16bit get_u32bit ()
bool has_remaining () const
size_t remaining_bytes () const
 TLS_Data_Reader (const char *type, const std::vector< byte > &buf_in)

Detailed Description

Helper class for decoding TLS protocol messages

Definition at line 25 of file tls_reader.h.


Constructor & Destructor Documentation

Botan::TLS::TLS_Data_Reader::TLS_Data_Reader ( const char *  type,
const std::vector< byte > &  buf_in 
) [inline]

Definition at line 28 of file tls_reader.h.

                                                                       :
         m_typename(type), m_buf(buf_in), m_offset(0) {}

Member Function Documentation

Definition at line 31 of file tls_reader.h.

References has_remaining().

Referenced by Botan::TLS::Server_Key_Exchange::Server_Key_Exchange().

         {
         if(has_remaining())
            throw decode_error("Extra bytes at end of message");
         }
void Botan::TLS::TLS_Data_Reader::discard_next ( size_t  bytes) [inline]

Definition at line 46 of file tls_reader.h.

Referenced by Botan::TLS::Extensions::deserialize(), and Botan::TLS::Server_Name_Indicator::Server_Name_Indicator().

         {
         assert_at_least(bytes);
         m_offset += bytes;
         }
template<typename T , typename Container >
Container Botan::TLS::TLS_Data_Reader::get_elem ( size_t  num_elems) [inline]

Definition at line 78 of file tls_reader.h.

Referenced by Botan::TLS::Session_Ticket::Session_Ticket().

         {
         assert_at_least(num_elems * sizeof(T));

         Container result(num_elems);

         for(size_t i = 0; i != num_elems; ++i)
            result[i] = load_be<T>(&m_buf[m_offset], i);

         m_offset += num_elems * sizeof(T);

         return result;
         }
template<typename T >
std::vector<T> Botan::TLS::TLS_Data_Reader::get_fixed ( size_t  size) [inline]

Definition at line 125 of file tls_reader.h.

Referenced by Botan::TLS::Client_Hello::Client_Hello(), and Botan::TLS::Server_Hello::Server_Hello().

         {
         return get_elem<T, std::vector<T> >(size);
         }
template<typename T >
std::vector<T> Botan::TLS::TLS_Data_Reader::get_range ( size_t  len_bytes,
size_t  min_elems,
size_t  max_elems 
) [inline]
template<typename T >
std::vector<T> Botan::TLS::TLS_Data_Reader::get_range_vector ( size_t  len_bytes,
size_t  min_elems,
size_t  max_elems 
) [inline]

Definition at line 104 of file tls_reader.h.

Referenced by Botan::TLS::Client_Hello::Client_Hello(), and Botan::TLS::Next_Protocol::Next_Protocol().

         {
         const size_t num_elems =
            get_num_elems(len_bytes, sizeof(T), min_elems, max_elems);

         return get_elem<T, std::vector<T> >(num_elems);
         }

Definition at line 41 of file tls_reader.h.

Referenced by Botan::TLS::Heartbeat_Message::Heartbeat_Message().

         {
         return std::vector<byte>(m_buf.begin() + m_offset, m_buf.end());
         }
std::string Botan::TLS::TLS_Data_Reader::get_string ( size_t  len_bytes,
size_t  min_bytes,
size_t  max_bytes 
) [inline]

Definition at line 52 of file tls_reader.h.

References Botan::make_u32bit().

Referenced by Botan::TLS::New_Session_Ticket::New_Session_Ticket().

         {
         assert_at_least(4);
         u16bit result = make_u32bit(m_buf[m_offset  ], m_buf[m_offset+1],
                                     m_buf[m_offset+2], m_buf[m_offset+3]);
         m_offset += 4;
         return result;
         }

Definition at line 39 of file tls_reader.h.

References remaining_bytes().

Referenced by assert_done(), and Botan::TLS::Extensions::deserialize().

{ return (remaining_bytes() > 0); }

Definition at line 37 of file tls_reader.h.

Referenced by Botan::TLS::Extensions::deserialize(), and has_remaining().

{ return m_buf.size() - m_offset; }

The documentation for this class was generated from the following file: