diff options
author | lloyd <[email protected]> | 2012-08-07 14:00:07 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2012-08-07 14:00:07 +0000 |
commit | 1da4add61ed535fac5521d3bda5821aa6cc081b5 (patch) | |
tree | 192afd384ed588c9dc2fbfd0108a714a9294344d /src/tls/tls_handshake_io.h | |
parent | e770788128673dd50785005fd1d269d423d241d0 (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.h | 11 |
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; |