SceKrm: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) No edit summary |
|||
Line 92: | Line 92: | ||
int sceKrmBignumMod(const void *s1, int s1_words, const void *s2, int s2_words, void *a5, int a6, void *dst); | int sceKrmBignumMod(const void *s1, int s1_words, const void *s2, int s2_words, void *a5, int a6, void *dst); | ||
</source> | </source> | ||
=== sceKrmEcdsaVerifyCore === | |||
{| class="wikitable" | |||
|- | |||
! Version !! Offset !! Mode | |||
|- | |||
| 3.60 || 0x5ACC || Thumb | |||
|} | |||
<source lang="C">int sceKrmEcdsaVerifyCore(const void *hash, const void *pubkey, const void *sign, void *ctx);</source> | |||
=== ecdsa_ctx === | |||
{| class="wikitable" | |||
|- | |||
! Version !! Segment !! Offset | |||
|- | |||
| 3.60 || data || 0x55C | |||
|} | |||
This is just variable. | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category:Kernel]] | [[Category:Kernel]] |
Revision as of 08:42, 22 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.
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.