CTCert

From 3dbrew
Revision as of 22:54, 25 August 2012 by Yellows8 (talk | contribs)
Jump to navigation Jump to search

Summary

The console-unique CTCert is used for signing CTX files, the DeviceCert used by eShop, and presumably for DSiWare exports. This ECDSA signature, the ECDSA private key, and the IssuerID is loaded from memory instead of NAND. This is the 3DS equivalent of DSi TWCert.

Structure

Offset Size Description
0x00 0x04 Type
0x04 0x3C ECDSA Signature
0x40 0x40 Padding
0x80 0x40 Cert Issuer ID, for retail this is "Nintendo CA - G3_NintendoCTR2prod", for dev "Nintendo CA - G3_NintendoCTR2dev"
0xC0 0x04 Key Type
0xC4 0x40 Key ID: "CT<DeviceId>-<ConsoleType>", where DeviceId is the hex DeviceId, and ConsoleType is 00 for retail, 01 for dev
0x104 0x3C ECDSA Public Key
0x140 0x40 Padding

The ECDSA private key is located 0x3C bytes before this cert in internal memory, the 0x1E-bytes following this private key is padding.