using System.IO; using System.Text; namespace SabreTools.FileTypes.Aaru { /// /// Checksum block, contains a checksum of all user data sectors /// (except for optical discs that is 2352 bytes raw sector if available /// /// public class ChecksumHeader { /// Identifier, public AaruBlockType identifier; /// Length in bytes of the block public uint length; /// How many checksums follow public byte entries; /// /// Read a stream as an ChecksumHeader /// /// ChecksumHeader as a stream /// Populated ChecksumHeader, null on failure public static ChecksumHeader Deserialize(Stream stream) { ChecksumHeader checksumHeader = new ChecksumHeader(); using (BinaryReader br = new BinaryReader(stream, Encoding.Default, true)) { checksumHeader.identifier = (AaruBlockType)br.ReadUInt32(); checksumHeader.length = br.ReadUInt32(); checksumHeader.entries = br.ReadByte(); } return checksumHeader; } } }