Botan 3.6.1
Crypto and TLS for C&
Botan::TLS::New_Session_Ticket_12 Class Referencefinal

#include <tls_messages.h>

Inheritance diagram for Botan::TLS::New_Session_Ticket_12:
Botan::TLS::Handshake_Message

Public Member Functions

 New_Session_Ticket_12 (const std::vector< uint8_t > &buf)
 
 New_Session_Ticket_12 (Handshake_IO &io, Handshake_Hash &hash)
 
 New_Session_Ticket_12 (Handshake_IO &io, Handshake_Hash &hash, Session_Ticket ticket, std::chrono::seconds lifetime)
 
std::vector< uint8_t > serialize () const override
 
const Session_Ticketticket () const
 
std::chrono::seconds ticket_lifetime_hint () const
 
Handshake_Type type () const override
 
std::string type_string () const
 
virtual Handshake_Type wire_type () const
 

Detailed Description

New Session Ticket Message

Definition at line 939 of file tls_messages.h.

Constructor & Destructor Documentation

◆ New_Session_Ticket_12() [1/3]

Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12 ( Handshake_IO & io,
Handshake_Hash & hash,
Session_Ticket ticket,
std::chrono::seconds lifetime )

Definition at line 25 of file msg_session_ticket.cpp.

28 :
29 m_ticket_lifetime_hint(lifetime), m_ticket(std::move(ticket)) {
30 hash.update(io.send(*this));
31}
const Session_Ticket & ticket() const

References Botan::TLS::Handshake_IO::send(), and Botan::TLS::Handshake_Hash::update().

◆ New_Session_Ticket_12() [2/3]

Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12 ( Handshake_IO & io,
Handshake_Hash & hash )

Definition at line 33 of file msg_session_ticket.cpp.

33 {
34 hash.update(io.send(*this));
35}

References Botan::TLS::Handshake_IO::send(), and Botan::TLS::Handshake_Hash::update().

◆ New_Session_Ticket_12() [3/3]

Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12 ( const std::vector< uint8_t > & buf)
explicit

Definition at line 37 of file msg_session_ticket.cpp.

37 {
38 if(buf.size() < 6) {
39 throw Decoding_Error("Session ticket message too short to be valid");
40 }
41
42 TLS_Data_Reader reader("SessionTicket", buf);
43
44 m_ticket_lifetime_hint = std::chrono::seconds(reader.get_uint32_t());
45 m_ticket = Session_Ticket(reader.get_range<uint8_t>(2, 0, 65535));
46 reader.assert_done();
47}
Strong< std::vector< uint8_t >, struct Session_Ticket_ > Session_Ticket
holds a TLS 1.2 session ticket for stateless resumption
Definition tls_session.h:35

References Botan::TLS::TLS_Data_Reader::assert_done(), Botan::TLS::TLS_Data_Reader::get_range(), and Botan::TLS::TLS_Data_Reader::get_uint32_t().

Member Function Documentation

◆ serialize()

std::vector< uint8_t > Botan::TLS::New_Session_Ticket_12::serialize ( ) const
overridevirtual
Returns
DER representation of this message

Implements Botan::TLS::Handshake_Message.

Definition at line 60 of file msg_session_ticket.cpp.

60 {
61 std::vector<uint8_t> buf(4);
62 store_be(static_cast<uint32_t>(m_ticket_lifetime_hint.count()), buf.data());
63 append_tls_length_value(buf, m_ticket.get(), 2);
64 return buf;
65}
constexpr T & get() &
Definition strong_type.h:50
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
constexpr auto store_be(ParamTs &&... params)
Definition loadstor.h:773

References Botan::TLS::append_tls_length_value(), Botan::detail::Strong_Base< T >::get(), and Botan::store_be().

◆ ticket()

const Session_Ticket & Botan::TLS::New_Session_Ticket_12::ticket ( ) const
inline

Definition at line 945 of file tls_messages.h.

945{ return m_ticket; }

Referenced by Botan::TLS::Handshake_State::session_ticket().

◆ ticket_lifetime_hint()

std::chrono::seconds Botan::TLS::New_Session_Ticket_12::ticket_lifetime_hint ( ) const
inline

Definition at line 943 of file tls_messages.h.

943{ return m_ticket_lifetime_hint; }

◆ type()

Handshake_Type Botan::TLS::New_Session_Ticket_12::type ( ) const
inlineoverridevirtual
Returns
the message type

Implements Botan::TLS::Handshake_Message.

Definition at line 941 of file tls_messages.h.

◆ type_string()

std::string Botan::TLS::Handshake_Message::type_string ( ) const
inherited
Returns
string representation of this message type

Definition at line 19 of file tls_handshake_state.cpp.

19 {
21}
virtual Handshake_Type type() const =0
const char * handshake_type_to_string(Handshake_Type type)

References Botan::TLS::handshake_type_to_string(), and Botan::TLS::Handshake_Message::type().

◆ wire_type()

virtual Handshake_Type Botan::TLS::Handshake_Message::wire_type ( ) const
inlinevirtualinherited
Returns
the wire representation of the message's type

Reimplemented in Botan::TLS::Hello_Retry_Request.

Definition at line 39 of file tls_handshake_msg.h.

39 {
40 // Usually equal to the Handshake_Type enum value,
41 // with the exception of TLS 1.3 Hello Retry Request.
42 return type();
43 }

Referenced by Botan::TLS::Stream_Handshake_IO::send().


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