nusdownloader-fork/NUS Downloader/TMD.cs

69 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Text;
namespace NUS_Downloader
{
class TMD
{
// TMD Variables
2010-06-29 18:06:15 +02:00
//public byte[] SignatureType;
/* Signature Types
public enum SigTypes : byte[]
{
RSA_2048 = new byte[4] {0x00, 0x01, 0x00, 0x01},
RSA_4048 = new byte[4] {0x00, 0x01, 0x00, 0x01}
} */
/*
* Title metadata is a format used to store information about a title (a single standalone game, channel, etc.) and all its installed contents, including which contents they consist of and their SHA1 hashes.
Many operations are done in terms of 64-byte blocks, which means you will often see padding out to the nearest 64-byte boundary at the end of a field.
Contents
Structure
Header
Start Length Description
0x000 4 Signature type
0x004 256 Signature
0x104 60 Padding modulo 64
0x140 64 Issuer
0x180 1 Version
0x181 1 ca_crl_version
0x182 1 signer_crl_version
0x183 1 Padding modulo 64
0x184 8 System Version (the ios that the title need)
0x18C 8 Title ID
0x194 4 Title type
0x198 2 Group ID
0x19A 62 reserved
0x1D8 4 Access rights (flags for DVD-video access and full PPC hardware access)
0x1DC 2 Title version
0x1DE 2 Number of contents (nbr_cont)
0x1E0 2 boot index
0x1E2 2 Padding modulo 64
0x1E4 36*nbr_cont Contents
Content
Start Length Description
0x00 4 Content ID
0x04 2 Index
0x06 2 Type
0x08 8 Size
0x10 20 SHA1 hash
Certificates
Start Length Description
0x000 4 Signature type
0x004 256 Signature
0x104 32 Issuer
0x124 4 Tag
0x128 64 Name
0x168 Key
*/
}
}