AES Registers: Difference between revisions

Line 294: Line 294:
|-
|-
| 0x00-0x03
| 0x00-0x03
| TWL keyslots.  
| TWL keys.
| NATIVE_FIRM hard-boot.
| NATIVE_FIRM hard-boot.
| NATIVE_FIRM hard-boot.
| NATIVE_FIRM hard-boot.
Line 301: Line 301:
|-
|-
| 0x04..0x07
| 0x04..0x07
| These are the [[Flash_Filesystem|NAND]] encryption keyslots, which keyslot gets used is determined by the [[NCSD]] partition FS type and the partition encryption type.
| [[Flash_Filesystem|NAND]] partition keys.
The New3DS Process9 sets the keyY for keyslot 0x05(New3DS CTRNAND) to a key from .(ro)data.
 
| Bootrom.
Keyslot is determined by [[NCSD]] partition FS type and encryption type. The New3DS Process9 sets the keyY for keyslot 0x05 (New3DS CTRNAND) to a key from .(ro)data.
| Bootrom.
| -
| Yes
|-
| 0x08..0x0B
| These keyslots use the same console-unique keyX. Each keyslot has a separate keyY.
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 316: Line 310:
|-
|-
| 0x0A
| 0x0A
| This is the console-unique keyslot used for encrypting the all-zero 0x10-byte block in the [[DSiWare_Exports|DSiWare_Exports]] header.
| DSiWare export key.
 
Used for encrypting the all-zero 0x10-byte block in the [[DSiWare_Exports|DSiWare_Exports]] header. Console-unique.
| See above keyslot info.
| See above keyslot info.
| See above keyslot info.
| See above keyslot info.
| -
| -
| Yes
|-
| 0x0C..0x0F
| All of these keyslots are set to the same key-data, which is a regular normal-key. The keyX written before the normal-key is console-unique, this keyX is the same for all of these keyslots.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
| Yes
|-
|-
| 0x0D
| 0x0D
| SSL-certificate key. See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| SSL-certificate key.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| -
| -
| -
| -
| Bootrom.
| Yes
|-
| 0x10
| The console-unique keyX is set before the normal-key.
| Bootrom.
| Bootrom?
| Bootrom.
| Bootrom.
| Yes
| Yes
|-
|-
| 0x11
| 0x11
| This is used for general normal-key crypto, where the normal-key is set by FIRM. This keyslot is also used by the New3DS [[FIRM]] arm9 binary loader.
| Temporary keyslot.
 
Used by FIRM for general normal-key crypto. Also used by the New3DS [[FIRM]] arm9 binary loader.
| Arm9Loader.  
| Arm9Loader.  
| Arm9Loader.
| Arm9Loader.
| NATIVE_FIRM.
| NATIVE_FIRM.
| Yes
| Yes
|-
| 0x12
| Unused
| -
| -
| -
| -
|-
| 0x13
| Unused
| -
| -
| -
| -
|-
|-
| 0x14
| 0x14
Line 369: Line 341:
| NATIVE_FIRM boot.
| NATIVE_FIRM boot.
| -
| -
| Yes
|-
| 0x15..0x16
| The console-unique keyX is set before the normal-key.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
| Yes
|-
|-
Line 391: Line 356:
| See previous info for this keyslot.
| See previous info for this keyslot.
| No
| No
|-
| 0x17
| The console-unique keyX is set before the normal-key.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x18..0x1B
| All of these keyslots are set to the same key-data, which is a regular normal-key. The console-unique keyX is set before the normal-key, this keyX is the same for all of these keyslots.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x1C..0x1F
| All of these keyslots are set to the same key-data, which is a regular normal-key. The console-unique keyX is set before the normal-key, this keyX is the same for all of these keyslots.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
|-
| 0x18..0x1F
| 0x18..0x1F
Line 421: Line 365:
|-
|-
| 0x18
| 0x18
| New3DS [[NCCH]] keyslot, starting with [[9.3.0-21|9.3.0-X]].
| New3DS [[NCCH]] key.
| See above keyslot info.
 
Starting with [[9.3.0-21|9.3.0-X]].
| Arm9Loader.
| NATIVE_FIRM
| NATIVE_FIRM
| -
| -
| Yes
| No
|-
|-
| 0x19
| 0x19
| New3DS gamecard [[Savegames|savedata]] keyslot equalivant of keyslot 0x33, used when a [[NCSD]] flag is set to a certain value(implemented with [[9.3.0-21|9.3.0-X]]).
| New3DS gamecard [[Savegames|savedata]] AES-MAC key.
| See above keyslot info.
 
