|
|
|
@ -2,6 +2,7 @@
@@ -2,6 +2,7 @@
|
|
|
|
|
#define SSU_H__ |
|
|
|
|
|
|
|
|
|
#include <inttypes.h> |
|
|
|
|
#include <string.h> |
|
|
|
|
#include <map> |
|
|
|
|
#include <list> |
|
|
|
|
#include <set> |
|
|
|
@ -112,7 +113,21 @@ namespace ssu
@@ -112,7 +113,21 @@ namespace ssu
|
|
|
|
|
void HandleTerminationTimer (const boost::system::error_code& ecode); |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
union IV |
|
|
|
|
{ |
|
|
|
|
uint8_t buf[16]; |
|
|
|
|
uint64_t ll[2]; |
|
|
|
|
|
|
|
|
|
IV (const IV&) = default; |
|
|
|
|
IV (const uint8_t * iv) { memcpy (buf, iv, 16); }; |
|
|
|
|
bool operator< (const IV& other) const |
|
|
|
|
{ |
|
|
|
|
if (ll[0] != other.ll[0]) return ll[0] < other.ll[0]; |
|
|
|
|
return ll[1] < other.ll[1]; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
friend class SSUData; // TODO: change in later
|
|
|
|
|
SSUServer& m_Server; |
|
|
|
|
boost::asio::ip::udp::endpoint m_RemoteEndpoint; |
|
|
|
@ -128,6 +143,7 @@ namespace ssu
@@ -128,6 +143,7 @@ namespace ssu
|
|
|
|
|
i2p::crypto::CBCDecryption m_SessionKeyDecryption; |
|
|
|
|
uint8_t m_SessionKey[32], m_MacKey[32]; |
|
|
|
|
std::list<i2p::I2NPMessage *> m_DelayedMessages; |
|
|
|
|
std::set<IV> m_ReceivedIVs; |
|
|
|
|
SSUData m_Data; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|