@@ -953,14 +953,17 @@ Func _WinHttpSetOption($hInternet, $iOption, $vSetting, $iSize = Default)
953953 $sType = " wstr"
954954 If (IsDllStruct ($vSetting ) Or IsPtr ($vSetting )) Then Return SetError (3 , 0 , 0 )
955955 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 , _
957957 $WINHTTP_OPTION_PROXY
958958 $sType = " ptr"
959959 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 )
960963 Case Else
961964 Return SetError (1 , 0 , 0 )
962965 EndSwitch
963- If $iSize < 1 Then
966+ If $iSize < 1 And Not ( $iOption = $WINHTTP_OPTION_CLIENT_CERT_CONTEXT And $vSetting = NULL ) Then
964967 If IsDllStruct ($vSetting ) Then
965968 $iSize = DllStructGetSize ($vSetting )
966969 Else
@@ -1800,6 +1803,10 @@ Func _WinHttpSimpleSendSSLRequest($hConnect, $sType = Default, $sPath = Default,
18001803 _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 ))
18011804 _WinHttpSendRequest($hRequest , $sHeader , $sDta )
18021805 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 )
18031810 EndIf
18041811 EndIf
18051812 _WinHttpReceiveResponse($hRequest )
0 commit comments