Changes

1,145 bytes added ,  21:35, 7 March 2023
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>.
 
|}
 
|}