public HandshakeRandom(byte[] data)
{
UInt32 unix_time = 0;
unix_time |= ((UInt32) data[0]) << 24;
unix_time |= ((UInt32) data[1]) << 16;
unix_time |= ((UInt32) data[2]) << 8;
unix_time |= (UInt32) data[3];
this.gmt_unix_time = unix_time;
byte[] randomBytes = new byte[28];
Array.Copy(data, 4, randomBytes, 0, 28);
this.random_bytes = randomBytes;
}