SceSblPostSsMgr: Difference between revisions
Line 174: | Line 174: | ||
this function: | this function: | ||
verifies pfsSKKey header | |||
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using [[SceSblSsMgr#sceSblSsMgrEncryptWithPortabilityForDriver|sceSblSsMgrEncryptWithPortabilityForDriver]] | decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using [[SceSblSsMgr#sceSblSsMgrEncryptWithPortabilityForDriver|sceSblSsMgrEncryptWithPortabilityForDriver]] | ||
verifies <code>HMAC Value</code> | verifies hmac256 value in <code>HMAC Value</code> | ||
decrypts <code>Encrypted key</code> into <code>dst_secret</code> | decrypts <code>Encrypted key</code> into <code>dst_secret</code> | ||
Line 185: | Line 187: | ||
//dst_secret - size 0x10 | //dst_secret - size 0x10 | ||
int sceSblPostSsMgrDecryptSealedkeyForDriver(char* data, char* dst_secret); | int sceSblPostSsMgrDecryptSealedkeyForDriver(char* data, char* dst_secret); | ||
</source> | |||
=== sceSblPostSsMgrEncryptSealedkeyForDriver === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0x08525D8D | |||
|} | |||
<code>data</code> is 0x50 bytes of data like in [[Sealedkey#File_Structure|sealedkey]] | |||
this function: | |||
writes pfsSKKey header | |||
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using [[SceSblSsMgr#sceSblSsMgrEncryptWithPortabilityForDriver|sceSblSsMgrEncryptWithPortabilityForDriver]] | |||
randomly generates 0x10 bytes of IV with [[SceSblSsMgr#sceSblSsMgrGetRandomNumberForDriver|sceSblSsMgrGetRandomNumberForDriver]] | |||
randomly generates 0x10 bytes of secret with [[SceSblSsMgr#sceSblSsMgrGetRandomNumberForDriver|sceSblSsMgrGetRandomNumberForDriver]] | |||
encrypts the secret into <code>Encrypted key</code> | |||
calculates hmac256 value into <code>HMAC Value</code> | |||
<source lang="C"> | |||
//dest_data - size 0x50 | |||
int sceSblPostSsMgrEncryptSealedkeyForDriver (char* dest_data); | |||
</source> | </source> | ||
Revision as of 01:02, 6 December 2017
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
3.60 | SceSblPostSsMgr | ? | Kernel | 0xB6C941F2 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
3.60 | SceSblPostSsMgrForDriver | ? | Kernel | 0x2254E1B2 |
3.60 | SceZlibForDriver | ? | Kernel | 0xE241534E |
3.60 | SceSblFwLoaderForDriver | ? | Kernel | 0x6FE424E4 |
3.60 | SceSblPmMgr | ? | User | 0xA9CE5795 |
3.60 | SceSblRtcMgr | ? | User | 0x44C5F209 |
3.60 | SceSblLicMgr | ? | User | 0x62083C72 |
3.60 | SceSblUtMgr | ? | User | 0x000DF81A |
SceSblPostSsMgrForDriver
Types
typedef struct spsfo_ctx { SceUID mem_uid; //SceSblSpsfoMgr void* mem_block_base; uint32_t unk_8; } spsfo_ctx;
sceSblPostSsMgrInitializeSpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0xBDF18922 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrInitializeSpfsoCtxForDriver(char *path, spsfo_ctx *result);
sceSblPostSsMgrVerifySpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0x686B9461 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrVerifySpfsoCtxForDriver(spsfo_ctx *ctx, int *res, int *size);
sceSblPostSsMgrReleaseSpfsoCtxForDriver
Version | NID |
---|---|
3.60 | 0xAD3B0078 |
derived from _vshSblAuthMgrVerifySpsfo
int sceSblPostSsMgrReleaseSpfsoCtxForDriver(spsfo_ctx *ctx);
sceSblPostSsMgrGetExpireDateForDriver
Version | NID |
---|---|
3.60 | 0x4FF2682F |
get activation data exp date
int sceSblPostSsMgrGetExpireDateForDriver(int *expire_date, int request_data_flag);
sceSblPostSsMgrActivateForDriver
Version | NID |
---|---|
3.60 | 0x0298382B |
int sceSblPostSsMgrActivateForDriver(char *afv_path);
sceSblPostSsMgrExecutePmSmF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0xADF92824 |
executes pm_sm.self commands 2,3,4,5,6,7,8,9,A
sceSblPostSsMgrExecutePmSmF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0xFE92A318 |
executes pm_sm.self commands 2,3,4,5,6,7,8,9,A
sceSblPostSsMgrExecutePmSmF00dCommand8ForDriver
Version | NID |
---|---|
3.60 | 0x4663C195 |
executes pm_sm.self command 8
sceSblPostSsMgrExecutePmSmSdF00dCommandForDriver
Version | NID |
---|---|
3.60 | 0x19B63D65 |
executes pm_sm_sd.self commands 9, A
sceSblPostSsMgrExecuteUtokenSmF00dCommand1ForDriver
Version | NID |
---|---|
3.60 | 0xC2E58CE3 |
executes utoken_sm command 1
sceSblPostSsMgrDecryptSealedkeyForDriver
Version | NID |
---|---|
3.60 | 0x33275F95 |
data
is 0x50 bytes of data from sealedkey
this function:
verifies pfsSKKey header
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using sceSblSsMgrEncryptWithPortabilityForDriver
verifies hmac256 value in HMAC Value
decrypts Encrypted key
into dst_secret
//data - size 0x50 //dst_secret - size 0x10 int sceSblPostSsMgrDecryptSealedkeyForDriver(char* data, char* dst_secret);
sceSblPostSsMgrEncryptSealedkeyForDriver
Version | NID |
---|---|
3.60 | 0x08525D8D |
data
is 0x50 bytes of data like in sealedkey
this function:
writes pfsSKKey header
decrypts aes_key(pfsSKKey__EncKey) and hmac_key(pfsSKKey__Secret) using sceSblSsMgrEncryptWithPortabilityForDriver
randomly generates 0x10 bytes of IV with sceSblSsMgrGetRandomNumberForDriver
randomly generates 0x10 bytes of secret with sceSblSsMgrGetRandomNumberForDriver
encrypts the secret into Encrypted key
calculates hmac256 value into HMAC Value
//dest_data - size 0x50 int sceSblPostSsMgrEncryptSealedkeyForDriver (char* dest_data);
SceZlibForDriver
SceSblFwLoaderForDriver
SceSblPmMgr
SceSblRtcMgr
SceSblLicMgr
Functions related to afv file
sceSblLicMgrGetIssueNo
Version | NID |
---|---|
3.60 | 0x0E0691A1 |
// if request_data_flag is 0 then some cached value is used // if request_data_flag is 1 then data is requested from syscon int sceSblLicMgrGetIssueNo(int *issue_number, int request_data_flag);
sceSblLicMgrGetLicenseStatus
Version | NID |
---|---|
3.60 | 0x0EA6A30C |
int sceSblLicMgrGetLicenseStatus();
sceSblLicMgrGetActivationKey
Version | NID |
---|---|
3.60 | 0x2A437187 |
typedef struct activation_key // size is 0x14 { char psid[0x10]; //obtained with sceSblSsMgrGetOpenPsIdForDriver uint32_t vadd_hash; // result of vector add operation applied to psid }activation_key; int sceSblLicMgrGetActivationKey(activation_key* key);
sceSblLicMgrActivateFromFs
Version | NID |
---|---|
3.60 | 0x6E56EA0A |
//activates from ux0:/data/activate/ int sceSblLicMgrActivateFromFs();
sceSblLicMgrGetUsageTimeLimit
Version | NID |
---|---|
3.60 | 0x774EBBA2 |
int sceSblLicMgrGetUsageTimeLimit(int *time_limit);
sceSblLicMgrClearActivationData
Version | NID |
---|---|
3.60 | 0x9B749D1D |
int sceSblLicMgrClearActivationData();
sceSblLicMgrGetExpireDate
Version | NID |
---|---|
3.60 | 0xE9FA0FE5 |
// if request_data_flag is 0 then some cached value is used // if request_data_flag is 1 then data is requested from syscon int sceSblLicMgrGetExpireDate(int *expire_date, int request_data_flag);
sceSblLicMgrActivateDevkit
Version | NID |
---|---|
3.60 | 0xEB21DD39 |
//afv_path is of size 0x100 int sceSblLicMgrActivateDevkit(char* afv_path);