Botan 3.8.1
Crypto and TLS for C&
Botan::TLS::Renegotiation_Extension Class Referencefinal

#include <tls_extensions.h>

Inheritance diagram for Botan::TLS::Renegotiation_Extension:
Botan::TLS::Extension

Public Member Functions

bool empty () const override
 
virtual bool is_implemented () const
 
 Renegotiation_Extension ()=default
 
 Renegotiation_Extension (const std::vector< uint8_t > &bits)
 
 Renegotiation_Extension (TLS_Data_Reader &reader, uint16_t extension_size)
 
const std::vector< uint8_t > & renegotiation_info () const
 
std::vector< uint8_t > serialize (Connection_Side whoami) const override
 
Extension_Code type () const override
 

Static Public Member Functions

static Extension_Code static_type ()
 

Detailed Description

Renegotiation Indication Extension (RFC 5746)

Definition at line 146 of file tls_extensions.h.

Constructor & Destructor Documentation

◆ Renegotiation_Extension() [1/3]

Botan::TLS::Renegotiation_Extension::Renegotiation_Extension ( )
default

◆ Renegotiation_Extension() [2/3]

Botan::TLS::Renegotiation_Extension::Renegotiation_Extension ( const std::vector< uint8_t > & bits)
inlineexplicit

Definition at line 154 of file tls_extensions.h.

154: m_reneg_data(bits) {}

◆ Renegotiation_Extension() [3/3]

Botan::TLS::Renegotiation_Extension::Renegotiation_Extension ( TLS_Data_Reader & reader,
uint16_t extension_size )

Definition at line 296 of file tls_extensions.cpp.

296 :
297 m_reneg_data(reader.get_range<uint8_t>(1, 0, 255)) {
298 if(m_reneg_data.size() + 1 != extension_size) {
299 throw Decoding_Error("Bad encoding for secure renegotiation extn");
300 }
301}

Member Function Documentation

◆ empty()

bool Botan::TLS::Renegotiation_Extension::empty ( ) const
inlineoverridevirtual
Returns
if we should encode this extension or not

Implements Botan::TLS::Extension.

Definition at line 162 of file tls_extensions.h.

162{ return false; } // always send this

◆ is_implemented()

virtual bool Botan::TLS::Extension::is_implemented ( ) const
inlinevirtualinherited
Returns
true if this extension is known and implemented by Botan

Reimplemented in Botan::TLS::Unknown_Extension.

Definition at line 115 of file tls_extensions.h.

115{ return true; }

◆ renegotiation_info()

const std::vector< uint8_t > & Botan::TLS::Renegotiation_Extension::renegotiation_info ( ) const
inline

Definition at line 158 of file tls_extensions.h.

158{ return m_reneg_data; }

◆ serialize()

std::vector< uint8_t > Botan::TLS::Renegotiation_Extension::serialize ( Connection_Side whoami) const
overridevirtual
Returns
serialized binary for the extension

Implements Botan::TLS::Extension.

Definition at line 303 of file tls_extensions.cpp.

303 {
304 std::vector<uint8_t> buf;
305 append_tls_length_value(buf, m_reneg_data, 1);
306 return buf;
307}
void append_tls_length_value(std::vector< uint8_t, Alloc > &buf, const T *vals, size_t vals_size, size_t tag_size)
Definition tls_reader.h:180

References Botan::TLS::append_tls_length_value().

◆ static_type()

static Extension_Code Botan::TLS::Renegotiation_Extension::static_type ( )
inlinestatic

Definition at line 148 of file tls_extensions.h.

References Botan::TLS::SafeRenegotiation.

Referenced by type().

◆ type()

Extension_Code Botan::TLS::Renegotiation_Extension::type ( ) const
inlineoverridevirtual
Returns
code number of the extension

Implements Botan::TLS::Extension.

Definition at line 150 of file tls_extensions.h.

150{ return static_type(); }
static Extension_Code static_type()

References static_type().


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