The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo.
+
When the content payload has an additional RSA signature checked by the application, the first 0x10-bytes are all-zero except the first byte which is 0x80. And the u16 at 0x10 is 0x2 when an additional signature is used. When an additional signature isn't used, the first 0x12-bytes are used to verify the content payload.
−
−
=== Extdata Header ===
−
{| class="wikitable"
−
|-
−
! Offset
−
! Length
−
!
−
|-
−
| 0x0
−
| 0x8
−
| ProgramID
−
|-
−
| 0x8
−
| 0x4
−
| Usually zero?
−
|-
−
| 0xC
−
| 0x4
−
| Magic Number 0x10001
−
|-
−
| 0x10
−
| 0x4
−
| Filesize related?
−
|-
−
| 0x14
−
| 0x4
−
| ?
−
|-
−
| 0x18
−
| 0x4
−
| ?
−
|}
−
Following this header is the actual content payload. The data starting at the beginning of this header is written to a cleartext file under the [[extdata]] /boss directory.
+
The hash at offset 0x12 hashes the 0x12-byte data at offset 0x0 followed by a zero u16. The RSA signature is signed by Nintendo. Following this header is the actual content payload, which is written to a cleartext file under the [[extdata]] /boss directory.