mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-13 16:39:43 -05:00
changed GxsTunnel method for computing turtle hash, to avoid crashing old peers
This commit is contained in:
parent
0957e7068a
commit
893f178ce1
@ -1389,14 +1389,14 @@ TurtleFileHash p3GxsTunnelService::randomHashFromDestinationGxsId(const RsGxsId&
|
|||||||
assert(Sha1CheckSum::SIZE_IN_BYTES == 20) ;
|
assert(Sha1CheckSum::SIZE_IN_BYTES == 20) ;
|
||||||
|
|
||||||
uint8_t bytes[20] ;
|
uint8_t bytes[20] ;
|
||||||
memcpy(bytes,destination.toByteArray(),16) ;
|
memcpy(&bytes[4],destination.toByteArray(),16) ;
|
||||||
|
|
||||||
RAND_bytes(&bytes[16],4) ; // fill the last bytes with random crap. Very important to allow tunnels from different sources and statistically avoid collisions.
|
RAND_bytes(&bytes[0],4) ; // fill the 4 first bytes with random crap. Very important to allow tunnels from different sources and statistically avoid collisions.
|
||||||
|
|
||||||
// We could rehash this, with a secret key to get a HMAC. That would allow to publish secret distant chat
|
// We could rehash this, with a secret key to get a HMAC. That would allow to publish secret distant chat
|
||||||
// passphrases. I'll do this later if needed.
|
// passphrases. I'll do this later if needed.
|
||||||
|
|
||||||
return Sha1CheckSum(bytes) ;
|
return Sha1CheckSum(bytes) ; // this does not compute a hash, and that is on purpose.
|
||||||
}
|
}
|
||||||
|
|
||||||
RsGxsId p3GxsTunnelService::destinationGxsIdFromHash(const TurtleFileHash& sum)
|
RsGxsId p3GxsTunnelService::destinationGxsIdFromHash(const TurtleFileHash& sum)
|
||||||
@ -1404,7 +1404,7 @@ RsGxsId p3GxsTunnelService::destinationGxsIdFromHash(const TurtleFileHash& sum)
|
|||||||
assert( RsGxsId::SIZE_IN_BYTES == 16) ;
|
assert( RsGxsId::SIZE_IN_BYTES == 16) ;
|
||||||
assert(Sha1CheckSum::SIZE_IN_BYTES == 20) ;
|
assert(Sha1CheckSum::SIZE_IN_BYTES == 20) ;
|
||||||
|
|
||||||
return RsGxsId(sum.toByteArray());// takes the first 16 bytes
|
return RsGxsId(&sum.toByteArray()[4]);// takes the last 16 bytes
|
||||||
}
|
}
|
||||||
|
|
||||||
bool p3GxsTunnelService::getTunnelInfo(const RsGxsTunnelId& tunnel_id,GxsTunnelInfo& info)
|
bool p3GxsTunnelService::getTunnelInfo(const RsGxsTunnelId& tunnel_id,GxsTunnelInfo& info)
|
||||||
|
Loading…
Reference in New Issue
Block a user