Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-networkauth for openSUSE:Factory 
checked in at 2023-04-05 21:31:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-networkauth (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-networkauth.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-networkauth"

Wed Apr  5 21:31:56 2023 rev:20 rq:1077332 version:6.5.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-networkauth/qt6-networkauth.changes  
2023-03-17 17:03:52.401558091 +0100
+++ 
/work/SRC/openSUSE:Factory/.qt6-networkauth.new.19717/qt6-networkauth.changes   
    2023-04-05 21:36:46.774953560 +0200
@@ -1,0 +2,6 @@
+Mon Apr  3 10:02:16 UTC 2023 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.5.0
+  * https://www.qt.io/blog/qt-6.5-lts-released
+
+-------------------------------------------------------------------

Old:
----
  qtnetworkauth-everywhere-src-6.4.3.tar.xz

New:
----
  qtnetworkauth-everywhere-src-6.5.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-networkauth.spec ++++++
--- /var/tmp/diff_new_pack.ladSci/_old  2023-04-05 21:36:47.266956368 +0200
+++ /var/tmp/diff_new_pack.ladSci/_new  2023-04-05 21:36:47.274956414 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package qt6-networkauth
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,8 +16,8 @@
 #
 
 
-%define real_version 6.4.3
-%define short_version 6.4
+%define real_version 6.5.0
+%define short_version 6.5
 %define short_name qtnetworkauth
 %define tar_name qtnetworkauth-everywhere-src
 %define tar_suffix %{nil}
@@ -28,7 +28,7 @@
 %endif
 #
 Name:           qt6-networkauth%{?pkg_suffix}
-Version:        6.4.3
+Version:        6.5.0
 Release:        0
 Summary:        Set of APIs to obtain limited access to online accounts and 
HTTP services
 License:        GPL-3.0-only WITH Qt-GPL-exception-1.0
@@ -37,9 +37,9 @@
 Source99:       qt6-networkauth-rpmlintrc
 BuildRequires:  pkgconfig
 BuildRequires:  qt6-core-private-devel
-BuildRequires:  cmake(Qt6Core)
-BuildRequires:  cmake(Qt6Network)
-BuildRequires:  cmake(Qt6Widgets)
+BuildRequires:  cmake(Qt6Core) = %{real_version}
+BuildRequires:  cmake(Qt6Network) = %{real_version}
+BuildRequires:  cmake(Qt6Widgets) = %{real_version}
 %if "%{qt6_flavor}" == "docs"
 BuildRequires:  qt6-tools
 %{qt6_doc_packages}
@@ -61,7 +61,7 @@
 %package devel
 Summary:        Qt 6 NetworkAuth library - Development files
 Requires:       libQt6NetworkAuth6 = %{version}
-Requires:       cmake(Qt6Network)
+Requires:       cmake(Qt6Network) = %{real_version}
 
 %description devel
 Development files for the Qt 6 NetworkAuth library.

++++++ qtnetworkauth-everywhere-src-6.4.3.tar.xz -> 
qtnetworkauth-everywhere-src-6.5.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.4.3/.cmake.conf 
new/qtnetworkauth-everywhere-src-6.5.0/.cmake.conf
--- old/qtnetworkauth-everywhere-src-6.4.3/.cmake.conf  2023-03-11 
19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/.cmake.conf  2023-03-25 
20:28:41.000000000 +0100
@@ -1,2 +1,3 @@
-set(QT_REPO_MODULE_VERSION "6.4.3")
+set(QT_REPO_MODULE_VERSION "6.5.0")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
+set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.4.3/.tag 
new/qtnetworkauth-everywhere-src-6.5.0/.tag
--- old/qtnetworkauth-everywhere-src-6.4.3/.tag 2023-03-11 19:16:48.000000000 
+0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/.tag 2023-03-25 20:28:41.000000000 
+0100
@@ -1 +1 @@
-a75318d429cb98ba4d0aed52a13423b220209140
+87db582c720f62e7e4a1df0a63c351735749d627
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.4.3/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/CMakeLists.txt       2023-03-11 
19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/CMakeLists.txt       2023-03-25 
20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from qtnetworkauth.pro.
 
 cmake_minimum_required(VERSION 3.16)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.4.3/dependencies.yaml 
new/qtnetworkauth-everywhere-src-6.5.0/dependencies.yaml
--- old/qtnetworkauth-everywhere-src-6.4.3/dependencies.yaml    2023-03-11 
19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/dependencies.yaml    2023-03-25 
20:28:41.000000000 +0100
@@ -1,4 +1,4 @@
 dependencies:
   ../qtbase:
-    ref: 519d2d8f442409e86a0ee2fa16bd543342180861
+    ref: aea92807be2567c4212b96ae67de7137075ba4ee
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/examples/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/examples/CMakeLists.txt      
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/examples/CMakeLists.txt      
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from examples.pro.
 
 qt_examples_build_begin(EXTERNAL_BUILD)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/CMakeLists.txt        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/CMakeLists.txt        
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauth.pro.
 
 if(TARGET Qt::Widgets)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/redditclient/CMakeLists.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/redditclient/CMakeLists.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/redditclient/CMakeLists.txt
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/redditclient/CMakeLists.txt
   2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from redditclient.pro.
 
 cmake_minimum_required(VERSION 3.16)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/redditclient/conanfile.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/redditclient/conanfile.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/redditclient/conanfile.txt
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/redditclient/conanfile.txt
    2023-03-25 20:28:41.000000000 +0100
@@ -1,5 +1,5 @@
 [requires]
-qtnetworkauth/6.4.3@qt/snapshot
+qtnetworkauth/6.5.0@qt/snapshot
 
 [generators]
 virtualenv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/twittertimeline/CMakeLists.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/twittertimeline/CMakeLists.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/twittertimeline/CMakeLists.txt
        2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/twittertimeline/CMakeLists.txt
        2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from twittertimeline.pro.
 
 cmake_minimum_required(VERSION 3.16)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/twittertimeline/conanfile.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/twittertimeline/conanfile.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/examples/oauth/twittertimeline/conanfile.txt
 2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/examples/oauth/twittertimeline/conanfile.txt
 2023-03-25 20:28:41.000000000 +0100
@@ -1,5 +1,5 @@
 [requires]
-qtnetworkauth/6.4.3@qt/snapshot
+qtnetworkauth/6.5.0@qt/snapshot
 
 [generators]
 virtualenv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth2_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth2_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth2_p.h
        2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth2_p.h
        1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qabstractoauth2_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth_p.h
 2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauth_p.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qabstractoauth_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauthreplyhandler_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauthreplyhandler_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauthreplyhandler_p.h
     2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qabstractoauthreplyhandler_p.h
     1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qabstractoauthreplyhandler_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1_p.h
        2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1_p.h
        1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qoauth1_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1signature_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1signature_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1signature_p.h
       2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth1signature_p.h
       1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qoauth1signature_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth2authorizationcodeflow_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth2authorizationcodeflow_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth2authorizationcodeflow_p.h
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauth2authorizationcodeflow_p.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qoauth2authorizationcodeflow_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauthhttpserverreplyhandler_p.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauthhttpserverreplyhandler_p.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauthhttpserverreplyhandler_p.h
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/6.4.3/QtNetworkAuth/private/qoauthhttpserverreplyhandler_p.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/oauth/qoauthhttpserverreplyhandler_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuth 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuth
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuth 
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuth 
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qabstractoauth.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuth2 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuth2
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuth2    
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuth2    
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qabstractoauth2.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuthReplyHandler
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuthReplyHandler
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QAbstractOAuthReplyHandler
     2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QAbstractOAuthReplyHandler
     1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qabstractoauthreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth1 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth1
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth1        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth1        
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qoauth1.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth1Signature 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth1Signature
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth1Signature   
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth1Signature   
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qoauth1signature.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth2AuthorizationCodeFlow
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth2AuthorizationCodeFlow
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuth2AuthorizationCodeFlow
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuth2AuthorizationCodeFlow
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qoauth2authorizationcodeflow.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuthHttpServerReplyHandler
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuthHttpServerReplyHandler
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuthHttpServerReplyHandler
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuthHttpServerReplyHandler
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qoauthhttpserverreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuthOobReplyHandler
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuthOobReplyHandler
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QOAuthOobReplyHandler
  2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QOAuthOobReplyHandler
  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qoauthoobreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QtNetworkAuth 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QtNetworkAuth
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QtNetworkAuth  
2023-03-12 11:00:41.250246000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QtNetworkAuth  
1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-#ifndef QT_QTNETWORKAUTH_MODULE_H
-#define QT_QTNETWORKAUTH_MODULE_H
-#include <QtNetworkAuth/QtNetworkAuthDepends>
-#include "qoauthglobal.h"
-#include "qabstractoauth.h"
-#include "qabstractoauth2.h"
-#include "qabstractoauthreplyhandler.h"
-#include "qoauth1.h"
-#include "qoauth1signature.h"
-#include "qoauth2authorizationcodeflow.h"
-#include "qoauthhttpserverreplyhandler.h"
-#include "qoauthoobreplyhandler.h"
-#include "qtnetworkauthversion.h"
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QtNetworkAuthVersion
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QtNetworkAuthVersion
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/QtNetworkAuthVersion
   2023-03-12 11:00:41.250246000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/QtNetworkAuthVersion
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "qtnetworkauthversion.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/headers.pri 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/headers.pri
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/headers.pri    
2023-03-12 11:00:41.250246000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/headers.pri    
1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-SYNCQT.HEADER_FILES = qabstractoauth.h qabstractoauth2.h 
qabstractoauthreplyhandler.h qoauth1.h qoauth1signature.h 
qoauth2authorizationcodeflow.h qoauthglobal.h qoauthhttpserverreplyhandler.h 
qoauthoobreplyhandler.h 
-SYNCQT.GENERATED_HEADER_FILES = QAbstractOAuth QAbstractOAuth2 
QAbstractOAuthReplyHandler QOAuth1 QOAuth1Signature 
QOAuth2AuthorizationCodeFlow QOAuthHttpServerReplyHandler QOAuthOobReplyHandler 
qtnetworkauthversion.h QtNetworkAuthVersion QtNetworkAuth 
-SYNCQT.PRIVATE_HEADER_FILES = qabstractoauth2_p.h qabstractoauth_p.h 
qabstractoauthreplyhandler_p.h qoauth1_p.h qoauth1signature_p.h 
qoauth2authorizationcodeflow_p.h qoauthhttpserverreplyhandler_p.h 
-SYNCQT.QPA_HEADER_FILES = 
-SYNCQT.CLEAN_HEADER_FILES = qabstractoauth.h qabstractoauth2.h 
qabstractoauthreplyhandler.h qoauth1.h qoauth1signature.h 
qoauth2authorizationcodeflow.h qoauthglobal.h qoauthhttpserverreplyhandler.h 
qoauthoobreplyhandler.h 
-SYNCQT.INJECTIONS = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauth.h 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauth.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauth.h   
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauth.h   
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qabstractoauth.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauth2.h 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauth2.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauth2.h  
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauth2.h  
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qabstractoauth2.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauthreplyhandler.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauthreplyhandler.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qabstractoauthreplyhandler.h
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qabstractoauthreplyhandler.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qabstractoauthreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth1.h 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth1.h
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth1.h      
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth1.h      
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauth1.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth1signature.h 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth1signature.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth1signature.h 
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth1signature.h 
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauth1signature.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth2authorizationcodeflow.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth2authorizationcodeflow.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauth2authorizationcodeflow.h
 2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauth2authorizationcodeflow.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauth2authorizationcodeflow.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthglobal.h 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthglobal.h
--- old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthglobal.h 
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthglobal.h 
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauthglobal.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthhttpserverreplyhandler.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthhttpserverreplyhandler.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthhttpserverreplyhandler.h
 2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthhttpserverreplyhandler.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauthhttpserverreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthoobreplyhandler.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthoobreplyhandler.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qoauthoobreplyhandler.h
        2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qoauthoobreplyhandler.h
        1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../src/oauth/qoauthoobreplyhandler.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qtnetworkauthversion.h
 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qtnetworkauthversion.h
--- 
old/qtnetworkauth-everywhere-src-6.4.3/include/QtNetworkAuth/qtnetworkauthversion.h
 2023-03-12 11:00:41.250246000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/include/QtNetworkAuth/qtnetworkauthversion.h
 1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-/* This file was generated by syncqt. */
-#ifndef QT_QTNETWORKAUTH_VERSION_H
-#define QT_QTNETWORKAUTH_VERSION_H
-
-#define QTNETWORKAUTH_VERSION_STR "6.4.3"
-
-#define QTNETWORKAUTH_VERSION 0x060403
-
-#endif // QT_QTNETWORKAUTH_VERSION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/src/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/src/CMakeLists.txt   2023-03-11 
19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/CMakeLists.txt   2023-03-25 
20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from src.pro.
 
 add_subdirectory(oauth)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/CMakeLists.txt     
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/CMakeLists.txt     
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauth.pro.
 
 #####################################################################
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2.cpp 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2.cpp
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2.cpp        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2.cpp        
2023-03-25 20:28:41.000000000 +0100
@@ -18,8 +18,14 @@
 #include <QtNetwork/qnetworkaccessmanager.h>
 #include <QtNetwork/qhttpmultipart.h>
 
+#ifndef QT_NO_SSL
+#include <QtNetwork/qsslconfiguration.h>
+#endif
+
 QT_BEGIN_NAMESPACE
 
+using namespace Qt::StringLiterals;
+
 /*!
     \class QAbstractOAuth2
     \inmodule QtNetworkAuth
@@ -87,23 +93,23 @@
     from the server.
 */
 
-using Key = QAbstractOAuth2Private::OAuth2KeyString;
-const QString Key::accessToken =        QStringLiteral("access_token");
-const QString Key::apiKey =             QStringLiteral("api_key");
-const QString Key::clientIdentifier =   QStringLiteral("client_id");
-const QString Key::clientSharedSecret = QStringLiteral("client_secret");
-const QString Key::code =               QStringLiteral("code");
-const QString Key::error =              QStringLiteral("error");
-const QString Key::errorDescription =   QStringLiteral("error_description");
-const QString Key::errorUri =           QStringLiteral("error_uri");
-const QString Key::expiresIn =          QStringLiteral("expires_in");
-const QString Key::grantType =          QStringLiteral("grant_type");
-const QString Key::redirectUri =        QStringLiteral("redirect_uri");
-const QString Key::refreshToken =       QStringLiteral("refresh_token");
-const QString Key::responseType =       QStringLiteral("response_type");
-const QString Key::scope =              QStringLiteral("scope");
-const QString Key::state =              QStringLiteral("state");
-const QString Key::tokenType =          QStringLiteral("token_type");
+using OAuth2 = QAbstractOAuth2Private::OAuth2KeyString;
+const QString OAuth2::accessToken =        u"access_token"_s;
+const QString OAuth2::apiKey =             u"api_key"_s;
+const QString OAuth2::clientIdentifier =   u"client_id"_s;
+const QString OAuth2::clientSharedSecret = u"client_secret"_s;
+const QString OAuth2::code =               u"code"_s;
+const QString OAuth2::error =              u"error"_s;
+const QString OAuth2::errorDescription =   u"error_description"_s;
+const QString OAuth2::errorUri =           u"error_uri"_s;
+const QString OAuth2::expiresIn =          u"expires_in"_s;
+const QString OAuth2::grantType =          u"grant_type"_s;
+const QString OAuth2::redirectUri =        u"redirect_uri"_s;
+const QString OAuth2::refreshToken =       u"refresh_token"_s;
+const QString OAuth2::responseType =       u"response_type"_s;
+const QString OAuth2::scope =              u"scope"_s;
+const QString OAuth2::state =              u"state"_s;
+const QString OAuth2::tokenType =          u"token_type"_s;
 
 QAbstractOAuth2Private::QAbstractOAuth2Private(const QPair<QString, QString> 
&clientCredentials,
                                                const QUrl &authorizationUrl,
@@ -207,7 +213,7 @@
     }
     QUrl ret = url;
     QUrlQuery query(ret.query());
-    query.addQueryItem(Key::accessToken, d->token);
+    query.addQueryItem(OAuth2::accessToken, d->token);
     for (auto it = parameters.begin(), end = parameters.end(); it != end ;++it)
         query.addQueryItem(it.key(), it.value().toString());
     ret.setQuery(query);
@@ -480,6 +486,52 @@
     }
 }
 
