All SpotPass content uses this container to encrypt the payload.(and possibly sign it) The cleartext payload is stored in [[extdata]].
+
All SpotPass content uses this container to encrypt the payload and sign it. The cleartext payload is stored in [[extdata]]. This header format is big-endian.
{| class="wikitable"
{| class="wikitable"
Line 41:
Line 41:
| 0x4
| 0x4
| 0x4
| 0x4
−
| Always 00 01 00 01
+
| Magic Number 0x1000100
|-
|-
| 0x8
| 0x8
Line 48:
Line 48:
|-
|-
| 0xC
| 0xC
−
| 0x4
+
| 0x8
−
| Always 00 00 00 00
+
| u64 release date (UNIX timestamp)
−
|-
−
| 0x10
−
| 0x4
−
| Release date (UNIX timestamp)
|-
|-
| 0x14
| 0x14
Line 59:
Line 55:
| Always 00 01 00 00 00 02 00 02
| Always 00 01 00 00 00 02 00 02
|-
|-
−
| 0x1c
+
| 0x1C
−
| 0x27a?
+
| 0xC
−
| Unknown, going by the size of this a RSA-4096 signature might be stored here among other things?
+
| First 12 bytes of the CTR
|}
|}
−
Data following the header is encrypted, the CTR used is likely based on metadata in the header.(like the timestamp)
+
Data following the header is encrypted with AES-CTR. The first 12 bytes of the CTR are from offset 0x1C of the header, while the last word of the CTR in big-endian is 0x1. The cleartext data begins with another unknown SpotPass header which contains the RSA-2048 signature. Following that header is the actual content.
−
It appears that this file format is big-endian, unlike other 3DS formats.