Botan 3.13.0
Crypto and TLS for C&
Botan::TLS::Session_Ticket_Extension Class Referencefinal

#include <tls_extensions_12.h>

Inheritance diagram for Botan::TLS::Session_Ticket_Extension:
Botan::TLS::Extension

Public Member Functions

const Session_Ticketcontents () const
bool empty () const override
virtual bool is_implemented () const
std::vector< uint8_t > serialize (Connection_Side) const override
 Session_Ticket_Extension ()=default
 Session_Ticket_Extension (Session_Ticket session_ticket)
 Session_Ticket_Extension (TLS_Data_Reader &reader, uint16_t extension_size, Connection_Side from)
Extension_Code type () const override

Static Public Member Functions

static Extension_Code static_type ()

Detailed Description

Session Ticket Extension (RFC 5077)

Definition at line 54 of file tls_extensions_12.h.

Constructor & Destructor Documentation

◆ Session_Ticket_Extension() [1/3]

Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension ( )
default

Create empty extension, used by both client and server

◆ Session_Ticket_Extension() [2/3]

Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension ( Session_Ticket session_ticket)
inlineexplicit

Extension with ticket, used by client

Definition at line 73 of file tls_extensions_12.h.

73: m_ticket(std::move(session_ticket)) {}

◆ Session_Ticket_Extension() [3/3]

Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension ( TLS_Data_Reader & reader,
uint16_t extension_size,
Connection_Side from )

Deserialize a session ticket

Definition at line 85 of file tls_extensions_12.cpp.

87 {
88 // RFC 5077 3.2: in a ServerHello the SessionTicket extension is just a
89 // flag indicating that a NewSessionTicket handshake message will follow;
90 // its extension_data MUST be empty. A ticket body is only valid in a
91 // ClientHello.
92 if(from == Connection_Side::Server && extension_size != 0) {
93 throw Decoding_Error("Server sent a non-empty SessionTicket extension");
94 }
95 m_ticket = Session_Ticket(reader.get_elem<uint8_t, std::vector<uint8_t>>(extension_size));
96}
Strong< std::vector< uint8_t >, struct Session_Ticket_ > Session_Ticket
holds a TLS 1.2 session ticket for stateless resumption

References Botan::TLS::TLS_Data_Reader::get_elem(), and Botan::TLS::Server.

Member Function Documentation

◆ contents()

const Session_Ticket & Botan::TLS::Session_Ticket_Extension::contents ( ) const
inline
Returns
contents of the session ticket

Definition at line 63 of file tls_extensions_12.h.

63{ return m_ticket; }

◆ empty()

bool Botan::TLS::Session_Ticket_Extension::empty ( ) const
inlineoverridevirtual

Predicate if a TLS extension should be included or not

Returns
true if this extension should be encoded, otherwise false

Implements Botan::TLS::Extension.

Definition at line 82 of file tls_extensions_12.h.

82{ return false; }

◆ is_implemented()

virtual bool Botan::TLS::Extension::is_implemented ( ) const
inlinevirtualinherited

Predicate if the extension is known/implemented

Note
this exists primarily to support unknown extension handling and doesn't need to be overridden even in the custom extension case.
Returns
true if this extension is known

Reimplemented in Botan::TLS::Unknown_Extension.

Definition at line 113 of file tls_extensions.h.

113{ return true; }

◆ serialize()

std::vector< uint8_t > Botan::TLS::Session_Ticket_Extension::serialize ( Connection_Side whoami) const
inlineoverridevirtual

Serialize a TLS extension

Parameters
whoamiwhich peer we are acting as in the protocol
Returns
serialized binary for the extension

Implements Botan::TLS::Extension.

Definition at line 80 of file tls_extensions_12.h.

80{ return m_ticket.get(); }

◆ static_type()

Extension_Code Botan::TLS::Session_Ticket_Extension::static_type ( )
inlinestatic

Definition at line 56 of file tls_extensions_12.h.

References Botan::TLS::SessionTicket.

Referenced by type().

◆ type()

Extension_Code Botan::TLS::Session_Ticket_Extension::type ( ) const
inlineoverridevirtual

Return TLS extension code

Returns
code number of the extension

Implements Botan::TLS::Extension.

Definition at line 58 of file tls_extensions_12.h.

58{ return static_type(); }

References static_type().


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