+#ifndef QT_NO_SSL
+/*!
+    \since 6.5
+
+    Returns the TLS configuration to be used when establishing a mutual TLS
+    connection between the client and the Authorization Server.
+
+    \sa setSslConfiguration(), sslConfigurationChanged()
+*/
+QSslConfiguration QAbstractOAuth2::sslConfiguration() const
+{
+    Q_D(const QAbstractOAuth2);
+    return d->sslConfiguration.value_or(QSslConfiguration());
+}
+
+/*!
+    \since 6.5
+
+    Sets the TLS \a configuration to be used when establishing
+    a mutual TLS connection between the client and the Authorization Server.
+
+    \sa sslConfiguration(), sslConfigurationChanged()
+*/
+void QAbstractOAuth2::setSslConfiguration(const QSslConfiguration 
&configuration)
+{
+    Q_D(QAbstractOAuth2);
+    const bool configChanged = !d->sslConfiguration || (*d->sslConfiguration 
!= configuration);
+    if (configChanged) {
+        d->sslConfiguration = configuration;
+        Q_EMIT sslConfigurationChanged(configuration);
+    }
+}
+
+/*!
+    \fn void QAbstractOAuth2::sslConfigurationChanged(const QSslConfiguration 
&configuration)
+    \since 6.5
+
+    The signal is emitted when the TLS configuration has changed.
+    The \a configuration parameter contains the new TLS configuration.
+
+    \sa sslConfiguration(), setSslConfiguration()
+*/
+#endif // !QT_NO_SSL
+
 QT_END_NAMESPACE
 
