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