diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a1efa1..e0ed608 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ ELSE() ENDIF() -PROJECT(AusweisApp2 VERSION 1.14.2 LANGUAGES ${LANGUAGES}) +PROJECT(AusweisApp2 VERSION 1.14.3 LANGUAGES ${LANGUAGES}) # Set TWEAK if not defined in PROJECT_VERSION above to # have a valid tweak version without propagating it diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake index 350f7d6..7728f19 100644 --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -22,17 +22,13 @@ IF(DESKTOP) ENDIF() IF(ANDROID OR IOS OR WINDOWS_STORE OR "${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") + FIND_PACKAGE(Qt5Bluetooth ${MIN_QT_VERSION} REQUIRED) FIND_PACKAGE(Qt5Nfc ${MIN_QT_VERSION} REQUIRED) FIND_PACKAGE(Qt5Qml ${MIN_QT_VERSION} REQUIRED) FIND_PACKAGE(Qt5Quick ${MIN_QT_VERSION} REQUIRED) FIND_PACKAGE(Qt5QuickControls2 ${MIN_QT_VERSION} REQUIRED) ENDIF() - -IF(LINUX OR ANDROID OR IOS) - FIND_PACKAGE(Qt5Bluetooth ${MIN_QT_VERSION} REQUIRED) -ENDIF() - IF(ANDROID) FIND_PACKAGE(Qt5AndroidExtras ${MIN_QT_VERSION} REQUIRED) ENDIF() diff --git a/cmake/Tools.cmake b/cmake/Tools.cmake index 05db2eb..5c6e512 100644 --- a/cmake/Tools.cmake +++ b/cmake/Tools.cmake @@ -45,7 +45,7 @@ IF(COVERAGE) SET(GCOVR_FILE "${PROJECT_BINARY_DIR}/gcovr.xml") SET(GCOVR_CMD ${GCOVR_BIN} -x -o ${GCOVR_FILE} --exclude="src/external" --exclude="test" -r ${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR}) - ADD_CUSTOM_COMMAND(OUTPUT ${GCOVR_FILE} COMMAND ${GCOVR_CMD}) + ADD_CUSTOM_COMMAND(OUTPUT ${GCOVR_FILE} COMMAND ${GCOVR_CMD} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) ADD_CUSTOM_TARGET(gcovr DEPENDS ${GCOVR_FILE}) ENDIF() @@ -140,7 +140,7 @@ IF(UNCRUSTIFY) EXECUTE_PROCESS(COMMAND ${UNCRUSTIFY} --version OUTPUT_VARIABLE UNCRUSTIFY_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) STRING(REPLACE "uncrustify " "" UNCRUSTIFY_VERSION ${UNCRUSTIFY_VERSION}) - SET(UNCRUSTIFY_NEEDED_VERSION "0.65") + SET(UNCRUSTIFY_NEEDED_VERSION "0.67") IF("${UNCRUSTIFY_VERSION}" STRLESS "${UNCRUSTIFY_NEEDED_VERSION}") MESSAGE(WARNING "Uncrustify seems to be too old. Use at least ${UNCRUSTIFY_NEEDED_VERSION}... you are using: ${UNCRUSTIFY_VERSION}") ELSE() @@ -210,31 +210,39 @@ IF(CONVERT) WORKING_DIRECTORY ${RESOURCES_DIR}/images) ADD_CUSTOM_TARGET(npaicons.ios.beta - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 29x29 npa_beta.svg iOS/appIcons/beta/iconSmall.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 58x58 npa_beta.svg iOS/appIcons/beta/iconSmall@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 87x87 npa_beta.svg iOS/appIcons/beta/iconSmall@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa_beta.svg iOS/appIcons/beta/iconSmall40.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 80x80 npa_beta.svg iOS/appIcons/beta/iconSmall40@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa_beta.svg iOS/appIcons/beta/iconSmall40@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa_beta.svg iOS/appIcons/beta/icon60@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 180x180 npa_beta.svg iOS/appIcons/beta/icon60@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 76x76 npa_beta.svg iOS/appIcons/beta/icon76.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 152x152 npa_beta.svg iOS/appIcons/beta/icon76@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 167x167 npa_beta.svg iOS/appIcons/beta/icon83.5@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 20x20 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 60x60 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 29x29 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 58x58 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 87x87 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 80x80 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 180x180 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 76x76 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 152x152 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 167x167 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 1024x1024 npa_beta.svg iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png WORKING_DIRECTORY ${RESOURCES_DIR}/images) ADD_CUSTOM_TARGET(npaicons.ios - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 29x29 npa.svg iOS/appIcons/iconSmall.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 58x58 npa.svg iOS/appIcons/iconSmall@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 87x87 npa.svg iOS/appIcons/iconSmall@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa.svg iOS/appIcons/iconSmall40.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 80x80 npa.svg iOS/appIcons/iconSmall40@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa.svg iOS/appIcons/iconSmall40@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa.svg iOS/appIcons/icon60@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 180x180 npa.svg iOS/appIcons/icon60@3x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 76x76 npa.svg iOS/appIcons/icon76.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 152x152 npa.svg iOS/appIcons/icon76@2x.png - COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 167x167 npa.svg iOS/appIcons/icon83.5@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 20x20 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 60x60 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 29x29 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 58x58 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 87x87 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 40x40 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 80x80 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 120x120 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 180x180 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@3x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 76x76 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 152x152 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 167x167 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png + COMMAND ${CONVERT_CMD} -background '${BACKGROUND_COLOR}' -resize 1024x1024 npa.svg iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon1024.png WORKING_DIRECTORY ${RESOURCES_DIR}/images) SET(BACKGROUND_COLOR "rgb\(220,235,246\)") @@ -265,31 +273,35 @@ FIND_PROGRAM(PNGQUANT pngquant CMAKE_FIND_ROOT_PATH_BOTH) IF(PNGQUANT) SET(PNGQUANT_CMD pngquant -f -o) ADD_CUSTOM_TARGET(pngquant.ios.beta - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall.png -- iOS/appIcons/beta/iconSmall.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall@2x.png -- iOS/appIcons/beta/iconSmall@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall@3x.png -- iOS/appIcons/beta/iconSmall@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall40.png -- iOS/appIcons/beta/iconSmall40.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall40@2x.png -- iOS/appIcons/beta/iconSmall40@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/iconSmall40@3x.png -- iOS/appIcons/beta/iconSmall40@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/icon60@2x.png -- iOS/appIcons/beta/icon60@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/icon60@3x.png -- iOS/appIcons/beta/icon60@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/icon76.png -- iOS/appIcons/beta/icon76.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/icon76@2x.png -- iOS/appIcons/beta/icon76@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/icon83.5@2x.png -- iOS/appIcons/beta/icon83.5@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@3x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png -- iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png WORKING_DIRECTORY ${RESOURCES_DIR}/images) ADD_CUSTOM_TARGET(pngquant.ios - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall.png -- iOS/appIcons/iconSmall.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall@2x.png -- iOS/appIcons/iconSmall@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall@3x.png -- iOS/appIcons/iconSmall@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall40.png -- iOS/appIcons/iconSmall40.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall40@2x.png -- iOS/appIcons/iconSmall40@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/iconSmall40@3x.png -- iOS/appIcons/iconSmall40@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/icon60@2x.png -- iOS/appIcons/icon60@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/icon60@3x.png -- iOS/appIcons/icon60@3x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/icon76.png -- iOS/appIcons/icon76.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/icon76@2x.png -- iOS/appIcons/icon76@2x.png - COMMAND ${PNGQUANT_CMD} iOS/appIcons/icon83.5@2x.png -- iOS/appIcons/icon83.5@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@2x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@3x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@3x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76@2x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76@2x.png + COMMAND ${PNGQUANT_CMD} iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png -- iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png COMMAND ${PNGQUANT_CMD} iOS/launchImages/Default-568h@2x.png -- iOS/launchImages/Default-568h@2x.png WORKING_DIRECTORY ${RESOURCES_DIR}/images) diff --git a/docs/releasenotes/1.14.3.rst b/docs/releasenotes/1.14.3.rst new file mode 100644 index 0000000..6091393 --- /dev/null +++ b/docs/releasenotes/1.14.3.rst @@ -0,0 +1,17 @@ +AusweisApp2 1.14.3 +^^^^^^^^^^^^^^^^^^ + +**Releasedatum:** 10. Juli 2018 + + + +Anwender +"""""""" + - Hinweis zur Datenschutzerklärung hinzugefügt. + + +Entwickler +"""""""""" + - Das Vor-Ort-Auslesen von Ausweisdaten unter Anwesenden (gem. §18a PAuswG) + funktioniert jetzt, wenn ein Smartphone als Kartenlesegerät genutzt wird + und der Tastaturmodus "PIN-Eingabe auf diesem Gerät" aktiviert ist. diff --git a/docs/releasenotes/appcast.rst b/docs/releasenotes/appcast.rst index c6cb3ed..ac580b2 100644 --- a/docs/releasenotes/appcast.rst +++ b/docs/releasenotes/appcast.rst @@ -4,6 +4,7 @@ Release Notes .. toctree:: :maxdepth: 1 + 1.14.3 1.14.2 1.14.1 1.14.0 diff --git a/docs/releasenotes/issues.rst b/docs/releasenotes/issues.rst index 4a07e7d..d477d87 100644 --- a/docs/releasenotes/issues.rst +++ b/docs/releasenotes/issues.rst @@ -24,7 +24,3 @@ Die nachfolgende Liste bezieht sich auf die aktuelle Version der AusweisApp2. - Unter Umständen kommt es zu Stabilitätsproblemen der NFC-Schnittstelle auf Android. - - - Das Vor-Ort-Auslesen von Ausweisdaten unter Anwesenden (gem. §18a PAuswG) - funktioniert nicht, wenn ein Smartphone als Kartenlesegerät genutzt wird - und der Tastaturmodus "PIN-Eingabe auf diesem Gerät" aktiviert ist. diff --git a/docs/releasenotes/support.rst b/docs/releasenotes/support.rst index 3e9d956..aaf28d4 100644 --- a/docs/releasenotes/support.rst +++ b/docs/releasenotes/support.rst @@ -48,9 +48,9 @@ und sollte daher mit allen marktüblichen Browsern verwendet werden können. Im Rahmen der Qualitätssicherung werden die folgenden Browserversionen getestet. - - Firefox 60 + - Firefox 61 - - Chrome 66 + - Chrome 67 - Internet Explorer 11 @@ -112,11 +112,11 @@ Im mobilen Umfeld ist die Funktionalität jedoch abhängig von der vom Diensteanbieter umgesetzten Aktivierung. Daher empfehlen wir einen der folgenden Browser zu verwenden. - - Firefox Klar 5.0 + - Firefox Klar 5.2 - - Chrome 66 + - Chrome 67 - - Android System WebView 60 + - Android System WebView 67 diff --git a/docs/releasenotes/versions.rst b/docs/releasenotes/versions.rst index 28f415f..ee2da8e 100644 --- a/docs/releasenotes/versions.rst +++ b/docs/releasenotes/versions.rst @@ -6,6 +6,7 @@ Versionszweig 1.14 .. toctree:: :maxdepth: 1 + 1.14.3 1.14.2 1.14.1 1.14.0 diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index 4314195..e98ad56 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -207,6 +207,7 @@ ExternalProject_Add(openssl ${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/openssl-fix-no-engine-build.patch && ${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/openssl-Revert-Configure-use-a-better-method-to-identify-gcc.patch && ${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/openssl-RSA-key-generation-ensure-BN_mod_inverse-and-BN_mod_.patch && + ${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/openssl-Reject-excessively-large-primes-in-DH-key-generation.patch && ${PATCH_CMD} -p1 ${PATCH_OPTIONS} ${PATCHES_DIR}/openssl_rsa_psk.patch CONFIGURE_COMMAND ${OPENSSL_ENV} ${PERL_EXECUTABLE} Configure --prefix=${DESTINATION_DIR} ${OPENSSL_CONFIGURE_FLAGS} "${COMPILER_FLAGS}" "${OPENSSL_COMPILER_FLAGS}" @@ -249,7 +250,7 @@ ELSE() ENDIF() -SET(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} -prefix ${DESTINATION_DIR} -opensource -confirm-license -qt-zlib -no-mtdev -qt-libpng -qt-libjpeg -no-harfbuzz -qt-pcre -system-proxies -no-compile-examples -nomake examples -nomake tests -no-sql-sqlite -openssl-linked -I ${DESTINATION_DIR}/include -L ${DESTINATION_DIR}/lib) +SET(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} -prefix ${DESTINATION_DIR} -opensource -confirm-license -c++std c++11 -qt-zlib -no-mtdev -qt-libpng -qt-libjpeg -no-harfbuzz -qt-pcre -system-proxies -no-compile-examples -nomake examples -nomake tests -no-sql-sqlite -openssl-linked -I ${DESTINATION_DIR}/include -L ${DESTINATION_DIR}/lib) LIST(APPEND NO_FEATURES bearermanagement ftp paint_debug) LIST(APPEND NO_FEATURES imageformat_bmp imageformat_ppm imageformat_xbm) diff --git a/patches/openssl-Reject-excessively-large-primes-in-DH-key-generation.patch b/patches/openssl-Reject-excessively-large-primes-in-DH-key-generation.patch new file mode 100644 index 0000000..c64bc24 --- /dev/null +++ b/patches/openssl-Reject-excessively-large-primes-in-DH-key-generation.patch @@ -0,0 +1,42 @@ +From 3984ef0b72831da8b3ece4745cac4f8575b19098 Mon Sep 17 00:00:00 2001 +From: Guido Vranken +Date: Mon, 11 Jun 2018 19:38:54 +0200 +Subject: [PATCH] Reject excessively large primes in DH key generation. + +CVE-2018-0732 + +Signed-off-by: Guido Vranken + +(cherry picked from commit 91f7361f47b082ae61ffe1a7b17bb2adf213c7fe) + +Reviewed-by: Tim Hudson +Reviewed-by: Matt Caswell +(Merged from https://github.com/openssl/openssl/pull/6457) +--- + crypto/dh/dh_key.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git x/crypto/dh/dh_key.c y/crypto/dh/dh_key.c +index 387558f146..f235e0d682 100644 +--- x/crypto/dh/dh_key.c ++++ y/crypto/dh/dh_key.c +@@ -130,10 +130,15 @@ static int generate_key(DH *dh) + int ok = 0; + int generate_new_key = 0; + unsigned l; +- BN_CTX *ctx; ++ BN_CTX *ctx = NULL; + BN_MONT_CTX *mont = NULL; + BIGNUM *pub_key = NULL, *priv_key = NULL; + ++ if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS) { ++ DHerr(DH_F_GENERATE_KEY, DH_R_MODULUS_TOO_LARGE); ++ return 0; ++ } ++ + ctx = BN_CTX_new(); + if (ctx == NULL) + goto err; +-- +2.18.0 + diff --git a/resources/ausweisapp_desktop.qrc b/resources/ausweisapp_desktop.qrc index 28b7476..d8f5c60 100644 --- a/resources/ausweisapp_desktop.qrc +++ b/resources/ausweisapp_desktop.qrc @@ -58,12 +58,10 @@ updatable-files/reader/img_HID_Global_OMNIKEY_5321_V2_mit_ausweis.png updatable-files/reader/img_HID_Omnikey_5421.png updatable-files/reader/img_HID_Omnikey_5421_mit_ausweis.png + updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL.png + updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png updatable-files/reader/img_HID_Omnikey_Mobile_Reader_4121_CL.png updatable-files/reader/img_HID_Omnikey_Mobile_Reader_4121_CL_mit_ausweis.png - updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL.png - updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL_mit_ausweis.png - updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL.png - updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL_mit_ausweis.png updatable-files/reader/img_Identive_Cloud_3700_F.png updatable-files/reader/img_Identive_Cloud_3700_F_mit_ausweis.png updatable-files/reader/img_Identive_Cloud_4700_F.png diff --git a/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/Contents.json b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..78c7ca7 --- /dev/null +++ b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "iconSmall@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "iconSmall@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "iconSmall40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "iconSmall40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "iconSmall.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "iconSmall@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "iconSmall40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "iconSmall40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "icon83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "icon1024.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon1024.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon1024.png new file mode 100644 index 0000000..6c006dd Binary files /dev/null and b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon1024.png differ diff --git a/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20.png new file mode 100644 index 0000000..fd50e25 Binary files /dev/null and b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20.png differ diff --git a/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@2x.png new file mode 100644 index 0000000..be8af9c Binary files /dev/null and b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@2x.png differ diff --git a/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@3x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@3x.png new file mode 100644 index 0000000..eeaaec4 Binary files /dev/null and b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon20@3x.png differ diff --git a/resources/images/iOS/appIcons/icon60@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@2x.png similarity index 100% rename from resources/images/iOS/appIcons/icon60@2x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@2x.png diff --git a/resources/images/iOS/appIcons/icon60@3x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@3x.png similarity index 100% rename from resources/images/iOS/appIcons/icon60@3x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon60@3x.png diff --git a/resources/images/iOS/appIcons/icon76.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76.png similarity index 100% rename from resources/images/iOS/appIcons/icon76.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76.png diff --git a/resources/images/iOS/appIcons/icon76@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76@2x.png similarity index 100% rename from resources/images/iOS/appIcons/icon76@2x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon76@2x.png diff --git a/resources/images/iOS/appIcons/icon83.5@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png similarity index 100% rename from resources/images/iOS/appIcons/icon83.5@2x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png diff --git a/resources/images/iOS/appIcons/iconSmall.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall.png diff --git a/resources/images/iOS/appIcons/iconSmall40.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall40.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40.png diff --git a/resources/images/iOS/appIcons/iconSmall40@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall40@2x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png diff --git a/resources/images/iOS/appIcons/iconSmall40@3x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall40@3x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png diff --git a/resources/images/iOS/appIcons/iconSmall@2x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall@2x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png diff --git a/resources/images/iOS/appIcons/iconSmall@3x.png b/resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png similarity index 100% rename from resources/images/iOS/appIcons/iconSmall@3x.png rename to resources/images/iOS/appIcons/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png diff --git a/resources/images/iOS/appIcons/Images.xcassets/Contents.json b/resources/images/iOS/appIcons/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/resources/images/iOS/appIcons/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/Contents.json b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..78c7ca7 --- /dev/null +++ b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "iconSmall@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "iconSmall@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "iconSmall40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "iconSmall40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "iconSmall.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "iconSmall@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "iconSmall40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "iconSmall40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "icon83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "icon1024.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png new file mode 100644 index 0000000..86a7efd Binary files /dev/null and b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon1024.png differ diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png new file mode 100644 index 0000000..ab2797f Binary files /dev/null and b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20.png differ diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png new file mode 100644 index 0000000..45db7be Binary files /dev/null and b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@2x.png differ diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png new file mode 100644 index 0000000..0fe9859 Binary files /dev/null and b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon20@3x.png differ diff --git a/resources/images/iOS/appIcons/beta/icon60@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@2x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/icon60@2x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@2x.png diff --git a/resources/images/iOS/appIcons/beta/icon60@3x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@3x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/icon60@3x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon60@3x.png diff --git a/resources/images/iOS/appIcons/beta/icon76.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76.png similarity index 100% rename from resources/images/iOS/appIcons/beta/icon76.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76.png diff --git a/resources/images/iOS/appIcons/beta/icon76@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76@2x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/icon76@2x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon76@2x.png diff --git a/resources/images/iOS/appIcons/beta/icon83.5@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/icon83.5@2x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/icon83.5@2x.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall40.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall40.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall40@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall40@2x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@2x.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall40@3x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall40@3x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall40@3x.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall@2x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall@2x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@2x.png diff --git a/resources/images/iOS/appIcons/beta/iconSmall@3x.png b/resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png similarity index 100% rename from resources/images/iOS/appIcons/beta/iconSmall@3x.png rename to resources/images/iOS/appIcons/beta/Images.xcassets/AppIcon.appiconset/iconSmall@3x.png diff --git a/resources/images/iOS/appIcons/beta/Images.xcassets/Contents.json b/resources/images/iOS/appIcons/beta/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/resources/images/iOS/appIcons/beta/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/resources/jenkins/docker/alpine/Dockerfile b/resources/jenkins/docker/alpine/Dockerfile index d1aad8d..f56eb3a 100644 --- a/resources/jenkins/docker/alpine/Dockerfile +++ b/resources/jenkins/docker/alpine/Dockerfile @@ -1,7 +1,7 @@ FROM scratch MAINTAINER Governikus KG -ARG version="3.7.0" +ARG version="3.8.0" ARG arch="x86_64" ADD alpine-minirootfs-$version-$arch.tar.gz / diff --git a/resources/jenkins/docker/android/Dockerfile b/resources/jenkins/docker/android/Dockerfile index 604fa3f..94c166f 100644 --- a/resources/jenkins/docker/android/Dockerfile +++ b/resources/jenkins/docker/android/Dockerfile @@ -7,8 +7,8 @@ RUN echo "[multilib]" >> /etc/pacman.conf && echo 'Include = /etc/pacman.d/mirro RUN chown -R governikus: /var/cache/pacman/pkg/ -ARG JENKINS_SWARM_VERSION=3.8 -ARG TINI_VERSION=0.16.1 +ARG JENKINS_SWARM_VERSION=3.13 +ARG TINI_VERSION=0.18.0 RUN curl -L -o /sbin/tini https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini-static-muslc-amd64 && chmod 755 /sbin/tini && \ curl -L -o /swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/$JENKINS_SWARM_VERSION/swarm-client-$JENKINS_SWARM_VERSION.jar ADD ../swarm/swarm.sh / diff --git a/resources/jenkins/docker/docs/Dockerfile b/resources/jenkins/docker/docs/Dockerfile index c92986b..3f1f84c 100644 --- a/resources/jenkins/docker/docs/Dockerfile +++ b/resources/jenkins/docker/docs/Dockerfile @@ -3,16 +3,7 @@ MAINTAINER Governikus KG ENV NAME=Docs LABELS=Docs -# Clean up if texlive package is fixed in Alpine -RUN sed -i -e 's/v3.7/edge/' /etc/apk/repositories && \ - echo '@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories && \ - apk --no-cache add cmake make py2-sphinx py2-setuptools py2-pip py2-hglib icu-libs poppler zziplib texlive-full@testing && \ - wget http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2016/texlive-20160523b-texmf.tar.xz && \ - cmake -E tar xf texlive-20160523b-texmf.tar.xz && \ - cp -r /texlive-20160523-texmf/texmf-dist /usr/share && \ - rm -rf texlive* && \ - apk --no-cache fix texlive && \ - ln -s /usr/bin/mktexlsr /usr/bin/mktexlsr.pl && \ +RUN apk --no-cache add cmake make py2-sphinx py2-setuptools py2-pip py2-hglib icu-libs poppler zziplib texlive-full && \ pip install doc8 cloud_sptheme USER governikus diff --git a/resources/jenkins/docker/generate.sh b/resources/jenkins/docker/generate.sh index 83472cd..7eb8ef5 100755 --- a/resources/jenkins/docker/generate.sh +++ b/resources/jenkins/docker/generate.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash set -e ################### Alpine diff --git a/resources/jenkins/docker/swarm/Dockerfile b/resources/jenkins/docker/swarm/Dockerfile index f457aa9..7d63141 100644 --- a/resources/jenkins/docker/swarm/Dockerfile +++ b/resources/jenkins/docker/swarm/Dockerfile @@ -1,7 +1,7 @@ FROM alpine:latest MAINTAINER Governikus KG -ARG JENKINS_SWARM_VERSION=3.8 +ARG JENKINS_SWARM_VERSION=3.13 ENV EXECUTOR=3 LABELS= NAME= PASSWORD= RUN adduser governikus -s /bin/sh -D diff --git a/resources/packaging/android/AndroidManifest.xml.in b/resources/packaging/android/AndroidManifest.xml.in index 5abd778..4939f67 100644 --- a/resources/packaging/android/AndroidManifest.xml.in +++ b/resources/packaging/android/AndroidManifest.xml.in @@ -144,7 +144,7 @@ - + diff --git a/resources/packaging/ios/MacOSXBundleInfo.plist.in b/resources/packaging/ios/MacOSXBundleInfo.plist.in index 2073339..ef3e8e3 100644 --- a/resources/packaging/ios/MacOSXBundleInfo.plist.in +++ b/resources/packaging/ios/MacOSXBundleInfo.plist.in @@ -12,6 +12,8 @@ CFBundlePrimaryIcon + CFBundleIconName + AppIcon CFBundleIconFiles iconSmall @@ -24,6 +26,8 @@ CFBundlePrimaryIcon + CFBundleIconName + AppIcon CFBundleIconFiles iconSmall diff --git a/resources/qml/Governikus/Global/+android/GButton.qml b/resources/qml/Governikus/Global/+android/GButton.qml index d28a84e..75d4264 100644 --- a/resources/qml/Governikus/Global/+android/GButton.qml +++ b/resources/qml/Governikus/Global/+android/GButton.qml @@ -94,6 +94,7 @@ Item { MouseArea { id: mouseArea anchors.fill: parent + preventStealing: true hoverEnabled: true onClicked: parent.clicked() } diff --git a/resources/qml/Governikus/Global/+ios/GButton.qml b/resources/qml/Governikus/Global/+ios/GButton.qml index d8d3bdc..3c6ef32 100644 --- a/resources/qml/Governikus/Global/+ios/GButton.qml +++ b/resources/qml/Governikus/Global/+ios/GButton.qml @@ -41,6 +41,7 @@ Rectangle { MouseArea{ id: mouseArea anchors.fill: parent + preventStealing: true hoverEnabled: true onClicked: parent.clicked() } diff --git a/resources/qml/Governikus/IdentifyView/IdentifyViewInfo.qml b/resources/qml/Governikus/IdentifyView/IdentifyViewInfo.qml index 66d608a..c41483c 100644 --- a/resources/qml/Governikus/IdentifyView/IdentifyViewInfo.qml +++ b/resources/qml/Governikus/IdentifyView/IdentifyViewInfo.qml @@ -48,9 +48,13 @@ Item { anchors.left: parent.left anchors.right: parent.right text: qsTr("Use the button 'See my personal data' to display the data stored on your ID card." - + " An Internet connection is required to display the data." - + " Your personal data is neither saved nor processed in any way.") + + " An Internet connection is required to display the data.") + + "

