Title metadata: Difference between revisions

Arikado (talk | contribs)
Copied over from http://daifukkat.su/
 
WB3000 (talk | contribs)
Added table with offsets similar to WiiBrew, DSiBrew, entries. Signature throws off values?
Line 1: Line 1:
[http://git.daifukkat.su/?p=3dshax.git Code Application by trap15]
'''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.


[http://git.daifukkat.su/?p=3dshax.git Code is available] by trap15 to parse the available information from the 3DS format of TMDs.
== Structure ==
=== Header ===
{| class="wikitable"
|- style="background-color: #ddd;"
! Start
! Length
! Description
|-
| 0x000
| 4
| Signature type
|-
| 0x004
| *
| 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
|-
| 0x18C
| 8
| Title ID
|-
| 0x194
| 4
| Title type
|-
| 0x198
| 2
| Group ID
|-
| 0x19A
| 62
| reserved
|-
| 0x1D8
| 4
| Access rights
|-
| 0x1DC
| 2
| Title version
|-
| 0x1DE
| 2
| Number of contents
|-
| 0x1E0
| 64
| Content Records
|-
| 0x220
| 40
| Padding modulo 64
|-
| 0x248
| 4
| Boot content
|-
| 0x252
| 4
| Banner content
|-
| 0x256
| 4
| Banner size
|-
| 0x260
| 32
| Hash
|}
=== Content Records ===
{| class="wikitable"
|-
! Start
! Length
! Description
|-
| 0x00
| 4
| Content ID
|-
| 0x04
| 32
| SHA-256 Hash
|}
=== Certificates ===
{| class="wikitable"
|-
! Start
! Length
! Description
|-
| 0x000
| 4
| Signature type
|-
| 0x004
| *
| Signature
|-
| 0x104
| 64
| Issuer
|-
| 0x124
| 4
| Tag
|-
| 0x128
| 64
| Name
|-
| 0x168
|
| Key
|}
== Example code application ==
<source lang="c">
  typedef struct {
  typedef struct {
         u32 cid;        // content id
         u32 cid;        // content id
Line 47: Line 197:
         u8 key[...];
         u8 key[...];
  } certificate;
  } certificate;
</source>