mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 16:34:13 +00:00
MixHash(sepk) added
This commit is contained in:
parent
ef5495bfb2
commit
21d99e355c
@ -98,7 +98,7 @@ namespace tunnel
|
|||||||
clearText[ECIES_BUILD_REQUEST_RECORD_FLAG_OFFSET] = flag;
|
clearText[ECIES_BUILD_REQUEST_RECORD_FLAG_OFFSET] = flag;
|
||||||
memset (clearText + ECIES_BUILD_REQUEST_RECORD_MORE_FLAGS_OFFSET, 0, 3); // set to 0 for compatibility
|
memset (clearText + ECIES_BUILD_REQUEST_RECORD_MORE_FLAGS_OFFSET, 0, 3); // set to 0 for compatibility
|
||||||
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_REQUEST_TIME_OFFSET, i2p::util::GetMinutesSinceEpoch ());
|
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_REQUEST_TIME_OFFSET, i2p::util::GetMinutesSinceEpoch ());
|
||||||
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_REQUEST_EXPIRATION_OFFSET, i2p::util::GetSecondsSinceEpoch () + 600); // 10 minutes
|
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_REQUEST_EXPIRATION_OFFSET, 600); // +10 minutes
|
||||||
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_SEND_MSG_ID_OFFSET, replyMsgID);
|
htobe32buf (clearText + ECIES_BUILD_REQUEST_RECORD_SEND_MSG_ID_OFFSET, replyMsgID);
|
||||||
memset (clearText + ECIES_BUILD_REQUEST_RECORD_PADDING_OFFSET, 0, ECIES_BUILD_REQUEST_RECORD_CLEAR_TEXT_SIZE - ECIES_BUILD_REQUEST_RECORD_PADDING_OFFSET);
|
memset (clearText + ECIES_BUILD_REQUEST_RECORD_PADDING_OFFSET, 0, ECIES_BUILD_REQUEST_RECORD_CLEAR_TEXT_SIZE - ECIES_BUILD_REQUEST_RECORD_PADDING_OFFSET);
|
||||||
if (encryptor)
|
if (encryptor)
|
||||||
@ -133,9 +133,11 @@ namespace tunnel
|
|||||||
SHA256 (ck, 32, h); // h = SHA256(h);
|
SHA256 (ck, 32, h); // h = SHA256(h);
|
||||||
uint8_t hepk[32];
|
uint8_t hepk[32];
|
||||||
encryptor->Encrypt (nullptr, hepk, nullptr, false);
|
encryptor->Encrypt (nullptr, hepk, nullptr, false);
|
||||||
MixHash (hepk, 32);
|
MixHash (hepk, 32); // h = SHA256(h || hepk)
|
||||||
auto ephemeralKeys = i2p::transport::transports.GetNextX25519KeysPair ();
|
auto ephemeralKeys = i2p::transport::transports.GetNextX25519KeysPair ();
|
||||||
memcpy (encrypted, ephemeralKeys->GetPublicKey (), 32); encrypted += 32;
|
memcpy (encrypted, ephemeralKeys->GetPublicKey (), 32);
|
||||||
|
MixHash (encrypted, 32); // h = SHA256(h || sepk)
|
||||||
|
encrypted += 32;
|
||||||
uint8_t sharedSecret[32];
|
uint8_t sharedSecret[32];
|
||||||
ephemeralKeys->Agree (hepk, sharedSecret); // x25519(sesk, hepk)
|
ephemeralKeys->Agree (hepk, sharedSecret); // x25519(sesk, hepk)
|
||||||
uint8_t keydata[64];
|
uint8_t keydata[64];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user