Changes

1,524 bytes added ,  14:24, 7 September 2013
Created page with "{| class="wikitable" border="1" ! 偏移位置 ! 长度 ! 说明 |- | 0x0 | 0x4 | Magic "SEED" |- | 0x4 | 0x4 | This u8 must be zero |- | 0x8 | 0x100 | RSA-2048 signature over..."
{| class="wikitable" border="1"
! 偏移位置
! 长度
! 说明
|-
| 0x0
| 0x4
| Magic "SEED"
|-
| 0x4
| 0x4
| This u8 must be zero
|-
| 0x8
| 0x100
| RSA-2048 signature over the 0x10-byte data at 0x108
|-
| 0x108
| 0x8
| 通常为0
|-
| 0x110
| 0x10
| [[AES]] engine keyY for 3 keyslots (High u64 is unsigned)
|}

This keyY is the console-unique portion of the 3 keyslots used for everything stored under [[SD Filesystem|sdmc/Nintendo 3DS/<ID0>/<ID1>]] and [[Flash Filesystem|nand/data/<ID0>]]. For SD this is used for encryption and AES MACs, however for NAND this is only used for AES MACs. This file is transferred to the destination 3DS during a [[System Transfer]]. The movable.sed keyY high u64 is [[FS:InitializeCtrFileSystem|updated]] on the source 3DS during a [[System Transfer]], and when doing a system format with [[System Settings]].

Movable.sed always exists on retail(written to NAND at the factory), however if this file doesn't exist the system will fall-back to using a console-unique keyY already in [[PSPXI:GetLocalFriendCodeSeed|memory]], with the last 8-bytes being loaded from the 8-bytes following that u64. It's unknown whether movable.sed exists on development units.

The keyY is hashed with SHA256, the first 0x10-bytes from the hash is used with the below snprintf for ID0 in [[SD Filesystem|sdmc/Nintendo 3DS/<ID0>/<ID1>]] and [[Flash Filesystem|nand/data/<ID0>]]. ID0 is generated by: snprintf(outdirname, maxlen, "%08x%08x%08x%08x", hashword[0], hashword[1], hashword[2], hashword[3]).
155

edits