Request
Index Word
|
Description
|
0
|
Header code [0x001C0084]
|
1
|
Buffer Size (must be >= 0x20000)
|
2
|
u8, Operation
|
3
|
0x10
|
4
|
FSFILE Handle
|
5
|
(Buffer Size << 4) | 0xC
|
6
|
Buffer Pointer. Input encrypted DSiWare export banner, header, and footer. Also used as a work buffer.
|
Response
Index Word
|
Description
|
0
|
Header code
|
1
|
Result code
|
Operation
Value
|
Description
|
0-1
|
Invalid, same as values 4 and 7.
|
2 and 5
|
?
|
3 and 6
|
?
|
4 and >=7
|
No importing is done here.
|
Description
AM module uses AMPXI:DecryptDSiWareData for decrypting each DSiWare section. After decrypting a section via that command, AM module calculates a hash over the decrypted payload data for AMPXI:ValidateDSiWareSectionMAC. The footer hash for this section is then verified by calculating a hash over the cleartext data as well.
After AM module validates the header, AM module then uses AMPXI:ValidateDSiWareMovableSedHash. The footer ECDSA verification is handled by AMPXI:VerifyDSiWareFooter. The decrypted banner is written to inputbuffer+0.