Difference between revisions of "SceSblPostSsMgr"

From Vita Development Wiki
Jump to navigation Jump to search
Line 237: Line 237:
 
| 3.60 || 0xF86F1452
 
| 3.60 || 0xF86F1452
 
|}
 
|}
 +
 +
This function calls sceSblPostSsMgrVerifyKeystoneForDriver. Then also verifies HMAC of passcode.
  
 
<source lang="C">int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* passcode);</source>
 
<source lang="C">int sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver(char* keystone_data, char* passcode);</source>

Revision as of 21:59, 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

This function verifies magic in the header and HMAC of the keystone file

int sceSblPostSsMgrVerifyKeystoneForDriver(char* data, int version);

sceSblPostSsMgrVerifyKeystoneWithPasscodeForDriver

Version NID
3.60 0xF86F1452

This function calls sceSblPostSsMgrVerifyKeystoneForDriver. Then also verifies HMAC of passcode.

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);

SceSblUtMgr