Changes

2,359 bytes added ,  19:12, 10 May 2020
Line 14: Line 14:  
|-
 
|-
 
| [[#URL]] || STRINGPOINT || 2 || 10002 ||  
 
| [[#URL]] || STRINGPOINT || 2 || 10002 ||  
 +
|-
 +
| [[#SSL_CTX_FUNCTION]] || FUNCTIONPOINT || 108 || 20108 ||
 
|-
 
|-
 
| [[#PROXYAUTOCONFIG]] || LONG || 500 || 500 || 1
 
| [[#PROXYAUTOCONFIG]] || LONG || 500 || 500 || 1
Line 19: Line 21:  
| [[#UNK501]] || LONG || 501 || 501 || 0
 
| [[#UNK501]] || LONG || 501 || 501 || 0
 
|-
 
|-
| || OBJECTPOINT/STRINGPOINT || 502 || 10502 ||  
+
| [[#UNK502]] || OBJECTPOINT || 502 || 10502 ||  
 
|-
 
|-
| || FUNCTIONPOINT || 503 || 20503 ||  
+
| [[#UNK503]] || FUNCTIONPOINT || 503 || 20503 ||  
 
|-
 
|-
| || FUNCTIONPOINT || 504 || 20504 ||  
+
| [[#UNK504]] || FUNCTIONPOINT || 504 || 20504 ||  
 
|-
 
|-
| || OBJECTPOINT/STRINGPOINT || 505 || 10505 ||  
+
| [[#UNK505]] || OBJECTPOINT || 505 || 10505 ||  
 
|-
 
|-
 
| [[#UNK506]] || LONG || 506 || 506 || 0
 
| [[#UNK506]] || LONG || 506 || 506 || 0
Line 42: Line 44:     
Afterwards, ResolveEx is used with the first output string from the latter sscanf as the input. Then the final URL is constructed with the output from ResolveEx.
 
Afterwards, ResolveEx is used with the first output string from the latter sscanf as the input. Then the final URL is constructed with the output from ResolveEx.
 +
 +
== SSL_CTX_FUNCTION ==
 +
This funcptr is called with the same params as normal, with the context ptr being {sdknso container object for [[SSL_services#ISslContext|ISslContext]]}.
 +
 +
This is only used if [[#UNK502]] is not set, in which case an error is thrown if this funcptr is not set. An error is also thrown afterwards if the context wasn't created.
 +
 +
The user must create the [[SSL_services#ISslContext|ISslContext]] using this funcptr, with all required ISslContext initialization - no cmds are used by the caller with ISslContext besides [[SSL_services#CreateConnection|CreateConnection]].
    
== PROXYAUTOCONFIG ==
 
== PROXYAUTOCONFIG ==
Line 54: Line 63:     
This controls the value of the DataCheck [[SSL_services#VerifyOption|VerifyOption]] bit.
 
This controls the value of the DataCheck [[SSL_services#VerifyOption|VerifyOption]] bit.
 +
 +
== UNK502 ==
 +
If set, this is a ptr to a pre-initialized {sdknso container object for [[SSL_services#ISslContext|ISslContext]]}, which is used instead of creating a new one via [[#SSL_CTX_FUNCTION]].
 +
 +
== UNK503 ==
 +
If set, this funcptr is called at the end of [[SSL_services#ISslConnection|ISslConnection]] setup, prior to using [[SSL_services#SetIoMode|SetIoMode]]. If this funcptr returns non-zero, the CURLcode is set to CURLE_ABORTED_BY_CALLBACK.
 +
 +
This funcptr is called with the following params: (Curl_easy*, {sdknso container object for [[SSL_services#ISslConnection|ISslConnection]]}, [[#UNK505]]).
 +
 +
This allows the user to optionally do additional custom [[SSL_services#ISslConnection|ISslConnection]] setup.
 +
 +
== UNK504 ==
 +
If set, this funcptr is called following [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]] usage, if it didn't return error 0x1987B. If this funcptr returns non-zero, the CURLcode is set to CURLE_ABORTED_BY_CALLBACK.
 +
 +
This is essentially a custom version of getting the CERTINFO.
 +
 +
This funcptr is called with the following params: (Curl_easy*, {sdknso container object for [[SSL_services#ISslConnection|ISslConnection]]}, [[#UNK505]], {struct ptr}).
 +
 +
Where the struct has the following format:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x1 || bool CURLcode==0
 +
|-
 +
| 0x1 || 0x7 || Padding
 +
|-
 +
| 0x8 || 0x8 || Output-size from [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]].
 +
|-
 +
| 0x10 || 0x8 || Total-certs from [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]].
 +
|}
 +
 +
== UNK505 ==
 +
This option value is used as a param for the [[#UNK503]]/[[#UNK504]] funcptrs.
    
== UNK506 ==
 
== UNK506 ==