Difference between revisions of "SceSblAuthMgr"

From Vita Development Wiki
Jump to navigation Jump to search
Line 93: Line 93:
 
<code>SceSblSmCommContext130</code> type is defined in [[SceKernelModulemgr#Types|SceKernelModulemgr]].
 
<code>SceSblSmCommContext130</code> type is defined in [[SceKernelModulemgr#Types|SceKernelModulemgr]].
  
Read caller SELF Info using sceKernelGetSelfAuthInfoForKernel then writes it to context_130->caller_self_auth_info.
+
?Read caller SELF Info using sceKernelGetSelfAuthInfoForKernel? then writes it to context_130->caller_self_auth_info.
  
 
Calls smc_137 and smc_134 that interact with F00D. F00D set context_130->called_self_auth_info.
 
Calls smc_137 and smc_134 that interact with F00D. F00D set context_130->called_self_auth_info.

Revision as of 12:09, 24 December 2019

Module

Known NIDs

Version Name World Privilege NID
1.69 SceSblAuthMgr Non-secure Kernel 0xEA5DFC93
3.57 SceSblAuthMgr Non-secure Kernel 0xA1BFE33C
3.60 SceSblAuthMgr Non-secure Kernel 0x1773372D

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceSblAuthMgrForKernel Non-secure Kernel 0x7ABF5135
1.69-3.60 SceSblAuthMgrForDriver Non-secure Kernel 0x4EB2B1BB

SceSblAuthMgrForKernel

These functions are used for SELF decryption.

sceSblAuthMgrOpenForKernel

Version NID
0.931-3.60 0xA9CD2A09

Previous name was sceSblAuthMgrInvokeSMForKernel, sceSblAuthMgrSmStartForKernel

// if initialization is successful - ctx will be initialized to 1
int sceSblAuthMgrOpenForKernel(int* ctx);

sceSblAuthMgrCloseForKernel

Version NID
0.931-3.60 0x026ACBAD

Previous name was sceSblAuthMgrStopSMForKernel, sceSblAuthMgrSmStopForKernel

Issues F00D command -1

// ctx - obtained with sceSblAuthMgrOpenForKernel. ctx must equal 1 for successful deinit.
int sceSblAuthMgrCloseForKernel(int ctx);

sceSblAuthMgrStartForKernel

Version NID
0.931-0.990 0xCAA38DF7

Create SceSblAuthMgrZlibHeap.

int sceSblAuthMgrStartForKernel(void);

sceSblAuthMgrStopForKernel

Version NID
0.931-0.990 0x6C1F5048

Delete SceSblAuthMgrZlibHeap.

int sceSblAuthMgrStopForKernel(void);

sceSblAuthMgrAuthHeaderForKernel

Version NID
0.931-3.60 0xF3411881

Issues F00D command 0x10001

SceSblSmCommContext130 type is defined in SceKernelModulemgr.

?Read caller SELF Info using sceKernelGetSelfAuthInfoForKernel? then writes it to context_130->caller_self_auth_info.

Calls smc_137 and smc_134 that interact with F00D. F00D set context_130->called_self_auth_info.

//ctx - obtained with sceSblAuthMgrOpenForKernel
int sceSblAuthMgrAuthHeaderForKernel(int ctx, char *self_header_addr, int self_header_size, SceSblSmCommContext130 *context_130);

sceSblAuthMgrSetupAuthSegmentForKernel

Version NID
0.931-3.60 0x89CCDA2C

Temp name was sceSblAuthMgrLoadSelfSegmentForKernel, sceSblAuthMgrLoadSegmentForKernel.

Issues F00D command 0x20001

// ctx - obtained with sceSblAuthMgrOpenForKernel

0.931-1.50
int sceSblAuthMgrSetupAuthSegmentForKernel(int ctx, int segment_number, int segment_size, void output_buffer, int program_size);

3.60
int sceSblAuthMgrSetupAuthSegmentForKernel(int ctx, int segment_number);

sceSblAuthMgrAuthSegmentForKernel

Version NID
0.931-3.60 0xBC422443

Temp name was sceSblAuthMgrLoadSelfBlockForKernel, sceSblAuthMgrLoadBlockForKernel.

Issues F00D command 0x30001

// ctx - obtained with sceSblAuthMgrOpenForKernel
int sceSblAuthMgrAuthSegmentForKernel(int ctx, void *buffer, int len);

sceSblAuthMgrLoadSegmentInternalForKernel

Version NID
0.990 0x15248FB4
// ctx - obtained with sceSblAuthMgrOpenForKernel
int sceSblAuthMgrLoadSegmentInternalForKernel(int ctx, int a2, unsigned int a3);

sceSblAuthMgrSetDmac5KeyForKernel

Version NID
1.05-3.60 0x122ACDEA

Issues F00D command 0x50001

// key_size - in bytes
int sceSblAuthMgrSetDmac5KeyForKernel(char *key, int key_size, int slot_id, int key_id);

sceSblAuthMgrClearDmac5KeyForKernel

Version NID
0.990-3.60 0xF2BB723E

Issues F00D command 0x60001

int sceSblAuthMgrClearDmac5KeyForKernel(int unk0, int unk1);

SceSblAuthMgrForKernel_2A83A012

Version NID
3.60 0x2A83A012

Returns 0. May be an old function kept for compatibility.

int SceSblAuthMgrForKernel_2A83A012(void);

sceSblAuthMgrCompareSwVersionForKernel

Version NID
3.60 0xABAB8466

Aligns version on 12 bits then compares to the hardcoded current firmware version (example: 0x03600000 on FW 3.60).

int sceSblAuthMgrCompareSwVersionForKernel(int version);

SceSblAuthMgrForDriver

sceSblAuthMgrGetEKcForDriver

Version NID
0.990-3.60 0x868B9E9A

EKc means Encrypted Klicense (also called Key License).

Issues F00D command 0x40001

int sceSblAuthMgrGetEKcForDriver(void* data, int size, int key_id);

sceSblAuthMgrDecBindDataForDriver

Version NID
1.05-3.60 0x41DAEA12

Issues F00D command 0x70001

// request should contain pair of keys and rif data

int sceSblAuthMgrDecBindDataForDriver(char* klicensee, int klicensee_len, char* request, int request_len, int zero);

sceSblAuthMgrVerifySpsfoForDriver

Version NID
1.03-3.60 0x24C4CE64

Used by sceSblSpsfoMgrVerifyForDriver

Issues F00D command 0x80001.

int sceSblAuthMgrVerifySpsfoForDriver(spsfo_ctx *ctx);