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; } = [];
}
}