namespace SabreTools.Data.Models.SecuROM { public class MatroshkaEntry { /// /// File entry path, either 256 or 512 bytes /// /// /// Versions without a key prefix are 256 bytes. /// Versions with key values either are 256 or 512 bytes. /// Stored as a string as the rest of the 256/512 bytes are just padding. /// public string Path { get; set; } = string.Empty; /// /// Type of the entry data /// public MatroshkaEntryType EntryType { get; set; } /// /// Data size /// public uint Size { get; set; } /// /// Data offset within the package /// public uint Offset { get; set; } /// /// Unknown value only seen in later versions /// /// Does not indicate that the offset is or isn't a 64-bit value public uint? Unknown { get; set; } /// /// File modification time, stored in NTFS filetime. /// /// public ulong ModifiedTime { get; set; } /// /// File creation time, stored in NTFS filetime. /// /// public ulong CreatedTime { get; set; } /// /// File access time, stored in NTFS filetime. /// /// public ulong AccessedTime { get; set; } /// /// MD5 hash of the data /// /// 16 bytes public byte[] MD5 { get; set; } = new byte[16]; /// /// The file data, stored as a byte array /// public byte[] FileData { get; set; } = []; } }