DSiWare Exports: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
No edit summary
Line 48: Line 48:
| Data for the 4 content sections are stored here.
| Data for the 4 content sections are stored here.
| AES-CTR
| AES-CTR
|}
=Header=
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x0
| 0x38
| Unknown
|-
| 0x38
| 0x8
| TWL TitleID for the exported title.
|-
| 0x40
| 0x60
| ?
|}
=Footer=
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x0
| 0xD0
| Hashes?
|-
| 0xD0
| 0xE0
| Normally all-zero?
|-
| 0x1B0
| 0x20
| SHA256 hash?
|-
| 0x1D0
| 0x20
| Normally all-zero?
|-
| 0x1F0
| 0x3C
| ECDSA signature over the previous data, signed by the AP cert?
|-
| 0x22C
| 0x180
| ECDSA "APXXXXXXXXXXXXXXXX" cert signed by the [[CTCert]], where X is random ASCII hex data.
|-
| 0x3AC
| 0x54
| ECDSA certificate, the last 0x14-bytes here are all-zero.
|}
|}

Revision as of 17:26, 22 April 2013

The DSiWare exported from a 3DS is located at "sdmc:/Nintendo 3DS/<ID0>/<ID1>/Nintendo DSiWare". Filenames are same format as DSi: "<TitleID-Low>.bin". The below sizes include the 0x20-byte block metadata.

DSiWare exported from 3DS use keyslots initialized by movable.sed.

Block Metadata

Offset Size Description
0x0 0x10 AES MAC
0x10 0x10 CTR for AES-CTR / IV for AES-CBC, generated by the RNG.

Each section begins with the actual encrypted data, followed by this block metadata.

File Structure

Offset Size Description Algorithm Type
0x0 0x4020 Banner section AES-CBC
0x4020 0xC0 Header section AES-CBC
0x40E0 0x420 Footer section AES-CBC
0x4500 Data for the 4 content sections are stored here. AES-CTR

Header

Offset Size Description
0x0 0x38 Unknown
0x38 0x8 TWL TitleID for the exported title.
0x40 0x60 ?

Footer

Offset Size Description
0x0 0xD0 Hashes?
0xD0 0xE0 Normally all-zero?
0x1B0 0x20 SHA256 hash?
0x1D0 0x20 Normally all-zero?
0x1F0 0x3C ECDSA signature over the previous data, signed by the AP cert?
0x22C 0x180 ECDSA "APXXXXXXXXXXXXXXXX" cert signed by the CTCert, where X is random ASCII hex data.
0x3AC 0x54 ECDSA certificate, the last 0x14-bytes here are all-zero.