Files
Aaru/Aaru.Archives/Stfs/Structs.cs

132 lines
4.5 KiB
C#
Raw Normal View History

using System.Runtime.InteropServices;
namespace Aaru.Archives;
public sealed partial class Stfs
{
#region Nested type: ConsolePackage
2025-09-02 17:30:52 +01:00
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
struct ConsolePackage
{
public PackageMagic Magic;
public ushort PkCertificateSize;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
public byte[] CertificateOwnerConsoleId;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string CertificateOwnerConsolePartNumber;
public ConsoleType CertificateOwnerConsoleType;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
public string CertificateDateOfGeneration;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] PublicExponent;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] PublicModulus;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public byte[] CertificateSignature;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] Signature;
public Metadata Metadata;
}
#endregion
#region Nested type: LicenseEntry
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
struct LicenseEntry
{
public long LicenseId;
public int LicenseBits;
public int LicenseFlags;
}
#endregion
#region Nested type: LocalizedString
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
struct LocalizedString
{
2025-09-02 17:30:52 +01:00
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string Name;
}
#endregion
#region Nested type: Metadata
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
struct Metadata
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public LicenseEntry[] Licensing;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] HeaderSha1Hash;
public uint HeaderSize;
public ContentType ContentType;
public int MetadataVersion;
public long ContentSize;
public int MediaId;
public int Version;
public int BaseVersion;
public int TitleId;
public byte Platform;
public byte ExecutableType;
public byte DiscNumber;
public byte DiscInSet;
public int SaveGameId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
public byte[] ConsoleId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] ProfileId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 36)]
public byte[] VolumeDescriptor;
public int DataFileCount;
public long DataFileCombinedSize;
public int DescriptorType;
public int Reserved;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] SeriesId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] SeasonId;
public short SeasonNo;
public short EpisodeNo;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
public byte[] Padding;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] DeviceId;
2025-09-02 17:30:52 +01:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)]
public LocalizedString[] DisplayName;
2025-09-02 17:30:52 +01:00
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)]
public LocalizedString[] DisplayDescription;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string PublisherName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string TitleName;
public TransferFlags TransferFlags;
public int ThumbnailImageSize;
public int TitleThumbnailImageSize;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16384)]
public byte[] ThumbnailImage;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16384)]
public byte[] TitleThumbnailImage;
}
#endregion
#region Nested type: RemotePackage
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
struct RemotePackage
{
public PackageMagic Magic;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public byte[] Signature;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 296)]
public byte[] Padding;
public Metadata Metadata;
}
#endregion
}