Changes

Jump to navigation Jump to search
1,395 bytes added ,  15:31, 22 February 2015
Line 184: Line 184:  
== Endianness and word order ==
 
== Endianness and word order ==
 
When writing to the REG_AESCTR or REG_AESMAC register, the hardware will process the written data according to the current input endianness specified in AESCNT. However, the current specified input word order will not be honored for this register, and always defaults to reversed word order. Therefore, for normal word order, the reversal must be carried out manually if required.
 
When writing to the REG_AESCTR or REG_AESMAC register, the hardware will process the written data according to the current input endianness specified in AESCNT. However, the current specified input word order will not be honored for this register, and always defaults to reversed word order. Therefore, for normal word order, the reversal must be carried out manually if required.
 +
 +
== Keyslot ranges ==
 +
This is approximately a table of what is set by bootrom before booting into FIRM. Often it appears that keyslots in groups of 4 have the same keyX, and sometimes also same keyY set.
 +
 +
{| class="wikitable" border="1"
 +
!  Keyslot
 +
!  Name
 +
!  KeyX
 +
!  KeyY/Normal-key
 +
!  Console unique.
 +
|-
 +
| 0x00-0x03
 +
| TWL keys.
 +
| Probably unset.
 +
| Probably unset.
 +
| -
 +
|-
 +
| 0x04-0x07
 +
| NAND partition keys.
 +
| Same for all.
 +
| Different for all.
 +
| Yes.
 +
|-
 +
| 0x08-0x0B
 +
| ?
 +
| Same for all.
 +
| Different for all.
 +
| Yes?
 +
|-
 +
| 0x0C-0x0F.
 +
| SSL cert key.
 +
| Same for all.
 +
| Same for all.
 +
| No.
 +
|-
 +
| 0x10-0x17
 +
| -
 +
| Not set.
 +
| Not set.
 +
| -
 +
|-
 +
| 0x18-0x1B:
 +
| Never used.
 +
| Same for all.
 +
| Same for all.
 +
| Yes.
 +
|-
 +
| 0x1C-0x1F:
 +
| Never used.
 +
| Same for all.
 +
| Same for all.
 +
| Yes.
 +
|-
 +
| 0x20-0x23:
 +
| Never used?
 +
| Same for all.
 +
| Same for all.
 +
| Only keyX/keyY.
 +
|-
 +
| 0x24-0x2B
 +
| Never used?
 +
| Individually set.
 +
| Individually set.
 +
| Mixed.
 +
|-
 +
| 0x2C-0x2F
 +
| Various uniques.
 +
| Same for all.
 +
| Same for all, probably.
 +
| No.
 +
|-
 +
| 0x30-0x33
 +
| Various.
 +
| Same for all.
 +
| Same for all???
 +
| No.
 +
|-
 +
| 0x34-0x37
 +
| Various uses.
 +
| Same for all.
 +
| Same for all, probably.
 +
| No.
 +
|-
 +
| 0x38-0x3B
 +
| Various uses.
 +
| Same for all.
 +
| Different for all.
 +
| No.
 +
|-
 +
| 0x3D-3F
 +
| Various uses.
 +
| Individually set.
 +
| Individually set.
 +
|}
 +
 +
Keyslot pairs (0x24, 0x28) and (0x38, 0x3C) shares the same normal-key, while at the same time having different keyX's. This suggests they were set to same normal-key by bootrom.
    
== Keyslots ==
 
== Keyslots ==
Line 204: Line 300:  
|-
 
|-
 
| 0x04..0x07
 
| 0x04..0x07
| These keyslots use the same console-unique keyX. Each keyslot has a separate keyY. 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.
+
| 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.
 
The New3DS Process9 sets the keyY for keyslot 0x05(New3DS CTRNAND) to a key from .(ro)data.
 
The New3DS Process9 sets the keyY for keyslot 0x05(New3DS CTRNAND) to a key from .(ro)data.
 
| Bootrom.
 
| Bootrom.

Navigation menu