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]]