Difference between revisions of "SceKrm"

From Vita Development Wiki
Jump to navigation Jump to search
Line 63: Line 63:
 
// dst += (s1 * s2)
 
// dst += (s1 * s2)
 
void sceKrmBignumMulAdd(void *s1, uint32_t s2, void *dst, int words);
 
void sceKrmBignumMulAdd(void *s1, uint32_t s2, void *dst, int words);
 +
</source>
 +
 +
=== sceKrmBignumNMul ===
 +
 +
{| class="wikitable"
 +
|-
 +
! Version !! Offset !! Mode
 +
|-
 +
| 3.60 || 0x63BC || Thumb
 +
|}
 +
 +
<source lang="C">
 +
// dst = (0 - dst) - (s1 * s2)
 +
int sceKrmBignumNMul(void *s1, uint32_t s2, void *dst, int words);
 
</source>
 
</source>
  

Revision as of 18:35, 12 February 2022

Key ring manager module.

It does almost same operations as dmac and Magic Gate Key Manager (sha256 of opensid + seed). Its syscalls requires the calling app to have a SELF capability. It might be the equivalent of Magic Gate Key Manager for Play Ready. See SceAppMgr#sceAppMgrSetSystemDataFilePlayReady.

Added this module from system version 3.00.

Module

Version World Privilege
3.00-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
3.60 SceKrm Non-secure User 0x17EDC66B

SceKrm

0x10202EB4, SceKrm_10202EB4, addr: 0x81001C24
0x18DE25C6, SceKrm_18DE25C6, addr: 0x810022C0
0x2528D613, SceKrm_2528D613, addr: 0x81002018
0x3257BD35, SceKrm_3257BD35, addr: 0x81002EB4
0x350C8251, SceKrm_350C8251, addr: 0x81001F04
0x41547BE1, SceKrm_41547BE1, addr: 0x81002AC0
0x5296A954, SceKrm_5296A954, addr: 0x81002430
0x7251237D, SceKrm_7251237D, addr: 0x81002548
0x7401B932, SceKrm_7401B932, addr: 0x81002BD4
0x820B45C6, SceKrm_820B45C6, addr: 0x81001758
0x949506DC, SceKrm_949506DC, addr: 0x81002150
0x98EEB7F3, SceKrm_98EEB7F3, addr: 0x81001D94
0xA100E9C3, SceKrm_A100E9C3, addr: 0x81001A98
0xA9201DA3, SceKrm_A9201DA3, addr: 0x81002660
0xD7B35BE6, SceKrm_D7B35BE6, addr: 0x81002D48
0xE0AEAE3B, SceKrm_E0AEAE3B, addr: 0x81001864
0xECE6B5F4, SceKrm_ECE6B5F4, addr: 0x810015B4
0xECF53237, SceKrm_ECF53237, addr: 0x81002F2C
0xF0B626E7, SceKrm_F0B626E7, addr: 0x810028A0

Subroutines

sceKrmBignumMulAdd

Version Offset Mode
3.60 0x61F4 Thumb
// dst += (s1 * s2)
void sceKrmBignumMulAdd(void *s1, uint32_t s2, void *dst, int words);

sceKrmBignumNMul

Version Offset Mode
3.60 0x63BC Thumb
// dst = (0 - dst) - (s1 * s2)
int sceKrmBignumNMul(void *s1, uint32_t s2, void *dst, int words);

sceKrmBignumMod

Version Offset Mode
3.60 0x6F28 Thumb
// dst = s1 % s2
int sceKrmBignumMod(const void *s1, int s1_words, const void *s2, int s2_words, void *a5, int a6, void *dst);