AMPXI:ValidateDSiWareSectionMAC: Difference between revisions

mNo edit summary
Steveice10 (talk | contribs)
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 9: Line 9:
|-
|-
| 1
| 1
| Buf0 size, must be 0x10-bytes.
| Buf0 size (must be 0x10)
|-
|-
| 2
| 2
| Buf1 size, must be 0x20-bytes.
| Buf1 size (must be 0x20)
|-
|-
| 3
| 3
| u8 [[DSiWare_Exports|DSiWare]] section index
| u8, [[DSiWare_Exports|DSiWare]] section index
|-
|-
| 4
| 4
| Buf0Size<<8 <nowiki>|</nowiki> 0x4
| (Buf0Size << 8) <nowiki>|</nowiki> 0x4
|-
|-
| 5
| 5
| Buf0 ptr
| Buf0 pointer
|-
|-
| 6
| 6
| Buf1Size<<8 <nowiki>|</nowiki> 0x14
| (Buf1Size << 8) <nowiki>|</nowiki> 0x14
|-
|-
| 7
| 7
| Buf1 ptr
| Buf1 pointer
|}
|}


Line 37: Line 37:
|-
|-
| 0
| 0
| Header code
| Header code [0x00550040]
|-
|-
| 1
| 1
Line 44: Line 44:


=Description=
=Description=
This calculates an AES MAC over the 0x20-byte buf1 SHA-256 hash. When this MAC matches the MAC stored in buf0, result-code 0 is returned, otherwise an error is returned. This is used to verify the DSiWare section's [[DSiWare_Exports|metadata]] MAC after decrypting the payload data.
This calculates an AES MAC over the 0x20-byte buf1 SHA-256 hash. When this MAC matches the MAC stored in buf0, result-code 0 is returned, otherwise an error is returned. This is used by [[AM:ImportDSiWare|AM]] module to verify the DSiWare section's [[DSiWare_Exports|metadata]] MAC after decrypting the payload data.