Line 4:
Line 4:
== Structure ==
== Structure ==
−
=== Header ===
+
=== Signed blob header ===
{| class="wikitable"
{| class="wikitable"
|- style="background-color: #ddd;"
|- style="background-color: #ddd;"
−
! Start
+
! Absolute offset
! Length
! Length
! Description
! Description
Line 17:
Line 17:
| 0x004
| 0x004
| 256
| 256
−
| Signature
+
| Signature covering Main header and root CMD group hash in the v1 header
|-
|-
| 0x104
| 0x104
| 60
| 60
| Padding modulo 64
| Padding modulo 64
+
|}
+
+
=== Main header ===
+
{| class="wikitable"
+
|- style="background-color: #ddd;"
+
! Absolute offset
+
! Length
+
! Description
|-
|-
| 0x140
| 0x140
Line 82:
Line 90:
| 2
| 2
| Padding modulo 64
| Padding modulo 64
+
|}
+
+
=== v1 header ===
+
{| class="wikitable"
+
|- style="background-color: #ddd;"
+
! Absolute offset
+
! Length
+
! Description
|-
|-
| 0x1E4
| 0x1E4
−
| 36*nbr_cont
+
| 32
−
| Contents
+
| SHA-256 hash of CMD groups
+
|-
+
| 0x204
+
| 2112
+
| 64 CMD groups
+
+
{| class="wikitable"
+
|- style="background-color: #ddd;"
+
! Offset
+
! Length
+
! Description
+
|-
+
| 0x00
+
| 2
+
| Offset
+
|-
+
| 0x02
+
| 2
+
| Number of CMDs in the group
+
|-
+
| 0x04
+
| 32
+
| SHA-256 hash of the CMDs in the group
|}
|}
+
|}
+
+
=== Content metadata (CMD) ===
+
The TMD headers are followed by a variable number of CMDs (one per content).
−
=== Content ===
{| class="wikitable"
{| class="wikitable"
|-
|-
−
! Start
+
! Offset
! Length
! Length
! Description
! Description
Line 112:
Line 153:
|-
|-
| 0x10
| 0x10
−
| 20
+
| 32
−
| SHA1 hash
+
| SHA-1 hash padded with zeros to the length of a SHA-256 hash
|}
|}