SpotPass: Difference between revisions

DaniElectra (talk | contribs)
m Content Header: Document meaning of first byte
DaniElectra (talk | contribs)
Payload Content Header: Expand documentation
 
Line 142: Line 142:
| 0x0
| 0x0
| 0x8
| 0x8
| ProgramID
| Program ID
|-
|-
| 0x8
| 0x8
Line 176: Line 176:
This signature is signed by Nintendo with the same key-pair as the content header.
This signature is signed by Nintendo with the same key-pair as the content header.


The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header(the actual content data).
The hash at offset 0x1C hashes the 0x1C-byte data at offset 0x0 followed by a zero u16, followed by all of the remaining cleartext data following this header (the actual content data).


The downloaded boss data is written in the following format to extdata. The file name that is generated might be Base85/Ascii85 encoded.
The file name of the downloaded boss data is Ascii85 encoded with the following data:
First an extdata header in the following format
 
{| class="wikitable"
! Offset !! Length !! Description
|-
| 0x0 || 0x5 || NS Data ID
|-
| 0x5 || 0x5 || Version
|-
| 0xA || 0x5 || Content datatype
|-
| 0xF || 0x1 || New flag
|}
 
The downloaded boss data is written in the following format to extdata. First an extdata header in the following format:
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 191: Line 204:
|-
|-
| 0x1
| 0x1
| 0xB
| 0x3
| Usually zero?
| Padding
|-
| 0x4
| 0x4
| [[BOSSU:GetNsDataAdditionalInfo|Additional info]]
|-
|-
| 0xC
| 0x8
| 0x4
| 0x4
| Unknown
| Unknown
|-
|-
| 0x10
| 0xC
| 0x4
| 0x8
| Download date in format: Bit 0-5 = day, Bit 6-9 = month, Bit 10-20 = year
| [[BOSSU:GetNsDataLastUpdate|Last update]] in number of seconds since the year 2000
|-
|-
| 0x14
| 0x14
| 0x4
| 0x4
| Usually zero? Padding?
| Padding
|}
|}
Followed by the Payload Content Header without the hash and signature (first 0x1C bytes) and the actual payload.
Followed by the Payload Content Header without the hash and signature (first 0x1C bytes) and the actual payload.