AMPXI:ValidateDSiWareSectionMAC

From 3dbrew
Revision as of 02:09, 10 January 2016 by Steveice10 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Request[edit]

Index Word Description
0 Header code [0x005500C4]
1 Buf0 size (must be 0x10)
2 Buf1 size (must be 0x20)
3 u8, DSiWare section index
4 (Buf0Size << 8) | 0x4
5 Buf0 pointer
6 (Buf1Size << 8) | 0x14
7 Buf1 pointer

Response[edit]

Index Word Description
0 Header code [0x00550040]
1 Result code

Description[edit]

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 module to verify the DSiWare section's metadata MAC after decrypting the payload data.