CommonETicket: Difference between revisions

No edit summary
3dsguy (talk | contribs)
Redirected page to Ticket
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:File formats]]
#REDIRECT [[Ticket]]
'''CommonETicket''' (for short, '''cetk''') is a format as a ticket used to store an encrypted titlekey (using 128-Bit AES-CBC). This format seems to be identical to DSi/Wii tickets.
 
== Structure ==
 
All of the data in the file is represented in Big Endian.
 
=== Content ===
{| class="wikitable"
| align="center" style="background:#f0f0f0;"|'''Offset'''
| align="center" style="background:#f0f0f0;"|'''Size'''
| align="center" style="background:#f0f0f0;"|'''Description'''
|-
| 0x000||0x4||Signature Type
|-
| 0x004||0x100||Signature
|-
| 0x104||0x3C||Padding modulo 64
|-
| 0x140||0x40||Issuer
|-
| 0x180||0x3C||ECDH data for console-unique eShop tickets.
|-
| 0x1BC||0x3||Unknown, first u8 is 0x01.
|-
| 0x1BF||0x10||Encrypted TitleKey
|-
| 0x1CF||0x1||Unknown
|-
| 0x1D0||0x8||TicketID
|-
| 0x1D8||0x4||Ticket consoleID
|-
| 0x1DC||0x8||TitleID
|-
| 0x1E4||0x2||Unknown
|-
| 0x1E6||0x2||Ticket version
|-
| 0x1E8||0x8||Unused
|-
| 0x1F0||0x1||Unused
|-
| 0x1F1||0x1||Ticket common [[AES|keyY]] index, usually 0x1 for retail system titles.
|-
| 0x1F2||0xB2||Unused
|}
 
The Signature Type is the same const as that in [[TMD]]. The certificate chain is located at offset 0x2A4 for tickets from CDN/SOAP, however this cert-chain is removed once the ticket is installed to NAND.
 
The titlekey is decrypted by using the [[AES]] engine with the ticket common-key keyslot where the keyY is one of 6 keyYs loaded via the keyY index stored in the ticket. AES-CBC mode is used where the IV is the big-endian titleID. Note that on a retail unit index0 is a retail keyY, while on a dev-unit index0 is the dev common-key which is a normal-key.(On retail for these keyYs, the hardware key-scrambler is used)
 
== Some facts==
* '''CETK''' can be fetched through HTTP using the link to default update server, using the title's [[TMD]] URL where "cetk" is used instead of "tmd" for the URL. The 3DS NIM module retrieves system tickets via SOAP request ''GetCommonETicket''.