SceSblPostSsMgr: Difference between revisions
Line 236: | Line 236: | ||
|} | |} | ||
<source lang="C">int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* | <source lang="C">int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* passcode);</source> | ||
=== sceSblPostSsMgrDebugEncryptKeystoneForDriver === | === sceSblPostSsMgrDebugEncryptKeystoneForDriver === |
Revision as of 21:55, 8 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);
sceSblPostSsMgrVerifyKeystoneForDriver
Version | NID |
---|---|
3.60 | 0xDDA6FA6D |
int sceSblPostSsMgrVerifyKeystoneForDriver(char* data, int version);
sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver
Version | NID |
---|---|
3.60 | 0xF86F1452 |
int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* passcode);
sceSblPostSsMgrDebugEncryptKeystoneForDriver
Version | NID |
---|---|
3.60 | 0x42474C8B |
int sceSblPostSsMgrDebugEncryptKeystoneForDriver(char* src_secret, char* dest_data);
sceSblPostSsMgrDebugDecryptKeystoneForDriver
Version | NID |
---|---|
3.60 | 0xCC5AA5A5 |
int sceSblPostSsMgrDebugDecryptKeystoneForDriver(char* keystone_data, char* dst_secret);
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);