" + + qsTr("Your personal data is neither saved nor processed in any way. Please see our %1 for details on how your personal data is processed.") + .arg('' + qsTr("data privacy statement") + '') + + "" + settingsModel.translationTrigger + onLinkActivated: Qt.openUrlExternally(link) } } } diff --git a/resources/translations/ausweisapp2_de.ts b/resources/translations/ausweisapp2_de.ts index f6cd3ff..85fe5d9 100644 --- a/resources/translations/ausweisapp2_de.ts +++ b/resources/translations/ausweisapp2_de.ts @@ -1164,11 +1164,26 @@ - Use the button 'See my personal data' to display the data stored on your ID card. An Internet connection is required to display the data. Your personal data is neither saved nor processed in any way. - Über die Schaltfläche "Meine Daten einsehen" können Sie sich die im Chip Ihres Ausweisdokuments gespeicherten Daten anzeigen lassen. Um die Daten anzeigen zu können, benötigt diese Anwendung eine Internetverbindung. Es erfolgt keine Speicherung oder Weiterverarbeitung Ihrer persönlichen Daten. + Use the button 'See my personal data' to display the data stored on your ID card. An Internet connection is required to display the data. + Über die Schaltfläche 'Meine Daten einsehen' können Sie sich die im Chip Ihres Ausweisdokuments gespeicherten Daten anzeigen lassen. Um die Daten anzeigen zu können, benötigt diese Anwendung eine Internetverbindung. - + + Your personal data is neither saved nor processed in any way. Please see our %1 for details on how your personal data is processed. + Es erfolgt keine Speicherung oder Weiterverarbeitung Ihrer persönlichen Daten. Näheres dazu erfahren Sie in unserer %1. + + + + https://www.ausweisapp.bund.de/datenschutz/ + https://www.ausweisapp.bund.de/datenschutz/ + + + + data privacy statement + Datenschutzerklärung + + + See my personal data Meine Daten einsehen @@ -1365,10 +1380,6 @@ https://www.ausweisapp.bund.de/en/download/windows-and-mac/ https://www.ausweisapp.bund.de/download/windows-und-mac/ - - https://www.ausweisapp.bund.de/en/download/ - https://www.ausweisapp.bund.de/download/ - Configure remote service @@ -2411,11 +2422,6 @@ Bitte beachten Sie, dass Sie mit Ihrer PUK lediglich Ihren Online-Ausweis entspe See my personal data now... Meine Daten jetzt einsehen... - - - Use the button 'See my personal data now...' to display the data stored on your ID card. An Internet connection is required to display the data. Your personal data is neither saved nor processed in any way. - Über die Schaltfläche "Meine Daten jetzt einsehen..." können Sie sich die im Chip Ihres Ausweisdokuments gespeicherten Daten anzeigen lassen. Um die Daten anzeigen zu können, benötigt diese Anwendung eine Internetverbindung. Es erfolgt keine Speicherung oder Weiterverarbeitung Ihrer persönlichen Daten. - eID Logo @@ -4349,7 +4355,27 @@ Bitte beachten Sie, dass Sie mit Ihrer PUK lediglich Ihren Online-Ausweis entspe governikus::SelfInformationWidget - + + Use the button 'See my personal data now...' to display the data stored on your ID card. An Internet connection is required to display the data. + Über die Schaltfläche 'Meine Daten einsehen...' können Sie sich die im Chip Ihres Ausweisdokuments gespeicherten Daten anzeigen lassen. Um die Daten anzeigen zu können, benötigt diese Anwendung eine Internetverbindung. + + + + https://www.ausweisapp.bund.de/datenschutz/ + https://www.ausweisapp.bund.de/datenschutz/ + + + + data privacy statement + Datenschutzerklärung + + + + Your personal data is neither saved nor processed in any way. Please see our %1 for details on how your personal data is processed. + Es erfolgt keine Speicherung oder Weiterverarbeitung Ihrer persönlichen Daten. Näheres dazu erfahren Sie in unserer %1. + + + Test environment Testumgebung @@ -4905,7 +4931,7 @@ Bitte beachten Sie, dass Sie mit Ihrer PUK lediglich Ihren Online-Ausweis entspe - The connection to the bowser was lost. No forwarding was executed. Please try to call the URL again manually: <a href='%1'>%2</a> + The connection to the browser was lost. No forwarding was executed. Please try to call the URL again manually: <a href='%1'>%2</a> Die Verbindung zum Browser ging verloren. Es konnte keine Weiterleitung durchgeführt werden. Bitte versuchen Sie die URL manuell aufzurufen: <a href='%1'>%2</a> diff --git a/resources/travis/setup.sh b/resources/travis/setup.sh index 1da3ecd..7f8c6e2 100644 --- a/resources/travis/setup.sh +++ b/resources/travis/setup.sh @@ -5,8 +5,8 @@ set -eu readonly CLONE_DIR="${CLONE_DIR:-$(pwd)}" -MINIROOTFS_VERSION="3.7.0" -MINIROOTFS_SHA="17e8275545aca7a6eaf4e43759a091d33bd9eb9cf11805118773dc940c8b94ac" +MINIROOTFS_VERSION="3.8.0" +MINIROOTFS_SHA="ae36d6ea2033131cfc649afa13d7271367c386e7a0dbd5b3d0671a2ede22a2f1" MINIROOTFS="alpine-minirootfs-${MINIROOTFS_VERSION}-x86_64.tar.gz" MINIROOTFS_URI="http://dl-cdn.alpinelinux.org/alpine/v${MINIROOTFS_VERSION%.*}/releases/x86_64/$MINIROOTFS" diff --git a/resources/updatable-files/reader/img_Cherry_ST_1275.png b/resources/updatable-files/reader/img_Cherry_ST_1275.png new file mode 100644 index 0000000..969ff50 Binary files /dev/null and b/resources/updatable-files/reader/img_Cherry_ST_1275.png differ diff --git a/resources/updatable-files/reader/img_Cherry_ST_1275_mit_Ausweis.png b/resources/updatable-files/reader/img_Cherry_ST_1275_mit_Ausweis.png new file mode 100644 index 0000000..2ed8994 Binary files /dev/null and b/resources/updatable-files/reader/img_Cherry_ST_1275_mit_Ausweis.png differ diff --git a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL.png b/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL.png deleted file mode 100644 index 0bf6c98..0000000 Binary files a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL.png and /dev/null differ diff --git a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL_mit_ausweis.png b/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL_mit_ausweis.png deleted file mode 100644 index 9ea5929..0000000 Binary files a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5022_CL_mit_ausweis.png and /dev/null differ diff --git a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL.png b/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL.png similarity index 100% rename from resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL.png rename to resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL.png diff --git a/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL_mit_ausweis.png b/resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png similarity index 100% rename from resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_5021_CL_mit_ausweis.png rename to resources/updatable-files/reader/img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png diff --git a/resources/updatable-files/reader/img_Signotec_Omega_Pad.png b/resources/updatable-files/reader/img_Signotec_Omega_Pad.png new file mode 100644 index 0000000..1fdb7a1 Binary files /dev/null and b/resources/updatable-files/reader/img_Signotec_Omega_Pad.png differ diff --git a/resources/updatable-files/reader/img_Signotec_Omega_Pad_mit_Ausweis.png b/resources/updatable-files/reader/img_Signotec_Omega_Pad_mit_Ausweis.png new file mode 100644 index 0000000..2163b7c Binary files /dev/null and b/resources/updatable-files/reader/img_Signotec_Omega_Pad_mit_Ausweis.png differ diff --git a/resources/updatable-files/supported-providers.json b/resources/updatable-files/supported-providers.json index 3579c59..573452f 100644 --- a/resources/updatable-files/supported-providers.json +++ b/resources/updatable-files/supported-providers.json @@ -1,5 +1,5 @@ { - "issueDate": "2017-12-14T12:00:00+1:00", + "issueDate": "2018-07-05T12:00:00+1:00", "callcosts" : [ { "prefixes" : ["1371", "1375"], @@ -395,8 +395,8 @@ { "shortName": {"" : "Bürgerportal Rheinland Pfalz"}, "longDescription": {"": "Über 80% der Meldebehörden und über 90% der Standesämter in Rheinland-Pfalz bieten Ihnen über das Portal www.rlpdirekt.de Verwaltungsleistungen mit der Online-Ausweisfunktion an, für die Sie nicht mehr zur Behörde gehen müssen, z. B.:
- Kfz abmelden
- Führungszeugnis beantragen,
- Meldebescheinigung beantragen,
- Aufenthaltsbescheinigung beantragen,
- Übermittlungssperre einrichten,
- Auskunft aus dem Gewerbezentralregister beantragen,
- Beurkundung im Personenstandswesen beantragen.
Welche Dienste in Ihrer Kommune mit der Online-Ausweisfunktion genutzt werden können, erfahren Sie, wenn Sie auf dem Portal unter \"Stadt/Ort\" Ihren Wohnort eingeben."}, - "address": "https://www.rlpdirekt.de/rheinland-pfalz", - "homepage": "https://www.rlpdirekt.de/rheinland-pfalz/", + "address": "https://www.rlpdirekt.de/", + "homepage": "https://www.rlpdirekt.de/", "phone": "+49 6131 / 6277-0", "email": "support@kommwis.de", "postalAddress": "KommWis GmbH
Gesellschaft für Kommunikation und Wissenstransfer mbH
Hindenburgplatz 3
55118 Mainz", @@ -666,19 +666,6 @@ "tcTokenUrlInfo" : "Registration required", "subjectUrls": [] }, - { - "exclude": ["ios"], - "shortName": {"" : "ID-Safe des Landkreis Kitzingen"}, - "longDescription": {"": "Die Stadt Kitzingen bietet bei verschiedenen Bürgerdiensten die Nutzung der Online-Ausweisfunktion in Verbindung mit elektronischen Antragsformularen an:
- Gewerbeanmeldung
- Gewerbeummeldung
- Gewerbeabmeldung
- Fischereischein
- Verkehrsrechtliche Anordnung
- Sondernutzung
- Parkerleichterung
- Mängelmeldung"}, - "address": "https://www.buergerservice.org/ID-Safe-Kitzingen", - "homepage": "https://www.kitzingen.de/", - "phone": "+49 9321 / 928-0,", - "email": "info@kitzingen.de", - "postalAddress": "Landratsamt Kitzingen
Herr Thomas Langhojer
Kaiserstraße 4
97318 Kitzingen", - "category": "citizen", - "tcTokenUrlInfo" : "Registration required", - "subjectUrls": ["https://www.buergerservice.org"] - }, { "exclude": ["ios"], "shortName": {"" : "ID-Safe des Landkreis Ostallgäu"}, @@ -692,18 +679,6 @@ "tcTokenUrlInfo" : "Registration required", "subjectUrls": ["https://www.sixform.com"] }, - { - "exclude": ["ios"], - "shortName": {"" : "ID-Safe des Landkreis Würzburg"}, - "address": "https://www.buergerservice.org/ID-Safe-Wuerzburg", - "homepage": "https://www.landkreis-wuerzburg.de/startseite.phtml", - "phone": "+49 931 8003-0 ", - "email": "poststelle@lra-wue.bayern.de", - "postalAddress": "Landratsamt Würzburg
Zeppelinstraße 15
97074 Würzburg", - "category": "citizen", - "tcTokenUrlInfo" : "Registration required", - "subjectUrls": ["https://www.buergerservice.org"] - }, { "exclude": ["ios"], "shortName": {"" : "Online-Registerauskunft"}, @@ -832,19 +807,6 @@ "tcTokenUrlInfo" : "Registration required", "subjectUrls": ["https://meinkonto.nuernberg.de"] }, - { - "exclude": ["ios"], - "shortName": {"" : "Standesamt Online Mecklenburg-Vorpommern"}, - "longDescription": {"": "In Mecklenburg-Vorpommern können Sie in immer mehr Kommunen Urkunden mit der Online-Ausweisfunktion beantragen:
- Geburtsurkunden
- Eheurkunden
- Lebenspartnerschaftsurkunden
- Sterbeurkunden"}, - "address": "https://portal.ego-mv.de/", - "homepage": "http://www.ego-mv.de/", - "phone": "+49 3 85 77 33 47-0", - "email": "info@ego-mv.de", - "postalAddress": "Zweckverband Elektronische Verwaltung in Mecklenburg-Vorpommern (eGo-MV)
Eckdrift 103
19061 Schwerin", - "category": "citizen", - "tcTokenUrlInfo" : "TcToken URL requires valid dynamic request id.", - "subjectUrls": ["https://tbk.ego-mv.de/BuergerKontoWeb"] - }, { "exclude": ["ios"], "shortName": {"" : "Telekom DeMail"}, diff --git a/resources/updatable-files/supported-readers.json b/resources/updatable-files/supported-readers.json index ea3ac75..9c5e474 100644 --- a/resources/updatable-files/supported-readers.json +++ b/resources/updatable-files/supported-readers.json @@ -51,8 +51,8 @@ [ { "Platforms": [{"os": "win"}, {"os": "mac"}, {"os": "unknown"}], - "DE": "Es ist notwendig die Treiber vom Hersteller zu installieren.", - "EN": "It is necessary to install the drivers from the manufacturer." + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." } ] }, @@ -83,8 +83,8 @@ [ { "Platforms": [{"os": "win"}, {"os": "mac"}, {"os": "unknown"}], - "DE": "Es ist notwendig die Treiber vom Hersteller zu installieren.", - "EN": "It is necessary to install the drivers from the manufacturer." + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." } ] }, @@ -110,6 +110,14 @@ "Platforms": [{"os": "unknown"}], "URL": "https://www.reiner-sct.com/support/support-anfrage/?os=Linux&productGroup=77304735&product=77304856&q=driver#choice5" } + ], + "Information": + [ + { + "Platforms":[{"os": "win", "min": "10.0"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -134,6 +142,19 @@ "Platforms": [{"os": "unknown"}], "URL": "https://www.reiner-sct.com/support/support-anfrage/?os=Linux&productGroup=77304735&product=77304828&q=driver#choice5" } + ], + "Information": + [ + { + "Platforms":[{"os": "mac", "max": "10.10"}], + "DE": "Trotz der Installation des vom Hersteller bereitgestellten Treibers, wird das Kartenlesegerät vom System nicht erkannt.", + "EN": "Despite the driver being installed correctly, the card reader will not be recognized by the operating system." + }, + { + "Platforms":[{"os": "mac", "min": "10.11"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -171,13 +192,31 @@ "Drivers": [ { - "Platforms": [{"os": "mac", "min": "10.11", "max": "10.11"}], - "URL": "https://support.identiv.com/sdi010-011/" + "Platforms": [{"os": "win"}], + "URL": "http://www.scm-pc-card.de/index.php?page=download&function=show_downloads&lang=de&product_id=738" }, { "Platforms": [{"os": "unknown"}], "URL": "https://support.identiv.com/sdi010-011/" } + ], + "Information": + [ + { + "Platforms": [{"os": "win", "max": "6.1"}], + "DE": "Bitte beachten Sie, dass das Kartenlesegerät nur mit der SDI011-generic-version funktioniert. Nach der Installation ist ein Neustart erforderlich.", + "EN": "Please note that the card reader only works with the SDI011-generic-version. A reboot is required after the installation of the driver." + }, + { + "Platforms":[{"os": "win", "min": "6.2"}], + "DE": "Bitte beachten Sie, dass das Kartenlesegerät nur mit der SDI011-nPA-version funktioniert. Nach der Installation ist ein Neustart erforderlich.", + "EN": "Please note that the card reader only works with the SDI011-nPA-version. A reboot is required after the installation of the driver." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Der Status des Kartenlesegeräts wird nach der Treiberinstallation und einem Neustart zwar als 'Treiber installiert' angezeigt, allerdings tritt bei der PIN-Eingabe ein Protokollfehler auf.", + "EN": "Once the driver is installed and the system is re-booted, the card reader state will be shown as 'Driver installed'. However, upon entering the PIN a protocol error occurs." + } ] }, @@ -185,18 +224,14 @@ "VendorId": "0x04E6", "ProductId": "0x5292", "Name": "SCL01x Contactless Reader", - "Pattern": "(SCM Microsystems Inc. )?SCL011 Contactless Reader", + "Pattern": "^(SCM Microsystems Inc. )?SCL011 Contactless Reader( 0)?$", "Icon": "img_Identive_SCL011.png", "IconWithNPA": "img_Identive_SCL011_mit_ausweis.png", "Drivers": [ { - "Platforms": [{"os": "win", "min": "10.0"}], - "URL": "https://support.identiv.com/scl010-scl011/" - }, - { - "Platforms": [{"os": "mac", "min": "10.11", "max": "10.11"}], - "URL": "https://support.identiv.com/scl010-scl011/" + "Platforms": [{"os": "win"}, {"os": "mac"}], + "URL": "https://www.scm-pc-card.de/index.php?lang=de&page=download&function=show_downloads&product_id=630" }, { "Platforms": [{"os": "unknown"}], @@ -206,9 +241,14 @@ "Information": [ { - "Platforms": [{"os": "win", "min": "6.1", "max": "6.1"}], - "DE": "Weder der Windows Treiber noch der Installer werden dem Kartenlesegerät zugeordnet. Erst eine manuelle Installation über den Gerätemanager, bei der der Hinweis, dass es sich um einen falschen Treiber handelt, zu ignorieren ist, führt zu einem Erfolg.", - "EN": "Neither the Windows driver nor the installer are assigned to the card reader. Only a manual installation via the device manager, ignoring the note that it is the wrong driver, leads to a success." + "Platforms": [{"os": "win"}], + "DE": "Das Kartenlesegerät funktioniert nur mit der SCL011-nPA-version. Nach der Installation ist ein Neustart erforderlich.", + "EN": "The cardreader works only with the SCL011-nPA-version. A reboot is required after the installation of the driver." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." } ] }, @@ -217,7 +257,7 @@ "VendorId": "0x04E6", "ProductId": "0x5790", "Name": "Identiv Cloud 3700 F", - "Pattern": "(CLOUD 3700 F Contactless Reader|Identiv uTrust 3700 F CL Reader)", + "Pattern": "(Identiv CLOUD 3700 F Contactless Reader 0|Identiv uTrust 3700 F CL Reader)", "Icon": "img_Identive_Cloud_3700_F.png", "IconWithNPA": "img_Identive_Cloud_3700_F_mit_ausweis.png", "Drivers": @@ -241,7 +281,7 @@ "VendorId": "0x04E6", "ProductId": "0x5591", "Name": "Identiv SCL3711", - "Pattern": "SCL3711", + "Pattern": "(SCM Microsystems SCL3711 reader & NFC device 0|SCL3711 reader and NFC device)", "Icon": "img_Identive_SCL3711.png", "IconWithNPA": "img_Identive_SCL3711_mit_ausweis.png", "Drivers": @@ -251,13 +291,21 @@ "URL": "https://support.identiv.com/scl3711/" }, { - "Platforms": [{"os": "mac", "max": "10.11"}], + "Platforms": [{"os": "mac"}], "URL": "https://support.identiv.com/scl3711/" }, { "Platforms": [{"os": "unknown"}], "URL": "https://support.identiv.com/scl3711/" } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}, {"os":"mac", "max": "10.10"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -265,7 +313,7 @@ "VendorId": "0x04E6", "ProductId": "0x5720", "Name": "Identiv Cloud 4700 F", - "Pattern": "(CLOUD 4700 F Contactless Reader|Identiv uTrust 4700 F Dual Interface Reader)", + "Pattern": "(Identiv CLOUD 4700 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4700 F Dual Interface Reader)", "Icon": "img_Identive_Cloud_4700_F.png", "IconWithNPA": "img_Identive_Cloud_4700_F_mit_ausweis.png", "Drivers": @@ -282,6 +330,14 @@ "Platforms": [{"os": "unknown"}], "URL": "http://www.scm-pc-card.de/index.php?lang=en&page=download&function=show_downloads&product_id=832" } + ], + "Information": + [ + { + "Platforms": [{"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -289,22 +345,30 @@ "VendorId": "0x04E6", "ProductId": "0x5724", "Name": "Identiv Cloud 4701 F", - "Pattern": "(CLOUD 4701 F Contactless Reader|Identiv uTrust 4701 F Dual Interface Reader)", + "Pattern": "(Identiv CLOUD 4701 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4701 F Dual Interface Reader)", "Icon": "img_Identive_Cloud_4701_F.png", "IconWithNPA": "img_Identive_Cloud_4701_F_mit_ausweis.png", "Drivers": [ { "Platforms": [{"os": "win"}], - "URL": "https://support.identiv.com/4701f/" + "URL": "http://www.scm-pc-card.de/index.php?page=download&function=show_downloads&lang=de&product_id=921" }, { "Platforms": [{"os": "mac"}], - "URL": "https://support.identiv.com/4701f/" + "URL": "http://www.scm-pc-card.de/index.php?page=download&function=show_downloads&lang=de&product_id=921" }, { "Platforms": [{"os": "unknown"}], - "URL": "https://support.identiv.com/4701f/" + "URL": "http://www.scm-pc-card.de/index.php?page=download&function=show_downloads&lang=de&product_id=921" + } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}, {"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." } ] }, @@ -313,7 +377,7 @@ "VendorId": "0x072F", "ProductId": "0x2200", "Name": "ACS ACR122U", - "Pattern": "ACS ACR122U", + "Pattern": "ACS ACR122U PICC Interface( 0)?", "Icon": "img_ACS_ACR122U.png", "IconWithNPA": "img_ACS_ACR122U_mit_ausweis.png", "Drivers": @@ -322,6 +386,15 @@ "Platforms": [{"os": "win"}, {"os": "mac"}], "URL": "https://www.acs.com.hk/en/products/3/acr122u-usb-nfc-reader/" } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}, {"os": "mac"}], + "DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." + } + ] }, @@ -329,7 +402,7 @@ "VendorId": "0x072F", "ProductId": "0x0901", "Name": "ACS ACR1281U", - "Pattern": "ACS ACR1281 PICC Reader", + "Pattern": "ACS ACR1281 PICC Reader( 0)?", "Icon": "img_ACS_ACR1281U.png", "IconWithNPA": "img_ACS_ACR1281U_mit_ausweis.png", "Drivers": @@ -342,6 +415,19 @@ "Platforms": [{"os": "mac"}], "URL": "http://www.acs.com.hk/en/driver/151/acr1281u-npa-contactless-reader/" } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}], + "DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -349,7 +435,7 @@ "VendorId": "0x072F", "ProductId": "0x223B", "Name": "ACS ACR1252U", - "Pattern": "ACS ACR1252 Dual Reader|ACS ACR1252 1S CL Reader", + "Pattern": "ACS ACR1252 1S CL Reader PICC 0|ACS ACR1252 Dual Reader(\\(1\\)|\\(2\\))", "Icon": "img_ACS_ACR1252U.png", "IconWithNPA": "img_ACS_ACR1252U_mit_ausweis.png", "Drivers": @@ -359,9 +445,23 @@ "URL": "http://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/#tab_downloads" }, { - "Platforms": [{"os": "mac", "min": "10.13", "max": "10.13"}], + "Platforms": [{"os": "mac"}], "URL": "http://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/#tab_downloads" } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}], + "DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } + ] }, @@ -369,22 +469,58 @@ "VendorId": "0x076B", "ProductId": "0x5340", "Name": "OMNIKEY 5021-CL", - "Pattern": "OMNIKEY CardMan 5x21-CL|OMNIKEY CardMan \\(076B:5340\\) 5021 CL", - "Icon": "img_HID_Omnikey_Mobile_Reader_5021_CL.png", - "IconWithNPA": "img_HID_Omnikey_Mobile_Reader_5021_CL_mit_ausweis.png", + "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", "Drivers": [ { "Platforms": [{"os": "win"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "URL": "https://www.hidglobal.de/drivers" }, { - "Platforms": [{"os": "mac", "min": "10.11", "max": "10.11"}, {"os": "mac", "min": "10.13", "max": "10.13"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "Platforms": [{"os": "mac"}], + "URL": "https://www.hidglobal.de/drivers" }, { "Platforms": [{"os": "unknown"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "URL": "https://www.hidglobal.de/drivers" + } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}, {"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } + ] + }, + + { + "VendorId": "0x076B", + "ProductId": "0x5022", + "Name": "OMNIKEY 5022-CL", + "Pattern": "HID Global OMNIKEY 5022 Smart Card Reader 0|HID Global OMNIKEY 5022 Smart Card Reader", + "Icon": "img_HID_Omnikey_Mobile_Reader_502X_CL.png", + "IconWithNPA": "img_HID_Omnikey_Mobile_Reader_502X_CL_mit_ausweis.png", + "Drivers": + [ + { + "Platforms": [{"os": "win"}], + "URL": "https://www.hidglobal.de/drivers" + }, + { + "Platforms": [{"os": "mac"}], + "URL": "https://www.hidglobal.de/drivers" + } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}, {"os": "mac"}], + "DE":"Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN":"The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." } ] }, @@ -393,19 +529,27 @@ "VendorId": "0x076B", "ProductId": "0x5321", "Name": "OMNIKEY 5321 v2", - "Pattern": "OMNIKEY CardMan 5x21-CL|OMNIKEY CardMan \\(076B:5321\\) 5321", + "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", "Drivers": [ { "Platforms": [{"os": "win"}], - "URL": "https://www.hidglobal.de/Download-EULA?headless=®ionfree=&nid=29765" + "URL": "https://www.hidglobal.de/drivers" }, { - "Platforms": [{"os": "mac", "min": "10.11", "max": "10.11"}], + "Platforms": [{"os": "mac"}], "URL": "https://www.hidglobal.de/drivers" } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}, {"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -413,22 +557,30 @@ "VendorId": "0x076B", "ProductId": "0x5421", "Name": "OMNIKEY 5421", - "Pattern": "OMNIKEY CardMan \\(076B:5421\\) 5421|OMNIKEY Smart Card Reader USB", + "Pattern": "OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \\(076B:5421\\) 5421(\\(1\\)|\\(2\\))", "Icon": "img_HID_Omnikey_5421.png", "IconWithNPA": "img_HID_Omnikey_5421_mit_ausweis.png", "Drivers": [ { "Platforms": [{"os": "win"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "URL": "https://www.hidglobal.com/drivers" }, { - "Platforms": [{"os": "mac", "min": "10.11", "max": "10.11"}, {"os": "mac", "min": "10.13", "max": "10.13"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "Platforms": [{"os": "mac"}], + "URL": "https://www.hidglobal.com/drivers" }, { "Platforms": [{"os": "unknown"}], - "URL": "https://www.hidglobal.com/drivers?field_brand_tid=24&product_id=4077&os=All" + "URL": "https://www.hidglobal.com/drivers" + } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}, {"os": "mac"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." } ] }, @@ -437,14 +589,27 @@ "VendorId": "0x0AB1", "ProductId": "0x0003", "Name": "OBID RFID-Reader", - "Pattern": "FEIG ELECTRONIC GmbH OBID myAXXESS basic", + "Pattern": "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430", "Icon": "img_FEIG_myAXXES_basic.png", "IconWithNPA": "img_FEIG_myAXXES_basic_mit_ausweis.png", "Drivers": [ { "Platforms": [{"os": "win"}], - "URL": "http://www.feig.de/downloads/" + "URL": "https://www.feig.de/login/" + } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Es ist kein Treiber vom Hersteller vorhanden.", + "EN": "There is no driver from the manufacturer." } ] }, @@ -453,19 +618,27 @@ "VendorId": "0x08E6", "ProductId": "0x5504", "Name": "Gemalto Prox-SU Contactless", - "Pattern": "Gemalto Prox( |-)SU($| USB| Contactless_)", + "Pattern": "Gemalto Prox( |-)SU( Contactless_| USB PC LinkReader(\\(1\\)|\\(2\\)))", "Icon": "img_Gemalto_Prox_SU.png", "IconWithNPA": "img_Gemalto_Prox_SU_mit_ausweis.png", "Drivers": [ { - "Platforms": [{"os": "win", "max": "6.1"}, {"os": "win", "min": "10.0"}], - "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#msdrivers" + "Platforms": [{"os": "win"}], + "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#windows10" }, { - "Platforms": [{"os": "mac", "min": "10.13", "max": "10.13"}], + "Platforms": [{"os": "mac"}], "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#macosxdrivers" } + ], + "Information": + [ + { + "Platforms":[{"os": "win"}, {"os":"mac","max":"10.10"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + } ] }, @@ -473,18 +646,26 @@ "VendorId": "0x08E6", "ProductId": "0x5503", "Name": "Prox-DU HID", - "Pattern": "Gemalto Prox(-DU| Dual)($| USB| Contactless_)", + "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", "Drivers": [ { - "Platforms": [{"os": "win", "max": "6.1"}, {"os": "win", "min": "10.0"}], - "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#.WOIQijvyjyQ" + "Platforms": [{"os": "win"}], + "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#windows10" }, { "Platforms": [{"os": "mac"}], - "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#.WOIQijvyjyQ" + "URL": "http://support.gemalto.com/index.php?id=prox-du_prox-su#macosxdrivers" + } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}, {"os": "mac"}], + "DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." } ] }, @@ -499,34 +680,26 @@ "Drivers": [ { - "Platforms": [{"os": "win"}], - "URL": "http://www.cherry.de/cid/download.php" - }, - { - "Platforms": [{"os": "mac", "min": "10.11"}], - "URL": "http://www.cherry.de/cid/download.php" - }, - { - "Platforms": [{"os": "unknown"}], - "URL": "http://www.cherry.de/cid/download.php" + "Platforms": [{"os": "win"}, {"os": "mac", "min": "10.11"}, {"os": "unknown"}], + "URL": "https://cherry.de/download/de/download.php" } ], "Information": [ { "Platforms": [{"os": "win"}], - "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren.", - "EN": "It is necessary to install the drivers from the manufacturer." + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." }, { "Platforms": [{"os": "mac", "max": "10.10"}], "DE": "Der vom Hersteller angebotene Treiber für OS X 10.10 führt nicht zum Erfolg. Bitte verwenden Sie alternativ den ebenfalls vom Hersteller angebotenen Treiber für macOS 10.12.", - "EN": "The driver from the manufacturer is not supported on OS X 10.10. For the function of the card reader the driver for macOS 10.12 must be installed." + "DE": "The driver from the manufacturer is not supported on OS X 10.10. Please install the driver for macOS 10.12 instead." }, { "Platforms": [{"os": "mac", "min": "10.11"}], - "DE": "Nach der Installation ist ein Neustart erforderlich.", - "EN": "A reboot is required after the installation of the driver." + "DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." } ] }, @@ -541,36 +714,86 @@ "Drivers": [ { - "Platforms": [{"os": "win"}], - "URL": "http://www.cherry.de/cid/download.php" - }, - { - "Platforms": [{"os": "mac", "min": "10.11"}], - "URL": "http://www.cherry.de/cid/download.php" - }, - { - "Platforms": [{"os": "unknown"}], - "URL": "http://www.cherry.de/cid/download.php" + "Platforms": [{"os": "win"}, {"os": "mac", "min": "10.11"}, {"os": "unknown"}], + "URL": "https://cherry.de/download/de/download.php" } ], "Information": [ { "Platforms": [{"os": "win"}], - "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren.", - "EN": "It is necessary to install the drivers from the manufacturer." + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." }, { "Platforms": [{"os": "mac", "max": "10.10"}], "DE": "Der vom Hersteller angebotene Treiber für OS X 10.10 führt nicht zum Erfolg. Bitte verwenden Sie alternativ den ebenfalls vom Hersteller angebotenen Treiber für macOS 10.12.", - "EN": "The driver from the manufacturer is not supported on OS X 10.10. For the function of the card reader the driver for macOS 10.12 must be installed." + "EN": "The driver from the manufacturer is not supported on OS X 10.10. Please install the driver for macOS 10.12 instead." }, { "Platforms": [{"os": "mac", "min": "10.11"}], - "DE": "Nach der Installation ist ein Neustart erforderlich.", - "EN": "A reboot is required after the installation of the driver." + "DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Falls Sie jedoch den Treiber von der Webseite des Herstellers installieren möchten, ist anschließend ein Neustart erforderlich.", + "EN": "The card reader operates with the driver automatically installed by the system. In case you prefer to install the driver from the manufacturer's webseite, a reboot is required." + } + ] + }, + + { + "VendorId": "0x046A", + "ProductId": "0x0072", + "Name": "Cherry ST-1275", + "Pattern": "(Cherry ST-1275|Cherry SmartTerminal XX7X-RF 0)", + "Icon": "img_Cherry_ST_1275.png", + "IconWithNPA": "img_Cherry_ST_1275_mit_ausweis.png", + "Drivers": + [ + { + "Platforms": [{"os": "win"}, {"os": "unknown"}], + "URL": "https://cherry.de/download/de/download.php" + } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}], + "DE": "Es ist notwendig, die Treiber vom Hersteller zu installieren. Dazu folgen Sie bitte dem jeweiligen Link für Ihr Betriebssystem zur Herstellerseite.", + "EN": "It is necessary to install the drivers from the manufacturer. Please follow the relevant link for your operating system." + }, + { + "Platforms": [{"os": "mac"}], + "DE": "Es ist kein Treiber vom Hersteller vorhanden.", + "EN": "There is no driver from the manufacturer." + } + ] + }, + + { + "VendorId": "0x2133", + "ProductId": "0x010B", + "Name": "Signotec Omega Pad", + "Pattern": "NXP PR533( 0)?", + "Icon": "img_Signotec_Omega_Pad.png", + "IconWithNPA": "img_Signotec_Omega_Pad_mit_ausweis.png", + "Drivers": + [ + { + "Platforms": [{"os": "win"}, {"os": "mac"}], + "URL": "https://www.signotec.com/download/treiber/" + }, + { + "Platforms": [{"os": "unknown"}], + "URL": "https://www.signotec.com/download/treiber/" + } + ], + "Information": + [ + { + "Platforms": [{"os": "win"}, {"os": "mac"}], + "DE": "Das Kartenlesegerät funktioniert mit dem systemseitig installierten Treiber. Es ist kein Treiber vom Hersteller vorhanden.", + "EN": "The card reader operates with the driver automatically installed by the system. There is no driver from the manufacturer." } ] } + ] } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2b63ed3..b6dd3ec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -103,17 +103,7 @@ IF(IOS) SET(IOS_APPICON_PATH "") ENDIF() - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall@2x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall@3x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall40.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall40@2x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}iconSmall40@3x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}icon60@2x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}icon60@3x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}icon76.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}icon76@2x.png) - LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}icon83.5@2x.png) + LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/appIcons/${IOS_APPICON_PATH}Images.xcassets) LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/launchImages/Default-568h@2x.png) LIST(APPEND IOS_RESOURCES ${RESOURCES_DIR}/images/iOS/launchImages/launchImage568@2x.png) @@ -193,6 +183,7 @@ IF(IOS) TARGET_LINK_LIBRARIES(AusweisApp -L${QT_HOST_PREFIX}/qml/QtQuick.2 -lqtquick2plugin) SET_TARGET_PROPERTIES(AusweisApp PROPERTIES RESOURCE "${IOS_RESOURCES}") + SET_TARGET_PROPERTIES(AusweisApp PROPERTIES XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon") SET_TARGET_PROPERTIES(AusweisApp PROPERTIES XCODE_ATTRIBUTE_ARCHS "arm64") SET_TARGET_PROPERTIES(AusweisApp PROPERTIES XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") SET_TARGET_PROPERTIES(AusweisApp PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "10.0") diff --git a/src/activation/webservice/WebserviceActivationContext.cpp b/src/activation/webservice/WebserviceActivationContext.cpp index c309dd9..b2878d6 100644 --- a/src/activation/webservice/WebserviceActivationContext.cpp +++ b/src/activation/webservice/WebserviceActivationContext.cpp @@ -127,7 +127,7 @@ bool WebserviceActivationContext::sendRedirect(const QUrl& pRedirectAddress, con if (!mRequest->isConnected()) { - mSendError = tr("The connection to the bowser was lost. No forwarding was executed. Please try to" + mSendError = tr("The connection to the browser was lost. No forwarding was executed. Please try to" " call the URL again manually: %2").arg(redirectAddressWithResult.toString(), redirectAddressWithResult.host()); return false; } diff --git a/src/card/CMakeLists.txt b/src/card/CMakeLists.txt index 2719ab3..f26ece3 100644 --- a/src/card/CMakeLists.txt +++ b/src/card/CMakeLists.txt @@ -8,7 +8,7 @@ IF(TARGET Qt5::Nfc) ADD_SUBDIRECTORY(nfc) ENDIF() -IF(LINUX OR ANDROID OR IOS) +IF(ANDROID OR IOS OR WINDOWS_STORE OR "${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") ADD_SUBDIRECTORY(bluetooth) ENDIF() diff --git a/src/card/base/EstablishPACEChannelParser.cpp b/src/card/base/EstablishPACEChannelParser.cpp index d869480..eaba5e4 100644 --- a/src/card/base/EstablishPACEChannelParser.cpp +++ b/src/card/base/EstablishPACEChannelParser.cpp @@ -71,8 +71,8 @@ EstablishPACEChannelParser EstablishPACEChannelParser::fromCcid(const QByteArray QByteArray chat; QByteArray certificateDescription; - // Chat and certificate description are only available in PIN mode in an authentication. - if (passwordId == PACE_PASSWORD_ID::PACE_PIN) + // Chat and certificate description are only available in authentications via PIN mode or CAN allowed mode + if (passwordId == PACE_PASSWORD_ID::PACE_PIN || passwordId == PACE_PASSWORD_ID::PACE_CAN) { if (channelInput->mCertificateDescription) { diff --git a/src/card/base/asn1/ASN1TemplateUtil.h b/src/card/base/asn1/ASN1TemplateUtil.h index 4820a53..e3d77df 100644 --- a/src/card/base/asn1/ASN1TemplateUtil.h +++ b/src/card/base/asn1/ASN1TemplateUtil.h @@ -138,7 +138,7 @@ static const int CB_ERROR = 0; }\ \ template<>\ - name * decodeAsn1Object(name * *pObject, const unsigned char** pData, long pDataLen)\ + name * decodeAsn1Object(name** pObject, const unsigned char** pData, long pDataLen)\ {\ return d2i_##name(pObject, pData, pDataLen);\ }\ @@ -152,7 +152,7 @@ static const int CB_ERROR = 0; #define DECLARE_ASN1_OBJECT(name)\ template<> name * newAsn1Object();\ template<> int encodeAsn1Object(name * pObject, unsigned char** encoded);\ - template<> name * decodeAsn1Object(name * *pObject, const unsigned char** pData, long pDataLen);\ + template<> name * decodeAsn1Object(name** pObject, const unsigned char** pData, long pDataLen);\ template<> void freeAsn1Object(name * pObject); diff --git a/src/card/base/asn1/CertificateDescription.cpp b/src/card/base/asn1/CertificateDescription.cpp index 1bf797c..f9bd5e1 100644 --- a/src/card/base/asn1/CertificateDescription.cpp +++ b/src/card/base/asn1/CertificateDescription.cpp @@ -273,8 +273,8 @@ QString CertificateDescription::getPurpose() const QString CertificateDescription::getDataSecurityOfficer() const { static const QStringList SEARCH_ITEMS({QStringLiteral( - "Hinweis auf die f\u00FCr den Diensteanbieter zust\u00E4ndigen Stellen, " - "die die Einhaltung der Vorschriften zum Datenschutz kontrollieren:")}); + "Hinweis auf die f\u00FCr den Diensteanbieter zust\u00E4ndigen Stellen, " + "die die Einhaltung der Vorschriften zum Datenschutz kontrollieren:")}); return getField(getTermsOfUsage(), SEARCH_ITEMS); } diff --git a/src/card/base/asn1/SecurityInfo.h b/src/card/base/asn1/SecurityInfo.h index 2d72897..a9c0de3 100644 --- a/src/card/base/asn1/SecurityInfo.h +++ b/src/card/base/asn1/SecurityInfo.h @@ -54,7 +54,7 @@ class SecurityInfo * Sub classes must override this method to allow the base class to access * the protocol's ASN1_OBJECT pointer. */ - virtual ASN1_OBJECT * getProtocolObjectIdentifier() const; + virtual ASN1_OBJECT* getProtocolObjectIdentifier() const; protected: SecurityInfo(); diff --git a/src/card/bluetooth/BluetoothReaderManagerPlugIn_p.h b/src/card/bluetooth/BluetoothReaderManagerPlugIn_p.h index 8337d54..32995da 100644 --- a/src/card/bluetooth/BluetoothReaderManagerPlugIn_p.h +++ b/src/card/bluetooth/BluetoothReaderManagerPlugIn_p.h @@ -17,7 +17,7 @@ class BluetoothReaderManagerPlugInPrivate Q_OBJECT Q_DECLARE_PUBLIC(BluetoothReaderManagerPlugIn) - BluetoothReaderManagerPlugIn * const q_ptr; + BluetoothReaderManagerPlugIn* const q_ptr; BluetoothReaderManagerPlugInPrivate(BluetoothReaderManagerPlugIn* pPublic); private Q_SLOTS: diff --git a/src/card/drivers/ReaderDetector.h b/src/card/drivers/ReaderDetector.h index 8b78d8e..8dc2655 100644 --- a/src/card/drivers/ReaderDetector.h +++ b/src/card/drivers/ReaderDetector.h @@ -45,7 +45,7 @@ class ReaderDetector #endif #ifdef Q_OS_LINUX - DeviceListener * mDeviceListener; + DeviceListener* mDeviceListener; #endif bool initNativeEvents(); diff --git a/src/global/EnumHelper.h b/src/global/EnumHelper.h index b5b8cd2..8a13ff4 100644 --- a/src/global/EnumHelper.h +++ b/src/global/EnumHelper.h @@ -28,12 +28,12 @@ namespace governikus return pStr;\ }\ \ - inline QString operator+(const QString &pStr, enumName pType)\ + inline QString operator+(const QString& pStr, enumName pType)\ {\ return pStr + Enum::getName(pType);\ }\ \ - inline QString operator+(enumName pType, const QString &pStr)\ + inline QString operator+(enumName pType, const QString& pStr)\ {\ return Enum::getName(pType) + pStr;\ }\ diff --git a/src/global/GlobalStatus.cpp b/src/global/GlobalStatus.cpp index f346895..6ae9e5f 100644 --- a/src/global/GlobalStatus.cpp +++ b/src/global/GlobalStatus.cpp @@ -230,9 +230,9 @@ QString GlobalStatus::toErrorDescription(const bool pSimplifiedVersion) const case Code::Card_Protocol_Error: return QStringLiteral("%1 %3.").arg( - tr("A protocol error occurred. Please make sure that your ID card is placed correctly on the card reader and try again. If the problem occurs again, please contact our support at"), - tr("https://www.ausweisapp.bund.de/en/service/support/"), - tr("AusweisApp2 Support")); + tr("A protocol error occurred. Please make sure that your ID card is placed correctly on the card reader and try again. If the problem occurs again, please contact our support at"), + tr("https://www.ausweisapp.bund.de/en/service/support/"), + tr("AusweisApp2 Support")); case Code::Card_Invalid_Pin: return tr("The given PIN is invalid."); diff --git a/src/network/HttpRequest.cpp b/src/network/HttpRequest.cpp index a085795..3bd9c97 100644 --- a/src/network/HttpRequest.cpp +++ b/src/network/HttpRequest.cpp @@ -10,7 +10,7 @@ using namespace governikus; Q_DECLARE_LOGGING_CATEGORY(network) -#define CAST_OBJ(parser) HttpRequest * obj = static_cast(parser->data); +#define CAST_OBJ(parser) HttpRequest* obj = static_cast(parser->data); HttpRequest::HttpRequest(QAbstractSocket* pSocket, QObject* pParent) : QObject(pParent) diff --git a/src/widget/SelfInformationWidget.cpp b/src/widget/SelfInformationWidget.cpp index bb93ff9..a144cd1 100644 --- a/src/widget/SelfInformationWidget.cpp +++ b/src/widget/SelfInformationWidget.cpp @@ -46,6 +46,11 @@ void SelfInformationWidget::paintEvent(QPaintEvent*) void SelfInformationWidget::onSettingsChanged() { + const auto desc = tr("Use the button 'See my personal data now...' to display the data stored on your ID card. An Internet connection is required to display the data."); + const auto hyperlink = QStringLiteral(R"(%2)").arg(tr("https://www.ausweisapp.bund.de/datenschutz/"), tr("data privacy statement")); + const auto info = tr("Your personal data is neither saved nor processed in any way. Please see our %1 for details on how your personal data is processed.").arg(hyperlink); + mUi->descriptionLabel->setText(desc + QStringLiteral("

