SSL services: Difference between revisions

No edit summary
Line 26: Line 26:


== GetCertificates ==
== GetCertificates ==
Takes a type-0x6 output buffer and a type-0x5 input buffer containing an array of s32 '''CaCertificateId'''.
Takes a type-0x6 output buffer and a type-0x5 input buffer containing an array of [[#CaCertificateId]].


[3.0.0+] This now returns 4-bytes of output.
[3.0.0+] This now returns an output u32 for actual total output entries.
 
The output buffer starts with an array of [[#BuiltInCertificateInfo]], with the DER cert data following afterwards.


== GetCertificateBufSize ==
== GetCertificateBufSize ==
Takes a type-0x5 input buffer containing an array of s32 '''CaCertificateId''', returns an output u32 for the size to use with [[#GetCertificates]].
Takes a type-0x5 input buffer containing an array of [[#CaCertificateId]], returns an output u32 for the size to use with [[#GetCertificates]].


== DebugIoctl ==
== DebugIoctl ==
Line 139: Line 141:
| 25 || [4.0.0+] GetCipherInfo
| 25 || [4.0.0+] GetCipherInfo
|}
|}
= BuiltInCertificateInfo =
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| CaCertificateId
|-
| 0x4
| 0x4
| [[#BuiltinDataStatus]]
|-
| 0x8
| 0x8
| Data size
|-
| 0x10
| 0x8
| Data offset
|}
This is the struct returned by [[#GetCertificates]]. Official sw converts this to "nn::ssl::BuiltInManager::BuiltInCertificateInfo" with offset converted to a ptr.
= BuiltinDataStatus =
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| -1
| Invalid
|-
| 1
| Valid
|}
This is the "nn::ssl::detail::BuiltinDataInfo::BuiltinDataStatus" enum.
= CaCertificateId =
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 1
| Nintendo {...}
|-
| 2
| Nintendo {...}
|}
This is the "nn::ssl::CaCertificateId" enum.


= Client cert+privk =
= Client cert+privk =