Difference between revisions of "APT:Wrap"
Steveice10 (talk | contribs) m |
|||
Line 9: | Line 9: | ||
|- | |- | ||
| 1 | | 1 | ||
− | | Output | + | | Output Size |
|- | |- | ||
| 2 | | 2 | ||
− | | Input | + | | Input Size |
|- | |- | ||
| 3 | | 3 | ||
− | | Block | + | | Block Size |
|- | |- | ||
| 4 | | 4 | ||
− | | Nonce | + | | Nonce Size (capped to 12) |
|- | |- | ||
| 5 | | 5 | ||
− | | ( | + | | (Input Size << 4) <nowiki>|</nowiki> 0xA |
|- | |- | ||
| 6 | | 6 | ||
− | | Input | + | | void*, Input |
|- | |- | ||
| 7 | | 7 | ||
− | | ( | + | | (Output Size << 4) <nowiki>|</nowiki> 0xC |
|- | |- | ||
| 8 | | 8 | ||
− | | Output | + | | void*, Output |
|} | |} | ||
Revision as of 04:28, 22 November 2015
Request
Index Word | Description |
---|---|
0 | Header code [0x00460104] |
1 | Output Size |
2 | Input Size |
3 | Block Size |
4 | Nonce Size (capped to 12) |
5 | (Input Size << 4) | 0xA |
6 | void*, Input |
7 | (Output Size << 4) | 0xC |
8 | void*, Output |
Response
Index Word | Description |
---|---|
0 | Header code |
1 | Result code |
Description
This encrypts the input data with AES-CCM using keytype2, when the input noncesize is <12 the low 2-bits are cleared in the noncesize. The 12-byte nonce buffer used by NS is cleared to all-zero, then the nonce from inputbuf+blocksize with the noncesize is copied to this nonce buffer. NS then copies the data at inputbuf+0 to outbuf+noncesize, with the blocksize.
NS then copies the data at inbuf+blocksize+noncesize to outbuf+blocksize, with size inputbuffersize-blocksize-noncesize. NS then uses PS:EncryptSignDecryptVerifyAesCcm with keytype2 and with the above nonce buffer, where the input/output buffer ptrs are outbuf+noncesize, with size blocksize+(inputbuffersize-blocksize-noncesize). NS then copies the the nonce from the nonce-buffer with the noncesize, to outbuf+0.