SpotPass: Difference between revisions

No edit summary
Line 27: Line 27:
== Content Container ==
== Content Container ==


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.


[[Category:Nintendo Software]]
[[Category:Nintendo Software]]