Line 17: |
Line 17: |
| ===== [[2.2.0-4]] Savegame Encryption ===== | | ===== [[2.2.0-4]] Savegame Encryption ===== |
| | | |
− | When [[NCSD]] partition flag[3] or flag[7] are set, a SHA-256 hash is calculated over the data from the CXI(same data used with the original plain keyY), and the 0x40-bytes read from a gamecard command(this 0x40-byte data is also read by [[Process_Services_PXI|GetRomId]]). The first 0x10-bytes from this hash is used for the keyY. When flag[7] is set(normally this is the only save flag set for [[2.2.0-4]] save encryption), the CTR will never repeat within the save image, unlike the original CTR-method. All games which had the retail NCSD image finalized after the [[2.2.0-4]] update(and contain [[2.2.0-4]]+ in the [[System Update CFA|System update partition]]), use this encryption method. | + | When certain [[NCSD]] partition flags are set, a SHA-256 hash is calculated over the data from the CXI(same data used with the original plain keyY), and the 0x40-bytes read from a gamecard command(this 0x40-byte data is also read by [[Process_Services_PXI|GetRomId]]). The first 0x10-bytes from this hash is used for the keyY. When flag[7] is set(normally this is the only save flag set for [[2.2.0-4]] save encryption), the CTR will never repeat within the save image, unlike the original CTR-method. All games which had the retail NCSD image finalized after the [[2.2.0-4]] update(and contain [[2.2.0-4]]+ in the [[System Update CFA|System update partition]]), use this encryption method. |
| | | |
− | This keyY generation method was supported before [[2.2.0-4]], however the proper CTR wasn't implemented until [[2.2.0-4]]. | + | This keyY generation method was supported via NCSD partition flag[3] before [[2.2.0-4]], however the proper CTR wasn't implemented until [[2.2.0-4]]. |
| | | |
| ===== [[6.0.0-11]] Savegame keyY ===== | | ===== [[6.0.0-11]] Savegame keyY ===== |
| | | |
− | [[6.0.0-11]] implemented support for generating the savegame keyY with a new method, this method is much more complex than previous keyY methods. This is enabled via a new [[NCSD]] partition flag, all retail games which have the NCSD image finalized after the [[6.0.0-11]] release(and [[6.0.0-11]]+ in the system update partition) will have that flag set for using this new method. | + | [[6.0.0-11]] implemented support for generating the savegame keyY with a new method, this method is much more complex than previous keyY methods. This is enabled via new [[NCSD]] partition flags, all retail games which have the NCSD image finalized after the [[6.0.0-11]] release(and [[6.0.0-11]]+ in the system update partition) will have these flags set for using this new method. |
| | | |
| A SHA-256 hash is calculated over the data used with the above hashed keyY method, other data is hashed here as well. An [[AES]] MAC is then calculated over this hash, the output MAC is used for the savegame keyY. | | A SHA-256 hash is calculated over the data used with the above hashed keyY method, other data is hashed here as well. An [[AES]] MAC is then calculated over this hash, the output MAC is used for the savegame keyY. |