SceSblAuthMgr

From Vita Development Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

sceSblAuthMgrInvokeSMForKernel

Version NID
3.60 0xA9CD2A09
// if initialization is successful - ctx will be initialized to 1
int sceSblAuthMgrInvokeSMForKernel(int* ctx);

sceSblAuthMgrStopSMForKernel

Version NID
3.60 0x026ACBAD

Issued F00D command -1

// ctx - obtained with sceSblAuthMgrInvokeSMForKernel. Should equal 1 for successful deinit.
int sceSblAuthMgrStopSMForKernel(int ctx);

sceSblAuthMgrAuthHeaderForKernel

Version NID
3.60 0xF3411881

Issues F00D command 0x10001

SceSblSmCommContext130 type is defined in SceKernelModulemgr.

Read caller SELF Info using sceKernelGetSelfInfoForKernel then writes it to context_130->caller_self_info.

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

//ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrAuthHeaderForKernel(int ctx, char *header, int header_size, SceSblSmCommContext130 *context_130);

sceSblAuthMgrLoadSelfSegmentForKernel

Version NID
3.60 0x89CCDA2C

Issues F00D command 0x20001

// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrLoadSelfSegmentForKernel(int ctx, int segment_number, int segment_size, void output_buffer, int program_size);

sceSblAuthMgrLoadSelfBlockForKernel

Version NID
3.60 0xBC422443

Issues F00D command 0x30001

// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrLoadSelfBlockForKernel(int ctx, char *buffer, int offset);

sceSblAuthMgrSetDmac5KeyForKernel

Version NID
1.05 0x122ACDEA
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
1.05 0xF2BB723E
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 or 0x03650000).

int sceSblAuthMgrCompareSwVersionForKernel(int version);

SceSblAuthMgrForDriver

sceSblAuthMgrGetEKcForDriver

Version NID
1.05 0x868B9E9A
3.60 0x868B9E9A

EKc = Encrypted Key License (also called klicensee)

Issues F00D command 0x40001

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

sceSblAuthMgrDecBindDataForDriver

Version NID
1.05 0x41DAEA12
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);

sceSblAuthMgrVerifySpfsoCtxForDriver

Version NID
3.60 0x24C4CE64

Used by sceSblPostSsMgrVerifySpfsoCtxForDriver

Issues F00D command 0x80001

int sceSblAuthMgrVerifySpfsoCtxForDriver(spsfo_ctx *ctx);