|
|
Line 2: |
Line 2: |
|
| |
|
| It works a bit like DMAC Manager and Magic Gate Key Manager (for example it uses OpenPsId and sha256). Its syscalls requires the calling app to have an appropriate SELF capability. It might be the equivalent of Magic Gate Key Manager for Play Ready. It is imported in sceplayready.suprx in some usermode applications, usually online TV streaming applications. See [[SceAppMgr#sceAppMgrSetSystemDataFilePlayReady]]. | | It works a bit like DMAC Manager and Magic Gate Key Manager (for example it uses OpenPsId and sha256). Its syscalls requires the calling app to have an appropriate SELF capability. It might be the equivalent of Magic Gate Key Manager for Play Ready. It is imported in sceplayready.suprx in some usermode applications, usually online TV streaming applications. See [[SceAppMgr#sceAppMgrSetSystemDataFilePlayReady]]. |
| | |
| | That might work with a file of size 0x40 bytes, magic "SDPR" for SceSystemDataFilePlayReady. |
|
| |
|
| == Module == | | == Module == |
Revision as of 02:11, 26 February 2022
Key ring manager module.
It works a bit like DMAC Manager and Magic Gate Key Manager (for example it uses OpenPsId and sha256). Its syscalls requires the calling app to have an appropriate SELF capability. It might be the equivalent of Magic Gate Key Manager for Play Ready. It is imported in sceplayready.suprx in some usermode applications, usually online TV streaming applications. See SceAppMgr#sceAppMgrSetSystemDataFilePlayReady.
That might work with a file of size 0x40 bytes, magic "SDPR" for SceSystemDataFilePlayReady.
Module
This module is present since FW 3.00.
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);
sceKrmEcdsaVerifyCore
Version |
Offset |
Mode
|
3.60 |
0x5ACC |
Thumb
|
int sceKrmEcdsaVerifyCore(const void *hash, const void *pubkey, const void *sign, void *ctx);
ecdsa_ctx
Version |
Segment |
Offset
|
3.60 |
data |
0x55C
|
This is just variable.