aboutsummaryrefslogtreecommitdiffstats
path: root/src/tls/tls_handshake_io.h
diff options
context:
space:
mode:
authorlloyd <[email protected]>2012-08-07 14:00:07 +0000
committerlloyd <[email protected]>2012-08-07 14:00:07 +0000
commit1da4add61ed535fac5521d3bda5821aa6cc081b5 (patch)
tree192afd384ed588c9dc2fbfd0108a714a9294344d /src/tls/tls_handshake_io.h
parente770788128673dd50785005fd1d269d423d241d0 (diff)
Track the sequence number and return it from the record reader. Take
the sequence number into the handshake parser. This is ignored entirely by the stream handshake reader which does not need it, but is needed for DTLS. Track which epoch(s) we have seen a change cipher spec for.
Diffstat (limited to 'src/tls/tls_handshake_io.h')
-rw-r--r--src/tls/tls_handshake_io.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/tls/tls_handshake_io.h b/src/tls/tls_handshake_io.h
index da3bfd5c8..cd79a0b72 100644
--- a/src/tls/tls_handshake_io.h
+++ b/src/tls/tls_handshake_io.h
@@ -14,6 +14,7 @@
#include <vector>
#include <deque>
#include <map>
+#include <set>
#include <utility>
namespace Botan {
@@ -39,7 +40,8 @@ class Handshake_IO
virtual void add_input(byte record_type,
const byte record[],
- size_t record_size) = 0;
+ size_t record_size,
+ u64bit record_number) = 0;
virtual bool empty() const = 0;
@@ -74,7 +76,8 @@ class Stream_Handshake_IO : public Handshake_IO
void add_input(byte record_type,
const byte record[],
- size_t record_size) override;
+ size_t record_size,
+ u64bit record_number) override;
bool empty() const override;
@@ -104,7 +107,8 @@ class Datagram_Handshake_IO : public Handshake_IO
void add_input(const byte rec_type,
const byte record[],
- size_t record_size) override;
+ size_t record_size,
+ u64bit record_number) override;
bool empty() const override;
@@ -132,6 +136,7 @@ class Datagram_Handshake_IO : public Handshake_IO
};
std::map<u16bit, Handshake_Reassembly> m_messages;
+ std::set<u16bit> m_ccs_epochs;
u16bit m_in_message_seq = 0;
u16bit m_out_message_seq = 0;