") + info); + if (AppSettings::getInstance().getGeneralSettings().useSelfAuthTestUri()) { mUi->selfAuthenticationButton->setStyleSheet(QStringLiteral("QPushButton { background: red; }")); @@ -64,6 +69,7 @@ void SelfInformationWidget::changeEvent(QEvent* pEvent) if (pEvent->type() == QEvent::LanguageChange) { mUi->retranslateUi(this); + onSettingsChanged(); } QWidget::changeEvent(pEvent); } diff --git a/src/widget/SelfInformationWidget.ui b/src/widget/SelfInformationWidget.ui index 5c98d25..933fe49 100644 --- a/src/widget/SelfInformationWidget.ui +++ b/src/widget/SelfInformationWidget.ui @@ -111,12 +111,12 @@ Qt::TabFocus - - Use the button 'See my personal data now...' to display the data stored on your ID card. An Internet connection is required to display the data. Your personal data is neither saved nor processed in any way. - true + + true + diff --git a/test/qt/configuration/test_ProviderConfigurationParser.cpp b/test/qt/configuration/test_ProviderConfigurationParser.cpp index 489496f..9035d09 100644 --- a/test/qt/configuration/test_ProviderConfigurationParser.cpp +++ b/test/qt/configuration/test_ProviderConfigurationParser.cpp @@ -250,11 +250,11 @@ class test_ProviderConfigurationParser { QTest::addColumn("count"); - const int desktop = 61; + const int desktop = 58; QTest::newRow("win") << desktop; QTest::newRow("mac") << desktop; QTest::newRow("linux") << desktop; - QTest::newRow("android") << 56; + QTest::newRow("android") << 53; QTest::newRow("ios") << 13; } diff --git a/test/qt/configuration/test_ReaderConfiguration.cpp b/test/qt/configuration/test_ReaderConfiguration.cpp index abe1ad9..be3def8 100644 --- a/test/qt/configuration/test_ReaderConfiguration.cpp +++ b/test/qt/configuration/test_ReaderConfiguration.cpp @@ -83,28 +83,32 @@ class test_ReaderConfiguration QTest::newRow("KOBIL IDToken") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken" << "img_KOBIL_ID_Token" << "KOBIL (Systems )?IDToken"; QTest::newRow("SCM SDI011") << UsbId(0x04E6, 0x512B) << "SDI011 Contactless Reader" << "SDI011 Contactless Reader" << "img_Identive_SDI011" << "SDI011 (USB )?(Smart Card|Contactless) Reader"; - QTest::newRow("SCM SCL011") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "SCL01x Contactless Reader" << "img_Identive_SCL011" << "(SCM Microsystems Inc. )?SCL011 Contactless Reader"; + QTest::newRow("SCM SCL011") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "SCL01x Contactless Reader" << "img_Identive_SCL011" << "^(SCM Microsystems Inc. )?SCL011 Contactless Reader( 0)?$"; - QTest::newRow("ACS-ACR122U") << UsbId(0x072F, 0x2200) << "ACS ACR122U" << "ACS ACR122U" << "img_ACS_ACR122U" << "ACS ACR122U"; - QTest::newRow("ACS-ACR1281U") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U" << "img_ACS_ACR1281U" << "ACS ACR1281 PICC Reader"; - QTest::newRow("ACS-ACR1252U") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader" << "ACS ACR1252U" << "img_ACS_ACR1252U" << "ACS ACR1252 Dual Reader|ACS ACR1252 1S CL Reader"; + QTest::newRow("ACS-ACR122U") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface" << "ACS ACR122U" << "img_ACS_ACR122U" << "ACS ACR122U PICC Interface( 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" << R"(ACS ACR1252 1S CL Reader PICC 0|ACS ACR1252 Dual Reader(\(1\)|\(2\)))"; - QTest::newRow("OMNIKEY 5021") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL" << "img_HID_Omnikey_Mobile_Reader_5021_CL" << "OMNIKEY CardMan 5x21-CL|OMNIKEY CardMan \\(076B:5340\\) 5021 CL"; - QTest::newRow("OMNIKEY 5321 v2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2" << "img_HID_Global_OMNIKEY_5321_V2" << "OMNIKEY CardMan 5x21-CL|OMNIKEY CardMan \\(076B:5321\\) 5321"; - QTest::newRow("OMNIKEY 5421") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421" << "img_HID_Omnikey_5421" << "OMNIKEY CardMan \\(076B:5421\\) 5421|OMNIKEY Smart Card Reader USB"; + 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|HID Global OMNIKEY 5022 Smart Card Reader"; + 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_5421" << R"(OMNIKEY CardMan 5x21-CL 0|OMNIKEY CardMan \(076B:5421\) 5421(\(1\)|\(2\)))"; - QTest::newRow("FEIG OBID myAXXESS RFID-Reader") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic" << "OBID RFID-Reader" << "img_FEIG_myAXXES_basic" << "FEIG ELECTRONIC GmbH OBID myAXXESS basic"; + 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" << "Prox-DU HID" << "img_Gemalto_Prox_DU" << "Gemalto Prox(-DU| Dual)($| USB| Contactless_)"; - QTest::newRow("Gemalto-Prox-SU") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU" << "Gemalto Prox-SU Contactless" << "img_Gemalto_Prox_SU" << "Gemalto Prox( |-)SU($| USB| Contactless_)"; + 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-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) << "Identiv SCL3711" << "Identiv SCL3711" << "img_Identive_SCL3711" << "SCL3711"; - QTest::newRow("Identiv-Cloud-3700-F") << UsbId(0x04E6, 0x5790) << "CLOUD 3700 F Contactless Reader" << "Identiv Cloud 3700 F" << "img_Identive_Cloud_3700_F" << "(CLOUD 3700 F Contactless Reader|Identiv uTrust 3700 F CL Reader)"; - QTest::newRow("Identiv-Cloud-4700-F") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 0" << "Identiv Cloud 4700 F" << "img_Identive_Cloud_4700_F" << "(CLOUD 4700 F Contactless Reader|Identiv uTrust 4700 F Dual Interface Reader)"; - QTest::newRow("Identiv-Cloud-4701-F") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 0" << "Identiv Cloud 4701 F" << "img_Identive_Cloud_4701_F" << "(CLOUD 4701 F Contactless Reader|Identiv uTrust 4701 F Dual Interface Reader)"; + 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)"; + QTest::newRow("Identiv-Cloud-3700-F") << UsbId(0x04E6, 0x5790) << "Identiv CLOUD 3700 F Contactless Reader 0" << "Identiv Cloud 3700 F" << "img_Identive_Cloud_3700_F" << "(Identiv CLOUD 3700 F Contactless Reader 0|Identiv uTrust 3700 F CL Reader)"; + QTest::newRow("Identiv-Cloud-4700-F") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 0" << "Identiv Cloud 4700 F" << "img_Identive_Cloud_4700_F" << "(Identiv CLOUD 4700 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4700 F Dual Interface Reader)"; + QTest::newRow("Identiv-Cloud-4701-F") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 0" << "Identiv Cloud 4701 F" << "img_Identive_Cloud_4701_F" << "(Identiv CLOUD 4701 F Contact(less)? Reader( 0| 1)|Identiv uTrust 4701 F Dual Interface Reader)"; QTest::newRow("Cherry-TC-1200-data") << UsbId(0x046A, 0x0091) << "Cherry TC 1200" << "Cherry TC-1200" << "img_Cherry_TC_1200" << "(Cherry TC 1200($|[^-])|TC 12xx-CL 0|Cherry SC Reader \\(046A:0091\\))"; QTest::newRow("Cherry-TC-1300-data") << UsbId(0x046A, 0x0092) << "Cherry TC 1300" << "Cherry TC-1300" << "img_Cherry_TC_1300" << "(Cherry TC 1300|Cherry Smartcard Terminal TC 13xx-CL 0|Cherry SC Reader \\(046A:0092\\))"; + QTest::newRow("Cherry-ST-1275-data") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X-RF 0" << "Cherry ST-1275" << "img_Cherry_ST_1275" << "(Cherry ST-1275|Cherry SmartTerminal XX7X-RF 0)"; + + QTest::newRow("Signotec Omega Pad") << UsbId(0x2133, 0x010B) << "NXP PR533" << "Signotec Omega Pad" << "img_Signotec_Omega_Pad" << "NXP PR533( 0)?"; } @@ -155,86 +159,156 @@ class test_ReaderConfiguration QTest::newRow("REINER SCT cyberJack RFID standard-macosx-10.12") << UsbId(0x0C4B, 0x0500) << "REINER SCT cyberJack RFID standard" << "REINER SCT cyberJack RFID standard"; QTest::newRow("REINER SCT cyberJack RFID standard-macosx-10.13") << UsbId(0x0C4B, 0x0500) << "REINER SCT cyberJack RFID standard" << "REINER SCT cyberJack RFID standard"; + QTest::newRow("REINER SCT cyberJack RFID basis-windows-7.32") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis 0" << "REINER SCT cyberJack RFID basis"; + QTest::newRow("REINER SCT cyberJack RFID basis-windows-7.64") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis 0" << "REINER SCT cyberJack RFID basis"; QTest::newRow("REINER SCT cyberJack RFID basis-windows-8.1") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis 0" << "REINER SCT cyberJack RFID basis"; - QTest::newRow("REINER SCT cyberJack RFID basis-windows-10") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis" << "REINER SCT cyberJack RFID basis"; + QTest::newRow("REINER SCT cyberJack RFID basis-windows-10.0") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis 0" << "REINER SCT cyberJack RFID basis"; QTest::newRow("REINER SCT cyberJack RFID basis-macosx-10.10") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis" << "REINER SCT cyberJack RFID basis"; QTest::newRow("REINER SCT cyberJack RFID basis-macosx-10.11") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis" << "REINER SCT cyberJack RFID basis"; QTest::newRow("REINER SCT cyberJack RFID basis-macosx-10.12") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis" << "REINER SCT cyberJack RFID basis"; + QTest::newRow("REINER SCT cyberJack RFID basis-macosx-10.13") << UsbId(0x0C4B, 0x9102) << "REINER SCT cyberJack RFID basis" << "REINER SCT cyberJack RFID basis"; - QTest::newRow("REINER SCT cyberJack wave-windows-8.1") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave USB 1" << "REINER SCT cyberJack wave"; - QTest::newRow("REINER SCT cyberJack wave-windows-10") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave" << "REINER SCT cyberJack wave"; - QTest::newRow("REINER SCT cyberJack wave-macosx-10.10") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave" << "REINER SCT cyberJack wave"; + QTest::newRow("REINER SCT cyberJack wave-windows-7.32") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave 0" << "REINER SCT cyberJack wave"; + QTest::newRow("REINER SCT cyberJack wave-windows-7.64") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave 0" << "REINER SCT cyberJack wave"; + QTest::newRow("REINER SCT cyberJack wave-windows-8.1") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave 0" << "REINER SCT cyberJack wave"; + QTest::newRow("REINER SCT cyberJack wave-windows-10.0") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave 0" << "REINER SCT cyberJack wave"; QTest::newRow("REINER SCT cyberJack wave-macosx-10.11") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave" << "REINER SCT cyberJack wave"; QTest::newRow("REINER SCT cyberJack wave-macosx-10.12") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave" << "REINER SCT cyberJack wave"; + QTest::newRow("REINER SCT cyberJack wave-macosx-10.13") << UsbId(0x0C4B, 0x0505) << "REINER SCT cyberJack wave" << "REINER SCT cyberJack wave"; + QTest::newRow("KOBIL IDToken-windows-7.32") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken 0" << "KOBIL IDToken"; + QTest::newRow("KOBIL IDToken-windows-7.64") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken 0" << "KOBIL IDToken"; QTest::newRow("KOBIL IDToken-windows-8.1") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken 0" << "KOBIL IDToken"; QTest::newRow("KOBIL IDToken-windows-10") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken 0" << "KOBIL IDToken"; QTest::newRow("KOBIL IDToken-macosx-10.10") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken"; - QTest::newRow("KOBIL IDToken-macosx-10.11") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken" << "KOBIL IDToken"; - QTest::newRow("KOBIL IDToken-macosx-10.12") << UsbId(0x0D46, 0x301D) << "KOBIL IDToken" << "KOBIL IDToken"; + QTest::newRow("KOBIL IDToken-macosx-10.11") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken"; + QTest::newRow("KOBIL IDToken-macosx-10.12") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken"; + QTest::newRow("KOBIL IDToken-macosx-10.13") << UsbId(0x0D46, 0x301D) << "KOBIL Systems IDToken" << "KOBIL IDToken"; - QTest::newRow("SCM SDI011-windows-10") << UsbId(0x04E6, 0x512B) << "SDI011 Contactless Reader" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.10-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(1)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.10-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(2)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.11-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(1)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.11-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(2)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.12-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(1)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SDI011-macosx-10.12-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader(2)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-7.32-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-7.32-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-7.64-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-7.64-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-8.1-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-8.1-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-10-1") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Contactless Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-windows-10-2") << UsbId(0x04E6, 0x512B) << "SCM Microsystems Inc. SDI011 Smart Card Reader 0" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.10-1") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.10-2") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.11-1") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.11-2") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.12-1") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.12-1") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.13-1") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(1)" << "SDI011 Contactless Reader"; + QTest::newRow("SCM SDI011-macosx-10.13-2") << UsbId(0x04E6, 0x512B) << "SDI011 USB Smart Card Reader(2)" << "SDI011 Contactless Reader"; - QTest::newRow("SCM SCL011-windows-10") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; - QTest::newRow("SCM SCL011-macosx-10.11") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-windows-7.32") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-windows-7.64") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-windows-8.1") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-windows-10") << UsbId(0x04E6, 0x5292) << "SCM Microsystems Inc. SCL011 Contactless Reader 0" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-macosx-10.10") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-macosx-10.11") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-macosx-10.12") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("SCM SCL011-macosx-10.13") << UsbId(0x04E6, 0x5292) << "SCL011 Contactless Reader" << "SCL01x Contactless Reader"; + QTest::newRow("ACS-ACR122U-windows-7.32") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface 0" << "ACS ACR122U"; + QTest::newRow("ACS-ACR122U-windows-7.64") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface 0" << "ACS ACR122U"; QTest::newRow("ACS-ACR122U-windows-8.1") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface 0" << "ACS ACR122U"; QTest::newRow("ACS-ACR122U-windows-10") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface 0" << "ACS ACR122U"; - QTest::newRow("ACS-ACR122U-macosx-10.11") << UsbId(0x072F, 0x2200) << "ACS ACR122U" << "ACS ACR122U"; + QTest::newRow("ACS-ACR122U-macosx-10.10") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface" << "ACS ACR122U"; + QTest::newRow("ACS-ACR122U-macosx-10.11") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface" << "ACS ACR122U"; QTest::newRow("ACS-ACR122U-macosx-10.12") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface" << "ACS ACR122U"; + QTest::newRow("ACS-ACR122U-macosx-10.13") << UsbId(0x072F, 0x2200) << "ACS ACR122U PICC Interface" << "ACS ACR122U"; + QTest::newRow("ACS-ACR1281U-windows-7.32") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader 0" << "ACS ACR1281U"; + QTest::newRow("ACS-ACR1281U-windows-7.64") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader 0" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-windows-8.1") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader 0" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-windows-10") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader 0" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-macosx-10.10") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-macosx-10.11") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U"; QTest::newRow("ACS-ACR1281U-macosx-10.12") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U"; + QTest::newRow("ACS-ACR1281U-macosx-10.13") << UsbId(0x072F, 0x0901) << "ACS ACR1281 PICC Reader" << "ACS ACR1281U"; - QTest::newRow("ACS-ACR1252U-windows-8.1-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader PICC 0" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-windows-8.1-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader SAM 0" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-windows-10") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-macosx-10.11-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader(1)" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-macosx-10.11-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader(2)" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-macosx-10.12-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader(1)" << "ACS ACR1252U"; - QTest::newRow("ACS-ACR1252U-macosx-10.12-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader(2)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-windows-7.32-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader PICC 0" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-windows-7.32-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader SAM 0" << "ACS ACR1252 1S CL Reader SAM 0"; + QTest::newRow("ACS-ACR1252U-windows-7.64-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader PICC 0" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-windows-7.64-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader SAM 0" << "ACS ACR1252 1S CL Reader SAM 0"; + QTest::newRow("ACS-ACR1252U-windows-8.1-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader PICC 0" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-windows-8.1-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader SAM 0" << "ACS ACR1252 1S CL Reader SAM 0"; + QTest::newRow("ACS-ACR1252U-windows-10-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader PICC 0" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-windows-10-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 1S CL Reader SAM 0" << "ACS ACR1252 1S CL Reader SAM 0"; + QTest::newRow("ACS-ACR1252U-macosx-10.10-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(1)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.10-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(2)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.11-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(1)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.11-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(2)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.12-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(1)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.12-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(2)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.13-1") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(1)" << "ACS ACR1252U"; + QTest::newRow("ACS-ACR1252U-macosx-10.13-2") << UsbId(0x072F, 0x223B) << "ACS ACR1252 Dual Reader(2)" << "ACS ACR1252U"; + QTest::newRow("OMNIKEY 5021-windows-7.32") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL"; + QTest::newRow("OMNIKEY 5021-windows-7.64") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL"; + QTest::newRow("OMNIKEY 5021-windows-8.1") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL"; QTest::newRow("OMNIKEY 5021-windows-10") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5021-CL"; + QTest::newRow("OMNIKEY 5021-macosx-10.10") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "OMNIKEY 5021-CL"; QTest::newRow("OMNIKEY 5021-macosx-10.11") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "OMNIKEY 5021-CL"; QTest::newRow("OMNIKEY 5021-macosx-10.12") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "OMNIKEY 5021-CL"; + QTest::newRow("OMNIKEY 5021-macosx-10.13") << UsbId(0x076B, 0x5340) << "OMNIKEY CardMan (076B:5340) 5021 CL" << "OMNIKEY 5021-CL"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-32") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-32") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-64") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5321 v2-windows-7-64") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-windows-8.1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5321 v2-windows-8.1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-windows-10") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; - QTest::newRow("OMNIKEY 5321 v2-windows-10") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5321 v2-macosx-10.11") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5321" << "OMNIKEY CardMan 5321"; + QTest::newRow("OMNIKEY 5022-windows-7.32") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-windows-7.64") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-windows-8.1") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-windows-10") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader 0" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-macosx-10.10") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-macosx-10.11") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-macosx-10.12") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "OMNIKEY 5022-CL"; + QTest::newRow("OMNIKEY 5022-macosx-10.13") << UsbId(0x076B, 0x5022) << "HID Global OMNIKEY 5022 Smart Card Reader" << "OMNIKEY 5022-CL"; + + QTest::newRow("OMNIKEY 5321 v2-windows-7.32-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5321 v2-windows-7.32-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-windows-7.64-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5321 v2-windows-7.64-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-windows-8.1-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5321 v2-windows-8.1-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-windows-10.1-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5321 v2-windows-10.1-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.10-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.10-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "OMNIKEY 5321 v2"; QTest::newRow("OMNIKEY 5321 v2-macosx-10.11-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2"; QTest::newRow("OMNIKEY 5321 v2-macosx-10.11-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.12-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.12-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.13-1") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(1)" << "OMNIKEY 5321 v2"; + QTest::newRow("OMNIKEY 5321 v2-macosx-10.13-2") << UsbId(0x076B, 0x5321) << "OMNIKEY CardMan (076B:5321) 5321(2)" << "OMNIKEY 5321 v2"; - QTest::newRow("OMNIKEY 5421-windows-8.1") << UsbId(0x076B, 0x5421) << "OMNIKEY Smart Card Reader USB 0" << "OMNIKEY 5421"; - QTest::newRow("OMNIKEY 5421-windows-10") << UsbId(0x076B, 0x5421) << "OMNIKEY Smart Card Reader USB 0" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-windows-7.1-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5421-windows-7.1-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-windows-8.1-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5421-windows-8.1-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-windows-10.1-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21 0" << "OMNIKEY CardMan 5x21 0"; + QTest::newRow("OMNIKEY 5421-windows-10.1-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan 5x21-CL 0" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-macosx-10.10-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-macosx-10.10-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "OMNIKEY 5421"; QTest::newRow("OMNIKEY 5421-macosx-10.11-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421"; QTest::newRow("OMNIKEY 5421-macosx-10.11-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "OMNIKEY 5421"; QTest::newRow("OMNIKEY 5421-macosx-10.12-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421"; QTest::newRow("OMNIKEY 5421-macosx-10.12-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-macosx-10.13-1") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(1)" << "OMNIKEY 5421"; + QTest::newRow("OMNIKEY 5421-macosx-10.13-2") << UsbId(0x076B, 0x5421) << "OMNIKEY CardMan (076B:5421) 5421(2)" << "OMNIKEY 5421"; + QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-7.32") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader"; + QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-7.64") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader"; QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-8.1") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader"; - QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-10") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic" << "OBID RFID-Reader"; + QTest::newRow("FEIG OBID myAXXESS RFID-Reader-windows-10.1") << UsbId(0x0AB1, 0x0003) << "FEIG ELECTRONIC GmbH OBID myAXXESS basic Slot:CL 358334430" << "OBID RFID-Reader"; - QTest::newRow("Gemalto-Prox-DU-windows-7-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; - QTest::newRow("Gemalto-Prox-DU-windows-7-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-7.32-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; + QTest::newRow("Gemalto-Prox-DU-windows-7.32-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-7.64-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; + QTest::newRow("Gemalto-Prox-DU-windows-7.64-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-8.1-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; QTest::newRow("Gemalto-Prox-DU-windows-8.1-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0" << "Prox-DU HID"; - QTest::newRow("Gemalto-Prox-DU-windows-10-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU" << "Prox-DU HID"; - QTest::newRow("Gemalto-Prox-DU-windows-10-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual" << "Prox-DU HID"; + QTest::newRow("Gemalto-Prox-DU-windows-10-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contact_10900383 0" << "Gemalto Prox-DU Contact_10900383 0"; + QTest::newRow("Gemalto-Prox-DU-windows-10-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox-DU Contactless_10900383 0l" << "Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.10-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC LinkReader(1)" << "Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.10-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC LinkReader(2)" << "Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.11-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(1)" << "Prox-DU HID"; @@ -244,46 +318,71 @@ class test_ReaderConfiguration QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-1") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(1)" << "Prox-DU HID"; QTest::newRow("Gemalto-Prox-DU-windows-macosx-10.13-2") << UsbId(0x08E6, 0x5503) << "Gemalto Prox Dual USB PC Link Reader(2)" << "Prox-DU HID"; - QTest::newRow("Gemalto-Prox-SU-windows-7-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0"; - QTest::newRow("Gemalto-Prox-SU-windows-7-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; - QTest::newRow("Gemalto-Prox-SU-windows-8.1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; - QTest::newRow("Gemalto-Prox-SU-windows-10-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU" << "Gemalto Prox-SU Contactless"; - QTest::newRow("Gemalto-Prox-SU-windows-10-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-7.32-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0"; + QTest::newRow("Gemalto-Prox-SU-windows-7.32-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-7.64-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0"; + QTest::newRow("Gemalto-Prox-SU-windows-7.64-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-8.1-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0"; + QTest::newRow("Gemalto-Prox-SU-windows-8.1-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-10-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contact_10800004 0" << "Gemalto Prox-SU Contact_10800004 0"; + QTest::newRow("Gemalto-Prox-SU-windows-10-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox-SU Contactless_10800004 0" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.10-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(1)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.10-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(2)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.11-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(1)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.11-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(2)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.12-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(1)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.12-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(2)" << "Gemalto Prox-SU Contactless"; QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.13-1") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(1)" << "Gemalto Prox-SU Contactless"; QTest::newRow("Gemalto-Prox-SU-windows-macosx-10.13-2") << UsbId(0x08E6, 0x5504) << "Gemalto Prox SU USB PC LinkReader(2)" << "Gemalto Prox-SU Contactless"; + QTest::newRow("Identiv-SCL-3711-windows-7.32") << UsbId(0x04E6, 0x5591) << "SCM Microsystems SCL3711 reader & NFC device 0" << "Identiv SCL3711"; + QTest::newRow("Identiv-SCL-3711-windows-7.64") << UsbId(0x04E6, 0x5591) << "SCM Microsystems SCL3711 reader & NFC device 0" << "Identiv SCL3711"; QTest::newRow("Identiv-SCL-3711-windows-8.1") << UsbId(0x04E6, 0x5591) << "SCM Microsystems SCL3711 reader & NFC device 0" << "Identiv SCL3711"; - QTest::newRow("Identiv-SCL-3711-windows-10") << UsbId(0x04E6, 0x5591) << "Identiv SCL3711" << "Identiv SCL3711"; + QTest::newRow("Identiv-SCL-3711-windows-10") << UsbId(0x04E6, 0x5591) << "SCM Microsystems SCL3711 reader & NFC device 0" << "Identiv SCL3711"; QTest::newRow("Identiv-SCL-3711-macosx-10.10") << UsbId(0x04E6, 0x5591) << "SCL3711 reader and NFC device" << "Identiv SCL3711"; + QTest::newRow("Identiv-Cloud-3700-F-windows-7.32") << UsbId(0x04E6, 0x5790) << "Identiv CLOUD 3700 F Contactless Reader 0" << "Identiv Cloud 3700 F"; + QTest::newRow("Identiv-Cloud-3700-F-windows-7.64") << UsbId(0x04E6, 0x5790) << "Identiv CLOUD 3700 F Contactless Reader 0" << "Identiv Cloud 3700 F"; QTest::newRow("Identiv-Cloud-3700-F-windows-8.1") << UsbId(0x04E6, 0x5790) << "Identiv CLOUD 3700 F Contactless Reader 0" << "Identiv Cloud 3700 F"; - QTest::newRow("Identiv-Cloud-3700-F-windows-10-1") << UsbId(0x04E6, 0x5790) << "CLOUD 3700 F Contactless Reader" << "Identiv Cloud 3700 F"; - QTest::newRow("Identiv-Cloud-3700-F-windows-10-2") << UsbId(0x04E6, 0x5790) << "CLOUD 3700 F Contact Reader" << "CLOUD 3700 F Contact Reader"; + QTest::newRow("Identiv-Cloud-3700-F-windows-10") << UsbId(0x04E6, 0x5790) << "Identiv CLOUD 3700 F Contactless Reader 0" << "Identiv Cloud 3700 F"; QTest::newRow("Identiv-Cloud-3700-F-macosx-10.10") << UsbId(0x04E6, 0x5790) << "Identiv uTrust 3700 F CL Reader" << "Identiv Cloud 3700 F"; QTest::newRow("Identiv-Cloud-3700-F-macosx-10.11") << UsbId(0x04E6, 0x5790) << "Identiv uTrust 3700 F CL Reader" << "Identiv Cloud 3700 F"; QTest::newRow("Identiv-Cloud-3700-F-macosx-10.12") << UsbId(0x04E6, 0x5790) << "Identiv uTrust 3700 F CL Reader" << "Identiv Cloud 3700 F"; + QTest::newRow("Identiv-Cloud-3700-F-macosx-10.13") << UsbId(0x04E6, 0x5790) << "Identiv uTrust 3700 F CL Reader" << "Identiv Cloud 3700 F"; - QTest::newRow("Identiv-Cloud-4700-F-windows-8.1-1") << UsbId(0x04E6, 0x5720) << "Identive CLOUD 4700 F Contactless Reader 0" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-windows-8.1-2") << UsbId(0x04E6, 0x5720) << "Identive CLOUD 4700 F Contact Reader 0" << "Identive CLOUD 4700 F Contact Reader 0"; - QTest::newRow("Identiv-Cloud-4700-F-windows-10-1") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 0" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-windows-10-2") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contact Reader 0" << "Identiv CLOUD 4700 F Contact Reader 0"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.10-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.10-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.11-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.11-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.12-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4700-F-macosx-10.12-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.32-1") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contact Reader 0" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.32-2") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 1" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.64-1") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contact Reader 0" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.64-2") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 1" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-8.1-1") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contact Reader 0" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-8.1-2") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 1" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-10-1") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contact Reader 0" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-10-2") << UsbId(0x04E6, 0x5720) << "Identiv CLOUD 4700 F Contactless Reader 1" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.10-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.10-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.11-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.11-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.12-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.12-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.13-1") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(2)" << "Identiv Cloud 4700 F"; + QTest::newRow("Identiv-Cloud-4700-F-macosx-10.13-2") << UsbId(0x04E6, 0x5720) << "Identiv uTrust 4700 F Dual Interface Reader(1)" << "Identiv Cloud 4700 F"; - QTest::newRow("Identiv-Cloud-4701-F-windows-8.1-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 0" << "Identiv Cloud 4701 F"; - QTest::newRow("Identiv-Cloud-4701-F-windows-8.1-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv CLOUD 4701 F Contact Reader 0"; - QTest::newRow("Identiv-Cloud-4701-F-windows-10-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 0" << "Identiv Cloud 4701 F"; - QTest::newRow("Identiv-Cloud-4701-F-windows-10-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv CLOUD 4701 F Contact Reader 0"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.32-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-7.32-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 1" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4700-F-windows-7.64-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-7.64-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 1" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-8.1-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-8.1-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 1" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-10-1") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contact Reader 0" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-windows-10-2") << UsbId(0x04E6, 0x5724) << "Identiv CLOUD 4701 F Contactless Reader 1" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.10-1") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(1)" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.10-2") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(2)" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.11-1") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(1)" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.11-2") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(2)" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.12-1") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(1)" << "Identiv Cloud 4701 F"; QTest::newRow("Identiv-Cloud-4701-F-macosx-10.12-2") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(2)" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-macosx-10.13-1") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(1)" << "Identiv Cloud 4701 F"; + QTest::newRow("Identiv-Cloud-4701-F-macosx-10.13-2") << UsbId(0x04E6, 0x5724) << "Identiv uTrust 4701 F Dual Interface Reader(2)" << "Identiv Cloud 4701 F"; QTest::newRow("Cherry-TC-1200-windows-7-64") << UsbId(0x046A, 0x0091) << "Cherry Smartcard Terminal TC 12xx-CL 0" << "Cherry TC-1200"; QTest::newRow("Cherry-TC-1200-windows-8.1-1") << UsbId(0x046A, 0x0091) << "Cherry Smartcard Terminal TC 12xx-CL 0" << "Cherry TC-1200"; @@ -307,6 +406,24 @@ class test_ReaderConfiguration QTest::newRow("Cherry-TC-1300-macosx-10.13-1") << UsbId(0x046A, 0x0092) << "Cherry SC Reader (046A:0092)(1)" << "Cherry TC-1300"; QTest::newRow("Cherry-TC-1300-macosx-10.13-2") << UsbId(0x046A, 0x0092) << "Cherry SC Reader (046A:0092)(2)" << "Cherry TC-1300"; QTest::newRow("Cherry-TC-1300-linux") << UsbId(0x046A, 0x0092) << "Cherry TC 1300" << "Cherry TC-1300"; + + QTest::newRow("Cherry-ST-1275-windows-7.32-1") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X 0" << "Cherry SmartTerminal XX7X 0"; + QTest::newRow("Cherry-ST-1275-windows-7.32-2") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X-RF 0" << "Cherry ST-1275"; + QTest::newRow("Cherry-ST-1275-windows-7.64-1") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X 0" << "Cherry SmartTerminal XX7X 0"; + QTest::newRow("Cherry-ST-1275-windows-7.64-2") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X-RF 0" << "Cherry ST-1275"; + QTest::newRow("Cherry-ST-1275-windows-8.1-1") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X 0" << "Cherry SmartTerminal XX7X 0"; + QTest::newRow("Cherry-ST-1275-windows-8.1-2") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X-RF 0" << "Cherry ST-1275"; + QTest::newRow("Cherry-ST-1275-windows-10.1") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X 0" << "Cherry SmartTerminal XX7X 0"; + QTest::newRow("Cherry-ST-1275-windows-10.2") << UsbId(0x046A, 0x0072) << "Cherry SmartTerminal XX7X-RF 0" << "Cherry ST-1275"; + + QTest::newRow("Signotec Omega Pad-windows-7.32") << UsbId(0x2133, 0x010B) << "NXP PR533 0" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-windows-7.64") << UsbId(0x2133, 0x010B) << "NXP PR533 0" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-windows-8.1") << UsbId(0x2133, 0x010B) << "NXP PR533 0" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-windows-10") << UsbId(0x2133, 0x010B) << "NXP PR533 0" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-macosx-10.10") << UsbId(0x2133, 0x010B) << "NXP PR533" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-macosx-10.11") << UsbId(0x2133, 0x010B) << "NXP PR533" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-macosx-10.12") << UsbId(0x2133, 0x010B) << "NXP PR533" << "Signotec Omega Pad"; + QTest::newRow("Signotec Omega Pad-macosx-10.13") << UsbId(0x2133, 0x010B) << "NXP PR533" << "Signotec Omega Pad"; } @@ -325,7 +442,7 @@ class test_ReaderConfiguration void uniqueNames() { QSet readerNames; - for (const auto& readerSettingsInfo : qAsConst(ReaderConfiguration::getInstance().getReaderConfigurationInfos())) + for (const auto& readerSettingsInfo : qAsConst(Env::getSingleton()->getReaderConfigurationInfos())) { readerNames += readerSettingsInfo.getName(); } @@ -335,7 +452,7 @@ class test_ReaderConfiguration void forbidEmptyFields() { - for (const auto& readerSettingsInfo : qAsConst(ReaderConfiguration::getInstance().getReaderConfigurationInfos())) + for (const auto& readerSettingsInfo : qAsConst(Env::getSingleton()->getReaderConfigurationInfos())) { QVERIFY(!readerSettingsInfo.getName().isEmpty()); QVERIFY(!readerSettingsInfo.getPattern().isEmpty()); @@ -348,7 +465,7 @@ class test_ReaderConfiguration }; -const int test_ReaderConfiguration::cCardReadersInConfigurationFile = 23; +const int test_ReaderConfiguration::cCardReadersInConfigurationFile = 26; QTEST_GUILESS_MAIN(test_ReaderConfiguration) #include "test_ReaderConfiguration.moc" diff --git a/test/qt/configuration/test_ReaderConfigurationParser.cpp b/test/qt/configuration/test_ReaderConfigurationParser.cpp index bec85e4..82b5d00 100644 --- a/test/qt/configuration/test_ReaderConfigurationParser.cpp +++ b/test/qt/configuration/test_ReaderConfigurationParser.cpp @@ -170,7 +170,7 @@ class test_ReaderConfigurationParser { // Key with index skipIndex is not in the test Json data. const QString devicesPair = jsonSingleDeviceString(incompleteKeyValuePairs(skipIndex, - /* skipOnlyValue */false)); + /* skipOnlyValue */ false)); const QByteArray data = jsonDataString(devicesPair).toUtf8(); QCOMPARE(ReaderConfigurationParser::parse(data).size(), 0); @@ -181,7 +181,7 @@ class test_ReaderConfigurationParser { // Key with index skipIndex is in the test Json data but has the invalid value "" const QString devicesPair = jsonSingleDeviceString(incompleteKeyValuePairs(skipIndex, - /* skipOnlyValue */true)); + /* skipOnlyValue */ true)); const QByteArray data = jsonDataString(devicesPair).toUtf8(); QCOMPARE(ReaderConfigurationParser::parse(data).size(), 0); diff --git a/uncrustify.cfg b/uncrustify.cfg index 1d7f5ad..dd5fe78 100644 --- a/uncrustify.cfg +++ b/uncrustify.cfg @@ -1,4 +1,4 @@ -# Uncrustify-0.66.1_f +# Uncrustify-0.67_f newlines = lf input_tab_size = 4 output_tab_size = 4 @@ -39,6 +39,7 @@ sp_before_ptr_star = remove sp_before_unnamed_ptr_star = remove sp_between_ptr_star = remove sp_after_ptr_star = force +sp_after_ptr_block_caret = ignore sp_after_ptr_star_qualifier = ignore sp_after_ptr_star_func = force sp_ptr_star_paren = ignore @@ -77,7 +78,9 @@ sp_after_semi_for = force sp_after_semi_for_empty = remove sp_before_square = ignore sp_before_squares = ignore +sp_cpp_before_struct_binding = ignore sp_inside_square = remove +sp_inside_square_oc_array = ignore sp_after_comma = force sp_before_comma = remove sp_after_mdatype_commas = ignore @@ -100,6 +103,7 @@ sp_sizeof_paren = remove sp_after_tag = remove sp_inside_braces_enum = remove sp_inside_braces_struct = remove +sp_inside_braces_oc_dict = ignore sp_after_type_brace_init_lst_open = ignore sp_before_type_brace_init_lst_close = ignore sp_inside_type_brace_init_lst = ignore @@ -117,10 +121,13 @@ sp_inside_tparen = ignore sp_after_tparen_close = ignore sp_square_fparen = remove sp_fparen_brace = remove +sp_fparen_brace_initializer = ignore sp_fparen_dbrace = ignore sp_func_call_paren = remove sp_func_call_paren_empty = remove sp_func_call_user_paren = ignore +sp_func_call_user_inside_fparen = ignore +sp_func_call_user_paren_paren = ignore sp_func_class_paren = remove sp_func_class_paren_empty = ignore sp_return_paren = remove @@ -129,6 +136,7 @@ sp_defined_paren = ignore sp_throw_paren = remove sp_after_throw = ignore sp_catch_paren = force +sp_oc_catch_paren = ignore sp_version_paren = ignore sp_scope_paren = ignore sp_super_paren = remove @@ -139,7 +147,9 @@ sp_else_brace = ignore sp_brace_else = ignore sp_brace_typedef = ignore sp_catch_brace = ignore +sp_oc_catch_brace = ignore sp_brace_catch = ignore +sp_oc_brace_catch = ignore sp_finally_brace = ignore sp_brace_finally = ignore sp_try_brace = ignore @@ -173,6 +183,7 @@ sp_before_oc_block_caret = ignore sp_after_oc_block_caret = ignore sp_after_oc_msg_receiver = ignore sp_after_oc_property = ignore +sp_after_oc_synchronized = ignore sp_cond_colon = force sp_cond_colon_before = ignore sp_cond_colon_after = ignore @@ -199,9 +210,11 @@ sp_before_tr_emb_cmt = ignore sp_num_before_tr_emb_cmt = 0 sp_annotation_paren = ignore sp_skip_vbrace_tokens = false +sp_after_noexcept = ignore force_tab_after_define = false indent_columns = 4 indent_continue = 8 +indent_single_newlines = false indent_param = 0 indent_with_tabs = 2 indent_cmt_with_tabs = false @@ -215,6 +228,7 @@ indent_braces_no_struct = false indent_brace_parent = false indent_paren_open_brace = true indent_cs_delegate_brace = false +indent_cs_delegate_body = false indent_namespace = false indent_namespace_single_indent = false indent_namespace_level = 0 @@ -241,6 +255,7 @@ indent_func_param_double = true indent_func_const = 0 indent_func_throw = 0 indent_member = 0 +indent_member_single = false indent_sing_line_comments = 0 indent_relative_single_line_comments = false indent_switch_case = 4 @@ -258,10 +273,13 @@ indent_paren_after_func_decl = false indent_paren_after_func_call = false indent_comma_paren = false indent_bool_paren = false +indent_semicolon_for_paren = false indent_first_bool_expr = false +indent_first_for_expr = false indent_square_nl = false indent_preserve_sql = false indent_align_assign = true +indent_align_paren = true indent_oc_block = false indent_oc_block_msg = 0 indent_oc_msg_colon = 0 @@ -277,24 +295,30 @@ indent_token_after_brace = true indent_cpp_lambda_body = true indent_using_block = true indent_ternary_operator = 0 +indent_off_after_return_new = false +indent_single_after_return = false indent_ignore_asm_block = false nl_collapse_empty_body = false nl_assign_leave_one_liners = false nl_class_leave_one_liners = false nl_enum_leave_one_liners = false nl_getset_leave_one_liners = false +nl_cs_property_leave_one_liners = false nl_func_leave_one_liners = false nl_cpp_lambda_leave_one_liners = true nl_if_leave_one_liners = false nl_while_leave_one_liners = false nl_oc_msg_leave_one_liner = false nl_oc_block_brace = ignore +nl_oc_interface_brace = ignore +nl_oc_implementation_brace = ignore nl_start_of_file = remove nl_start_of_file_min = 0 nl_end_of_file = add nl_end_of_file_min = 0 nl_assign_brace = remove nl_assign_square = ignore +nl_tsquare_brace = ignore nl_after_square_assign = ignore nl_func_var_def_blk = 0 nl_typedef_blk_start = 0 @@ -323,7 +347,9 @@ nl_try_brace = force nl_getset_brace = force nl_for_brace = force nl_catch_brace = force +nl_oc_catch_brace = ignore nl_brace_catch = force +nl_oc_brace_catch = ignore nl_brace_square = ignore nl_brace_fparen = ignore nl_while_brace = force @@ -398,6 +424,7 @@ nl_after_brace_close = true nl_after_vbrace_close = true nl_brace_struct_var = ignore nl_define_macro = false +nl_squeeze_paren_close = false nl_squeeze_ifdef = false nl_squeeze_ifdef_top_level = false nl_before_if = ignore @@ -418,9 +445,11 @@ nl_before_func_class_def = 0 nl_before_func_class_proto = 0 nl_class_colon = force nl_constr_colon = ignore +nl_namespace_two_to_one_liner = false nl_create_if_one_liner = false nl_create_for_one_liner = false nl_create_while_one_liner = false +nl_create_func_def_one_liner = false nl_split_if_one_liner = false nl_split_for_one_liner = false nl_split_while_one_liner = false @@ -606,6 +635,7 @@ include_category_1 = "" include_category_2 = "" use_indent_func_call_param = true use_indent_continue_only_once = false +indent_cpp_lambda_only_once = false use_options_overriding_for_qt_macros = true warn_level_tabs_found_in_verbatim_string_literals = 2 macro-open ASN1_ITEM_TEMPLATE