+#include "moc_qabstractoauth2.cpp"
+
 #endif // QT_NO_HTTP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2.h 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2.h
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2.h  
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2.h  
2023-03-25 20:28:41.000000000 +0100
@@ -13,6 +13,7 @@
 
 QT_BEGIN_NAMESPACE
 
+class QSslConfiguration;
 class QHttpMultiPart;
 class QAbstractOAuth2Private;
 class Q_OAUTH_EXPORT QAbstractOAuth2 : public QAbstractOAuth
@@ -72,6 +73,11 @@
     QString refreshToken() const;
     void setRefreshToken(const QString &refreshToken);
 
+#ifndef QT_NO_SSL
+    QSslConfiguration sslConfiguration() const;
+    void setSslConfiguration(const QSslConfiguration &configuration);
+#endif
+
     void prepareRequest(QNetworkRequest *request, const QByteArray &verb,
                         const QByteArray &body = QByteArray()) override;
 
@@ -83,6 +89,9 @@
     void stateChanged(const QString &state);
     void expirationAtChanged(const QDateTime &expiration);
     void refreshTokenChanged(const QString &refreshToken);
+#ifndef QT_NO_SSL
+    void sslConfigurationChanged(const QSslConfiguration &configuration);
+#endif
 
     void error(const QString &error, const QString &errorDescription, const 
QUrl &uri);
     void authorizationCallbackReceived(const QVariantMap &data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2_p.h 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2_p.h
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qabstractoauth2_p.h        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qabstractoauth2_p.h        
2023-03-25 20:28:41.000000000 +0100
@@ -17,6 +17,8 @@
 
 #ifndef QT_NO_HTTP
 
+#include <optional>
+
 #include <private/qabstractoauth_p.h>
 
 #include <QtNetworkAuth/qoauthglobal.h>
@@ -52,6 +54,9 @@
     const QString bearerFormat = QStringLiteral("Bearer %1"); // Case sensitive
     QDateTime expiresAt;
     QString refreshToken;
+#ifndef QT_NO_SSL
+    std::optional<QSslConfiguration> sslConfiguration;
+#endif
 
     struct OAuth2KeyString
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauth1.cpp 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauth1.cpp
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauth1.cpp        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauth1.cpp        
2023-03-25 20:28:41.000000000 +0100
@@ -25,6 +25,8 @@
 
 QT_BEGIN_NAMESPACE
 
+using namespace Qt::StringLiterals;
+
 /*!
     \class QOAuth1
     \inmodule QtNetworkAuth
@@ -74,18 +76,18 @@
     {PLAINTEXT} signature method.
 */
 
-using Key = QOAuth1Private::OAuth1KeyString;
-const QString Key::oauthCallback =           QStringLiteral("oauth_callback");
-const QString Key::oauthCallbackConfirmed =  
QStringLiteral("oauth_callback_confirmed");
-const QString Key::oauthConsumerKey =        
QStringLiteral("oauth_consumer_key");
-const QString Key::oauthNonce =              QStringLiteral("oauth_nonce");
-const QString Key::oauthSignature =          QStringLiteral("oauth_signature");
-const QString Key::oauthSignatureMethod =    
QStringLiteral("oauth_signature_method");
-const QString Key::oauthTimestamp =          QStringLiteral("oauth_timestamp");
-const QString Key::oauthToken =              QStringLiteral("oauth_token");
-const QString Key::oauthTokenSecret =        
QStringLiteral("oauth_token_secret");
-const QString Key::oauthVerifier =           QStringLiteral("oauth_verifier");
-const QString Key::oauthVersion =            QStringLiteral("oauth_version");
+using OAuth1 = QOAuth1Private::OAuth1KeyString;
+const QString OAuth1::oauthCallback =           u"oauth_callback"_s;
+const QString OAuth1::oauthCallbackConfirmed =  u"oauth_callback_confirmed"_s;
+const QString OAuth1::oauthConsumerKey =        u"oauth_consumer_key"_s;
+const QString OAuth1::oauthNonce =              u"oauth_nonce"_s;
+const QString OAuth1::oauthSignature =          u"oauth_signature"_s;
+const QString OAuth1::oauthSignatureMethod =    u"oauth_signature_method"_s;
+const QString OAuth1::oauthTimestamp =          u"oauth_timestamp"_s;
+const QString OAuth1::oauthToken =              u"oauth_token"_s;
+const QString OAuth1::oauthTokenSecret =        u"oauth_token_secret"_s;
+const QString OAuth1::oauthVerifier =           u"oauth_verifier"_s;
+const QString OAuth1::oauthVersion =            u"oauth_version"_s;
 
 QOAuth1Private::QOAuth1Private(const QPair<QString, QString> 
&clientCredentials,
                                QNetworkAccessManager *networkAccessManager) :
@@ -103,11 +105,11 @@
 {
     const auto currentDateTime = QDateTime::currentDateTimeUtc();
 
-    headers->insert(Key::oauthNonce, QOAuth1::nonce());
-    headers->insert(Key::oauthConsumerKey, clientIdentifier);
-    headers->insert(Key::oauthTimestamp, 
QString::number(currentDateTime.toSecsSinceEpoch()));
-    headers->insert(Key::oauthVersion, oauthVersion);
-    headers->insert(Key::oauthSignatureMethod, 
signatureMethodString().toUtf8());
+    headers->insert(OAuth1::oauthNonce, QOAuth1::nonce());
+    headers->insert(OAuth1::oauthConsumerKey, clientIdentifier);
+    headers->insert(OAuth1::oauthTimestamp, 
QString::number(currentDateTime.toSecsSinceEpoch()));
+    headers->insert(OAuth1::oauthVersion, oauthVersion);
+    headers->insert(OAuth1::oauthSignatureMethod, 
signatureMethodString().toUtf8());
 }
 
 void QOAuth1Private::appendSignature(QAbstractOAuth::Stage stage,
@@ -124,7 +126,7 @@
             modifyParametersFunction(stage, &allParameters);
         signature = generateSignature(allParameters, url, operation);
     }
-    headers->insert(Key::oauthSignature, signature);
+    headers->insert(OAuth1::oauthSignature, signature);
 }
 
 QNetworkReply *QOAuth1Private::requestToken(QNetworkAccessManager::Operation 
operation,
@@ -161,7 +163,7 @@
             remainingParameters.insert(key, value);
     }
     if (!token.first.isEmpty()) {
-        headers.insert(Key::oauthToken, token.first);
+        headers.insert(OAuth1::oauthToken, token.first);
         stage = QAbstractOAuth::Stage::RequestingAccessToken;
     }
     appendSignature(stage, &headers, url, operation, remainingParameters);
