Sealedkey: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
Line 7: Line 7:
| 0x0 || 0x8 || magic "pfsSKKey"
| 0x0 || 0x8 || magic "pfsSKKey"
|-
|-
| 0x8 || 0x4 || Type (always 2)
| 0x8 || 0x1 || major version (always 2)
|-
|-
| 0xC || 0x4 || 00 Filler
| 0x9 || 0x1 || minor version (always 0)
|-
| 0xA || 0x6 || 00 Filler
|-
|-
| 0x10 || 0x10 || IV for encrypted key
| 0x10 || 0x10 || IV for encrypted key

Revision as of 23:01, 5 December 2017

File Structure

Offset Size Description
0x0 0x8 magic "pfsSKKey"
0x8 0x1 major version (always 2)
0x9 0x1 minor version (always 0)
0xA 0x6 00 Filler
0x10 0x10 IV for encrypted key
0x20 0x10 Encrypted key
0x30 0x20 HMAC Value

The first step is to check the HMAC of the file. The process is to use the HMAC key from the Keys#PFS_Secret_Keys page to check the HMAC at position 0x30 in the file. If it is correct, it proceeds to use the pfsSKKey_EncKey to decrypt the value at +0x20 using the value at +0x10 as the IV.