NCCH/Extended Header: Difference between revisions

TimmSkiller (talk | contribs)
Use separate rows for Flag1 and Flag2 to avoid confusion
 
(One intermediate revision by one other user not shown)
Line 31: Line 31:
| <code>0x500</code>
| <code>0x500</code>
| <code>0x100</code>
| <code>0x100</code>
| NCCH HDR RSA-2048 public key
| NCCH header RSA-2048 modulus
|-
|-
| <code>0x600</code>
| <code>0x600</code>
Line 38: Line 38:
|}
|}


The <code>AccessDesc</code> signature covers the NCCH HDR public key and second ACI. The <code>AccessDesc</code> public key is initialised by the boot ROM.
The <code>AccessDesc</code> signature covers the NCCH header modulus and second ACI. The <code>AccessDesc</code> public key is initialised by the boot ROM.


When loading the exheader, [[FIRM|Process9]] compares the exheader data with the data in the <code>AccessDesc</code> (note that not everything is compared here). When these don't match, an error is returned. The Process9 code handling this validation was updated with [[6.0.0-11|v6.0]]; the only change in this function seems to be the check for the "Ideal processor" field.
When loading the exheader, [[FIRM|Process9]] compares the exheader data with the data in the <code>AccessDesc</code> (note that not everything is compared here). When these don't match, an error is returned. The Process9 code handling this validation was updated with [[6.0.0-11|v6.0]]; the only change in this function seems to be the check for the "Ideal processor" field.
Line 176: Line 176:
|-
|-
| <code>0xC</code>
| <code>0xC</code>
| <code>0x2</code>
| <code>0x1</code>
| [[#Flag1|Flag1]] and [[#Flag2|Flag2]] (both implemented starting from [[8.0.0-18]]).
| [[#Flag1|Flag1]] (implemented starting from [[8.0.0-18]])
|-
| <code>0xD</code>
| <code>0x1</code>
| [[#Flag2|Flag2]] (implemented starting from [[8.0.0-18]])
|-
|-
| <code>0xE</code>
| <code>0xE</code>