SSL services: Difference between revisions

No edit summary
Line 125: Line 125:
| 11 || [3.0.0+] [[#RemoveCrl]]
| 11 || [3.0.0+] [[#RemoveCrl]]
|-
|-
| 12 || [16.0.0+] ImportClientCertKeyPki
| 12 || [16.0.0+] [[#ImportClientCertKeyPki]]
|-
|-
| 13 || [16.0.0+] GeneratePrivateKeyAndCert
| 13 || [16.0.0+] [[#GeneratePrivateKeyAndCert]]
|}
|}


Line 189: Line 189:
=== RemoveCrl ===
=== RemoveCrl ===
Takes an input u64 Id, no output.
Takes an input u64 Id, no output.
=== ImportClientCertKeyPki ===
Takes two type-0x5 input buffers and a [[#CertificateFormat]], returns an output u64 Id.
=== GeneratePrivateKeyAndCert ===
Takes two type-0x6 output buffers, a type-0x5 input buffer containing a [[#KeyAndCertParams]], and an u32, returns two output u32s.
Official sw passes hard-coded value 1 for the u32.


=== ISslConnection ===
=== ISslConnection ===
Line 518: Line 526:
| 11 || [[#RemoveCrl]]
| 11 || [[#RemoveCrl]]
|-
|-
| 12 || [16.0.0+] ImportClientCertKeyPki
| 12 || [16.0.0+] [[#ImportClientCertKeyPki]]
|-
|-
| 13 || [16.0.0+] GeneratePrivateKeyAndCert
| 13 || [16.0.0+] [[#GeneratePrivateKeyAndCert]]
|-
|-
| 100 || [[#CreateConnectionForSystem]]
| 100 || [[#CreateConnectionForSystem]]
Line 962: Line 970:
|-
|-
| 0x40 || 0x8 || Protocol version string
| 0x40 || 0x8 || Protocol version string
|}
= KeyAndCertParams =
This is "nn::ssl::ContextPrivate::KeyAndCertParams". This is a 0x58-byte struct.
This was added with [16.0.0+].
The constructor for this in official sw just clears this struct.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0 || 0x4 ||
|-
| 0x4 || 0x4 || The official wrapper code for [[#GeneratePrivateKeyAndCert]] throws an error if this is value 0.
|-
| 0x8 || 0x8 || The official wrapper code for [[#GeneratePrivateKeyAndCert]] throws an error if this is value 0.
|-
| 0x10 || 0x40 || NUL-terminated string.
|-
| 0x50 || 0x4 || The official wrapper code for [[#GeneratePrivateKeyAndCert]] throws an error if this is value 0 or >0x3F. It also verifies that this matches the output from: <code>strnlen(struct+0x10, 0x40)</code>.
|}
|}