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>. | |||
|} | |} | ||