[PATCH 1/3] secur32: Map GNUTLS_E_REHANDSHAKE to SEC_I_RENEGOTIATE.

Hans Leidekker hans at codeweavers.com
Tue Apr 7 03:22:03 CDT 2020


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/secur32/schannel_gnutls.c |  5 +++++
 include/winerror.h             | 20 +++++++++++---------
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
index 8ac5bee9ff..31a901932a 100644
--- a/dlls/secur32/schannel_gnutls.c
+++ b/dlls/secur32/schannel_gnutls.c
@@ -586,6 +586,11 @@ again:
 
         return SEC_I_CONTINUE_NEEDED;
     }
+    else if (ret == GNUTLS_E_REHANDSHAKE)
+    {
+        TRACE("Rehandshake requested\n");
+        return SEC_I_RENEGOTIATE;
+    }
     else
     {
         pgnutls_perror(ret);
diff --git a/include/winerror.h b/include/winerror.h
index 2958d7e181..4ebb48c124 100644
--- a/include/winerror.h
+++ b/include/winerror.h
@@ -3169,10 +3169,6 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
 #define SEC_E_MESSAGE_ALTERED                              _HRESULT_TYPEDEF_(0x8009030F)
 #define SEC_E_OUT_OF_SEQUENCE                              _HRESULT_TYPEDEF_(0x80090310)
 #define SEC_E_NO_AUTHENTICATING_AUTHORITY                  _HRESULT_TYPEDEF_(0x80090311)
-#define SEC_I_CONTINUE_NEEDED                              _HRESULT_TYPEDEF_(0x00090312)
-#define SEC_I_COMPLETE_NEEDED                              _HRESULT_TYPEDEF_(0x00090313)
-#define SEC_I_COMPLETE_AND_CONTINUE                        _HRESULT_TYPEDEF_(0x00090314)
-#define SEC_I_CONTEXT_EXPIRED                              _HRESULT_TYPEDEF_(0x00090317)
 #define SEC_E_BAD_PKGID                                    _HRESULT_TYPEDEF_(0x80090316)
 #define SEC_E_CONTEXT_EXPIRED                              _HRESULT_TYPEDEF_(0x80090317)
 #define SEC_E_INCOMPLETE_MESSAGE                           _HRESULT_TYPEDEF_(0x80090318)
@@ -3222,21 +3218,27 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
 #define SEC_E_ISSUING_CA_UNTRUSTED_KDC                     _HRESULT_TYPEDEF_(0x80090359)
 #define SEC_E_KDC_CERT_EXPIRED                             _HRESULT_TYPEDEF_(0x8009035A)
 #define SEC_E_KDC_CERT_REVOKED                             _HRESULT_TYPEDEF_(0x8009035B)
-#define SEC_I_SIGNATURE_NEEDED                             _HRESULT_TYPEDEF_(0x0009035C)
 #define SEC_E_INVALID_PARAMETER                            _HRESULT_TYPEDEF_(0x8009035D)
 #define SEC_E_DELEGATION_POLICY                            _HRESULT_TYPEDEF_(0x8009035E)
 #define SEC_E_POLICY_NLTM_ONLY                             _HRESULT_TYPEDEF_(0x8009035F)
-#define SEC_I_NO_RENEGOTIATION                             _HRESULT_TYPEDEF_(0x00090360)
 #define SEC_E_NO_CONTEXT                                   _HRESULT_TYPEDEF_(0x80090361)
 #define SEC_E_PKU2U_CERT_FAILURE                           _HRESULT_TYPEDEF_(0x80090362)
 #define SEC_E_MUTUAL_AUTH_FAILED                           _HRESULT_TYPEDEF_(0x80090363)
-#define SEC_I_MESSAGE_FRAGMENT                             _HRESULT_TYPEDEF_(0x00090364)
 #define SEC_E_ONLY_HTTPS_ALLOWED                           _HRESULT_TYPEDEF_(0x80090365)
-#define SEC_I_CONTINUE_NEEDED_MESSAGE_OK                   _HRESULT_TYPEDEF_(0x00090366)
 #define SEC_E_APPLICATION_PROTOCOL_MISMATCH                _HRESULT_TYPEDEF_(0x80090367)
-#define SEC_I_ASYNC_CALL_PENDING                           _HRESULT_TYPEDEF_(0x00090368)
 #define SEC_E_INVALID_UPN_NAME                             _HRESULT_TYPEDEF_(0x80090369)
 
+#define SEC_I_CONTINUE_NEEDED                              _HRESULT_TYPEDEF_(0x00090312)
+#define SEC_I_COMPLETE_NEEDED                              _HRESULT_TYPEDEF_(0x00090313)
+#define SEC_I_COMPLETE_AND_CONTINUE                        _HRESULT_TYPEDEF_(0x00090314)
+#define SEC_I_CONTEXT_EXPIRED                              _HRESULT_TYPEDEF_(0x00090317)
+#define SEC_I_RENEGOTIATE                                  _HRESULT_TYPEDEF_(0x00090321)
+#define SEC_I_SIGNATURE_NEEDED                             _HRESULT_TYPEDEF_(0x0009035C)
+#define SEC_I_NO_RENEGOTIATION                             _HRESULT_TYPEDEF_(0x00090360)
+#define SEC_I_MESSAGE_FRAGMENT                             _HRESULT_TYPEDEF_(0x00090364)
+#define SEC_I_CONTINUE_NEEDED_MESSAGE_OK                   _HRESULT_TYPEDEF_(0x00090366)
+#define SEC_I_ASYNC_CALL_PENDING                           _HRESULT_TYPEDEF_(0x00090368)
+
 #define CRYPT_E_MSG_ERROR                                  _HRESULT_TYPEDEF_(0x80091001)
 #define CRYPT_E_UNKNOWN_ALGO                               _HRESULT_TYPEDEF_(0x80091002)
 #define CRYPT_E_OID_FORMAT                                 _HRESULT_TYPEDEF_(0x80091003)
-- 
2.20.1




More information about the wine-devel mailing list