Equivalent of keyslot 0x33, used when a [[NCSD]] flag is set to a certain value (implemented with [[9.3.0-21|9.3.0-X]]).
| Arm9Loader.
| NATIVE_FIRM
| NATIVE_FIRM
| -
| -
| Yes
| No
|-
|-
| 0x1A
| 0x1A
| New3DS gamecard [[Savegames|savedata]] keyslot equalivant of keyslot 0x37, used when a [[NCSD]] flag is set to a certain value(implemented with [[9.3.0-21|9.3.0-X]]).
| New3DS gamecard [[Savegames|savedata]] actual key.
| See above keyslot info.
 
Equivalent of keyslot 0x37, used when a [[NCSD]] flag is set to a certain value (implemented with [[9.3.0-21|9.3.0-X]]).
| Arm9Loader.
| NATIVE_FIRM
| NATIVE_FIRM
| -
| -
| Yes
| No
|-
| 0x20..0x23
| All of these keyslots are set to the same key-data, which is a regular normal-key. The keyX written to these keyslots before writing the normal-key by the bootrom, is console-unique.
| Bootrom.
| -
| Bootrom.
| Yes
|-
| 0x24
| This is set to a normal-key by bootrom. The keyX written to this keyslot before writing the normal-key by the bootrom, is console-unique.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
|-
| 0x25
| 0x25
| [[7.0.0-13|v7.0]] [[NCCH]] key.
| [[7.0.0-13|v7.0]] [[NCCH]] key.
<!--
The keyX and keyY initialized by bootrom for this keyslot are console-unique.
-->
| NATIVE_FIRM [[Savegames#6.0.0-11_Savegame_keyY|boot]].
| NATIVE_FIRM [[Savegames#6.0.0-11_Savegame_keyY|boot]].
| NATIVE_FIRM.
| NATIVE_FIRM.
| -
| Yes
|-
| 0x26
| Unused
| -
| -
| -
| Yes
|-
| 0x27
| Unused
| -
| -
| -
| Yes
|-
| 0x28
| Unknown. The normal-key for this is the same as keyslot 0x24, the console-unique keyX written before the normal-key is different from keyslot 0x24.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x29
| Unknown. The keyX written before the normal-key is console-unique.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x2A
| Unknown. The keyX written before the normal-key is console-unique.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x2B
| Unknown. The keyX written before the normal-key is console-unique.
| Bootrom.
| Bootrom?
| Bootrom.
| Yes
|-
| 0x2C..0x2F
| All of these keyslots use the same keyX initialized by bootrom. During key-init in arm9 bootrom, keyslots 0x2D and 0x2F are set to the same keyY.
| Bootrom.
| Bootrom, then NATIVE_FIRM for keyslots 0x2C and 0x2F on >=v6.0 FIRM.
| -
| -
| Yes
| Yes
|-
|-
| 0x2C
| 0x2C
| [[NCCH|NCCH]] key. Keyslots 0x2C..0x2F all use the same keyX, set by bootrom.
| [[NCCH|NCCH]] key.
| Bootrom.
| Bootrom.
| Process9.
| Process9.
Line 522: Line 406:
|-
|-
| 0x2D
| 0x2D
| UDS local-WLAN CCMP key. See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| UDS local-WLAN CCMP key.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 529: Line 415:
|-
|-
| 0x2E
| 0x2E
| See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Unknown key.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Bootrom.
| Bootrom.
| NATIVE_FIRM.
| NATIVE_FIRM.
Line 538: Line 426:
| [[Savegames#6.0.0-11_Savegame_keyY|v6.0]] save key.
| [[Savegames#6.0.0-11_Savegame_keyY|v6.0]] save key.
| Bootrom.
| Bootrom.
| Bootrom, then later NATIVE_FIRM.
| NATIVE_FIRM.
| -
| Yes
|-
| 0x30-0x33
| All of these keyslots use the same keyX. The keyY for keyslots 0x32 and 0x33 are set to the same keyY by bootrom.
| Bootrom.
| Bootrom, then later NATIVE_FIRM except for keyslot 0x32.
| -
| -
| Yes
| Yes
|-
|-
| 0x30
| 0x30
| This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for calculating the AESMACs under SD [[SD_Filesystem|/Nintendo 3DS/<ID0>/<ID1>/]](except [[DSiWare_Exports]]) and [[Flash_Filesystem|NAND]] /data/.
| SD/NAND AES-MAC key.
 
This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for calculating the AESMACs under SD [[SD_Filesystem|/Nintendo 3DS/<ID0>/<ID1>/]] (except [[DSiWare_Exports]]) and [[Flash_Filesystem|NAND]] /data/.
| Bootrom.
| Bootrom.
| Bootrom(?), then later NATIVE_FIRM.
| NATIVE_FIRM.
| -
| -
| Yes
| Yes
|-
|-
| 0x31
| 0x31
| APT wrap key. See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]]
| APT wrap key.


NATIVE_FIRM sets this keyY to the same one used for keyslot 0x2E.
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]]. NATIVE_FIRM sets this keyY to the same one used for keyslot 0x2E.
| Bootrom.
| Bootrom.
| Bootrom(?), then later NATIVE_FIRM.
| Bootrom(?), then later NATIVE_FIRM.
Line 566: Line 449:
|-
|-
| 0x32
| 0x32
| See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Unknown.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 573: Line 458:
|-
|-
| 0x33
| 0x33
| This is the keyslot for the gamecard [[Savegames|savedata]] AESMAC.
| Gamecard [[Savegames|savedata]] AES-MAC.
| Bootrom.
| Bootrom.
| Bootrom, then later NATIVE_FIRM.
| NATIVE_FIRM.
| -
| Yes
|-
| 0x34-0x37
| All four of these keyslots use the same keyX. Keyslots 0x35, 0x36, and 0x37 use the same bootrom keyY. See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]] for keyslot 0x36.
| Bootrom.
| Bootrom, then NATIVE_FIRM for keyslot 0x37.
| -
| -
| Yes
| Yes
|-
|-
| 0x34
| 0x34
| This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for encrypting *all* SD card data under [[SD_Filesystem|/Nintendo 3DS/<ID0>/<ID1>/]].
| SD key.
 
This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for encrypting *all* SD card data under [[SD_Filesystem|/Nintendo 3DS/<ID0>/<ID1>/]].
| Bootrom.
| Bootrom.
| Bootrom(?), then later NATIVE_FIRM.
| NATIVE_FIRM.
| -
| -
| Yes
| Yes
|-
|-
| 0x35
| 0x35
| This is the keyslot used for movable.sed encryption + AESMAC with the import/export [[FSPXI:ImportIntegrityVerificationSeed|commands]].
| Movable.sed key.
 
This is the keyslot used for movable.sed encryption + AES-MAC with the import/export [[FSPXI:ImportIntegrityVerificationSeed|commands]].
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 602: Line 484:
| 0x36
| 0x36
| Unknown.
| Unknown.
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 608: Line 492:
|-
|-
| 0x37
| 0x37
| This is the keyslot for the actual gamecard [[Savegames|savedata]] encryption.
| Gamecard [[Savegames|savedata]] actual key.
| Bootrom.
| Bootrom.
| Bootrom, then later NATIVE_FIRM.
| NATIVE_FIRM.
| -
| Yes
|-
| 0x38-0x3B
| All of these keyslots use the same keyX. Keyslot 0x3B uses an unique keyY initialized by bootrom.
| Bootrom.
| Bootrom, then NATIVE_FIRM for keyslot 0x3A.
| -
| -
| Yes
| Yes
|-
|-
| 0x38
| 0x38
| See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Unknown.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]].
| Bootrom.
| Bootrom.
| Bootrom.
| Bootrom.
Line 629: Line 508:
|-
|-
| 0x39
| 0x39
| See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]]. NATIVE_FIRM sets this keyY to the same one used for keyslot 0x2E.
| Unknown.
 
