AMPXI:VerifyDSiWareFooter
Request
| Index Word | Description |
|---|---|
| 0 | Header code [0x004301C8] |
| 1-2 | u64, TWL Title ID (from header) |
| 3 | Data size |
| 4 | ECDSA signature size (must be 0x3C) |
| 5 | CTCert size (must be 0x180) |
| 6 | APCert size (must be 0x180) |
| 7 | u8, DSiWare export section index |
| 8 | (DataSize << 8) | 0x6 |
| 9 | Data pointer (contains hashes from footer) |
| 10 | (ECDSASignatureSize << 8) | 0x16 |
| 11 | ECDSA signature pointer (signs data) |
| 12 | (CTCertSize << 8) | 0x26 |
| 13 | CTCert pointer (from footer) |
| 14 | (APCertSize << 8) | 0x36 |
| 15 | APCert pointer (from footer) |
Response
| Index Word | Description |
|---|---|
| 0 | Header code [0x00430040] |
| 1 | Result code |
Description
This verifies the ECDSA signature and certificates from the DSiWare export footer. The input CTCert is verified with a DER stored in NATIVE_FIRM, separate DERs are used for retail and dev/debug.
When the running NATIVE_FIRM only supports DSiWare exports format v1, the max data size is 0xC0, otherwise the max size is 0x1C0.