From 6ed0917cdae3961ac46184b4f1c0eacfd5a70d41 Mon Sep 17 00:00:00 2001 From: Governikus Date: Thu, 19 May 2022 16:14:13 +0200 Subject: [PATCH] Add revision: v1.22.6 --- CMakeLists.txt | 2 +- LICENSE.officially.txt | 2 +- LICENSE.txt | 2 +- cmake/Libraries.cmake | 1 + docs/releasenotes/1.22.6.rst | 31 ++++++ docs/releasenotes/appcast.rst | 1 + docs/releasenotes/versions.rst | 1 + docs/sdk/android.rst | 4 +- libs/CMakeLists.txt | 4 +- .../com.governikus.ausweisapp2.desktop.in | 1 + resources/packaging/win/WIX.Texts.de-DE.wxl | 2 +- resources/qml/+desktop/main.qml | 12 ++- resources/qml/Governikus/Global/GCheckBox.qml | 1 + .../SettingsView/+desktop/ConnectSacView.qml | 2 +- .../SettingsView/+desktop/GeneralSettings.qml | 11 ++- .../+desktop/SetupAssistantView.qml | 40 +++++++- resources/translations/ausweisapp2_de.ts | 39 +++++++- .../reader/img_Cherry_secure_board.png | Bin 0 -> 73556 bytes .../img_Cherry_secure_board_mit_ausweis.png | Bin 0 -> 81848 bytes .../updatable-files/supported-providers.json | 24 ++++- .../updatable-files/supported-readers.json | 16 ++-- src/card/ios/IosCard.h | 2 - src/card/ios/IosCard.mm | 85 ++++++++--------- src/card/ios/IosReaderDelegate.mm | 33 +++---- src/settings/GeneralSettings.h | 2 +- src/ui/common/CMakeLists.txt | 2 +- src/ui/common/HelpAction.cpp | 1 + src/ui/common/PlatformTools.h | 2 + src/ui/common/PlatformTools_generic.cpp | 7 ++ src/ui/common/PlatformTools_osx.mm | 68 ++++++++++++++ src/ui/common/TrayIcon.cpp | 25 ++++- src/ui/common/TrayIcon.h | 3 +- src/ui/qml/UIPlugInQml.cpp | 35 ++++++- src/ui/qml/UIPlugInQml.h | 1 + .../states/StateProcessRemoteMessages.cpp | 2 - .../states/StateStopRemoteService.cpp | 2 + .../test_ProviderConfigurationParser.cpp | 4 +- .../test_ReaderConfiguration.cpp | 88 +++++++++--------- 38 files changed, 401 insertions(+), 157 deletions(-) create mode 100644 docs/releasenotes/1.22.6.rst create mode 100644 resources/updatable-files/reader/img_Cherry_secure_board.png create mode 100644 resources/updatable-files/reader/img_Cherry_secure_board_mit_ausweis.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a27348e8..e4570ba0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ if(UNIX AND NOT IOS) set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13 CACHE STRING "Required macOS version") endif() -project(AusweisApp2 VERSION 1.22.5 LANGUAGES ${LANGUAGES}) +project(AusweisApp2 VERSION 1.22.6 LANGUAGES ${LANGUAGES}) # Set TWEAK if not defined in PROJECT_VERSION above to # have a valid tweak version without propagating it diff --git a/LICENSE.officially.txt b/LICENSE.officially.txt index 9a9cced9b..6fea5852b 100644 --- a/LICENSE.officially.txt +++ b/LICENSE.officially.txt @@ -352,7 +352,7 @@ Die verwendeten Open-Source-Bibliotheken unterliegen den folgenden Nutzungsbedin OpenSSL Lizenz: OpenSSL license & SSLeay license - Version: 1.1.1n + Version: 1.1.1o Adresse: https://www.openssl.org/ Qt diff --git a/LICENSE.txt b/LICENSE.txt index a3701f333..b57a01545 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -320,7 +320,7 @@ Die verwendeten Open-Source-Bibliotheken unterliegen den folgenden Nutzungsbedin OpenSSL Lizenz: OpenSSL license & SSLeay license - Version: 1.1.1n + Version: 1.1.1o Adresse: https://www.openssl.org/ Qt diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake index ecc1dd98b..32274748f 100644 --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -116,6 +116,7 @@ elseif(MAC) find_path(PCSC_INCLUDE_DIRS WinSCard.h) find_library(PCSC_LIBRARIES NAMES PCSC WinSCard) + find_library(OSX_USERNOTIFICATIONS UserNotifications) find_library(OSX_APPKIT AppKit) find_library(IOKIT NAMES IOKit) find_library(OSX_SECURITY Security) diff --git a/docs/releasenotes/1.22.6.rst b/docs/releasenotes/1.22.6.rst new file mode 100644 index 000000000..4417508dd --- /dev/null +++ b/docs/releasenotes/1.22.6.rst @@ -0,0 +1,31 @@ +AusweisApp2 1.22.6 +^^^^^^^^^^^^^^^^^^ + +**Releasedatum:** 19. Mai 2022 + + +Anwender +"""""""" +- Probleme mit der Kartenkommunikation bei der Funktion + "Smartphone als Kartenleser" im Komfortmodus wurden + behoben. + +- Ab macOS 10.14 werden nun die Systembenachrichtigungen + verwendet. + +- Unter macOS ist das Tray-Icon jetzt standardmäßig + deaktiviert. Dies kann in den Einstellungen wieder + aktiviert werden. + +- Unter iOS war unter bestimmten Umständen ein + neuer NFC-Scan nicht möglich. Dies wurde behoben. + +- Beim Abbrechen einer Authentisierung kam es unter + iOS teilweise zum Absturz. Dies wurde behoben. + +- Kleinere Fehlerbehebungen und Optimierungen. + + +Entwickler +"""""""""" +- Aktualisierung von OpenSSL auf die Version 1.1.1o. diff --git a/docs/releasenotes/appcast.rst b/docs/releasenotes/appcast.rst index 2549376ff..9a6dd8892 100644 --- a/docs/releasenotes/appcast.rst +++ b/docs/releasenotes/appcast.rst @@ -4,6 +4,7 @@ Release Notes .. toctree:: :maxdepth: 1 + 1.22.6 1.22.5 1.22.4 1.22.3 diff --git a/docs/releasenotes/versions.rst b/docs/releasenotes/versions.rst index 4fc49f70f..beb190e44 100644 --- a/docs/releasenotes/versions.rst +++ b/docs/releasenotes/versions.rst @@ -6,6 +6,7 @@ Versionszweig 1.22 .. toctree:: :maxdepth: 1 + 1.22.6 1.22.5 1.22.4 1.22.3 diff --git a/docs/sdk/android.rst b/docs/sdk/android.rst index 0aedc339d..4473f1f20 100644 --- a/docs/sdk/android.rst +++ b/docs/sdk/android.rst @@ -78,11 +78,11 @@ App Bundle The integrated AusweisApp2 uses native libraries which need to be extracted when used in an App Bundle, otherwise the SDK will not work correctly. -Add the following statement to your app's gradle.properties file: +Add the following statement to your app's build.gradle file: .. code-block:: groovy - android.bundle.enableUncompressedNativeLibs=false + android { packagingOptions { jniLibs { useLegacyPackaging = true } } } Logging diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index 7f34a1e02..1cca75a0c 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -96,8 +96,8 @@ endif() set(QT 5.15.2) set(QT_HASH 3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240) -set(OPENSSL 1.1.1n) -set(OPENSSL_HASH 40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a) +set(OPENSSL 1.1.1o) +set(OPENSSL_HASH 9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f) ################################## Files set(QT_FILE qt-everywhere-src-${QT}.tar.xz) diff --git a/resources/packaging/linux/com.governikus.ausweisapp2.desktop.in b/resources/packaging/linux/com.governikus.ausweisapp2.desktop.in index 0add2ad3b..67f79e709 100755 --- a/resources/packaging/linux/com.governikus.ausweisapp2.desktop.in +++ b/resources/packaging/linux/com.governikus.ausweisapp2.desktop.in @@ -9,3 +9,4 @@ Categories=System;Security; GenericName=Authentication App Keywords=nPA,eID,eAT,Personalausweis,Aufenthaltstitel,Identity,Card Name=AusweisApp2 +StartupWMClass=AusweisApp2 diff --git a/resources/packaging/win/WIX.Texts.de-DE.wxl b/resources/packaging/win/WIX.Texts.de-DE.wxl index cd8fe7a97..376c4d14f 100644 --- a/resources/packaging/win/WIX.Texts.de-DE.wxl +++ b/resources/packaging/win/WIX.Texts.de-DE.wxl @@ -38,7 +38,7 @@ Ausweis, Authentisierung Installationspaket für die AusweisApp2 Offizieller eID-Client des Bundes - https://www.ausweisapp.bund.de/fragen-und-antworten/support + https://www.ausweisapp.bund.de/hilfe-und-support https://www.ausweisapp.bund.de https://www.ausweisapp.bund.de/download Eine aktuellere Version der [ProductName] ist bereits installiert. Die Installation wird nun beendet. diff --git a/resources/qml/+desktop/main.qml b/resources/qml/+desktop/main.qml index 58685f6aa..bbaf737c4 100644 --- a/resources/qml/+desktop/main.qml +++ b/resources/qml/+desktop/main.qml @@ -69,6 +69,11 @@ ApplicationWindow { return } + if (Qt.platform.os === "osx" && !SettingsModel.autoStartApp) { + close.accepted = true + return + } + if (SettingsModel.remindUserToClose) { closeWarning.open() close.accepted = false @@ -218,6 +223,8 @@ ApplicationWindow { d.showMainWindow() d.closeOpenDialogs() switch (pModule) { + case UiModule.CURRENT: + break case UiModule.IDENTIFY: if (ApplicationModel.currentWorkflow === "") { d.activeView = UiModule.SELF_AUTHENTICATION @@ -231,11 +238,6 @@ ApplicationWindow { d.activeView = UiModule.PINMANAGEMENT } break - case UiModule.CURRENT: - if (SettingsModel.startupModule == UiModule.TUTORIAL) { - d.activeView = UiModule.TUTORIAL - } - break case UiModule.UPDATEINFORMATION: if (ApplicationModel.currentWorkflow === "" && d.activeView === UiModule.DEFAULT) { d.activeView = UiModule.UPDATEINFORMATION diff --git a/resources/qml/Governikus/Global/GCheckBox.qml b/resources/qml/Governikus/Global/GCheckBox.qml index cba0c0134..62903a572 100644 --- a/resources/qml/Governikus/Global/GCheckBox.qml +++ b/resources/qml/Governikus/Global/GCheckBox.qml @@ -14,6 +14,7 @@ CheckBox { id: control property alias textStyle: description.textStyle + property alias maximumLineCount: description.maximumLineCount padding: 0 diff --git a/resources/qml/Governikus/SettingsView/+desktop/ConnectSacView.qml b/resources/qml/Governikus/SettingsView/+desktop/ConnectSacView.qml index c08c5ea96..79dda323b 100644 --- a/resources/qml/Governikus/SettingsView/+desktop/ConnectSacView.qml +++ b/resources/qml/Governikus/SettingsView/+desktop/ConnectSacView.qml @@ -57,7 +57,7 @@ SectionPage { visible: d.view !== ConnectSacView.SubView.PairingInfo || !d.externalMoreInformation //: LABEL DESKTOP text: qsTr("Pairing") - helpTopic: "readerDeviceTab" + helpTopic: "settingsRemoteReader" rootEnabled: false customSubAction: CancelAction { visible: true diff --git a/resources/qml/Governikus/SettingsView/+desktop/GeneralSettings.qml b/resources/qml/Governikus/SettingsView/+desktop/GeneralSettings.qml index 29e42f806..962d2e092 100644 --- a/resources/qml/Governikus/SettingsView/+desktop/GeneralSettings.qml +++ b/resources/qml/Governikus/SettingsView/+desktop/GeneralSettings.qml @@ -11,6 +11,7 @@ import Governikus.View 1.0 import Governikus.Type.SettingsModel 1.0 ColumnLayout { + readonly property string helpTopic: "settingsGeneral" spacing: Constants.component_spacing @@ -66,10 +67,16 @@ ColumnLayout { } ToggleableOption { + Layout.fillWidth: true + activeFocusOnTab: true - //: LABEL DESKTOP - text: qsTr("Auto start AusweisApp2 after boot") + text: Qt.platform.os === "osx" + //: LABEL MACOS Text for auto-start option + ? qsTr("Auto-start %1 after boot and add to menu bar").arg(Qt.application.name) + //: LABEL WINDOWS Text for auto-start option + : qsTr("Auto-start %1 after boot").arg(Qt.application.name) + maximumLineCount: 2 checked: SettingsModel.autoStartApp enabled: !SettingsModel.autoStartSetByAdmin && SettingsModel.autoStartAvailable onCheckedChanged: SettingsModel.autoStartApp = checked diff --git a/resources/qml/Governikus/TutorialView/+desktop/SetupAssistantView.qml b/resources/qml/Governikus/TutorialView/+desktop/SetupAssistantView.qml index 538e86769..0a9bf1ee0 100644 --- a/resources/qml/Governikus/TutorialView/+desktop/SetupAssistantView.qml +++ b/resources/qml/Governikus/TutorialView/+desktop/SetupAssistantView.qml @@ -22,6 +22,7 @@ SectionPage { enum SubViews { Welcome = 0, + AutoStartSetting, HistorySetting, CardReaderInfo, CardReader, @@ -69,7 +70,44 @@ SectionPage { agreeText: "" agreeButton.iconSource: "qrc:///images/desktop/material_arrow_forward.svg" - onAgree: d.activeView = SetupAssistantView.SubViews.HistorySetting + onAgree: d.activeView = SettingsModel.autoStartAvailable ? SetupAssistantView.SubViews.AutoStartSetting : SetupAssistantView.SubViews.HistorySetting + } + + DecisionView { + visible: d.activeView === SetupAssistantView.SubViews.AutoStartSetting + + Accessible.name: qsTr("Auto-start setup step") + + mainIconSource: "qrc:///images/status_info.svg" + //: INFO DESKTOP Question if the App shall be started automatically after boot + questionText: qsTr("Do you want to automatically start the %1 after boot?").arg(Qt.application.name) + //: INFO DESKTOP Information text why autostart of the App is advisable + questionSubText: { + let subText = qsTr("In order to successfully use the online identification function, %1 has to be running. It is therefore advisable to activate the auto-start after system startup.").arg(Qt.application.name) + if (Qt.platform.os === "osx") { + //: INFO MACOS Additional information that macOS auto-start add a symbol to the menu bar + subText += " " + qsTr("The launch will add an icon to the menu bar.") + } + return subText + } + + titleBarAction: TitleBarAction { + //: LABEL DESKTOP + text: qsTr("Auto-start Setting") + rootEnabled: d.allowNavigation + showSettings: false + helpTopic: "setupAssistant" + } + + onAgree: { + SettingsModel.autoStartApp = true + d.activeView = SetupAssistantView.SubViews.HistorySetting + } + + onDisagree: { + SettingsModel.autoStartApp = false + d.activeView = SetupAssistantView.SubViews.HistorySetting + } } DecisionView { diff --git a/resources/translations/ausweisapp2_de.ts b/resources/translations/ausweisapp2_de.ts index 8441b29a1..da54f1d1f 100644 --- a/resources/translations/ausweisapp2_de.ts +++ b/resources/translations/ausweisapp2_de.ts @@ -1156,11 +1156,6 @@ LABEL ANDROID IOS Button to start a change of the Transport PIN. LABEL DESKTOP Verhalten - - Auto start AusweisApp2 after boot - LABEL DESKTOP - AusweisApp2 automatisch beim Hochfahren starten - Close after authentication LABEL DESKTOP @@ -1186,6 +1181,16 @@ LABEL ANDROID IOS Button to start a change of the Transport PIN. LABEL DESKTOP Benutze den bei der Installation angegebenen Proxy (%1). + + Auto-start %1 after boot and add to menu bar + LABEL MACOS Text for auto-start option + %1 automatisch beim Hochfahren starten und als Eintrag der Menüleiste hinzufügen + + + Auto-start %1 after boot + LABEL WINDOWS Text for auto-start option + %1 automatisch beim Hochfahren starten + GeneralWorkflow @@ -3746,6 +3751,30 @@ LABEL ALL_PLATFORMS LABEL DESKTOP Kartenleser + + Do you want to automatically start the %1 after boot? + INFO DESKTOP Question if the App shall be started automatically after boot + Wollen Sie die %1 automatisch nach dem Hochfahren starten? + + + Auto-start Setting + LABEL DESKTOP + Autostart-Einstellung + + + Auto-start setup step + Einrichtungsschritt zum Autostart + + + In order to successfully use the online identification function, %1 has to be running. It is therefore advisable to activate the auto-start after system startup. + INFO DESKTOP Information text why autostart of the App is advisable + Um die Online-Ausweisfunktion erfolgreich nutzen zu können, muss die %1 gestartet sein. Daher ist es ratsam, dies beim Systemstart zuzulassen. + + + The launch will add an icon to the menu bar. + INFO MACOS Additional information that macOS auto-start add a symbol to the menu bar + Der Start erfolgt hierbei als Eintrag in der Menüleiste. + ShareButton diff --git a/resources/updatable-files/reader/img_Cherry_secure_board.png b/resources/updatable-files/reader/img_Cherry_secure_board.png new file mode 100644 index 0000000000000000000000000000000000000000..4523e21238f9b9d026cd179dfc3c480fcd2d503d GIT binary patch literal 73556 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%0AsN2gaQRJn})DE3s;R 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 literal 0 HcmV?d00001 diff --git a/resources/updatable-files/reader/img_Cherry_secure_board_mit_ausweis.png b/resources/updatable-files/reader/img_Cherry_secure_board_mit_ausweis.png new file mode 100644 index 0000000000000000000000000000000000000000..e83dbe318e65969daa1e3aabc6ba5619c607ce16 GIT binary patch literal 81848 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� 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
Sie können unseren Service ohne Anmeldung oder mit einer Anmeldung über das Servicekonto.NRW nutzen. Für die Nutzung von ePayment ist eine Anmeldung mit dem Servicekonto Voraussetzung." + }, + "address": "https://portal.kommunale.it/bad-oeynhausen/login", + "homepage": "https://portal.kommunale.it/bad-oeynhausen/services", + "phone": "+49 5731 14 0", + "email": "egov@badoeynhausen.de", + "postalAddress": "Stadt Bad Oeynhausen
Der Bürgermeister
Ostkorso 8
32545 Bad Oeynhausen", + "image": "StadtBadOeynhausen_image.jpg", + "icon": "StadtBadOeynhausen_icon.png", + "category": "citizen", + "subjectUrlInfo": "Using service from Servicekonto Nordrhein-Westfalen (https://servicekonto.nrw)." + }, { "shortName": { "": "Online-Service der Stadt Bonn" diff --git a/resources/updatable-files/supported-readers.json b/resources/updatable-files/supported-readers.json index 3c15b75f0..a5f7ebd69 100644 --- a/resources/updatable-files/supported-readers.json +++ b/resources/updatable-files/supported-readers.json @@ -395,7 +395,7 @@ { "VendorId": "0x04E6", "ProductId": "0x512B", - "Name": "SDI011 Contactless Reader", + "Name": "Identiv SDI011 Dual Interface Smart Card Reader", "Pattern": "^(SCM Microsystems Inc. )?SDI011G? ((Contactless Reader( 0)?)|((USB Smart Card|Contactless) Reader\\([12]\\)))$", "Icon": "img_Identive_SDI011.png", "IconWithNPA": "img_Identive_SDI011_mit_ausweis.png", @@ -444,7 +444,7 @@ { "VendorId": "0x04E6", "ProductId": "0x5292", - "Name": "SCL01x Contactless Reader", + "Name": "Identiv SCL01x Contactless Smart Card Reader", "Pattern": "^(SCM Microsystems Inc. )?SCL011G? Contactless Reader( 0)?$", "Icon": "img_Identive_SCL011.png", "IconWithNPA": "img_Identive_SCL011_mit_ausweis.png", @@ -838,7 +838,7 @@ { "VendorId": "0x076B", "ProductId": "0x5340", - "Name": "OMNIKEY 5021-CL", + "Name": "HID OMNIKEY 5021-CL", "Pattern": "OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \\(076B:5340\\) 5021 CL", "Icon": "img_HID_Omnikey_Mobile_Reader_502X_CL.png", "IconWithNPA": "img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png", @@ -882,7 +882,7 @@ { "VendorId": "0x076B", "ProductId": "0x5022", - "Name": "OMNIKEY 5022-CL", + "Name": "HID OMNIKEY 5022-CL", "Pattern": "HID Global OMNIKEY 5022 Smart Card Reader( 0)?$", "Icon": "img_HID_Omnikey_Mobile_Reader_502X_CL.png", "IconWithNPA": "img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png", @@ -923,7 +923,7 @@ { "VendorId": "0x076B", "ProductId": "0x5321", - "Name": "OMNIKEY 5321 v2", + "Name": "HID OMNIKEY 5321 v2", "Pattern": "OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \\(076B:5321\\) 5321(\\(1\\)|\\(2\\))", "Icon": "img_HID_Global_OMNIKEY_5321_V2.png", "IconWithNPA": "img_HID_Global_OMNIKEY_5321_V2_mit_ausweis.png", @@ -958,7 +958,7 @@ { "VendorId": "0x076B", "ProductId": "0x5421", - "Name": "OMNIKEY 5421", + "Name": "HID OMNIKEY 5421", "Pattern": "OMNIKEY CardMan 5x21-CL 0|OMNIKEY Smart Card Reader USB 0|OMNIKEY CardMan \\(076B:5421\\) 5421(\\(1\\)|\\(2\\))", "Icon": "img_HID_Omnikey_542x.png", "IconWithNPA": "img_HID_Omnikey_542x_mit_ausweis.png", @@ -1002,7 +1002,7 @@ { "VendorId": "0x076B", "ProductId": "0x5422", - "Name": "OMNIKEY 5422", + "Name": "HID OMNIKEY 5422", "Pattern": "HID Global OMNIKEY 5422CL Smartcard Reader 0|HID Global OMNIKEY Smartcard Reader (\\(1\\)|\\(2\\))", "Icon": "img_HID_Omnikey_542x.png", "IconWithNPA": "img_HID_Omnikey_542x_mit_ausweis.png", @@ -1131,7 +1131,7 @@ { "VendorId": "0x08E6", "ProductId": "0x5503", - "Name": "Prox-DU HID", + "Name": "Gemalto Prox-DU HID", "Pattern": "Gemalto .*Prox(-DU| Dual)( Contactless_| USB PC Link(Reader| Reader)(\\(2\\)|\\(1\\)))", "Icon": "img_Gemalto_Prox_DU.png", "IconWithNPA": "img_Gemalto_Prox_DU_mit_ausweis.png", diff --git a/src/card/ios/IosCard.h b/src/card/ios/IosCard.h index e69f8e442..31a071842 100644 --- a/src/card/ios/IosCard.h +++ b/src/card/ios/IosCard.h @@ -22,8 +22,6 @@ class IosCard IosCardPointer* const mCard; bool mConnected; - void waitForRequestCompleted(const bool& pCondition); - public: explicit IosCard(IosCardPointer* pTag); ~IosCard() override; diff --git a/src/card/ios/IosCard.mm b/src/card/ios/IosCard.mm index fd8bde6bd..c6e23272f 100644 --- a/src/card/ios/IosCard.mm +++ b/src/card/ios/IosCard.mm @@ -8,6 +8,8 @@ #include #include +#include +#include #import #import @@ -35,25 +37,6 @@ } -void IosCard::waitForRequestCompleted(const bool& pCondition) -{ - QElapsedTimer timer; - timer.start(); - do - { - if (pCondition) - { - return; - } - - QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents, 1); - } - while (timer.elapsed() <= 2000); - - invalidateTarget(); -} - - bool IosCard::isValid() const { if (@available(iOS 13, *)) @@ -85,33 +68,45 @@ return CardReturnCode::OK; } + const auto resultValue = QSharedPointer::create(false); // Don't use this inside of the Block + const QWeakPointer weakValue = resultValue; + if (@available(iOS 13, *)) { - __block bool callbackDone = false; + const auto locker = QSharedPointer::create(); NFCTagReaderSession* session = mCard->mNfcTag.session; [session connectToTag: mCard->mNfcTag completionHandler: ^(NSError* error){ - if (error != nil) + // By referencing weakValue here, it will be copied into the Block. If the handler outlives the caller, resultValue won't exist anymore. + const auto recvValue = weakValue.lock(); + if (!recvValue) { - invalidateTarget(); - qCDebug(card_nfc) << "Error during connect:" << error; + qCDebug(card_nfc) << "Caller doesn't exist anymore."; + return; + } + + if (error == nil) + { + *recvValue = true; } else { - mConnected = true; + qCDebug(card_nfc) << "Error during connect:" << error; } - callbackDone = true; + locker->release(); }]; - waitForRequestCompleted(callbackDone); + locker->tryAcquire(1, 2000); } - if (!mConnected) + if (!*resultValue) { + invalidateTarget(); return CardReturnCode::COMMAND_FAILED; } + mConnected = true; return CardReturnCode::OK; } @@ -167,41 +162,41 @@ if (@available(iOS 13, *)) { - __block bool callbackDone = false; + const auto locker = QSharedPointer::create(); Q_ASSERT([mCard->mNfcTag conformsToProtocol:@protocol(NFCISO7816Tag)]); const auto tag = static_cast>(mCard->mNfcTag); auto* apdu = [[NFCISO7816APDU alloc] initWithData: pCmd.getBuffer().toNSData()]; [tag sendCommandAPDU: apdu completionHandler: ^(NSData* responseData, uint8_t sw1, uint8_t sw2, NSError* error){ // By referencing weakBuffer here, it will be copied into the Block. If the handler outlives the caller, resultBuffer won't exist anymore. - if (const auto recvBuffer = weakBuffer.lock()) + const auto recvBuffer = weakBuffer.lock(); + if (!recvBuffer) + { + qCDebug(card_nfc) << "Caller doesn't exist anymore."; + return; + } + + if (error == nil) { - if (error == nil) - { - *recvBuffer = QByteArray::fromNSData(responseData); - *recvBuffer += static_cast(sw1); - *recvBuffer += static_cast(sw2); - qCDebug(card_nfc) << "Transmit response APDU:" << recvBuffer->toHex(); - } - else - { - invalidateTarget(); - qCDebug(card_nfc) << "Error during transmit:" << error; - } - - callbackDone = true; + *recvBuffer = QByteArray::fromNSData(responseData); + *recvBuffer += static_cast(sw1); + *recvBuffer += static_cast(sw2); + qCDebug(card_nfc) << "Transmit response APDU:" << recvBuffer->toHex(); } else { - qCDebug(card_nfc) << "Caller doesn't exist anymore."; + qCDebug(card_nfc) << "Error during transmit:" << error; } + + locker->release(); }]; - waitForRequestCompleted(callbackDone); + locker->tryAcquire(1, 2000); } if (resultBuffer->isEmpty()) { + invalidateTarget(); return {CardReturnCode::COMMAND_FAILED}; } diff --git a/src/card/ios/IosReaderDelegate.mm b/src/card/ios/IosReaderDelegate.mm index ee0197280..7936d063c 100644 --- a/src/card/ios/IosReaderDelegate.mm +++ b/src/card/ios/IosReaderDelegate.mm @@ -33,16 +33,17 @@ - (instancetype)initWithListener: (governikus::IosReader*)pListener { - (void)startSession { - if (self.mSessionStoppedByApplication) + if (self.mSession && !self.mSessionStoppedByApplication) { - Q_EMIT self.mListener->fireDidInvalidateWithError(true); - return; + qCDebug(card_nfc) << "Invalidate session" << self.mSession; + [self.mSession invalidateSession]; + self.mSessionStoppedByApplication = true; } - if (self.mSession) + if (self.mSessionStoppedByApplication) { - qCDebug(card_nfc) << "Restart session" << self.mSession; - [self.mSession restartPolling]; + qCDebug(card_nfc) << "Waiting for session to invalidate"; + Q_EMIT self.mListener->fireDidInvalidateWithError(true); return; } @@ -68,24 +69,18 @@ - (void)startSession { - (void)stopSession: (QString)message { qCDebug(card_nfc) << "Stop session" << self.mSession; - if (self.mSession) + if (self.mSession && !self.mSessionStoppedByApplication) { - if (self.mSession.ready) + if (message.isNull()) { - if (message.isNull()) - { - [self.mSession invalidateSession]; - } - else - { - [self.mSession invalidateSessionWithErrorMessage:message.toNSString()]; - } - self.mSessionStoppedByApplication = true; + [self.mSession invalidateSession]; } else { - self.mSession = nil; + [self.mSession invalidateSessionWithErrorMessage:message.toNSString()]; } + qCDebug(card_nfc) << "Invalidate session" << self.mSession; + self.mSessionStoppedByApplication = true; } } @@ -107,7 +102,7 @@ - (void)tagReaderSessionDidBecomeActive: (NFCTagReaderSession*)session { if (session != self.mSession) { - qCWarning(card_nfc) << "An unexpected session became active; mSession" << self.mSession; + qCWarning(card_nfc) << "An unexpected session became active. Invalidate session" << session << "mSession" << self.mSession; [session invalidateSession]; return; } diff --git a/src/settings/GeneralSettings.h b/src/settings/GeneralSettings.h index 57f2904f1..3e9ad78a9 100644 --- a/src/settings/GeneralSettings.h +++ b/src/settings/GeneralSettings.h @@ -18,7 +18,7 @@ class test_GeneralSettings; namespace governikus { -#if defined(Q_OS_WIN) || defined(Q_OS_MACOS) +#if defined(Q_OS_WIN) #define GENERAL_SETTINGS_DEFAULT_AUTOSTART true #else #define GENERAL_SETTINGS_DEFAULT_AUTOSTART false diff --git a/src/ui/common/CMakeLists.txt b/src/ui/common/CMakeLists.txt index 744163cd4..7e3e064b2 100644 --- a/src/ui/common/CMakeLists.txt +++ b/src/ui/common/CMakeLists.txt @@ -11,5 +11,5 @@ if(DESKTOP) endif() if(MAC) - target_link_libraries(AusweisAppUiCommon ${OSX_APPKIT}) + target_link_libraries(AusweisAppUiCommon ${OSX_APPKIT} ${OSX_USERNOTIFICATIONS}) endif() diff --git a/src/ui/common/HelpAction.cpp b/src/ui/common/HelpAction.cpp index 9c9be509b..3a6dadcfe 100644 --- a/src/ui/common/HelpAction.cpp +++ b/src/ui/common/HelpAction.cpp @@ -32,6 +32,7 @@ const QMap HelpAction::mQmlHelpMapping = { {QStringLiteral("providerDetails"), QStringLiteral("provider-list.html#provider-details")}, {QStringLiteral("history"), QStringLiteral("history.html")}, {QStringLiteral("settings"), QStringLiteral("settings.html")}, + {QStringLiteral("settingsGeneral"), QStringLiteral("settings-general.html")}, {QStringLiteral("settingsRemoteReader"), QStringLiteral("settings-remote-reader.html")}, {QStringLiteral("settingsPcscReader"), QStringLiteral("settings-pcsc-reader.html")}, {QStringLiteral("settingsSecurityPrivacy"), QStringLiteral("settings-security-privacy.html")}, diff --git a/src/ui/common/PlatformTools.h b/src/ui/common/PlatformTools.h index 4f4b85fbc..82e1495ef 100644 --- a/src/ui/common/PlatformTools.h +++ b/src/ui/common/PlatformTools.h @@ -4,6 +4,7 @@ #pragma once +#include namespace governikus { @@ -13,6 +14,7 @@ class PlatformTools public: static void hideFromTaskbar(); static void restoreToTaskbar(); + static void postNotification(const QString& pTitle, const QString& pMessage); }; } // namespace governikus diff --git a/src/ui/common/PlatformTools_generic.cpp b/src/ui/common/PlatformTools_generic.cpp index 372a4dbc2..0001efbe0 100644 --- a/src/ui/common/PlatformTools_generic.cpp +++ b/src/ui/common/PlatformTools_generic.cpp @@ -16,3 +16,10 @@ void PlatformTools::hideFromTaskbar() void PlatformTools::restoreToTaskbar() { } + + +void PlatformTools::postNotification(const QString& pTitle, const QString& pMessage) +{ + Q_UNUSED(pTitle) + Q_UNUSED(pMessage) +} diff --git a/src/ui/common/PlatformTools_osx.mm b/src/ui/common/PlatformTools_osx.mm index 4e1574cd5..c12a52153 100644 --- a/src/ui/common/PlatformTools_osx.mm +++ b/src/ui/common/PlatformTools_osx.mm @@ -4,8 +4,15 @@ #include "PlatformTools.h" +#include +#include + +#include + #import +#import +Q_DECLARE_LOGGING_CATEGORY(gui) using namespace governikus; @@ -27,3 +34,64 @@ TransformProcessType(&psn, kProcessTransformToForegroundApplication); [NSApp activateIgnoringOtherApps: YES]; } + + +void ensureNotificationPermission(const std::function& pCallback) +{ +#ifdef QT_NO_DEBUG + if (@available(macOS 10.14, *)) + { + UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter]; + [center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings* _Nonnull settings){ + if (settings.authorizationStatus == UNAuthorizationStatusAuthorized) + { + pCallback(); + return; + } + + const auto& requestedOptions = UNAuthorizationOptionProvidesAppNotificationSettings & UNAuthorizationOptionAlert; + [center requestAuthorizationWithOptions:requestedOptions completionHandler:^(BOOL granted, NSError* _Nullable error){ + if (error != nil) + { + qCDebug(gui) << "Error when requesting authorization:" << error.localizedDescription; + } + + if (granted) + { + pCallback(); + } + }]; + }]; + } +#else + Q_UNUSED(pCallback) +#endif +} + + +void PlatformTools::postNotification(const QString& pTitle, const QString& pMessage) +{ +#ifdef QT_NO_DEBUG + if (@available(macOS 10.14, *)) + { + ensureNotificationPermission([pTitle, pMessage]{ + UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter]; + + UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init]; + content.title = pTitle.toNSString(); + content.body = pMessage.toNSString(); + UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"AA2Notification" content:content trigger:nil]; + + [center addNotificationRequest:request withCompletionHandler:^(NSError* _Nullable error){ + if (error != nil) + { + qCDebug(gui) << "Failed to post notification:" << error.localizedDescription; + } + }]; + }); + } +#else + Q_UNUSED(pTitle) + Q_UNUSED(pMessage) +#endif +} diff --git a/src/ui/common/TrayIcon.cpp b/src/ui/common/TrayIcon.cpp index b59a2b0ef..c8b40d830 100644 --- a/src/ui/common/TrayIcon.cpp +++ b/src/ui/common/TrayIcon.cpp @@ -78,7 +78,12 @@ void TrayIcon::create() mTrayIcon->setToolTip(QCoreApplication::applicationName()); - mTrayIcon->show(); +#ifdef Q_OS_MACOS + if (Env::getSingleton()->getGeneralSettings().isAutoStart()) +#endif + { + mTrayIcon->show(); + } //: LABEL DESKTOP showMessage(QCoreApplication::applicationName(), tr("Application was started.")); #endif @@ -138,14 +143,28 @@ void TrayIcon::shutdown() } -void TrayIcon::hide() +void TrayIcon::setVisible(bool pVisible) +{ +#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) + if (mTrayIcon) + { + mTrayIcon->setVisible(pVisible); + } +#else + Q_UNUSED(pVisible) +#endif +} + + +bool TrayIcon::isVisible() const { #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) if (mTrayIcon) { - mTrayIcon->hide(); + mTrayIcon->isVisible(); } #endif + return false; } diff --git a/src/ui/common/TrayIcon.h b/src/ui/common/TrayIcon.h index c4ac1875e..f70246d48 100644 --- a/src/ui/common/TrayIcon.h +++ b/src/ui/common/TrayIcon.h @@ -39,7 +39,8 @@ class TrayIcon [[nodiscard]] const QIcon& getIcon() const; void create(); void shutdown(); - void hide(); + void setVisible(bool pVisible); + [[nodiscard]] bool isVisible() const; void showMessage(const QString& pTitle, const QString& pMessage); diff --git a/src/ui/qml/UIPlugInQml.cpp b/src/ui/qml/UIPlugInQml.cpp index 9d2fd2cb3..2aec7a0cb 100644 --- a/src/ui/qml/UIPlugInQml.cpp +++ b/src/ui/qml/UIPlugInQml.cpp @@ -406,6 +406,7 @@ void UIPlugInQml::onApplicationInitialized() connect(Env::getSingleton(), &SelfAuthModel::fireStartWorkflow, this, &UIPlugIn::fireSelfAuthenticationRequested); connect(Env::getSingleton(), &RemoteServiceModel::fireStartWorkflow, this, &UIPlugIn::fireRemoteServiceRequested); connect(Env::getSingleton()->getEventHandler(), &LogEventHandler::fireRawLog, this, &UIPlugInQml::onRawLog, Qt::QueuedConnection); + connect(Env::getSingleton(), &SettingsModel::fireAutoStartChanged, this, &UIPlugInQml::onAutoStartChanged); const auto* service = Env::getSingleton(); connect(service, &Service::fireAppcastFinished, this, &UIPlugInQml::onUpdateAvailable); @@ -420,9 +421,14 @@ void UIPlugInQml::onApplicationStarted() mTrayIcon.create(); #if defined(Q_OS_WIN) || (defined(Q_OS_BSD4) && !defined(Q_OS_IOS)) || (defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)) - bool showSetupAssistant = Enum::fromString(Env::getSingleton()->getGeneralSettings().getStartupModule(), UiModule::TUTORIAL) == UiModule::TUTORIAL; - bool developerMode = Env::getSingleton()->getGeneralSettings().isDeveloperMode(); - if (!QSystemTrayIcon::isSystemTrayAvailable() || showSetupAssistant || developerMode) + const auto& generalSettings = Env::getSingleton()->getGeneralSettings(); + const bool showSetupAssistant = Enum::fromString(generalSettings.getStartupModule(), UiModule::TUTORIAL) == UiModule::TUTORIAL; + const bool developerMode = generalSettings.isDeveloperMode(); + bool missingTrayIcon = !QSystemTrayIcon::isSystemTrayAvailable(); +#ifdef Q_OS_MACOS + missingTrayIcon |= !Env::getSingleton()->getGeneralSettings().isAutoStart(); +#endif + if (missingTrayIcon || showSetupAssistant || developerMode) #endif { QMetaObject::invokeMethod(this, &UIPlugInQml::show, Qt::QueuedConnection); @@ -437,6 +443,13 @@ void UIPlugInQml::onApplicationStarted() void UIPlugInQml::onShowUi(UiModule pModule) { PlatformTools::restoreToTaskbar(); +#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) + const auto& startupModule = Enum::fromString(Env::getSingleton()->getGeneralSettings().getStartupModule(), UiModule::TUTORIAL); + if (pModule == UiModule::CURRENT && startupModule == UiModule::TUTORIAL) + { + pModule = UiModule::TUTORIAL; + } +#endif if (isDominated()) { pModule = UiModule::CURRENT; @@ -674,6 +687,14 @@ void UIPlugInQml::onRawLog(const QString& pMessage, const QString& pCategoryName { if (pCategoryName == QLatin1String("developermode") || pCategoryName == QLatin1String("feedback")) { +#ifdef Q_OS_MACOS + if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave) + { + PlatformTools::postNotification(QCoreApplication::applicationName(), pMessage); + return; + } + +#endif mTrayIcon.showMessage(QCoreApplication::applicationName(), pMessage); } } @@ -824,6 +845,14 @@ void UIPlugInQml::onWindowPaletteChanged() } +void UIPlugInQml::onAutoStartChanged() +{ +#ifdef Q_OS_MACOS + mTrayIcon.setVisible(Env::getSingleton()->getGeneralSettings().isAutoStart()); +#endif +} + + void UIPlugInQml::applyPlatformStyle(const QString& pPlatformStyle) { if (mExplicitPlatformStyle != pPlatformStyle) diff --git a/src/ui/qml/UIPlugInQml.h b/src/ui/qml/UIPlugInQml.h index 34e9329f0..b464a53d6 100644 --- a/src/ui/qml/UIPlugInQml.h +++ b/src/ui/qml/UIPlugInQml.h @@ -113,6 +113,7 @@ class UIPlugInQml void onRawLog(const QString& pMessage, const QString& pCategoryName); void onWindowPaletteChanged(); + void onAutoStartChanged(); public Q_SLOTS: void doRefresh(); diff --git a/src/workflows/remote_device/states/StateProcessRemoteMessages.cpp b/src/workflows/remote_device/states/StateProcessRemoteMessages.cpp index ce3e2c4b5..41253d6f2 100644 --- a/src/workflows/remote_device/states/StateProcessRemoteMessages.cpp +++ b/src/workflows/remote_device/states/StateProcessRemoteMessages.cpp @@ -150,7 +150,5 @@ void StateProcessRemoteMessages::onExit(QEvent* pEvent) disconnect(connection); } - stopScanIfNecessary(); - AbstractState::onExit(pEvent); } diff --git a/src/workflows/remote_device/states/StateStopRemoteService.cpp b/src/workflows/remote_device/states/StateStopRemoteService.cpp index e742f0312..a3a1c5d66 100644 --- a/src/workflows/remote_device/states/StateStopRemoteService.cpp +++ b/src/workflows/remote_device/states/StateStopRemoteService.cpp @@ -39,5 +39,7 @@ void StateStopRemoteService::onExit(QEvent* pEvent) // Request an asynchronous update of all retry counters Env::getSingleton()->updateRetryCounters(); + stopScanIfNecessary(); + AbstractState::onExit(pEvent); } diff --git a/test/qt/configuration/test_ProviderConfigurationParser.cpp b/test/qt/configuration/test_ProviderConfigurationParser.cpp index 1497d0f05..270c51bfb 100644 --- a/test/qt/configuration/test_ProviderConfigurationParser.cpp +++ b/test/qt/configuration/test_ProviderConfigurationParser.cpp @@ -222,8 +222,8 @@ class test_ProviderConfigurationParser QTest::addColumn("majorVersion"); QTest::addColumn("count"); - const int all = 94; - const int withEidSupport = 70; + const int all = 95; + const int withEidSupport = 72; QTest::newRow("win") << QOperatingSystemVersion::Windows << -1 << all; QTest::newRow("mac") << QOperatingSystemVersion::MacOS << -1 << all; QTest::newRow("linux") << QOperatingSystemVersion::Unknown << -1 << all; diff --git a/test/qt/configuration/test_ReaderConfiguration.cpp b/test/qt/configuration/test_ReaderConfiguration.cpp index 1d493592a..a9c8a1c42 100644 --- a/test/qt/configuration/test_ReaderConfiguration.cpp +++ b/test/qt/configuration/test_ReaderConfiguration.cpp @@ -115,21 +115,21 @@ class test_ReaderConfiguration QTest::newRow("KOBIL IDToken") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken" << "img_KOBIL_ID_Token" << "^KOBIL (Systems )?IDToken( 0)?$"; - QTest::newRow("SCM SDI011") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader" << "SDI011 Contactless Reader" << "img_Identive_SDI011" << "^(SCM Microsystems Inc. )?SDI011G? ((Contactless Reader( 0)?)|((USB Smart Card|Contactless) Reader\\([12]\\)))$"; - QTest::newRow("SCM SCL011") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "SCL01x Contactless Reader" << "img_Identive_SCL011" << "^(SCM Microsystems Inc. )?SCL011G? Contactless Reader( 0)?$"; + QTest::newRow("Identiv SDI011") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader" << "Identiv SDI011 Dual Interface Smart Card Reader" << "img_Identive_SDI011" << "^(SCM Microsystems Inc. )?SDI011G? ((Contactless Reader( 0)?)|((USB Smart Card|Contactless) Reader\\([12]\\)))$"; + QTest::newRow("Identiv SCL011") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "Identiv SCL01x Contactless Smart Card Reader" << "img_Identive_SCL011" << "^(SCM Microsystems Inc. )?SCL011G? Contactless Reader( 0)?$"; QTest::newRow("ACS-ACR1281U") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U" << "img_ACS_ACR1281U" << "ACS ACR1281 PICC Reader( 0)?"; QTest::newRow("ACS-ACR1252U") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader PICC 0" << "ACS ACR1252U" << "img_ACS_ACR1252U" << "^ACS ACR1252 (1S CL|Dual)? Reader(( PICC 0)|\\(1\\))?$"; - QTest::newRow("OMNIKEY 5021") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL" << "img_HID_Omnikey_Mobile_Reader_502X_CL" << "OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \\(076B:5340\\) 5021 CL"; - QTest::newRow("OMNIKEY 5022") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL" << "img_HID_Omnikey_Mobile_Reader_502X_CL" << "HID Global OMNIKEY 5022 Smart Card Reader( 0)?$"; - QTest::newRow("OMNIKEY 5321 v2") << UsbId(0x076B, 0x5321) << "OOMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2" << "img_HID_Global_OMNIKEY_5321_V2" << R"(OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \(076B:5321\) 5321(\(1\)|\(2\)))"; - QTest::newRow("OMNIKEY 5421") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5421" << "img_HID_Omnikey_542x" << R"(OMNIKEY CardMan 5x21-CL 0|OMNIKEY Smart Card Reader USB 0|OMNIKEY CardMan \(076B:5421\) 5421(\(1\)|\(2\)))"; - QTest::newRow("OMNIKEY 5422") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422CL Smartcard Reader 0" << "OMNIKEY 5422" << "img_HID_Omnikey_542x" << R"(HID Global OMNIKEY 5422CL Smartcard Reader 0|HID Global OMNIKEY Smartcard Reader (\(1\)|\(2\)))"; + QTest::newRow("HID OMNIKEY 5021") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5021-CL" << "img_HID_Omnikey_Mobile_Reader_502X_CL" << "OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \\(076B:5340\\) 5021 CL"; + QTest::newRow("HID OMNIKEY 5022") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "HID OMNIKEY 5022-CL" << "img_HID_Omnikey_Mobile_Reader_502X_CL" << "HID Global OMNIKEY 5022 Smart Card Reader( 0)?$"; + QTest::newRow("HID OMNIKEY 5321 v2") << UsbId(0x076B, 0x5321) << "OOMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5321 v2" << "img_HID_Global_OMNIKEY_5321_V2" << R"(OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \(076B:5321\) 5321(\(1\)|\(2\)))"; + QTest::newRow("HID OMNIKEY 5421") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5421" << "img_HID_Omnikey_542x" << R"(OMNIKEY CardMan 5x21-CL 0|OMNIKEY Smart Card Reader USB 0|OMNIKEY CardMan \(076B:5421\) 5421(\(1\)|\(2\)))"; + QTest::newRow("HID OMNIKEY 5422") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422CL Smartcard Reader 0" << "HID OMNIKEY 5422" << "img_HID_Omnikey_542x" << R"(HID Global OMNIKEY 5422CL Smartcard Reader 0|HID Global OMNIKEY Smartcard Reader (\(1\)|\(2\)))"; QTest::newRow("FEIG OBID myAXXESS RFID-Reader") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader" << "img_FEIG_myAXXES_basic" << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430"; - QTest::newRow("Gemalto-Prox-DU") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_" << "Prox-DU HID" << "img_Gemalto_Prox_DU" << R"(Gemalto .*Prox(-DU| Dual)( Contactless_| USB PC Link(Reader| Reader)(\(2\)|\(1\))))"; + QTest::newRow("Gemalto-Prox-DU") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_" << "Gemalto Prox-DU HID" << "img_Gemalto_Prox_DU" << R"(Gemalto .*Prox(-DU| Dual)( Contactless_| USB PC Link(Reader| Reader)(\(2\)|\(1\))))"; QTest::newRow("Gemalto-Prox-SU") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_" << "Gemalto Prox-SU Contactless" << "img_Gemalto_Prox_SU" << R"(Gemalto Prox( |-)SU( Contactless_| USB PC LinkReader(\(1\)|\(2\))))"; QTest::newRow("Identiv-SCL-3711") << UsbId(0x04E6, 0x5591) << "SCM Microsystems SCL3711 reader & NFC device 0" << "Identiv SCL3711" << "img_Identive_SCL3711" << "(SCM Microsystems SCL3711 reader & NFC device 0|SCL3711 Reader and NFC device)"; @@ -204,22 +204,22 @@ class test_ReaderConfiguration QTest::newRow("KOBIL IDToken-windows-7-10") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken 0" << "KOBIL IDToken"; QTest::newRow("KOBIL IDToken-macosx-10.13-11.0") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken"; - QTest::newRow("SCM SDI011-windows-7-10-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-windows-7-10-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SCM Microsystems Inc. SDI011 Smart Card Reader 0"; - QTest::newRow("SCM SDI011-windows-7-10-3") << UsbId(0x04E6, 0x512B) << "SDI011 Contactless Reader" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-windows-7-10-4") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011G Contactless Reader 0" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-windows-7-10-5") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011G Smart Card Reader 0" << "SCM Microsystems Inc. SDI011G Smart Card Reader 0"; - QTest::newRow("SCM SDI011-macosx-10.13-11.0") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.13-11.0") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.13-10.15-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(1)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.13-10.15-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(2)" << "SDI011 Contactless Reader"; - - QTest::newRow("SCM SCL011-windows-7-10-1") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; - QTest::newRow("SCM SCL011-windows-7-10-1") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL010 Contactless Reader" << "SCM Microsystems Inc. SCL010 Contactless Reader"; - QTest::newRow("SCM SCL011-windows-7-10-2") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "SCL01x Contactless Reader"; - QTest::newRow("SCM SCL011-windows-7-10-3") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011G Contactless Reader 0" << "SCL01x Contactless Reader"; - QTest::newRow("SCM SCL011-macosx-10.13-11.0-1") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; - QTest::newRow("SCM SCL011-macosx-10.13-11.0-2") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("Identiv SDI011-windows-7-10-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-windows-7-10-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SCM Microsystems Inc. SDI011 Smart Card Reader 0"; + QTest::newRow("Identiv SDI011-windows-7-10-3") << UsbId(0x04E6, 0x512B) << "SDI011 Contactless Reader" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-windows-7-10-4") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011G Contactless Reader 0" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-windows-7-10-5") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011G Smart Card Reader 0" << "SCM Microsystems Inc. SDI011G Smart Card Reader 0"; + QTest::newRow("Identiv SDI011-macosx-10.13-11.0") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-macosx-10.13-11.0") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-macosx-10.13-10.15-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(1)" << "Identiv SDI011 Dual Interface Smart Card Reader"; + QTest::newRow("Identiv SDI011-macosx-10.13-10.15-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(2)" << "Identiv SDI011 Dual Interface Smart Card Reader"; + + QTest::newRow("Identiv SCL011-windows-7-10-1") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "Identiv SCL01x Contactless Smart Card Reader"; + QTest::newRow("Identiv SCL011-windows-7-10-2") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL010 Contactless Reader" << "SCM Microsystems Inc. SCL010 Contactless Reader"; + QTest::newRow("Identiv SCL011-windows-7-10-3") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "Identiv SCL01x Contactless Smart Card Reader"; + QTest::newRow("Identiv SCL011-windows-7-10-4") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011G Contactless Reader 0" << "Identiv SCL01x Contactless Smart Card Reader"; + QTest::newRow("Identiv SCL011-macosx-10.13-11.0-1") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "Identiv SCL01x Contactless Smart Card Reader"; + QTest::newRow("Identiv SCL011-macosx-10.13-11.0-2") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "Identiv SCL01x Contactless Smart Card Reader"; QTest::newRow("ACS-ACR1281U-windows-7-10") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader 0" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-macosx-10.13-11.0") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U"; @@ -234,34 +234,34 @@ class test_ReaderConfiguration QTest::newRow("ACS-ACR1252U-macosx-10.13-11.0-4") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader(2)" << "ACS ACR1252 1S CL Reader(2)"; QTest::newRow("ACS-ACR1252U-macosx-10.13-11.0-5") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader" << "ACS ACR1252U"; - QTest::newRow("OMNIKEY 5021-windows-7-10") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL"; - QTest::newRow("OMNIKEY 5021-macosx-10.13-11.0") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "OMNIKEY 5021-CL"; + QTest::newRow("HID OMNIKEY 5021-windows-7-10") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5021-CL"; + QTest::newRow("HID OMNIKEY 5021-macosx-10.13-11.0") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "HID OMNIKEY 5021-CL"; - QTest::newRow("OMNIKEY 5022-windows-7-10") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL"; - QTest::newRow("OMNIKEY 5022-macosx-10.13-11.0") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "OMNIKEY 5022-CL"; + QTest::newRow("HID OMNIKEY 5022-windows-7-10") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "HID OMNIKEY 5022-CL"; + QTest::newRow("HID OMNIKEY 5022-macosx-10.13-11.0") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "HID OMNIKEY 5022-CL"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-10-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-10-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "OMNIKEY 5321 v2"; + QTest::newRow("HID OMNIKEY 5321 v2-windows-7-10-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("HID OMNIKEY 5321 v2-windows-7-10-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5321 v2"; + QTest::newRow("HID OMNIKEY 5321 v2-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "HID OMNIKEY 5321 v2"; + QTest::newRow("HID OMNIKEY 5321 v2-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "HID OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5421-windows-7-10-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5421-windows-7-10-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5421"; - QTest::newRow("OMNIKEY 5421-windows-7-10-3") << UsbId(0x076B, 0x5421) << "OMNIKEY Smart Card Reader USB 0" << "OMNIKEY 5421"; - QTest::newRow("OMNIKEY 5421-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421"; - QTest::newRow("OMNIKEY 5421-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "OMNIKEY 5421"; + QTest::newRow("HID OMNIKEY 5421-windows-7-10-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("HID OMNIKEY 5421-windows-7-10-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "HID OMNIKEY 5421"; + QTest::newRow("HID OMNIKEY 5421-windows-7-10-3") << UsbId(0x076B, 0x5421) << "OMNIKEY Smart Card Reader USB 0" << "HID OMNIKEY 5421"; + QTest::newRow("HID OMNIKEY 5421-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "HID OMNIKEY 5421"; + QTest::newRow("HID OMNIKEY 5421-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "HID OMNIKEY 5421"; - QTest::newRow("OMNIKEY 5422-windows-7-10-1") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422 Smartcard Reader 0" << "HID Global OMNIKEY 5422 Smartcard Reader 0"; - QTest::newRow("OMNIKEY 5422-windows-7-10-2") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422CL Smartcard Reader 0" << "OMNIKEY 5422"; - QTest::newRow("OMNIKEY 5422-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY Smartcard Reader (1)" << "OMNIKEY 5422"; - QTest::newRow("OMNIKEY 5422-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY Smartcard Reader (2)" << "OMNIKEY 5422"; + QTest::newRow("HID OMNIKEY 5422-windows-7-10-1") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422 Smartcard Reader 0" << "HID Global OMNIKEY 5422 Smartcard Reader 0"; + QTest::newRow("HID OMNIKEY 5422-windows-7-10-2") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY 5422CL Smartcard Reader 0" << "HID OMNIKEY 5422"; + QTest::newRow("HID OMNIKEY 5422-macosx-10.13-11.0-1") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY Smartcard Reader (1)" << "HID OMNIKEY 5422"; + QTest::newRow("HID OMNIKEY 5422-macosx-10.13-11.0-2") << UsbId(0x076B, 0x5422) << "HID Global OMNIKEY Smartcard Reader (2)" << "HID OMNIKEY 5422"; QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-7-10") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader"; - QTest::newRow("Gemalto-Prox-DU-windows-7-10-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-7-10-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Gemalto Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-7-10-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; - QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-11.0-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(1)" << "Prox-DU HID"; - QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-11.0-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(2)" << "Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-11.0-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(1)" << "Gemalto Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-11.0-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(2)" << "Gemalto Prox-DU HID"; QTest::newRow("Gemalto-Prox-SU-windows-7-10-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; QTest::newRow("Gemalto-Prox-SU-windows-7-10-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0";