@@ -257,12 +259,12 @@
 
     const auto currentDateTime = QDateTime::currentDateTimeUtc();
 
-    oauthParams.insert(Key::oauthConsumerKey, clientIdentifier);
-    oauthParams.insert(Key::oauthVersion, QStringLiteral("1.0"));
-    oauthParams.insert(Key::oauthToken, token);
-    oauthParams.insert(Key::oauthSignatureMethod, signatureMethodString());
-    oauthParams.insert(Key::oauthNonce, QOAuth1::nonce());
-    oauthParams.insert(Key::oauthTimestamp, 
QString::number(currentDateTime.toSecsSinceEpoch()));
+    oauthParams.insert(OAuth1::oauthConsumerKey, clientIdentifier);
+    oauthParams.insert(OAuth1::oauthVersion, QStringLiteral("1.0"));
+    oauthParams.insert(OAuth1::oauthToken, token);
+    oauthParams.insert(OAuth1::oauthSignatureMethod, signatureMethodString());
+    oauthParams.insert(OAuth1::oauthNonce, QOAuth1::nonce());
+    oauthParams.insert(OAuth1::oauthTimestamp, 
QString::number(currentDateTime.toSecsSinceEpoch()));
 
     return oauthParams;
 }
@@ -304,11 +306,11 @@
     if (tokenRequested) // 'Reset' tokenRequested now that we've gotten new 
tokens
         tokenRequested = false;
 
