SPL services: Difference between revisions
No edit summary |
No edit summary |
||
| Line 4: | Line 4: | ||
In [2.0.0+] where previously only one AES keyslot was used, there is now support for 4 of them and when the session closes, all allocated AES keyslots are automatically freed. | In [2.0.0+] where previously only one AES keyslot was used, there is now support for 4 of them and when the session closes, all allocated AES keyslots are automatically freed. | ||
[S2] The spl services were overhauled. New services were added, this appears to replace spl:mig where required for the relevant sysmodules. GenerateAesKek is no longer directly exposed, thus the Kek AccessKey and KeySource are no longer exposed. | |||
= csrng = | = csrng = | ||
| Line 38: | Line 40: | ||
|- | |- | ||
| 25 || [3.0.0+] [[#GetBootReason]] | | 25 || [3.0.0+] [[#GetBootReason]] | ||
|} | |||
Going by spl:ldn, this likely has a new interface on [S2]: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#GenerateRandomBytes|GenerateRandomBytes]] | |||
|- | |||
| 1 || [[#GetConfig|GetConfig]] | |||
|- | |||
| 2 || | |||
|- | |||
| 3 || | |||
|- | |||
| 4 || | |||
|- | |||
| 5 || [[#GetConfigWithBuffer|GetConfigWithBuffer]] | |||
|} | |} | ||
| Line 51: | Line 72: | ||
Performs asymmetric crypto with user supplied modulus and exponent. | Performs asymmetric crypto with user supplied modulus and exponent. | ||
== Cmd2 == | |||
This is for the [S2] interface. | |||
Takes no input, returns 0x10-bytes of output. | |||
This returns the first 0xD-bytes from [[#GetConfigWithBuffer|GetConfigWithBuffer]] ConfigItem 8, byteswapped. | |||
== Cmd3 == | |||
This is for the [S2] interface. | |||
Takes no input. Returns unknown output, usually zeros? | |||
== Cmd4 == | |||
This is for the [S2] interface. | |||
Takes no input. Returns unknown output, usually zeros? | |||
== GetConfigWithBuffer == | |||
Unofficial name. | |||
Wrapper for [[SMC#GetConfig|GetConfig SMC]]. Some config is incomplete when accessed with [[#GetConfig|GetConfig]], this allows returning the full config. | |||
Takes an input u32 '''ConfigItem''' and an output type-0xA buffer. | |||
== GenerateAesKek == | == GenerateAesKek == | ||
| Line 427: | Line 472: | ||
|- | |- | ||
| 30 || [5.0.0+] ReencryptDeviceUniqueData | | 30 || [5.0.0+] ReencryptDeviceUniqueData | ||
|} | |||
= (S2) spl:da = | |||
= (S2) spl:gc = | |||
= (S2) spl:nv = | |||
= (S2) spl:hid = | |||
= (S2) spl:ldn = | |||
This is "nn::spl::detail::ILdnInterface". | |||
This has IPC max_sessions 1? | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#GenerateRandomBytes|GenerateRandomBytes]] | |||
|- | |||
| 1 || [[#GetConfig|GetConfig]] | |||
|- | |||
| 2 || | |||
|- | |||
| 3 || | |||
|- | |||
| 4 || | |||
|- | |||
| 5 || [[#GetConfigWithBuffer|GetConfigWithBuffer]] | |||
|- | |||
| 7000 || | |||
|- | |||
| 7001 || | |||
|- | |||
| 7002 || | |||
|- | |||
| 7003 || | |||
|- | |||
| 7004 || | |||
|- | |||
| 7005 || | |||
|} | |} | ||
[[Category:Services]] | [[Category:Services]] | ||