Sealedkey / pfsSKKey
Jump to navigation
Jump to search
The Sealed Key is a an encrypted key used on PS Vita, PS4 and PS5 to prevent files modification and extraction. It can be found on different places in the filesystem and is used for Save Data and Trophy Data decryption and encryption.
PS4
Location
The sealedkey file is located in the folder of every savedata/trophies. It is not PFS encrypted.
Kind | Path |
---|---|
Trophy | /user/home/User Id/trophy/data/sce_trop/sealedkey |
Save Data (internal HDD) | /user/home/User Id/Title ID/save data directory/sce_sys/ |
Save Data (USB Storage) | /PS4/SAVEDATA/User Id/Title ID/<sealed_filename>.bin |
Structure
- Size is always 96 bytes.
Offset | Size | Description | Value | |
---|---|---|---|---|
0 | 8 | Magic | "pfsSKKey" meaning PFS sealedkey key | |
0x8 | 2 | #Keyset | ||
0xA | 6 | Padding | Zeroed | |
0x10 | 16 | IV | ||
0x20 | 32 | Encrypted Sealed Key | ||
0x40 | 32 | Digest | HMAC-SHA-256 |
typedef struct {
const char magic[8];
unsigned short keyset;
unsigned char reserved[6];
unsigned char iv[16];
unsigned char encrypted_sealedkey[32];
unsigned char digest[32];
} sealed_key;
Keyset
Keyset | System Software version | Notes |
---|---|---|
1 | 1.01-1.73 | |
2 | 4.55 | |
3 | ?5.05? | |
10 | 12.00 |
For example, in PS4 4.55 kernel, the function sceSblSsDecryptSealedKey checks that keyset is less or equal 2 before calling sceSblSsDecryptWithPortability.
Usage
With code execution in PS4 kernel, the sealed key can be decrypted by asking the PS4 kernel.