public RawEntry24[] GetRawEntries() { List <RawEntry24> re = new List <RawEntry24>(); int pos = 0; while (pos < Length) { byte[] byteArray = BinaryUtil.Extract(Data, pos, 3); uint len = (uint)( byteArray[0] | (byteArray[1] << 8) | (byteArray[2] << 16) | (0 << 24)); pos += 3; byte[] d = BinaryUtil.Extract(Data, pos, (int)len); RawEntry24 r = new RawEntry24(d); pos += (int)r.Length; re.Add(r); } return(re.ToArray()); }
public ReplayHeader(byte[] data) { int pos = 0; _length = (ushort)data.Length; ClientVersion = Version64.Parse(BitConverter.ToInt64(data, 0)); // 8 bytes ServerVersion = Version24.Parse(BinaryUtil.Extract(data, 8, 3)); // 3 bytes byte blen = data[11]; ObserverKey = new RawEntry8(BinaryUtil.Extract(data, 12, (int)blen)); // 1+blen bytes pos = 12 + blen; if (data.Length > pos) { ushort len = BitConverter.ToUInt16(data, pos); pos += 2; Signature = new RawEntry16(BinaryUtil.Extract(data, pos, (int)len)); pos += len; len = BitConverter.ToUInt16(data, pos); pos += 2; Certificate = new RawEntry16(BinaryUtil.Extract(data, pos, (int)len)); pos += len; } }