See [[PSPXI:EncryptDecryptAes|EncryptDecryptAes]]. NATIVE_FIRM sets this keyY to the same one used for keyslot 0x2E.
| Bootrom.
| Bootrom.
| Bootrom, then NATIVE_FIRM.
| NATIVE_FIRM.
| -
| -
| Yes
| Yes
|-
|-
| 0x3A
| 0x3A
| This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for calculating the AESMACs for SD [[DSiWare_Exports]].
| DSiWare export key.
| Bootrom.
 
| Bootrom(?), then later NATIVE_FIRM.
This keyY is initialized via [[Nand/private/movable.sed|movable.sed]]. This is used for calculating the AESMACs for SD [[DSiWare_Exports]].
| -
| Yes
|-
| 0x3B
| Unknown.
| Bootrom.
| Bootrom.
| -
| Yes
|-
| 0x3C
| Unknown. The keyX for this is unique for this keyslot. The keyY for this initialized by bootrom is the same as keyslot 0x38.
| Bootrom.
| Bootrom.
| Bootrom.
| NATIVE_FIRM.
| -
| -
| Yes
| Yes
|-
|-
| 0x3D
| 0x3D
| Common key. Used to decrypt title keys in [[Ticket]]. Used by Gateway.
| Common key.
 
Used to decrypt title keys in [[Ticket]]. Used by Gateway.
| Bootrom.
| Bootrom.
| NATIVE_FIRM.
| NATIVE_FIRM.
| -
| Yes
|-
| 0x3E
| Unknown. This keyslot uses an unique keyX/keyY.
| Bootrom.
| Bootrom.
| -
| Yes
|-
| 0x3F
| Unknown. This keyslot uses an unique keyX/keyY.
| Bootrom.
| Bootrom.
| -
| -
| Yes
| Yes