Botan 3.12.0
Crypto and TLS for C&
Botan::TLS::Stream_Sequence_Numbers Class Referencefinal

#include <tls_seq_numbers.h>

Inheritance diagram for Botan::TLS::Stream_Sequence_Numbers:
Botan::TLS::Connection_Sequence_Numbers

Public Member Functions

bool already_seen (uint64_t) const override
uint16_t current_read_epoch () const override
uint16_t current_write_epoch () const override
void new_read_cipher_state () override
void new_write_cipher_state () override
uint64_t next_read_sequence () override
uint64_t next_write_sequence (uint16_t) override
void read_accept (uint64_t) override
void reset () override
 Stream_Sequence_Numbers ()

Detailed Description

Definition at line 37 of file tls_seq_numbers.h.

Constructor & Destructor Documentation

◆ Stream_Sequence_Numbers()

Botan::TLS::Stream_Sequence_Numbers::Stream_Sequence_Numbers ( )
inline

Definition at line 39 of file tls_seq_numbers.h.

39: m_write_seq_no(0), m_read_seq_no(0), m_read_epoch(0), m_write_epoch(0) {}

Member Function Documentation

◆ already_seen()

bool Botan::TLS::Stream_Sequence_Numbers::already_seen ( uint64_t ) const
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 71 of file tls_seq_numbers.h.

71{ return false; }

◆ current_read_epoch()

uint16_t Botan::TLS::Stream_Sequence_Numbers::current_read_epoch ( ) const
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 58 of file tls_seq_numbers.h.

58{ return m_read_epoch; }

◆ current_write_epoch()

uint16_t Botan::TLS::Stream_Sequence_Numbers::current_write_epoch ( ) const
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 60 of file tls_seq_numbers.h.

60{ return m_write_epoch; }

◆ new_read_cipher_state()

void Botan::TLS::Stream_Sequence_Numbers::new_read_cipher_state ( )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 48 of file tls_seq_numbers.h.

48 {
49 m_read_seq_no = 0;
50 m_read_epoch++;
51 }

◆ new_write_cipher_state()

void Botan::TLS::Stream_Sequence_Numbers::new_write_cipher_state ( )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 53 of file tls_seq_numbers.h.

53 {
54 m_write_seq_no = 0;
55 m_write_epoch++;
56 }

◆ next_read_sequence()

uint64_t Botan::TLS::Stream_Sequence_Numbers::next_read_sequence ( )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 69 of file tls_seq_numbers.h.

69{ return m_read_seq_no; }

◆ next_write_sequence()

uint64_t Botan::TLS::Stream_Sequence_Numbers::next_write_sequence ( uint16_t )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 62 of file tls_seq_numbers.h.

62 {
63 if(m_write_seq_no == std::numeric_limits<uint64_t>::max()) {
64 throw Invalid_State("TLS 1.2 write sequence number overflow");
65 }
66 return m_write_seq_no++;
67 }

◆ read_accept()

void Botan::TLS::Stream_Sequence_Numbers::read_accept ( uint64_t )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 73 of file tls_seq_numbers.h.

73 {
74 if(m_read_seq_no == std::numeric_limits<uint64_t>::max()) {
75 throw Invalid_State("TLS 1.2 read sequence number overflow");
76 }
77 m_read_seq_no++;
78 }

◆ reset()

void Botan::TLS::Stream_Sequence_Numbers::reset ( )
inlineoverridevirtual

Implements Botan::TLS::Connection_Sequence_Numbers.

Definition at line 41 of file tls_seq_numbers.h.

41 {
42 m_write_seq_no = 0;
43 m_read_seq_no = 0;
44 m_read_epoch = 0;
45 m_write_epoch = 0;
46 }

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