@@ -953,14 +953,17 @@ Func _WinHttpSetOption($hInternet, $iOption, $vSetting, $iSize = Default)
953
953
$sType = " wstr"
954
954
If (IsDllStruct ($vSetting ) Or IsPtr ($vSetting )) Then Return SetError (3 , 0 , 0 )
955
955
If $iSize < 1 Then $iSize = StringLen ($vSetting )
956
- Case $WINHTTP_OPTION_CLIENT_CERT_CONTEXT , $ WINHTTP_OPTION_GLOBAL_PROXY_CREDS , $WINHTTP_OPTION_GLOBAL_SERVER_CREDS , $WINHTTP_OPTION_HTTP_VERSION , _
956
+ Case $WINHTTP_OPTION_GLOBAL_PROXY_CREDS , $WINHTTP_OPTION_GLOBAL_SERVER_CREDS , $WINHTTP_OPTION_HTTP_VERSION , _
957
957
$WINHTTP_OPTION_PROXY
958
958
$sType = " ptr"
959
959
If Not (IsDllStruct ($vSetting ) Or IsPtr ($vSetting )) Then Return SetError (3 , 0 , 0 )
960
+ Case $WINHTTP_OPTION_CLIENT_CERT_CONTEXT
961
+ $sType = " ptr"
962
+ If Not (IsDllStruct ($vSetting ) Or IsPtr ($vSetting )) And Not $vSetting = NULL Then Return SetError (3 , 0 , 0 )
960
963
Case Else
961
964
Return SetError (1 , 0 , 0 )
962
965
EndSwitch
963
- If $iSize < 1 Then
966
+ If $iSize < 1 And Not ( $iOption = $WINHTTP_OPTION_CLIENT_CERT_CONTEXT And $vSetting = NULL ) Then
964
967
If IsDllStruct ($vSetting ) Then
965
968
$iSize = DllStructGetSize ($vSetting )
966
969
Else
@@ -1800,6 +1803,10 @@ Func _WinHttpSimpleSendSSLRequest($hConnect, $sType = Default, $sPath = Default,
1800
1803
_WinHttpSetOption(_WinHttpQueryOption(_WinHttpQueryOption($hRequest , $WINHTTP_OPTION_PARENT_HANDLE ), $WINHTTP_OPTION_PARENT_HANDLE ), $WINHTTP_OPTION_SECURE_PROTOCOLS , BitOR ($WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 , $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 , $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 ))
1801
1804
_WinHttpSendRequest($hRequest , $sHeader , $sDta )
1802
1805
If @error Then Return SetError (2 , 0 * _WinHttpCloseHandle($hRequest ), 0 )
1806
+ ElseIf __WinHttpGetLastError() = $ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED Then
1807
+ _WinHttpSetOption($hrequest , $WINHTTP_OPTION_CLIENT_CERT_CONTEXT , $WINHTTP_NO_CLIENT_CERT_CONTEXT , 0 )
1808
+ _WinHttpSendRequest($hRequest , $sHeader , $sDta )
1809
+ If @error Then Return SetError (2 , 0 * _WinHttpCloseHandle($hRequest ), 0 )
1803
1810
EndIf
1804
1811
EndIf
1805
1812
_WinHttpReceiveResponse($hRequest )
0 commit comments