#ifndef NTCP2_H__ #define NTCP2_H__ #include #include #include "RouterInfo.h" #include "TransportSession.h" namespace i2p { namespace transport { class NTCP2Session: public TransportSession, public std::enable_shared_from_this { public: NTCP2Session (std::shared_ptr in_RemoteRouter = nullptr); // TODO ~NTCP2Session (); private: bool KeyDerivationFunction (const uint8_t * rs, const uint8_t * pub, uint8_t * derived); void CreateEphemeralKey (uint8_t * pub); void SendSessionRequest (const uint8_t * iv, const uint8_t * rs); private: uint8_t m_ExpandedPrivateKey[64]; // x25519 ephemeral key }; } } #endif