mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-08 22:57:52 +00:00
fixed misalignment
This commit is contained in:
parent
7a84daf3f7
commit
8d4fae24ea
@ -187,8 +187,8 @@ namespace transport
|
|||||||
memcpy (xy + 256, y, 256);
|
memcpy (xy + 256, y, 256);
|
||||||
SHA256(xy, 512, m_Establisher->phase2.encrypted.hxy);
|
SHA256(xy, 512, m_Establisher->phase2.encrypted.hxy);
|
||||||
uint32_t tsB = htobe32 (i2p::util::GetSecondsSinceEpoch ());
|
uint32_t tsB = htobe32 (i2p::util::GetSecondsSinceEpoch ());
|
||||||
m_Establisher->phase2.encrypted.timestamp = tsB;
|
memcpy (m_Establisher->phase2.encrypted.timestamp, &tsB, 4);
|
||||||
// TODO: fill filler
|
RAND_bytes (m_Establisher->phase2.encrypted.filler, 12);
|
||||||
|
|
||||||
i2p::crypto::AESKey aesKey;
|
i2p::crypto::AESKey aesKey;
|
||||||
CreateAESKey (m_Establisher->phase1.pubKey, aesKey);
|
CreateAESKey (m_Establisher->phase1.pubKey, aesKey);
|
||||||
@ -287,7 +287,7 @@ namespace transport
|
|||||||
s.Insert (m_Establisher->phase2.pubKey, 256); // y
|
s.Insert (m_Establisher->phase2.pubKey, 256); // y
|
||||||
s.Insert (m_RemoteIdentity->GetIdentHash (), 32); // ident
|
s.Insert (m_RemoteIdentity->GetIdentHash (), 32); // ident
|
||||||
s.Insert (tsA); // tsA
|
s.Insert (tsA); // tsA
|
||||||
s.Insert (m_Establisher->phase2.encrypted.timestamp); // tsB
|
s.Insert (m_Establisher->phase2.encrypted.timestamp, 4); // tsB
|
||||||
s.Sign (keys, buf);
|
s.Sign (keys, buf);
|
||||||
|
|
||||||
m_Encryption.Encrypt(m_ReceiveBuffer, len, m_ReceiveBuffer);
|
m_Encryption.Encrypt(m_ReceiveBuffer, len, m_ReceiveBuffer);
|
||||||
@ -449,7 +449,7 @@ namespace transport
|
|||||||
s.Insert (m_Establisher->phase2.pubKey, 256); // y
|
s.Insert (m_Establisher->phase2.pubKey, 256); // y
|
||||||
s.Insert (i2p::context.GetIdentHash (), 32); // ident
|
s.Insert (i2p::context.GetIdentHash (), 32); // ident
|
||||||
s.Insert (tsA); // tsA
|
s.Insert (tsA); // tsA
|
||||||
s.Insert (m_Establisher->phase2.encrypted.timestamp); // tsB
|
s.Insert (m_Establisher->phase2.encrypted.timestamp, 4); // tsB
|
||||||
|
|
||||||
if (!s.Verify (m_RemoteIdentity, m_ReceiveBuffer))
|
if (!s.Verify (m_RemoteIdentity, m_ReceiveBuffer))
|
||||||
{
|
{
|
||||||
|
@ -17,8 +17,6 @@ namespace i2p
|
|||||||
{
|
{
|
||||||
namespace transport
|
namespace transport
|
||||||
{
|
{
|
||||||
|
|
||||||
#pragma pack(1)
|
|
||||||
struct NTCPPhase1
|
struct NTCPPhase1
|
||||||
{
|
{
|
||||||
uint8_t pubKey[256];
|
uint8_t pubKey[256];
|
||||||
@ -31,13 +29,11 @@ namespace transport
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t hxy[32];
|
uint8_t hxy[32];
|
||||||
uint32_t timestamp;
|
uint8_t timestamp[4];
|
||||||
uint8_t filler[12];
|
uint8_t filler[12];
|
||||||
} encrypted;
|
} encrypted;
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma pack()
|
|
||||||
|
|
||||||
const size_t NTCP_MAX_MESSAGE_SIZE = 16384;
|
const size_t NTCP_MAX_MESSAGE_SIZE = 16384;
|
||||||
const size_t NTCP_BUFFER_SIZE = 4160; // fits 4 tunnel messages (4*1028)
|
const size_t NTCP_BUFFER_SIZE = 4160; // fits 4 tunnel messages (4*1028)
|
||||||
const int NTCP_TERMINATION_TIMEOUT = 120; // 2 minutes
|
const int NTCP_TERMINATION_TIMEOUT = 120; // 2 minutes
|
||||||
|
Loading…
Reference in New Issue
Block a user