added kernel libraries bindings and cleaned up todos

This commit is contained in:
2024-05-12 16:16:15 +02:00
parent e9824cbd95
commit 8a5e2870f6
68 changed files with 3278 additions and 92 deletions
+32
View File
@@ -0,0 +1,32 @@
package postssmgr
import "core:c"
foreign import postssmgr "system:SceSblSsMgrForDriver_stub"
@(link_prefix = "ksceSbl")
foreign postssmgr {
/**
* Create the new RSA signature
*
* @param[inout] rsa_signature - The RSA signature result
* @param[in] hash - The RSA signature hash
* @param[in] private_key - The RSA private key
* @param[in] type - The RSA signature type. [2, 4, 5, 0xB, 0xC, 0xD, 0xE]
*
* @return SCE_OK on success, < 0 on error
*/
RSA2048CreateSignature :: proc(rsa_signature: ^SceSblRsaDataParam, hash: ^SceSblRsaDataParam, private_key: SceSblRsaPrivateKeyParam, type: c.int) -> c.int ---
/**
* Verufy the new RSA signature
*
* @param[in] rsa_signature - The RSA signature input
* @param[in] hash - The RSA signature hash
* @param[in] public_key - The RSA public key
* @param[in] type - The RSA signature type. [2, 4, 5, 0xB, 0xC, 0xD, 0xE]
*
* @return SCE_OK on success, < 0 on error
*/
RSA2048VerifySignature :: proc(rsa_signature: ^SceSblRsaDataParam, hash: ^SceSblRsaDataParam, public_key: ^SceSblRsaPublicKeyParam, type: c.int) -> c.int ---
}
+26
View File
@@ -0,0 +1,26 @@
package postssmgr
import "core:c"
SceSblRsaDataParam :: struct {
data: rawptr,
size: c.uint,
}
SceSblRsaPublicKeyParam :: struct {
n: rawptr,
k: rawptr, // e/d
}
SceSblRsaPrivateKeyParam :: struct {
unk_0x00: c.int,
unk_0x04: c.int,
unk_0x08: c.int,
unk_0x0C: c.int,
p: rawptr,
q: rawptr,
dp: rawptr, // d % (p - 1)
dq: rawptr, // d % (q - 1)
qp: rawptr, // q^-1 % p
}