-    QPair<QString, QString> 
credential(tokens.value(Key::oauthToken).toString(),
-                                       
tokens.value(Key::oauthTokenSecret).toString());
+    QPair<QString, QString> 
credential(tokens.value(OAuth1::oauthToken).toString(),
+                                       
tokens.value(OAuth1::oauthTokenSecret).toString());
     switch (status) {
     case QAbstractOAuth::Status::NotAuthenticated:
-        if (tokens.value(Key::oauthCallbackConfirmed, true).toBool()) {
+        if (tokens.value(OAuth1::oauthCallbackConfirmed, true).toBool()) {
             q->setTokenCredentials(credential);
             setStatus(QAbstractOAuth::Status::TemporaryCredentialsReceived);
         } else {
@@ -699,7 +701,7 @@
     d->token.clear();
     d->tokenSecret.clear();
     QVariantMap allParameters(parameters);
-    allParameters.insert(Key::oauthCallback, callback());
+    allParameters.insert(OAuth1::oauthCallback, callback());
     return d->requestToken(operation, url, qMakePair(d->token, 
d->tokenSecret), allParameters);
 }
 
@@ -741,7 +743,7 @@
         QMultiMap<QString, QVariant> parameters(oauthParams);
         parameters.unite(QMultiMap<QString, QVariant>(signingParameters));
         const auto signature = d->generateSignature(parameters, 
request->url(), operation);
-        oauthParams.insert(Key::oauthSignature, signature);
+        oauthParams.insert(OAuth1::oauthSignature, signature);
     }
 
     if (operation == QNetworkAccessManager::GetOperation) {
@@ -782,7 +784,7 @@
         QMultiMap<QString, QVariant> parameters(oauthParams);
         parameters.unite(QMultiMap<QString, QVariant>(signingParameters));
         const auto signature = d->generateSignature(parameters, 
request->url(), operationVerb);
-        oauthParams.insert(Key::oauthSignature, signature);
+        oauthParams.insert(OAuth1::oauthSignature, signature);
     }
 
     request->setRawHeader("Authorization", 
generateAuthorizationHeader(oauthParams));
@@ -839,8 +841,6 @@
 void QOAuth1::grant()
 {
     Q_D(QOAuth1);
-    using Key = QOAuth1Private::OAuth1KeyString;
-
     if (d->temporaryCredentialsUrl.isEmpty()) {
         qCWarning(d->loggingCategory, "requestTokenUrl is empty");
         return;
@@ -867,7 +867,7 @@
                 connect(reply, &QNetworkReply::finished, reply, 
&QNetworkReply::deleteLater);
             } else {
                 QMultiMap<QString, QVariant> parameters;
-                parameters.insert(Key::oauthToken, d->token);
+                parameters.insert(OAuth1::oauthToken, d->token);
                 if (d->modifyParametersFunction)
                     
d->modifyParametersFunction(Stage::RequestingAuthorization, &parameters);
 
@@ -885,10 +885,10 @@
     if (httpReplyHandler) {
         connect(httpReplyHandler, 
&QOAuthHttpServerReplyHandler::callbackReceived, [&](
                 const QVariantMap &values) {
-            QString verifier = values.value(Key::oauthVerifier).toString();
+            QString verifier = values.value(OAuth1::oauthVerifier).toString();
             if (verifier.isEmpty()) {
                 qCWarning(d->loggingCategory, "%s not found in the callback",
-                          qPrintable(Key::oauthVerifier));
+                          qPrintable(OAuth1::oauthVerifier));
                 return;
             }
             continueGrantWithVerifier(verifier);
@@ -912,7 +912,7 @@
     Q_D(QOAuth1);
 
     QVariantMap parameters;
-    parameters.insert(Key::oauthVerifier, verifier);
+    parameters.insert(OAuth1::oauthVerifier, verifier);
     auto reply = requestTokenCredentials(QNetworkAccessManager::PostOperation,
                                          d->tokenCredentialsUrl,
                                          qMakePair(d->token, d->tokenSecret),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauth2authorizationcodeflow.cpp
 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauth2authorizationcodeflow.cpp
--- 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauth2authorizationcodeflow.cpp
   2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauth2authorizationcodeflow.cpp
   2023-03-25 20:28:41.000000000 +0100
@@ -295,6 +295,10 @@
 
     QMultiMap<QString, QVariant> parameters;
     QNetworkRequest request(d->accessTokenUrl);
+#ifndef QT_NO_SSL
+    if (d->sslConfiguration && !d->sslConfiguration->isNull())
+        request.setSslConfiguration(*d->sslConfiguration);
+#endif
     QUrlQuery query;
     parameters.insert(Key::grantType, QStringLiteral("refresh_token"));
     parameters.insert(Key::refreshToken, d->refreshToken);
@@ -369,6 +373,10 @@
 
     QMultiMap<QString, QVariant> parameters;
     QNetworkRequest request(d->accessTokenUrl);
+#ifndef QT_NO_SSL
+    if (d->sslConfiguration && !d->sslConfiguration->isNull())
+        request.setSslConfiguration(*d->sslConfiguration);
+#endif
     QUrlQuery query;
     parameters.insert(Key::grantType, QStringLiteral("authorization_code"));
     parameters.insert(Key::code, QUrl::toPercentEncoding(code));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauthglobal.h 
new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauthglobal.h
--- old/qtnetworkauth-everywhere-src-6.4.3/src/oauth/qoauthglobal.h     
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/src/oauth/qoauthglobal.h     
2023-03-25 20:28:41.000000000 +0100
@@ -5,6 +5,7 @@
 #define QOAUTHGLOBAL_H
 
 #include <QtCore/qglobal.h>
+#include <QtNetwork/qtnetworkglobal.h>
 
 QT_BEGIN_NAMESPACE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/CMakeLists.txt 2023-03-11 
19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/CMakeLists.txt 2023-03-25 
20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from tests.pro.
 
 if(QT_BUILD_STANDALONE_TESTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/CMakeLists.txt    
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/CMakeLists.txt    
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from auto.pro.
 
 # add_subdirectory(cmake) special case remove
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/abstractoauth/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/abstractoauth/CMakeLists.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/abstractoauth/CMakeLists.txt  
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/abstractoauth/CMakeLists.txt  
    2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from abstractoauth.pro.
 
 #####################################################################
@@ -7,7 +10,7 @@
 qt_internal_add_test(tst_abstractoauth
     SOURCES
         tst_abstractoauth.cpp
-    PUBLIC_LIBRARIES
+    LIBRARIES
         Qt::CorePrivate
         Qt::Network
         Qt::NetworkAuth
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/cmake/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/cmake/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/cmake/CMakeLists.txt      
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/cmake/CMakeLists.txt      
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 
 cmake_minimum_required(VERSION 3.16)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth1/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth1/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth1/CMakeLists.txt     
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth1/CMakeLists.txt     
2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauth1.pro.
 
 #####################################################################
@@ -10,7 +13,7 @@
         tst_oauth1.cpp
     INCLUDE_DIRECTORIES
         ../shared
-    PUBLIC_LIBRARIES
+    LIBRARIES
         Qt::CorePrivate
         Qt::Network
         Qt::NetworkAuth
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth1signature/CMakeLists.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth1signature/CMakeLists.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth1signature/CMakeLists.txt
    2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth1signature/CMakeLists.txt
    2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauth1signature.pro.
 
 #####################################################################
@@ -7,7 +10,7 @@
 qt_internal_add_test(tst_oauth1signature
     SOURCES
         tst_oauth1signature.cpp
-    PUBLIC_LIBRARIES
+    LIBRARIES
         Qt::CorePrivate
         Qt::NetworkAuth
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/CMakeLists.txt 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/CMakeLists.txt
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/CMakeLists.txt     
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/CMakeLists.txt     
2023-03-25 20:28:41.000000000 +0100
@@ -1,20 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauth2.pro.
 
 #####################################################################
 ## tst_oauth2 Test:
 #####################################################################
 
+list(APPEND test_data "certs")
+
 qt_internal_add_test(tst_oauth2
     SOURCES
         ../shared/webserver.h
+        ../shared/tlswebserver.h
         tst_oauth2.cpp
     INCLUDE_DIRECTORIES
         ../shared
-    PUBLIC_LIBRARIES
+    LIBRARIES
         Qt::CorePrivate
         Qt::Network
         Qt::NetworkAuth
         Qt::NetworkAuthPrivate
+    TESTDATA ${test_data}
 )
 
 #### Keys ignored in scope 1:.:.:oauth2.pro:<TRUE>:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-client.crt
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-client.crt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-client.crt
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-client.crt
        2023-03-25 20:28:41.000000000 +0100
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6TCCAdECCC/r9KvmbWTKMA0GCSqGSIb3DQEBCwUAMDUxFDASBgNVBAMMC0F1
+c3dlaXNBcHAyMR0wGwYDVQQFExQxODIzNTE0MTY0NzI5NDg5NDM3MTAiGA8xOTcw
+MDEwMTAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjA1MRQwEgYDVQQDDAtBdXN3ZWlz
+QXBwMjEdMBsGA1UEBRMUMTgyMzUxNDE2NDcyOTQ4OTQzNzEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCahBpcZyr+PJBCpolzQeFVvDKABwlpdRKGZ8qq
+jD4sq2L7VlBJslgJGv5vsB5oJbnX1FFEu4Uw2kYb/LhnFCEXEFtGKRpWOEZOOqWb
+4l4q2MCa82ZCoIDt8yoAt0sSShbtR6pjW+l0lwAOEpfGvMaMVo5JUyspRxhl1dSu
+sS2Wf65zliqF5VSM2r4xMfJ6LVytxDZsGfTe/HFT2OYYrF+UQZg0mNL39rYWOK4R
+xoOz8eLl3K5hKuHNfn5zPt5QtMhaIvebijBg23xJpl+BeoS37WzaK1f+NyWZKPFb
+rttvSnFxpkyRHqJJ5piNGH6pkQ1+zhd7uh7eOIwxktjYBOFzAgMBAAEwDQYJKoZI
+hvcNAQELBQADggEBADw3MYPft+X78OK/2HAltzsKjfxv/D5qVizm9hcyG1GYe5pS
+qgFn0trCyJopYdbRr+hP7CuHwMmv62CZiHSog3CBPoUh19JENUDGbHXxTEFleB0i
+Fd8I2+WvRjbQ+ehaeTJPx88v5kkJnB2tZUNZuhEws8emCwr1G0TQv1tRYCR1Lp9i
+8/I3FSFpL1zyk47WfM/THa279MPw9WtrFGA6oi36gH9mYxek7n/zQTVi54xDx9GT
+KigBYqavjFdNXryjLTCCtJpMTDePgP66NAUnxn0D/amI2vSbIN++PSTsBm+n4Ti5
+QW/ShFQDNb4bDiwjtTKCeKwvAp2/6GSHVkYy28M=
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-client.key
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-client.key
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-client.key
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-client.key
        2023-03-25 20:28:41.000000000 +0100
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAmoQaXGcq/jyQQqaJc0HhVbwygAcJaXUShmfKqow+LKti+1ZQ
+SbJYCRr+b7AeaCW519RRRLuFMNpGG/y4ZxQhFxBbRikaVjhGTjqlm+JeKtjAmvNm
+QqCA7fMqALdLEkoW7UeqY1vpdJcADhKXxrzGjFaOSVMrKUcYZdXUrrEtln+uc5Yq
+heVUjNq+MTHyei1crcQ2bBn03vxxU9jmGKxflEGYNJjS9/a2FjiuEcaDs/Hi5dyu
+YSrhzX5+cz7eULTIWiL3m4owYNt8SaZfgXqEt+1s2itX/jclmSjxW67bb0pxcaZM
+kR6iSeaYjRh+qZENfs4Xe7oe3jiMMZLY2AThcwIDAQABAoIBAFjgvc0C5t8AdTZx
+VsS+U2Aedang4lAPsE0xbIj3TFgjaTcLKfmKJUtvhIU39/WOJbz4+pofhvhXxVYZ
+4vQfxvzeQrIzuFt52S7sWxA0gFgC/57hfKO8cQzt/u4UgJEPnupze5XVa47NwJFX
+rof5U/erXgLdXQlMRMNm4QRvE7rp58E2MkSYNur0Xgy9L7cRcUQJ8iuMaxBpOzhS
+fbNFi5zT7RCGcQSIDcb1JFlgs5tMUs6jzLoDSVD2+vvsN4i4LAAPkJSGTGed5vY1
+xn4G8KPR4HHrnBYEb0SGu4ZTznOnQ+JSKhQrbnvEzXM4RTfjqn0YvF8x70+pWSMi
+Fb4mlBECgYEAzW82O79HAlMm8LD7J4byPfVc/1M5/JOnE9H+RR5Vt4jZQGyjCmJu
+cj4UeZyVim0xg30sSYrJ2Urd27CtHp+sMgHkvJt3/ZgcfMZJbMKNGq/OUtV8s/cA
+nkU++/LgeW8r7wpaDjT7bfnOdcf16mYoXrmk0rTJvRqGXCBvCxtt5bsCgYEAwIxu
+vZjPV4Vu/VX6sH2d31D9EFZuZKjGhqukFVtRqLbeosqT9mA+LhQ/wP5qoR2gLQbe
+EwxJLJwGFjUhyhbHNlo6oHv3fWkzmHIMPwDRRI3Ktwi/50SwNSnyERUQcLaiwqKx
+BqaxPYNnspUt0nKE0LFZsSlrfEyxajqAlUEgm6kCgYAV+uQumFScpxDvh8AXhpS8
+lFgS6XC22YVy1XEDLC+3p2i3P+hh4A45IvNF378QRIabrvTiGXtnSF9cdhbPw/3E
+i/dRRsEb3P6PSxfoDxjR1iWZL0Zcav0h8f6/LkleNMralJz2EC0moye36mEhZzTC
+jdJYyQccuI3PpZi7839aqQKBgGezOnEiO4kHdB88jyc+gCglliWWZx4PR9x/1H8s
+D26uDnneYJHwg4yNm0h1vTfInNujNzdLBp3f6edL9kbAvcmoDqsgGMqSPhd8VNwZ
+tJsXQnYRYElN1RjM3nIUxiXuNvpcZLsQS6S1gMPNVEBjLOS4n3WquRjYtTRhDZ9U
+1BsBAoGAUFrIatOLFhcgaqENHyUbMx5uSx0lIfF6Xd5KIAgi+btdmugHe+NK8Cd2
+Rc2bQLQ9K1SvKFX6nFuEsGxnXkKuyhL/j0Kgm8nZin4uAcrtFnNdFumvCL6YgYSc
+IvvM+uVfGEdbqm4pTuiLBfzOXIIy3kVlLGo402QG1pBzOtmsRMs=
+-----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-server.crt
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-server.crt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-server.crt
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-server.crt
        2023-03-25 20:28:41.000000000 +0100
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC5TCCAc0CCAO22gNi0v20MA0GCSqGSIb3DQEBCwUAMDMxFDASBgNVBAMMC0F1
+c3dlaXNBcHAyMRswGQYDVQQFExIyNTIxMTE1NjY3NjM2MjExODgwIhgPMTk3MDAx
+MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMzEUMBIGA1UEAwwLQXVzd2Vpc0Fw
+cDIxGzAZBgNVBAUTEjI1MjExMTU2Njc2MzYyMTE4ODCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAL+Fl6v5dcU7qk7vbINclWOhvCe/uklKnXV2QU382x7g
+qpbYxJiJvz24C6tgDMmE0pwEz6PiCbh1dkc8+9cdp37eBcFLCOXYQb27gqVVyVtu
+xO0LLVXPCv48bGSwljOz0FRC3FolzWxzrZogM/i2b/lmehHJ3D4ejmINmIgtFJ9P
+JNNCH4Oh5YEbaFFlNf2m7lCoSuQkOlLZcGeLoipK2XvhZJff6c1uxValh/Mx5dNB
+5Mgd5cOZSSEhwf7mcE8C3SHVfjeNfZGIqlkwdY8lvAOjirAtj6Yl88sJOUID/Q/N
+hU9D8IZy6+Bk2cJQwI/Gzr590VYvlSTI+6lXr//oBBECAwEAATANBgkqhkiG9w0B
+AQsFAAOCAQEArSMO88AYT+9tPCl5lXtSRa0OycqKNlW58GujxIDuR8WX1eFmGSHQ
+uijo5KPYUnqydZzAewGC8NvC9WcLwFltNZ9igXikUHiAHc1JLfW7+7SgKpwOUb02
+rJkUkpPA/SmwkLSKYiR1prt5wgSulU1HPBESep05DfR8MCU5+KHkLyXDqtrbudJ4
+lQd9dSKJFn+cSjUC5JNxCPHoIISe7hfGFMLkd0/tVfSIXLVOAZG4K6zExUdjyPi8
+qEuPq6QCRyIJbYQc5HfnARgwK6GXHqkyLWlqK946Yz8VOba7Nan5uQ6xCjUMHw8Z
+z/673o/3DCaQ9N6dWahNQ09a9ZH8U1X4iA==
+-----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-server.key
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-server.key
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/certs/selfsigned-server.key
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/certs/selfsigned-server.key
        2023-03-25 20:28:41.000000000 +0100
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAv4WXq/l1xTuqTu9sg1yVY6G8J7+6SUqddXZBTfzbHuCqltjE
+mIm/PbgLq2AMyYTSnATPo+IJuHV2Rzz71x2nft4FwUsI5dhBvbuCpVXJW27E7Qst
+Vc8K/jxsZLCWM7PQVELcWiXNbHOtmiAz+LZv+WZ6EcncPh6OYg2YiC0Un08k00If
+g6HlgRtoUWU1/abuUKhK5CQ6UtlwZ4uiKkrZe+Fkl9/pzW7FVqWH8zHl00HkyB3l
+w5lJISHB/uZwTwLdIdV+N419kYiqWTB1jyW8A6OKsC2PpiXzywk5QgP9D82FT0Pw
+hnLr4GTZwlDAj8bOvn3RVi+VJMj7qVev/+gEEQIDAQABAoIBADdoXsjSEtBMwqiz
+e6FFV7LLR7P4M9ygSY2B+MKnNH1qYe/iJn4626jvZfDeiNSEKKoaejffXRCQaveR
+HQrO+XYqpV+WZayZM+vAI7vRZb+d/DrX0PXSQEvtDy7SJ6Itk0fNUBKEfTmy/bZp
+Op/pp9tvWkFrNNyD2o1jgY1j/WNY8g605m0oURJ9WQsMUu/Kzu+NMoaKTIoQGb3d
+dP71F4KaTXHYxj3B0c+y0NedKbrvnBsP6XbEpgJBaXjtD9z+z/aMF6dmuvpkx7uY
+qzwPMRw05QPyJ9x+1V/v4TytY5f596NgW2niVj77BunkZasTYIEX7bjByrlTeLdx
+xvPRpAECgYEA5KkM/ORbhN1oaw9+tQxA48oG2DFqChBr+vc4NU4j5SNFn9ks5nHI
+xdJNZ9k+bjVUkBP4m88Wd07SW9zXCL8Q5lczb+p5SWl/Pp7ltqaxpH17uzamsaIv
+KIBkeJTOU5TuWdXiV5FY+ofK9ojyEaqX1tmylWnoVe4bIMRWXE5bMSkCgYEA1mvJ
+snkNzPFG0RK7ikjsNxrhzE07+7RSnoM9WeW8y2lvQ9MjdR6eOgqnnlcdk2A7OVbf
+culNgLc0qx/PxZ4BV+8yLLb1EBBGvuVG+x4a6H2mLHdFCJekByZHaQNs9ogVLvdv
+3z8D59KknBUjtj9dCw90Z41yMM4kpWMG9yfSEKkCgYEAvuCvytwF2d/JrrV8nD3i
+XUTkecymLEiRGysMbNMR+9F56XotlSEe7KQloa8kAnPaZ3uEaOxyYJ4X1D+B8fct
+cFsSwTYGkVXTtr6GG/cDC8EEbL+uX1J382Nae54croEAh1WYYGkg0eJRd4PSLxUt
+M1j/TuLd4/2j/7JmNR/j2CECgYBdB3MBHghgzKXe+/OmMbFazyz8SN4nfLsDzwkF
+QenBj0MY+DhADkK0B/9lcYKBeJT5cbmMz7AykkolnK22nbETh9ILGG4GxCkNlchQ
+F2WxTSKV1EF9Ut11xKPi6fuSksQuFmjRQTPelsOYfIt7/M3PiKsGapYKmsXHg8l3
+3i0D0QKBgQCi+HNOaYqduxwjrj8h4eUbiwjID8DCNJ+jXsuGVa6jcsfFpdpivx2c
+ytYSXuTXLRq0I3c1ChUOGQQeztJ5GtCPnXjLHHMf3f6yr7Pk56AUmUsaIlR1Q2Zo
+gqpFD8zYD5UFc2KM7Y38YTh4j82uDzDvHBBFpli7dEmSn2WpcmzFag==
+-----END RSA PRIVATE KEY-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/tst_oauth2.cpp 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/tst_oauth2.cpp
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauth2/tst_oauth2.cpp     
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauth2/tst_oauth2.cpp     
2023-03-25 20:28:41.000000000 +0100
@@ -3,20 +3,33 @@
 
 #include <QtTest>
 
+#ifndef QT_NO_SSL
+#include <QSslKey>
+#endif
+
 #include <QtNetworkAuth/qabstractoauthreplyhandler.h>
 #include <QtNetworkAuth/qoauth2authorizationcodeflow.h>
 
 #include "webserver.h"
+#include "tlswebserver.h"
 
 class tst_OAuth2 : public QObject
 {
     Q_OBJECT
 
 private Q_SLOTS:
+    void initTestCase();
     void getToken();
     void refreshToken();
     void getAndRefreshToken();
     void prepareRequest();
+#ifndef QT_NO_SSL
+    void setSslConfig();
+    void tlsAuthentication();
+#endif
+
+private:
+    QString testDataDir;
 };
 
 struct ReplyHandler : QAbstractOAuthReplyHandler
@@ -41,6 +54,15 @@
     }
 };
 
+void tst_OAuth2::initTestCase()
+{
+    testDataDir = QFileInfo(QFINDTESTDATA("certs")).absolutePath();
+    if (testDataDir.isEmpty())
+        testDataDir = QCoreApplication::applicationDirPath();
+    if (!testDataDir.endsWith(QLatin1String("/")))
+        testDataDir += QLatin1String("/");
+}
+
 void tst_OAuth2::getToken()
 {
     WebServer webServer([](const WebServer::HttpRequest &request, QTcpSocket 
*socket) {
@@ -70,7 +92,7 @@
     });
     QSignalSpy grantedSpy(&oauth2, &QOAuth2AuthorizationCodeFlow::granted);
     oauth2.grant();
-    QTRY_COMPARE(grantedSpy.count(), 1);
+    QTRY_COMPARE(grantedSpy.size(), 1);
     QCOMPARE(oauth2.token(), QLatin1String("token"));
 }
 
@@ -95,7 +117,7 @@
     oauth2.setRefreshToken(QLatin1String("refresh_token"));
     QSignalSpy grantedSpy(&oauth2, &QOAuth2AuthorizationCodeFlow::granted);
     oauth2.refreshAccessToken();
-    QTRY_COMPARE(grantedSpy.count(), 1);
+    QTRY_COMPARE(grantedSpy.size(), 1);
     QCOMPARE(oauth2.token(), QLatin1String("token"));
 }
 
@@ -133,11 +155,11 @@
     });
     QSignalSpy grantedSpy(&oauth2, &QOAuth2AuthorizationCodeFlow::granted);
     oauth2.grant();
-    QTRY_COMPARE(grantedSpy.count(), 1);
+    QTRY_COMPARE(grantedSpy.size(), 1);
     QCOMPARE(oauth2.token(), QLatin1String("authorization_code"));
     grantedSpy.clear();
     oauth2.refreshAccessToken();
-    QTRY_COMPARE(grantedSpy.count(), 1);
+    QTRY_COMPARE(grantedSpy.size(), 1);
     QCOMPARE(oauth2.token(), QLatin1String("refresh_token"));
 }
 
@@ -151,5 +173,119 @@
     QCOMPARE(request.rawHeader("Authorization"), QByteArray("Bearer 
access_token"));
 }
 
+#ifndef QT_NO_SSL
+static QSslConfiguration createSslConfiguration(QString keyFileName, QString 
certificateFileName)
+{
+    QSslConfiguration configuration(QSslConfiguration::defaultConfiguration());
+
+    QFile keyFile(keyFileName);
+    if (keyFile.open(QIODevice::ReadOnly)) {
+        QSslKey key(keyFile.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);
+        if (!key.isNull()) {
+            configuration.setPrivateKey(key);
+        } else {
+            qCritical() << "Could not parse key: " << keyFileName;
+        }
+    } else {
+        qCritical() << "Could not find key: " << keyFileName;
+    }
+
+    QList<QSslCertificate> localCert = 
QSslCertificate::fromPath(certificateFileName);
+    if (!localCert.isEmpty() && !localCert.first().isNull()) {
+        configuration.setLocalCertificate(localCert.first());
+    } else {
+        qCritical() << "Could not find certificate: " << certificateFileName;
+    }
+
+    configuration.setPeerVerifyMode(QSslSocket::VerifyPeer);
+
+    return configuration;
+}
+
+void tst_OAuth2::setSslConfig()
+{
+    QOAuth2AuthorizationCodeFlow oauth2;
+    QSignalSpy sslConfigSpy(&oauth2, 
&QAbstractOAuth2::sslConfigurationChanged);
+
+    QVERIFY(sslConfigSpy.isValid());
+    QCOMPARE(oauth2.sslConfiguration(), QSslConfiguration());
+    QCOMPARE(sslConfigSpy.size(), 0);
+
+    auto config = createSslConfiguration(testDataDir + 
"certs/selfsigned-server.key",
+                                         testDataDir + 
"certs/selfsigned-server.crt");
+    oauth2.setSslConfiguration(config);
+
+    QCOMPARE(oauth2.sslConfiguration(), config);
+    QCOMPARE(sslConfigSpy.size(), 1);
+
+    // set same config - nothing happens
+    oauth2.setSslConfiguration(config);
+    QCOMPARE(sslConfigSpy.size(), 1);
+
+    // change config
+    config.setPeerVerifyMode(QSslSocket::VerifyNone);
+    oauth2.setSslConfiguration(config);
+    QCOMPARE(oauth2.sslConfiguration(), config);
+    QCOMPARE(sslConfigSpy.size(), 2);
+}
+
+void tst_OAuth2::tlsAuthentication()
+{
+    if (!QSslSocket::supportsSsl())
+        QSKIP("This test will fail because the backend does not support TLS");
+
+    // erros may vary, depending on backend
+    const QSet<QSslError::SslError> expectedErrors{ 
QSslError::SelfSignedCertificate,
+                                                    
QSslError::CertificateUntrusted,
+                                                    
QSslError::HostNameMismatch };
+    auto serverConfig = createSslConfiguration(testDataDir + 
"certs/selfsigned-server.key",
+                                               testDataDir + 
"certs/selfsigned-server.crt");
+    TlsWebServer tlsServer([](const WebServer::HttpRequest &request, 
QTcpSocket *socket) {
+        if (request.url.path() == QLatin1String("/accessToken")) {
+            const QString text = "access_token=token&token_type=bearer";
+            const QByteArray replyMessage {
+                "HTTP/1.0 200 OK\r\n"
+                "Content-Type: application/x-www-form-urlencoded; 
charset=\"utf-8\"\r\n"
+                "Content-Length: " + QByteArray::number(text.size()) + 
"\r\n\r\n"
+                + text.toUtf8()
+            };
+            socket->write(replyMessage);
+        }
+    }, serverConfig);
+    tlsServer.setExpectedSslErrors(expectedErrors);
+
+    auto clientConfig = createSslConfiguration(testDataDir + 
"certs/selfsigned-client.key",
+                                               testDataDir + 
"certs/selfsigned-client.crt");
+    QNetworkAccessManager nam;
+    QOAuth2AuthorizationCodeFlow oauth2;
+    oauth2.setNetworkAccessManager(&nam);
+    oauth2.setSslConfiguration(clientConfig);
+    oauth2.setAuthorizationUrl(tlsServer.url(QLatin1String("authorization")));
+    oauth2.setAccessTokenUrl(tlsServer.url(QLatin1String("accessToken")));
+    ReplyHandler replyHandler;
+    oauth2.setReplyHandler(&replyHandler);
+    connect(&oauth2, &QOAuth2AuthorizationCodeFlow::authorizeWithBrowser, 
[&](const QUrl &url) {
+        const QUrlQuery query(url.query());
+        replyHandler.emitCallbackReceived(QVariantMap {
+                                               { QLatin1String("code"), 
QLatin1String("test") },
+                                               { QLatin1String("state"),
+                                                 
query.queryItemValue(QLatin1String("state")) }
+                                           });
+    });
+    connect(&nam, &QNetworkAccessManager::sslErrors,
+        [&expectedErrors](QNetworkReply *r, const QList<QSslError> &errors) {
+            QCOMPARE(errors.size(), 2);
+            for (const auto &err : errors)
+                QVERIFY(expectedErrors.contains(err.error()));
+            r->ignoreSslErrors();
+        });
+
+    QSignalSpy grantedSpy(&oauth2, &QOAuth2AuthorizationCodeFlow::granted);
+    oauth2.grant();
+    QTRY_COMPARE(grantedSpy.size(), 1);
+    QCOMPARE(oauth2.token(), QLatin1String("token"));
+}
+#endif // !QT_NO_SSL
+
 QTEST_MAIN(tst_OAuth2)
 #include "tst_oauth2.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauthhttpserverreplyhandler/CMakeLists.txt
 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauthhttpserverreplyhandler/CMakeLists.txt
--- 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/oauthhttpserverreplyhandler/CMakeLists.txt
        2023-03-11 19:16:48.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/oauthhttpserverreplyhandler/CMakeLists.txt
        2023-03-25 20:28:41.000000000 +0100
@@ -1,3 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
 # Generated from oauthhttpserverreplyhandler.pro.
 
 #####################################################################
@@ -7,7 +10,7 @@
 qt_internal_add_test(tst_oauthhttpserverreplyhandler
     SOURCES
         tst_oauthhttpserverreplyhandler.cpp
-    PUBLIC_LIBRARIES
+    LIBRARIES
         Qt::CorePrivate
         Qt::Network
         Qt::NetworkAuth
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/shared/tlswebserver.h 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/shared/tlswebserver.h
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/shared/tlswebserver.h     
1970-01-01 01:00:00.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/shared/tlswebserver.h     
2023-03-25 20:28:41.000000000 +0100
@@ -0,0 +1,121 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#ifndef TLSWEBSERVER_H
+#define TLSWEBSERVER_H
+
+#include <QtNetworkAuth/qoauthglobal.h>
+
+#ifndef QT_NO_SSL
+
+#include "webserver.h"
+
+#include <QSslServer>
+#include <QSslSocket>
+#include <QSslConfiguration>
+
+class TlsWebServer : public QSslServer
+{
+public:
+    using HttpRequest = WebServer::HttpRequest;
+    using Handler = std::function<void(const HttpRequest &request, QTcpSocket 
*socket)>;
+
+    TlsWebServer(Handler handler, const QSslConfiguration &config, QObject 
*parent = nullptr);
+    QUrl url(const QString &path);
+    void setExpectedSslErrors(const QSet<QSslError::SslError> &errors);
+
+private:
+    Handler handler;
+    QMap<QTcpSocket *, HttpRequest> clients;
+    QSet<QSslError::SslError> expectedSslErrors;
+};
+
+TlsWebServer::TlsWebServer(Handler h, const QSslConfiguration &config, QObject 
*parent) :
+    QSslServer(parent),
+    handler(h)
+{
+    connect(this, &QSslServer::pendingConnectionAvailable, [this]() {
+        auto socket = nextPendingConnection();
+        Q_ASSERT(socket);
+        auto sslSocket = qobject_cast<QSslSocket *>(socket);
+        Q_ASSERT(sslSocket);
+        connect(socket, &QTcpSocket::disconnected, socket, 
&QTcpSocket::deleteLater);
+        connect(sslSocket, &QSslSocket::sslErrors, [sslSocket](const 
QList<QSslError> &errors) {
+            qDebug() << errors;
+            sslSocket->ignoreSslErrors();
+        });
+        connect(socket, &QTcpSocket::readyRead, [this, socket]() {
+            if (!clients.contains(socket))
+                clients[socket].port = serverPort();
+
+            auto *request = &clients[socket];
+            auto ok = true;
+
+            while (socket->bytesAvailable()) {
+                if (Q_LIKELY(request->state == 
HttpRequest::State::ReadingMethod))
+                    if (Q_UNLIKELY(!(ok = request->readMethod(socket))))
+                        qWarning("Invalid Method");
+
+                if (Q_LIKELY(ok && request->state == 
HttpRequest::State::ReadingUrl))
+                    if (Q_UNLIKELY(!(ok = request->readUrl(socket))))
+                        qWarning("Invalid URL");
+
+                if (Q_LIKELY(ok && request->state == 
HttpRequest::State::ReadingStatus))
+                    if (Q_UNLIKELY(!(ok = request->readStatus(socket))))
+                        qWarning("Invalid Status");
+
+                if (Q_LIKELY(ok && request->state == 
HttpRequest::State::ReadingHeader))
+                    if (Q_UNLIKELY(!(ok = request->readHeaders(socket))))
+                        qWarning("Invalid Header");
+
+                if (Q_LIKELY(ok && request->state == 
HttpRequest::State::ReadingBody))
+                    if (Q_UNLIKELY(!(ok = request->readBody(socket))))
+                        qWarning("Invalid Body");
+            }
+            if (Q_UNLIKELY(!ok)) {
+                socket->disconnectFromHost();
+                clients.remove(socket);
+            } else if (Q_LIKELY(request->state == 
HttpRequest::State::AllDone)) {
+                Q_ASSERT(handler);
+                if (request->headers.contains("Host")) {
+                    const auto parts = request->headers["Host"].split(':');
+                    request->url.setHost(parts.at(0));
+                    if (parts.size() == 2)
+                        request->url.setPort(parts.at(1).toUInt());
+                }
+                handler(*request, socket);
+                socket->disconnectFromHost();
+                clients.remove(socket);
+            }
+        });
+    });
+    connect(this, &QSslServer::sslErrors, [this](QSslSocket *s, const 
QList<QSslError> &errors) {
+        bool hasOnlyExpectedErrors = true;
+        for (const auto &err : errors)
+            hasOnlyExpectedErrors &= expectedSslErrors.contains(err.error());
+        if (hasOnlyExpectedErrors)
+            s->ignoreSslErrors();
+        else
+            qWarning() << "Got unexpected SSL errors" << errors;
+    });
+
+    setSslConfiguration(config);
+    const bool ok = listen(QHostAddress::LocalHost);
+    Q_ASSERT(ok);
+}
+
+QUrl TlsWebServer::url(const QString &path)
+{
+    using namespace Qt::StringLiterals;
+    return 
QUrl(u"https://127.0.0.1:%1%2"_s.arg(serverPort()).arg(path.startsWith('/')
+                                                                  ? path : "/" 
+ path));
+}
+
+void TlsWebServer::setExpectedSslErrors(const QSet<QSslError::SslError> 
&errors)
+{
+    expectedSslErrors = errors;
+}
+
+#endif // !QT_NO_SSL
+
+#endif // TLSWEBSERVER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/shared/webserver.h 
new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/shared/webserver.h
--- old/qtnetworkauth-everywhere-src-6.4.3/tests/auto/shared/webserver.h        
2023-03-11 19:16:48.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.5.0/tests/auto/shared/webserver.h        
2023-03-25 20:28:41.000000000 +0100
@@ -15,6 +15,7 @@
 public:
     class HttpRequest {
         friend class WebServer;
+        friend class TlsWebServer;
 
         quint16 port = 0;
         enum class State {

Reply via email to