Request
| Index Word
|
Description
|
| 0
|
Header code [0x000401C4]
|
| 1
|
Size in bytes
|
| 2-5
|
IV / CTR
|
| 6
|
u8 Algorithm Type (0..5)
|
| 7
|
u8 Key Type (0..7)
|
| 8
|
(size<<8) | 0x4
|
| 9
|
Source pointer
|
| 10
|
(size<<8) | 0x14
|
| 11
|
Destination pointer
|
Response
| Index Word
|
Description
|
| 0
|
Header code [0x00040140]
|
| 1
|
Result code
|
| 2-5
|
Output IV / CTR: this is the IV/CTR which would be used if the crypto operation were to continue.
|
Algorithm Types
| Type
|
Description
|
| 0
|
CBC Encrypt
|
| 1
|
CBC Decrypt
|
| 2
|
CTR Encrypt
|
| 3
|
CTR Decrypt
|
| 4
|
CCM Encrypt
|
| 5
|
CCM Decrypt
|
Key Types
| Type
|
AES Engine Keyslot
|
Description
|
| 0
|
0x0D
|
Used to decrypt the SSL client cert/private-key stored in ClCertA.
|
| 1
|
0x2D
|
Used to generate the UDS local-WLAN CCMP key.
|
| 2
|
0x31
|
This is used by NS for the APT AES-CCM Wrap/Unwrap commands. These two NS commands are used by the Mii Maker application for the encrypted Mii data in the Mii QR codes.
|
| 3
|
0x38
|
BOSS
|
| 4
|
0x32
|
?
|
| 5
|
0x39
|
This is used by the Download Play module for calculating a 32bit checksum over the entire UDS application data-fames, stored in the DLP data-frame header.
|
| 6
|
0x2E
|
This is used by the StreetPass CECD module to generate the CCMP key passed to nwm::CEC commands, when beginning StreetPass communications.
|
| 7
|
|
Invalid
|
| 8
|
0x36
|
This is used by the friends module.
Support for this keytype was added with the NATIVE_FIRM updated with 2.2.0-X. When the running NATIVE_FIRM doesn't support this keytype, the result is the same as using keytype7.
|
| 9
|
0x39
|
This is used by the NFC module.
Support for this keytype was added with the NATIVE_FIRM updated with 9.3.0-X. When the running NATIVE_FIRM doesn't support this keytype, the result is the same as using keytype7. Before selecting this keyslot, Process9 writes a keyY from the Process9 .(ro)data section(keydata is different for retail/dev units) to this keyslot. Once finished with crypto, Process9 restores the original keyY to this keyslot.
|
| >=10
|
|
Invalid, same as keytype7.
|
Description
This is used to encrypt/decrypt data via the AES engine. AES-CCM is not supported by this command, PSPXI:EncryptSignDecryptVerifyAesCcm must be used for AES-CCM instead.