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