/// <summary> /// Factory method for creating message with payload /// </summary> public static Message CreateMessage(byte[] payload) { using (var crc32 = new Crc32()) { var message = new Message(); message.Magic = 1; message.Payload = payload; message.Crc = crc32.ComputeHash(payload); return message; } }
/// <summary> /// Validate message by computing CRC32 hash for payload and comparing with Crc property. /// Throws exception if validation fails. /// </summary> public void Validate() { using (var crc32 = new Crc32()) { var crc = crc32.ComputeHash(Payload); if (!ByteArraysEqual(crc, Crc)) throw new CorruptedMessageException(); } }