Difference between revisions of "SceSblAuthMgr"

From Vita Development Wiki
Jump to navigation Jump to search
Line 29: Line 29:
 
== SceSblAuthMgrForKernel ==
 
== SceSblAuthMgrForKernel ==
  
These functions are used for [[SceKernelModulemgr#Decrypt_SELF_ELF_Program|self decryption]]
+
These functions are used for [[SceKernelModulemgr#Decrypt_SELF_ELF_Program|SELF decryption]]
  
 
=== sceSblAuthMgrSmStartForKernel ===
 
=== sceSblAuthMgrSmStartForKernel ===
Line 42: Line 42:
  
 
<source lang="C">
 
<source lang="C">
//if initialization is successful - ctx will be initialized to 1
+
// if initialization is successful - ctx will be initialized to 1
 
int sceSblAuthMgrSmStartForKernel(int* ctx);
 
int sceSblAuthMgrSmStartForKernel(int* ctx);
 
</source>
 
</source>
  
=== sceSblAuthMgrShutDownCurrentlyLoadedSelf ===
+
=== sceSblAuthMgrSmFinalizeForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 55: Line 55:
 
|}
 
|}
  
executes special [[F00D_Commands#Request_Buffer|F00D command -1]]
+
Issued [[F00D_Commands#Request_Buffer|F00D command -1]]
  
 
<source lang="C">
 
<source lang="C">
//ctx - should equal 1 for successful deinit. it is obtained by calling sceSblAuthMgrStartF00DCommunication
+
// ctx - obtained with sceSblAuthMgrSmStartForKernel. Should equal 1 for successful deinit.
int sceSblAuthMgrShutDownCurrentlyLoadedSelf(int ctx);
+
int sceSblAuthMgrSmFinalizeForKernel(int ctx);
 
</source>
 
</source>
  
=== sceSblAuthMgrParseSelfHeader ===
+
=== sceSblAuthMgrAuthHeader ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 71: Line 71:
 
|}
 
|}
  
Issues F00D command [[F00D_Commands#0x10001|0x10001]].
+
Issues [[F00D_Commands#0x10001|F00D command 0x10001]]
  
 
<code>SceSblSmCommContext130</code> type is defined in [[SceKernelModulemgr#Types|SceKernelModulemgr]].
 
<code>SceSblSmCommContext130</code> type is defined in [[SceKernelModulemgr#Types|SceKernelModulemgr]].
  
 
<source lang="C">
 
<source lang="C">
//ctx - obtained with sceSblAuthMgrStartF00DCommunication
+
//ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrParseSelfHeader(int ctx, char *self_header, int length, SceSblSmCommContext130 *buffer);
+
int sceSblAuthMgrAuthHeader(int ctx, char *self_header, int length, SceSblSmCommContext130 *buffer);
 
</source>
 
</source>
  
=== sceSblAuthMgrSetSelfSegment ===
+
=== sceSblAuthMgrLoadSelfSegmentForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 89: Line 89:
 
|}
 
|}
  
Issues F00D command [[F00D_Commands#0x20001|0x20001]]
+
Issues [[F00D_Commands#0x20001|F00D command 0x20001]]
  
 
<source lang="C">
 
<source lang="C">
//ctx - obtained with sceSblAuthMgrStartF00DCommunication
+
// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrSetSelfSegment(int ctx, int segment_number);
+
int sceSblAuthMgrLoadSelfSegmentForKernel(int ctx, int segment_number);
 
</source>
 
</source>
  
=== sceSblAuthMgrFinalizeForKernel ===
+
=== sceSblAuthMgrLoadSelfBlockForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 105: Line 105:
 
|}
 
|}
  
Issues F00D command [[F00D_Commands#0x30001|0x30001]]
+
Issues [[F00D_Commands#0x30001|F00D command 0x30001]]
  
 
<source lang="C">
 
<source lang="C">
//ctx - obtained with sceSblAuthMgrStartF00DCommunication
+
// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrFinalizeForKernel(int ctx, void *addr, int length);
+
int sceSblAuthMgrLoadSelfBlockForKernel(int ctx, void *addr, int length);
 
</source>
 
</source>
  
=== sceSblAuthMgrSetDmac5Key ===
+
=== sceSblAuthMgrSetDmac5KeyForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 124: Line 124:
 
|}
 
|}
  
Issues F00D command [[F00D_Commands#0x50001_sceSblAuthMgrSetDmac5Key|0x50001]]
+
Issues [[F00D_Commands#0x50001_sceSblAuthMgrSetDmac5KeyForKernel|F00D command 0x50001]]
  
 
<source lang="C">
 
<source lang="C">
//key_size - in bytes
+
// key_size - in bytes
int sceSblAuthMgrSetDmac5Key(char *key, int key_size, int slot_id, int key_id);
+
int sceSblAuthMgrSetDmac5KeyForKernel(char *key, int key_size, int slot_id, int key_id);
 
</source>
 
</source>
  
=== sceSblAuthMgrClearDmac5Key ===
+
=== sceSblAuthMgrClearDmac5KeyForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 143: Line 143:
 
|}
 
|}
  
Issues F00D command [[F00D_Commands#0x60001_sceSblAuthMgrClearDmac5Key|0x60001]]
+
Issues [[F00D_Commands#0x60001_sceSblAuthMgrClearDmac5KeyForKernel|F00D command 0x60001]]
  
<source lang="C">int sceSblAuthMgrClearDmac5Key(int unk0, int unk1);</source>
+
<source lang="C">int sceSblAuthMgrClearDmac5KeyForKernel(int unk0, int unk1);</source>
  
=== sceSblAuthMgrReturnZero ===
+
=== sceSblAuthMgrReturnZeroForKernel ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 169: Line 169:
 
|}
 
|}
  
Aligns version on 12 bits then compares to 0x03600000 or 0x03650000
+
Aligns version on 12 bits then compares to the hardcoded current firmware version (example: 0x03600000 or 0x03650000).
  
 
<source lang="C">int sceSblAuthMgrCompareSwVersionForKernel(int version);</source>
 
<source lang="C">int sceSblAuthMgrCompareSwVersionForKernel(int version);</source>

Revision as of 20:20, 29 March 2018

Module

Known NIDs

Version Name World Privilege NID
1.69 SceSblAuthMgr Non-secure Kernel 0xEA5DFC93

Libraries

Known NIDs

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

SceSblAuthMgrForKernel

These functions are used for SELF decryption

sceSblAuthMgrSmStartForKernel

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

sceSblAuthMgrSmFinalizeForKernel

Version NID
3.60 0x026ACBAD

Issued F00D command -1

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

sceSblAuthMgrAuthHeader

Version NID
3.60 0xF3411881

Issues F00D command 0x10001

SceSblSmCommContext130 type is defined in SceKernelModulemgr.

//ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrAuthHeader(int ctx, char *self_header, int length, SceSblSmCommContext130 *buffer);

sceSblAuthMgrLoadSelfSegmentForKernel

Version NID
3.60 0x89CCDA2C

Issues F00D command 0x20001

// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrLoadSelfSegmentForKernel(int ctx, int segment_number);

sceSblAuthMgrLoadSelfBlockForKernel

Version NID
3.60 0xBC422443

Issues F00D command 0x30001

// ctx - obtained with sceSblAuthMgrSmStartForKernel
int sceSblAuthMgrLoadSelfBlockForKernel(int ctx, void *addr, int length);

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

sceSblAuthMgrReturnZeroForKernel

Version NID
3.60 0x2A83A012

Returns 0.

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

sceSblAuthMgrGetEKc

Version NID
1.05 0x868b9e9a
3.60 0x868b9e9a

Issues F00D command 0x40001

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

sceSblAuthMgrDecBindData

Version NID
1.05 0x41daea12
3.60 0x41daea12

Issues F00D command 0x70001

//request should contain pair of keys and rif data

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

sceSblAuthMgrVerifySpfsoCtx

Version NID
3.60 0x24C4CE64

Used by sceSblPostSsMgrVerifySpfsoCtxForDriver

Issues F00D command 0x80001

int sceSblAuthMgrVerifySpfsoCtx(spsfo_ctx *ctx);