SceSblPostSsMgr

From Vita Development Wiki
Jump to navigation Jump to search

Module

Known NIDs

Version Name World Privilege NID
3.60 SceSblPostSsMgr Non-secure 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);

sceSblPostSsMgrSetCpRtcForDriver

Version NID
3.60 0x3F9BDEDF

Set RTC in DevKit CP.

int sceSblPostSsMgrSetCpRtcForDriver(int rtc);

sceSblPostSsMgrGetExpireDateForDriver

Version NID
3.60 0x4FF2682F

Get activation data expire 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

sceSblUtMgrExecuteUtokenSmCommand1ForDriver

Version NID
3.60 0xC2E58CE3

Executes utoken_sm command 1. Get utoken buffer ???

Called by SceSblUtMgr_BDE74645.

// size = 2048
int sceSblUtMgrExecuteUtokenSmCommand1ForDriver(void* buf, SceSize size);

sceSblUtMgrResetUtokenFileForDriver

Version NID
3.60 0x1FF699DD

Writes 0x800 blank tm0:utoken/utoken.dat or removes it.

Exported to userland by SceSblUtMgr_1CD57182.

int sceSblUtMgrResetUtokenFileForDriver(void);

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

sceSblUtMgrHasComTestFlagForDriver

Version NID
3.60 0x7ACCAA50

Derived from vshSblUtMgrHasComTestFlag.

int sceSblUtMgrHasComTestFlagForDriver(void);

sceSblUtMgrHasStoreFlagForDriver

Version NID
3.60 0x9D2E2D39

Derived from vshSblUtMgrHasStoreFlag.

int sceSblUtMgrHasStoreFlagForDriver(void);

sceSblUtMgrHasNpTestFlagForDriver

Version NID
3.60 0x9FD835B0

Derived from vshSblUtMgrHasNpTestFlag.

int sceSblUtMgrHasNpTestFlagForDriver(void);

SceZlibForDriver

SceSblFwLoaderForDriver

SceSblPmMgr

sceSblPmMgrSetProductModeOffForUser

Version NID
3.60 0x41FE8A37

sceSblPmMgrGetProductModeForUser

Version NID
3.60 0x46EA9FDB

sceSblPmMgrGetProductModeFromNVS

Version NID
3.60 0x49CE0DDF

Calls sceSblPostSsMgrExecutePmSmF00dCommand8ForDriver.

sceSblPmMgrAuthEtoI

Version NID
3.60 0xBD38B141

sceSblPmMgrGetCurrentMode

Version NID
3.60 0xDA4EDEBF

SceSblRtcMgr

sceSblRtcMgrGetCpRtcPhysicalForUser

Version NID
3.60 0x1614302B

sceSblRtcMgrSetCpActivationKey

Version NID
3.60 0x298AE544

sceSblRtcMgrSetCpRtcPhysicalAndKey

Version NID
3.60 0x3C0EEC69

sceSblRtcMgrSetCpRtcLogical

Version NID
3.60 0x9DFB118B

sceSblRtcMgrSetCpRtcPhysicalForUser

Version NID
3.60 0xA990BC44

sceSblRtcMgrGetCpRtcLogical

Version NID
3.60 0xDD44D726

sceSblRtcMgrGetCpSerialId

Version NID
3.60 0xE162A827

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 open_psid[0x10]; // obtained with sceSblSsMgrGetOpenPsIdForDriver
   uint32_t vadd_hash; // result of vector add operation applied to openPSID
} 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

SceSblUtMgr_BDE74645

Version NID
3.60 0xBDE74645
int SceSblUtMgr_BDE74645(char* buf, SceSize size);

SceSblUtMgr_D2836E0D

Version NID
3.60 0xD2836E0D
int SceSblUtMgr_D2836E0D(int a1, int SceSize size);

sceSblUtMgrResetUtokenFile

Version NID
3.60 0x1CD57182

Calls sceSblUtMgrResetUtokenFileForDriver().

int sceSblUtMgrResetUtokenFile(void);

SceSblUtMgr_CFCB1355

Version NID
3.60 0xCFCB1355
int SceSblUtMgr_CFCB1355(int a1);

SceSblUtMgr_04CA1311

Version NID
3.60 0x04CA1311
int SceSblUtMgr_04CA1311(char* buf, SceSize size);