Module
Known NIDs
Version |
Name |
World |
Privilege |
NID
|
3.60 |
SceSblPostSsMgr |
Non-secure |
Kernel |
0xB6C941F2
|
Libraries
Known NIDs
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);
sceSblLicMgrGetActivationKeyForDriver
Version |
NID
|
3.60 |
0xF7F1015B
|
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 open_psid
} activation_key;
int sceSblLicMgrGetActivationKeyForDriver(activation_key* key);
sceSblLicMgrActivateForDriver
Version |
NID
|
3.60 |
0x0298382B
|
int sceSblLicMgrActivateForDriver(char *afv_path);
sceSblLicMgrGetLicenseStatusForDriver
Version |
NID
|
3.60 |
0x15F37282
|
int sceSblLicMgrGetLicenseStatusForDriver(void);
sceSblLicMgrGetExpireDateForDriver
Version |
NID
|
3.60 |
0x4FF2682F
|
Get activation data expire date
int sceSblLicMgrGetExpireDateForDriver(int *expire_date, int request_data_flag);
sceSblPmMgrGetProductModeForDriver
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
sceSblPmMgrGetProductModeFromNVSForDriver
Version |
NID
|
3.60 |
0x4663C195
|
Executes pm_sm.self command 8.
sceSblPmMgrAuthEtoIForDriver
Version |
NID
|
3.60 |
0x19B63D65
|
Executes pm_sm_sd.self commands 9, A.
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);
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);
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);
sceSblRtcMgrSetCpRtcForDriver
Version |
NID
|
3.60 |
0x3F9BDEDF
|
Set RTC in DevKit CP.
int sceSblRtcMgrSetCpRtcForDriver(int rtc);
sceSblRtcMgrGetCpRtcPhysicalForDriver
Version |
NID
|
3.60 |
0x942010A0
|
sceSblRtcMgrGetCpRtcLogicalForDriver
Version |
NID
|
3.60 |
0xDE5150FE
|
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);