AMPXI:VerifyDSiWareFooter

Revision as of 20:25, 27 June 2022 by TimmSkiller (talk | contribs) (correct PXI buffer translation descriptor access types)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

RequestEdit

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)

ResponseEdit

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

DescriptionEdit

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.