### Get Installation Information Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Use the GET_INFO command to retrieve details about the current AusweisApp installation. The AusweisApp will respond with an 'info' message. ```json {"cmd": "GET_INFO"} ``` -------------------------------- ### Include Install Rules Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Includes the CMake install rules, typically used for defining installation targets and procedures. ```cmake include(Install) ``` -------------------------------- ### Basic CMake Setup for QML UI Plugin Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/qml/CMakeLists.txt Defines the QML UI plugin and links core libraries. This is a foundational setup for the QML module. ```cmake add_subdirectory(modules) ADD_PLATFORM_LIBRARY(AusweisAppUiQml EXCLUDE "/modules/") target_link_libraries(AusweisAppUiQml PUBLIC ${Qt}::Core ${Qt}::Svg ${Qt}::Qml ${Qt}::Quick ${Qt}::QuickControls2) target_link_libraries(AusweisAppUiQml PUBLIC AusweisAppGlobal AusweisAppUi AusweisAppIfdRemote AusweisAppServices AusweisAppWorkflowsSelfAuth AusweisAppUiQmlModules) ``` -------------------------------- ### Install AusweisApp using MSI with MST file Source: https://github.com/governikus/ausweisapp/blob/community/docs/installation_en/README.en.rst Use this command to install the AusweisApp silently using an MST file to define custom arguments. Ensure the MST file is in the same directory or provide the full path. ```winbatch msiexec /i AusweisApp-X.YY.Z.msi /quiet TRANSFORMS=file.mst ``` -------------------------------- ### GET_INFO Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Returns information about the current installation of the AusweisApp. The AusweisApp will send an 'info' message as an answer. ```APIDOC ## GET_INFO ### Description Returns information about the current installation of |AppName|. ### Method POST ### Endpoint /cmd ### Request Body - **cmd** (string) - Required - The command to execute, must be "GET_INFO". ### Request Example ```json { "cmd": "GET_INFO" } ``` ### Response #### Success Response - **message** (string) - The type of message returned, expected to be "info". - **data** (object) - Contains information about the installation. ``` -------------------------------- ### Main QML Module Generation Setup Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/qml/modules/CMakeLists.txt Sets up the QML import path and initiates the generation of QML modules for the current system and other platforms. ```cmake set(QML_IMPORT_PATH "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SYSTEM_NAME}" CACHE STRING "import path of ${CMAKE_SYSTEM_NAME}" FORCE) add_library(AusweisAppUiQmlModules STATIC) GENERATE_QML_MODULES("${CMAKE_SYSTEM_NAME}") if(DESKTOP) foreach(entry Android iOS) GENERATE_QML_MODULES("${entry}") endforeach() endif() ``` -------------------------------- ### Windows Silent Installation with Custom Settings Source: https://github.com/governikus/ausweisapp/blob/community/docs/installation_en/README.en.rst Use this command to perform a silent installation of AusweisApp on Windows, pre-configuring various settings like installation directory, shortcuts, proxy, and update checks. ```winbatch msiexec /i AusweisApp-X.YY.Z.msi /quiet INSTALLDIR="C:\AusweisApp" SYSTEMSETTINGS=false DESKTOPSHORTCUT=false PROXYSERVICE=false AUTOSTART=false TRAYICON=true AUTOHIDE=false REMINDTOCLOSE=false ASSISTANT=false TRANSPORTPINREMINDER=false CUSTOMPROXYTYPE="HTTP" CUSTOMPROXYHOST="proxy.example.org" CUSTOMPROXYPORT=1337 UPDATECHECK=false SHUFFLESCREENKEYBOARD=true SECURESCREENKEYBOARD=true ENABLECANALLOWED=true SKIPRIGHTSONCANALLOWED=true LAUNCH=true ``` -------------------------------- ### Run Container SDK with Docker Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/container.rst Starts the |AppName| SDK container using Docker. It's recommended to use `--rm` for temporary containers. A volume can be added for configuration persistence. ```sh docker run --rm -p 127.0.0.1:24727:24727 governikus/ausweisapp2 ``` -------------------------------- ### Generate Sphinx Documentation Source: https://github.com/governikus/ausweisapp/blob/community/docs/CMakeLists.txt Generates documentation using Sphinx for various targets like releasenotes, SDK, and installation guides. Supports HTML and text builders, with options for different languages and LaTeX output. ```cmake if(SPHINX_FOUND) if(NOT PANDOC_BIN) set(BUILD_LATEX "latex") endif() SPHINX_GEN("${CMAKE_CURRENT_SOURCE_DIR}/releasenotes" "notes" BUILDER html text ${BUILD_LATEX}) SPHINX_GEN("${CMAKE_CURRENT_SOURCE_DIR}/sdk" "sdk" BUILDER html ${BUILD_LATEX} DEFAULT_LANG en) SPHINX_GEN("${CMAKE_CURRENT_SOURCE_DIR}/installation_de" "installation_integration_de" BUILDER changes html ${BUILD_LATEX} DEFAULT_LANG de) SPHINX_GEN("${CMAKE_CURRENT_SOURCE_DIR}/installation_en" "installation_integration_en" BUILDER changes html ${BUILD_LATEX} DEFAULT_LANG en) SPHINX_GEN("${CMAKE_CURRENT_SOURCE_DIR}/failurecodes" "failurecodes" BUILDER changes html ${BUILD_LATEX} DEFAULT_LANG en) else() message(STATUS "No sphinx documentation will be generated") endif() ``` -------------------------------- ### Implement IAusweisApp2SdkCallback and Create Session Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/android.rst This example demonstrates how to implement the IAusweisApp2SdkCallback interface to handle session ID generation and receive messages. It then shows how to use the IAusweisApp2Sdk instance to connect to the SDK with the custom callback. ```java import com.governikus.ausweisapp2.IAusweisApp2Sdk; import com.governikus.ausweisapp2.IAusweisApp2SdkCallback; // [...] LocalCallback mCallback = new LocalCallback(); class LocalCallback extends IAusweisApp2SdkCallback.Stub { public String mSessionID = null; @Override public void sessionIdGenerated(String pSessionId) throws RemoteException { mSessionID = pSessionId; } @Override public void receive(String pJson) throws RemoteException { // handle message from SDK } } // [...] try { if (!mSdk.connectSdk(mCallback)) { // already connected? Handle error... } } catch (RemoteException e) { // handle exception } ``` -------------------------------- ### RUN_AUTH Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Starts an authentication process. The AusweisApp will send an 'auth' message when the authentication is started. Supports various optional parameters for customization and developer mode. ```APIDOC ## RUN_AUTH ### Description Starts an authentication process. The AusweisApp will send an 'auth' message when the authentication is started. This command is allowed only if the AusweisApp has no running authentication or other workflow. ### Method POST ### Endpoint /cmd ### Request Body - **cmd** (string) - Required - The command to execute, must be "RUN_AUTH". - **tcTokenURL** (string) - Required - URL to the TcToken. - **developerMode** (boolean) - Optional - True to enable "Developer Mode" for test cards and disable some security checks. Defaults to false. - **handleInterrupt** (boolean) - Optional - True to automatically handle system dialog on iOS to enter a password. API level v1 only. Defaults to false. - **status** (boolean) - Optional - True to enable automatic 'status' messages. API level v2 only. Defaults to true. - **messages** (object) - Optional - Messages for the system dialog on iOS. - **sessionStarted** (string) - Shown if scanning is started. - **sessionFailed** (string) - Shown if communication was stopped with an error. - **sessionSucceeded** (string) - Shown if communication was stopped successfully. - **sessionInProgress** (string) - Shown if communication is in progress. This message will be appended with current percentage level. ### Request Example ```json { "cmd": "RUN_AUTH", "tcTokenURL": "https://test.governikus-eid.de/AusweisAuskunft/WebServiceRequesterServlet", "developerMode": false, "handleInterrupt": false, "status": true, "messages": { "sessionStarted": "Please place your ID card on the top of the device's back side.", "sessionFailed": "Scanning process failed.", "sessionSucceeded": "Scanning process has been finished successfully.", "sessionInProgress": "Scanning process is in progress." } } ``` ### Response #### Success Response - **message** (string) - The type of message returned, expected to be "auth". - **data** (object) - Contains information about the authentication process. ``` -------------------------------- ### Start Authentication Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Initiate an authentication process using the RUN_AUTH command. This command requires a tcTokenURL and can be configured with developer mode, interrupt handling, status message preferences, and custom iOS dialog messages. ```json { "cmd": "RUN_AUTH", "tcTokenURL": "https://test.governikus-eid.de/AusweisAuskunft/WebServiceRequesterServlet", "developerMode": false, "handleInterrupt": false, "status": true, "messages": { "sessionStarted": "Please place your ID card on the top of the device's back side.", "sessionFailed": "Scanning process failed.", "sessionSucceeded": "Scanning process has been finished successfully.", "sessionInProgress": "Scanning process is in progress." } } ``` -------------------------------- ### Configuring Package Configuration File Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Generates a package configuration file for installed components. This is essential for other projects that depend on this build. ```cmake include(CMakePackageConfigHelpers) configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/${vendor_file}.in ${CMAKE_BINARY_DIR}/${vendor_file} INSTALL_DESTINATION ${DESTINATION_DIR}) ``` -------------------------------- ### Copy Vendor CMake File Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Adds a custom command to copy the GovernikusConfig.cmake file to the installation directory after the Qt build is complete. ```cmake set(vendor_file "GovernikusConfig.cmake") add_custom_command(TARGET qt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/${vendor_file} ${DESTINATION_DIR}/lib/cmake/Governikus/${vendor_file}) ``` -------------------------------- ### iOS Framework Build Configuration Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Configures AusweisAppBinary as a framework with specific versioning, public headers, and install path for integrated SDK builds. ```cmake if(INTEGRATED_SDK) GET_PUBLIC_HEADER(AusweisAppUiFunctional PUBLIC_HEADER) target_sources(AusweisAppBinary PUBLIC ${PUBLIC_HEADER}) set_target_properties(AusweisAppBinary PROPERTIES FRAMEWORK TRUE FRAMEWORK_VERSION C MACOSX_FRAMEWORK_IDENTIFIER ${BUNDLE_IDENTIFIER}) set_target_properties(AusweisAppBinary PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION} PUBLIC_HEADER "${PUBLIC_HEADER}") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_INSTALL_PATH "@rpath") else() if(USE_DISTRIBUTION_PROFILE) set(PROVISIONING_PROFILE_SPECIFIER "iOS Release (Distribution)") set(EXPORT_METHOD app-store) set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Distribution: Governikus GmbH & Co. KG (G7EQCJU4BR)") else() set(PROVISIONING_PROFILE_SPECIFIER "iOS Development") set(EXPORT_METHOD development) set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer: Marco von der Puetten (46ZK7WV8QR)") endif() set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_PROVISIONING_PROFILE_SPECIFIER ${PROVISIONING_PROFILE_SPECIFIER}) set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_INSTALL_PATH "$(LOCAL_APPS_DIR)") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY}) endif() ``` -------------------------------- ### Get Certificate Command Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Retrieves the certificate for the current authentication. This command is only allowed after an initial access rights message. ```json {"cmd": "GET_CERTIFICATE"} ``` -------------------------------- ### READER_LIST Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON message provides a list of all connected card readers. Each reader object contains details similar to the READER message. ```json { "msg": "READER_LIST", "readers": [ { "name": "Example reader 1 [SmartCard] (1234567) 01 00", "insertable": false, "attached": true, "keypad": true, "card": null }, { "name": "NFC", "insertable": false, "attached": true, "keypad": false, "card": { "inoperative": false, "deactivated": false, "retryCounter": 3 } } ] } ``` -------------------------------- ### iOS Target Properties Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Configures resource files, skip install setting, asset catalog name, targeted device family, and code signing entitlements for the iOS build. ```cmake set_target_properties(AusweisAppBinary PROPERTIES RESOURCE "${IOS_RESOURCES}") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_SKIP_INSTALL "NO") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") set_target_properties(AusweisAppBinary PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${PACKAGING_DIR}/ios/AusweisApp.entitlements") ``` -------------------------------- ### Convert RST to PDF using Pandoc Source: https://github.com/governikus/ausweisapp/blob/community/docs/CMakeLists.txt Converts reStructuredText (RST) files to PDF format using Pandoc. This is used for generating PDF versions of release notes, SDK documentation, and installation guides, with options for custom parameters and translation. ```cmake if(PANDOC_BIN) PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/releasenotes" "notes" OUTPUT_NAME "ReleaseNotes") PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/sdk" "sdk" CUSTOM_PANDOC_PARAM -f rst-auto_identifiers OUTPUT_NAME "SDK") PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/installation_en" "installation_integration_en" OUTPUT_NAME "NetInstallation_Integration_en") PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/installation_de" "installation_integration_de" OUTPUT_NAME "NetInstallation_Integration_de") PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/failurecodes" "failurecodes_en" OUTPUT_NAME "Failure-Codes-en") PANDOC_RST_TO_PDF("${CMAKE_CURRENT_SOURCE_DIR}/failurecodes" "failurecodes_de" OUTPUT_NAME "Failure-Codes-de" TRANSLATE "de") else() message(STATUS "No PDF documentation will be generated") endif() ``` -------------------------------- ### Configure Download Mirrors and URLs Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Sets up mirror URLs for downloading external dependencies like Qt and GitHub resources. It determines the correct subdirectory for Qt releases based on version qualifiers. ```cmake if(NOT DEFINED ENV{MIRROR_QT}) set(ENV{MIRROR_QT} https://download.qt.io) endif() if(NOT DEFINED ENV{MIRROR_GITHUB}) set(ENV{MIRROR_GITHUB} https://github.com) endif() if("${QT}" MATCHES "alpha|beta|rc") set(QT_DEST_DIR development_releases) else() set(QT_DEST_DIR archive) # official_releases endif() string(REPLACE "." ";" QT_VERSION_LIST ${QT}) list(GET QT_VERSION_LIST 0 QT_MAJOR_VERSION) list(GET QT_VERSION_LIST 1 QT_MINOR_VERSION) set(QT_SUBVERSION ${QT_MAJOR_VERSION}.${QT_MINOR_VERSION}) list(APPEND QT_URLS $ENV{MIRROR_QT}/${QT_DEST_DIR}/qt/${QT_SUBVERSION}/${QT}/single/${QT_FILE}) ``` -------------------------------- ### Get Current Status Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Use the GET_STATUS command to get information about the current workflow and state of the AusweisApp. This command is supported from API level 2. ```json {"cmd": "GET_STATUS"} ``` -------------------------------- ### macOS Autostart Helper Target Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Defines and configures an executable target for an autostart helper on macOS, including its sources, bundle ID, and Info.plist. ```cmake set(AUTOSTART_HELPER_NAME AutostartHelper) set(AUTOSTART_HELPER_FULL_NAME ${PROJECT_NAME}${AUTOSTART_HELPER_NAME}) set(AUTOSTART_HELPER_SOURCES autostart_helper/main.mm) set(AUTOSTART_HELPER_BUNDLE_ID "com.governikus.AusweisApp2.${AUTOSTART_HELPER_NAME}") add_executable(${AUTOSTART_HELPER_FULL_NAME} MACOSX_BUNDLE ${AUTOSTART_HELPER_SOURCES}) target_link_libraries(${AUTOSTART_HELPER_FULL_NAME} ${OSX_APPKIT}) set_target_properties(${AUTOSTART_HELPER_FULL_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${PACKAGING_DIR}/macos/autostart_helper/Info.plist.in) ``` -------------------------------- ### Set External Project Prefix Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures the prefix for external projects, typically used for installation paths. This ensures external dependencies are installed in a predictable location within the build directory. ```cmake set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/b) ``` -------------------------------- ### Configure Qt for macOS Framework Build Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures Qt for macOS builds using frameworks. ```cmake set(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} ${QT_CONFIGURE_FLAGS_OTHER} -framework) ``` -------------------------------- ### Generate Test Command Line Source: https://github.com/governikus/ausweisapp/blob/community/test/CMakeLists.txt Constructs the command line arguments for running tests, including platform specifics and output logging formats. It adapts based on environment variables and Qt versions. ```cmake function(GET_TEST_CMDLINE cmdline testname) if(DEFINED ENV{GITLAB_CI} AND (LIBS_QT_PATCHES OR QT_VERSION VERSION_GREATER_EQUAL "6.9.1" OR (QT_VERSION VERSION_GREATER_EQUAL "6.8.4" AND QT_VERSION VERSION_LESS "6.9"))) set(log_format junit.xml,junitxml) else() set(log_format txt,txt) endif() set(${cmdline} ${PLATFORM} -v2 -o -,txt -o ${CMAKE_CURRENT_BINARY_DIR}/results.${testname}.${log_format} PARENT_SCOPE) endfunction() ``` -------------------------------- ### macOS Post-Build Commands for OpenSSL Libraries Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Adjusts library install names for OpenSSL on macOS using install_name_tool. ```cmake if(MAC) set(OPENSSL_FILE_VERSION 3) add_custom_command(TARGET openssl POST_BUILD COMMAND install_name_tool -id @rpath/libcrypto.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} ${DESTINATION_DIR}/lib/libcrypto.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} COMMAND install_name_tool -id @rpath/libssl.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} ${DESTINATION_DIR}/lib/libssl.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} COMMAND install_name_tool -change ${DESTINATION_DIR}/lib/libcrypto.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} @rpath/libcrypto.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} ${DESTINATION_DIR}/lib/libssl.${OPENSSL_FILE_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}) ``` -------------------------------- ### Build PC/SC Helper Library on Linux/BSD Source: https://github.com/governikus/ausweisapp/blob/community/test/helper/pcsc/CMakeLists.txt Configures the build for the AusweisAppTestHelperPcsc shared library on Linux or BSD systems. It finds source files, sets include directories, and links necessary libraries like Qt Core and PCSC. ```cmake if(LINUX OR BSD) file(GLOB SRC "*.cpp") add_library(AusweisAppTestHelperPcsc SHARED "${SRC}") target_include_directories(AusweisAppTestHelperPcsc INTERFACE "$") target_link_libraries(AusweisAppTestHelperPcsc ${Qt}::Core PkgConfig::PCSC) set_target_properties(AusweisAppTestHelperPcsc PROPERTIES CXX_VISIBILITY_PRESET default) endif() ``` -------------------------------- ### Get Basename from File Path Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/qml/modules/CMakeLists.txt Extracts the base filename from a given file path, removing versioning components. ```cmake function(GET_BASENAME _file _output) get_filename_component(filename ${_file} NAME) string(REGEX REPLACE "(^|/)\+["|"0-9]+"/${filename}" "\1${filename}" _file "${_file}") set(${_output} ${_file} PARENT_SCOPE) endfunction() ``` -------------------------------- ### Initialize IAusweisApp2Sdk Instance Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/android.rst This snippet shows how to obtain an instance of IAusweisApp2Sdk by connecting to the AusweisApp2 service. The obtained instance is stored in the mSdk member variable. ```java import android.content.ComponentName; import android.content.ServiceConnection; import android.os.IBinder; import com.governikus.ausweisapp2.IAusweisApp2Sdk; // [...] IAusweisApp2Sdk mSdk; ServiceConnection mConnection = new ServiceConnection(){ @Override public void onServiceConnected(ComponentName className, IBinder service) { try { mSdk = IAusweisApp2Sdk.Stub.asInterface(service); } catch (ClassCastException|RemoteException e) { // ... } } @Override public void onServiceDisconnected(ComponentName className) { mSdk = null; } } ``` -------------------------------- ### Link Webservice and Proxy UI Libraries for Desktop Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Links Webservice and Proxy UI libraries specifically for the Desktop platform. ```cmake if(DESKTOP) target_link_libraries(AusweisAppBinary PRIVATE AusweisAppUiWebservice) target_link_libraries(AusweisAppBinary PRIVATE AusweisAppUiProxy) endif() ``` -------------------------------- ### UNKNOWN_COMMAND Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON object represents an UNKNOWN_COMMAND message, indicating that an unrecognized command was sent to the application. ```json { "msg": "UNKNOWN_COMMAND", "error": "get_INFo" } ``` -------------------------------- ### STATUS Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON object represents a STATUS message, indicating the current workflow, progress, and state. ```json { "msg": "STATUS", "workflow": "AUTH", "progress": 25, "state": "ACCESS_RIGHTS" } ``` -------------------------------- ### Set Qt Configure Command Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Defines the base Qt configure command. ```cmake set(QT_CONFIGURE configure) ``` -------------------------------- ### Include Base UI Subdirectory Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/CMakeLists.txt Adds the base UI subdirectory to the build. This is a fundamental part of the UI module setup. ```cmake add_subdirectory(base) ``` -------------------------------- ### Set Qt Environment for Windows MSVC Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Sets environment variables and platform for Qt build on Windows with MSVC. ```cmake set(QT_PLATFORM win32-msvc) set(QT_ENV OPENSSL_LIBS=-llibcrypto\ -llibssl) ``` -------------------------------- ### Copy Valgrind Suppress File Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Copies the Valgrind suppression file to the binary directory and then to the installation test directory after the Qt build. ```cmake configure_file(${PROJECT_SOURCE_DIR}/test/valgrind.supp.${CMAKE_BUILD_TYPE} "${CMAKE_BINARY_DIR}/valgrind.supp" COPYONLY) add_custom_command(TARGET qt POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_BINARY_DIR}/valgrind.supp" ${DESTINATION_DIR}/test/valgrind.supp) ``` -------------------------------- ### Configure Qt for Windows Batch Build Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Sets the Qt configure command to use a batch file for Windows builds. ```cmake set(QT_CONFIGURE configure.bat) ``` -------------------------------- ### Configure Main Qt Build Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures the main Qt build, including shared flags and additional defines for OpenSSL and the destination path. It depends on openssl and the host Qt build if available. ```cmake if(QT_HOST_PATH) set(ADDITIONAL_QT_DEFINES ${ADDITIONAL_QT_DEFINES} -DQT_HOST_PATH=${QT_HOST_PATH}) endif() set(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} ${QT_CONFIGURE_FLAGS_SHARED}) set(ADDITIONAL_QT_DEFINES ${ADDITIONAL_QT_DEFINES} -DOPENSSL_ROOT_DIR=${DESTINATION_DIR}) set(ADDITIONAL_QT_DEFINES ${ADDITIONAL_QT_DEFINES} -DCMAKE_PREFIX_PATH=${DESTINATION_DIR}) ExternalProject_Add(qt DEPENDS openssl ${QT_HOST_DEPEND} URL ${QT_URLS} URL_HASH SHA256=${QT_HASH} DOWNLOAD_DIR ${PACKAGES_DIR} PATCH_COMMAND ${QT_PATCHES_CMD} CONFIGURE_COMMAND ${QT_ENV} /${QT_CONFIGURE} ${QT_CONFIGURE_FLAGS} -- ${ADDITIONAL_QT_DEFINES} BUILD_COMMAND ${CMAKE_COMMAND} --build . ${MAKE_JOBS} INSTALL_COMMAND ${CMAKE_COMMAND} --install . ) ``` -------------------------------- ### Configure Qt for Linux Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures Qt for Linux, disabling libproxy. ```cmake set(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} ${QT_CONFIGURE_FLAGS_OTHER} -no-libproxy) ``` -------------------------------- ### Set CMake Minimum Version Source: https://github.com/governikus/ausweisapp/blob/community/CMakeLists.txt Specifies the minimum required version of CMake for the project. Ensure your CMake installation meets this requirement. ```cmake cmake_minimum_required(VERSION 3.25) ``` -------------------------------- ### Get Access Rights Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Retrieves information about the requested access rights. This command is allowed only if the AusweisApp sends an initial access_rights message. ```json {"cmd": "GET_ACCESS_RIGHTS"} ``` -------------------------------- ### Define and Configure AusweisAppCardSimulator Library Source: https://github.com/governikus/ausweisapp/blob/community/src/card/simulator/CMakeLists.txt Defines the AusweisAppCardSimulator library and links it against necessary Qt and custom libraries. It also sets compile definitions for static plugin usage. ```cmake # The ReaderManagerPlugin for the simulator. ADD_PLATFORM_LIBRARY(AusweisAppCardSimulator) target_link_libraries(AusweisAppCardSimulator ${Qt}::Core AusweisAppGlobal AusweisAppCard) target_compile_definitions(AusweisAppCardSimulator PRIVATE QT_STATICPLUGIN) ``` -------------------------------- ### INSERT_CARD Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON message indicates that a card needs to be inserted. The 'error' field is optional and provides more details if available. ```json { "msg": "INSERT_CARD", "error": "Name cannot be undefined" } ``` -------------------------------- ### Set Qt Environment for Windows MinGW Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Sets environment variables and platform for Qt build on Windows with MinGW. ```cmake set(QT_PLATFORM win32-g++) set(QT_ENV OPENSSL_LIBS=-lcrypto\ -lssl) ``` -------------------------------- ### Find Build Tool (Make) Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Detects the appropriate 'make' command for the current system. It checks for 'jom' or 'nmake' on MSVC systems, and 'make' or 'mingw32-make' on others. ```cmake if(MSVC) find_program(MAKE jom) if(NOT MAKE) find_program(MAKE nmake) endif() else() find_program(MAKE make) endif() if(MINGW AND NOT MAKE) find_program(MAKE mingw32-make) endif() if(MAKE) message(STATUS "Using 'make' command... ${MAKE}") else() message(FATAL_ERROR "Cannot find 'make' command") endif() ``` -------------------------------- ### Link Libraries Source: https://github.com/governikus/ausweisapp/blob/community/src/secure_storage/CMakeLists.txt Links the AusweisAppSecureStorage library with Qt Core, Qt Network, and AusweisAppGlobal. ```cmake target_link_libraries(AusweisAppSecureStorage ${Qt}::Core ${Qt}::Network AusweisAppGlobal) ``` -------------------------------- ### Get List of Connected Readers Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Retrieve information about all currently connected readers using the GET_READER_LIST command. The AusweisApp will respond with a 'reader_list' message. ```json {"cmd": "GET_READER_LIST"} ``` -------------------------------- ### Add Platform Library and Link Dependencies Source: https://github.com/governikus/ausweisapp/blob/community/src/card/base/CMakeLists.txt Adds the AusweisAppCard as a platform library and links it with core dependencies like Qt, OpenSSL, and other AusweisApp modules. Conditional linking for desktop drivers and Qt Test library is also included. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppCard) target_link_libraries(AusweisAppCard PUBLIC ${Qt}::Core OpenSSL::Crypto AusweisAppGlobal AusweisAppConfiguration) if(DESKTOP) target_link_libraries(AusweisAppCard PUBLIC AusweisAppCardDrivers) endif() if(TARGET ${Qt}::Test) target_link_libraries(AusweisAppCard PRIVATE debug ${Qt}::Test) endif() qt_extract_metatypes(AusweisAppCard) # QTBUG-123574 ``` -------------------------------- ### CANCEL Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Cancel the whole workflow. This command can be sent in any state of a running workflow to abort it. It is allowed only if the AusweisApp started an authentication or the change_pin workflow. ```APIDOC ## CANCEL ### Description Cancel the whole workflow. ### Method POST ### Endpoint N/A (SDK Command) ### Request Body ```json { "cmd": "CANCEL" } ``` ``` -------------------------------- ### Link PC/SC and Driver Card Libraries for Desktop Source: https://github.com/governikus/ausweisapp/blob/community/src/CMakeLists.txt Links PC/SC and driver card libraries for the Desktop platform. ```cmake if(DESKTOP) target_link_libraries(AusweisAppBinary PRIVATE AusweisAppCardPcsc AusweisAppCardDrivers) endif() ``` -------------------------------- ### PAUSE Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON object represents a PAUSE message, signaling a waiting condition with a specific cause, such as a bad card position. ```json { "msg": "PAUSE", "cause": "BadCardPosition" } ``` -------------------------------- ### Add Platform Library Source: https://github.com/governikus/ausweisapp/blob/community/src/secure_storage/CMakeLists.txt Adds the AusweisAppSecureStorage as a platform library. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppSecureStorage) ``` -------------------------------- ### INVALID Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON message indicates that a received JSON message was malformed or broken. The 'error' field details the parsing issue. ```json { "msg": "INVALID", "error": "unterminated string (offset: 12)" } ``` -------------------------------- ### Add QML Test Files from Directory Source: https://github.com/governikus/ausweisapp/blob/community/test/CMakeLists.txt Discovers and adds QML test files from the source directory. It filters tests based on platform compatibility and Qt version requirements. ```cmake function(ADD_QML_TEST_FILES) if(BSD) message(STATUS "Qml tests on BSD are not supported") return() endif() file(GLOB_RECURSE TEST_SUBFILES "${CMAKE_CURRENT_SOURCE_DIR}/test_*.qml") foreach(sourcefile ${TEST_SUBFILES}) string(REGEX MATCHALL "\+[a-z]+" PLATFORM_FILTER ${sourcefile}) if("+mobile" IN_LIST PLATFORM_FILTER AND QT_VERSION VERSION_LESS MIN_QT_VERSION_MOBILE) continue() endif() if(NOT "+mobile" IN_LIST PLATFORM_FILTER) ADD_QML_TEST(${sourcefile} "") endif() if(NOT "+desktop" IN_LIST PLATFORM_FILTER AND QT_VERSION VERSION_GREATER_EQUAL MIN_QT_VERSION_MOBILE) if(NOT "+ios" IN_LIST PLATFORM_FILTER) ADD_QML_TEST(${sourcefile} "android") endif() if(NOT "+android" IN_LIST PLATFORM_FILTER) ADD_QML_TEST(${sourcefile} "ios") endif() endif() endforeach() endfunction() ``` -------------------------------- ### Manage Clean Targets Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Iterates through enabled external projects to collect their installation directories for cleanup. Sets additional clean files for the current directory. ```cmake foreach(var ${ENABLED_TARGETS}) EXTERNALPROJECT_GET_PROPERTY(${var} INSTALL_DIR) list(APPEND CLEAN_TARGETS ${INSTALL_DIR}) endforeach() set_directory_properties(PROPERTIES ADDITIONAL_CLEAN_FILES "${DESTINATION_DIR};${CLEAN_TARGETS}") ``` -------------------------------- ### Configure Qt Logging Source: https://github.com/governikus/ausweisapp/blob/community/test/CMakeLists.txt Sets the path for the Qt logging configuration file and then calls the function to generate its content. ```cmake set(QT_LOGGING_CONF "${CMAKE_BINARY_DIR}/qtlogging.ini") GENERATE_LOGGING_INI("${QT_LOGGING_CONF}") ``` -------------------------------- ### Get Application Info as JSON Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/desktop.rst Retrieve detailed information about the AusweisApp2 application, including implementation and specification details, by appending '?Status=json' to the status endpoint. ```json { "Name": "AusweisApp2", "Implementation-Title": "AusweisApp2", "Implementation-Vendor": "Governikus GmbH & Co. KG", "Implementation-Version": "2.0.0", "Specification-Title": "TR-03124-1", "Specification-Vendor": "Federal Office for Information Security", "Specification-Version": "1.4" } ``` -------------------------------- ### Define AusweisAppSettings Platform Library Source: https://github.com/governikus/ausweisapp/blob/community/src/settings/CMakeLists.txt Defines the AusweisAppSettings as a platform-specific library. This is a foundational step for building the module. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppSettings) ``` -------------------------------- ### Get API Level Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Retrieve information about the available and current API level supported by the AusweisApp using the GET_API_LEVEL command. The AusweisApp will respond with an 'api_level' message. ```json {"cmd": "GET_API_LEVEL"} ``` -------------------------------- ### Add Platform Library Source: https://github.com/governikus/ausweisapp/blob/community/test/helper/common/CMakeLists.txt Adds the AusweisAppTestHelperCommon as a platform library. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppTestHelperCommon) ``` -------------------------------- ### Disconnect from SDK Service Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/android.rst This example demonstrates how to disconnect from the AusweisApp2 SDK service by unbinding the ServiceConnection. This is one of the two methods to invalidate the IBinder instance and disconnect. ```java unbindService(mConnection); ``` -------------------------------- ### Configure Qt for Cygwin Build Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures Qt for Cygwin builds, including specifying the make tool. ```cmake set(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} -make-tool ${MAKE}) ``` -------------------------------- ### INTERNAL_ERROR Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON message signifies an internal error within the SDK, likely indicating a bug. The 'error' field provides a description of the unexpected condition. ```json { "msg": "INTERNAL_ERROR", "error": "Unexpected condition" } ``` -------------------------------- ### Define Build Options Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Sets up boolean options for configuring the build. These options control features like integrated SDK, container SDK, developer modules, and legacy OpenSSL API usage. ```cmake option(INTEGRATED_SDK "Build integrated specific SDK" OFF) option(CONTAINER_SDK "Build container specific SDK" OFF) option(DEVELOPER "Include modules/features for developer" OFF) option(USE_LEGACY_OPENSSL_API "Enable legacy API" OFF) ``` -------------------------------- ### ACCESS_RIGHTS Message without Optional Fields Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst A simplified ACCESS_RIGHTS message example, focusing only on the core chat access rights. This can be used when no transaction-specific information or errors are present. ```json { "msg": "ACCESS_RIGHTS", "chat": { "effective": ["Address", "FamilyName", "GivenNames", "AgeVerification"], "optional": ["GivenNames", "AgeVerification"], "required": ["Address", "FamilyName"] } } ``` -------------------------------- ### Simulator Configuration Files Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/simulator.rst Configuration for the simulator, including file IDs, short file IDs, and content. These can be overridden to change technical behavior. ```json "files": [ {"fileId": "2f00", "shortFileId": "1e", "content": "61324f0fe828bd080fa000000167455349474e500f434941207a752044462e655369676e5100730c4f0aa000000167455349474e61094f07a0000002471001610b4f09e80704007f00070302610c4f0aa000000167455349474e"}, {"fileId": "011c", "shortFileId": "1c", "content": "3181c13012060a04007f0007020204020202010202010d300d060804007f00070202020201023012060a04007f00070202030202020102020129301c060904007f000702020302300c060704007f0007010202010d020129303e060804007f000702020831323012060a04007f0007020203020202010202012d301c060904007f000702020302300c060704007f0007010202010d02012d302a060804007f0007020206161e687474703a2f2f6273692e62756e642e64652f6369662f6e70612e786d6c"} ] ``` -------------------------------- ### Build Host Qt Option Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Defines an option to control whether to build host Qt, typically for iOS or Android. ```cmake option(BUILD_HOST_QT "Build host Qt" ON) ``` -------------------------------- ### Link Libraries for AusweisAppConfiguration Source: https://github.com/governikus/ausweisapp/blob/community/src/configuration/CMakeLists.txt Links necessary libraries to the AusweisAppConfiguration target. Ensures dependencies like Qt Core, AusweisAppGlobal, and AusweisAppFileProvider are available. ```cmake target_link_libraries(AusweisAppConfiguration ${Qt}::Core AusweisAppGlobal AusweisAppFileProvider) ``` -------------------------------- ### Get Specific Reader Information Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Request information about a specific reader by its name using the GET_READER command. The AusweisApp will respond with a 'reader' message containing the reader's details. ```json { "cmd": "GET_READER", "name": "NAME OF THE READER" } ``` -------------------------------- ### Define AusweisAppInit Platform Library Source: https://github.com/governikus/ausweisapp/blob/community/src/init/CMakeLists.txt Defines the AusweisAppInit as a platform library. This is a fundamental step in building the application's initialization component. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppInit) ``` -------------------------------- ### SOAP Message for Transmit Response Source: https://github.com/governikus/ausweisapp/blob/community/test/fixture/logfiles/auth.txt An example of a SOAP message used to send raw data, specifically a transmit response containing multiple APDUs. This is part of the network communication layer. ```xml urn:liberty:paos:2006-08 http://www.projectliberty.org/2006/01/role/paos http://www.bsi.bund.de/ecard/api/1.1/PAOS/GetNextCommand http://www.projectliberty.org/2006/02/role/paos urn:uuid:a429b3f4-4431-443c-9914-34b4780dcdee urn:uuid:ed5cb56e-069d-cff6-69c4-5683cc840575 http://www.bsi.bund.de/ecard/api/1.1/resultmajor#ok 990290008e08291b1d6a999f929c9000 990290008e08e52b5453e3826e0b9000 990290008e08fdda5f8c79d090839000 87310113c4ec2fa23d78069b885d48f5a5202048a9e5440f62aa46be0e09f4723054e952eca9db06b5ece4995a613b8af04909990290008e08c6b4a03e48d6ec3f9000 ``` -------------------------------- ### Configure Qt for Windows Dynamic OpenGL Source: https://github.com/governikus/ausweisapp/blob/community/libs/CMakeLists.txt Configures Qt for Windows with dynamic OpenGL and specifies the platform. ```cmake set(QT_CONFIGURE_FLAGS ${QT_CONFIGURE_FLAGS} -opengl dynamic -platform ${QT_PLATFORM}) ``` -------------------------------- ### INFO Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON object represents the INFO message, which provides details about the AusweisApp. It includes version information for the application and its specifications, as well as the connection status to the AusweisApp service. ```json { "msg": "INFO", "VersionInfo": { "Name": "AusweisApp2", "Implementation-Title": "AusweisApp2", "Implementation-Vendor": "Governikus GmbH & Co. KG", "Implementation-Version": "2.0.0", "Specification-Title": "TR-03124-1", "Specification-Vendor": "Federal Office for Information Security", "Specification-Version": "1.4" }, "AusweisApp": "CONNECTED" } ``` -------------------------------- ### Add Platform Library Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/local_ifd/CMakeLists.txt Adds the AusweisAppUiLocalIfd as a platform library. ```cmake ADD_PLATFORM_LIBRARY(AusweisAppUiLocalIfd) ``` -------------------------------- ### Link Core and UI Libraries Source: https://github.com/governikus/ausweisapp/blob/community/src/ui/aidl/CMakeLists.txt Links the AusweisAppUiAidl library with essential Qt modules and other project libraries. ```cmake target_link_libraries(AusweisAppUiAidl ${Qt}::Core ${Qt}::Gui AusweisAppUiJson AusweisAppGlobal) ``` -------------------------------- ### Binding to the AusweisApp2 SDK Service Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/android.rst Initiates the binding process to the AusweisApp2 SDK background service using a specific Intent and a ServiceConnection. This starts the SDK if it's not running and establishes an IPC connection. ```java import android.app.Activity; import android.content.Context; import android.content.Intent; // [...] String pkg = getApplicationContext().getPackageName(); String name = "com.governikus.ausweisapp2.START_SERVICE"; Intent serviceIntent = new Intent(name); serviceIntent.setPackage(pkg); bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE); ``` -------------------------------- ### Link Qt Network and Test Libraries Source: https://github.com/governikus/ausweisapp/blob/community/test/helper/common/CMakeLists.txt Links the AusweisAppTestHelperCommon target against Qt Network and Qt Test libraries. ```cmake target_link_libraries(AusweisAppTestHelperCommon ${Qt}::Network ${Qt}::Test) ``` -------------------------------- ### Log: Certificate Key Length Check Source: https://github.com/governikus/ausweisapp/blob/community/test/fixture/logfiles/auth.txt Logs the process of checking the key length and type of a certificate during TLS connection setup. It specifies the certificate type and the key size being checked against a minimum requested size. ```log default 2022.07.26 09:59:28.265 53857 TlsChecker::hasValidCertificateKeyLength(network/TlsChecker.cpp:46) : Check certificate key of type "Rsa" and key size 4096 default 2022.07.26 09:59:28.265 53857 TlsChecker::isValidKeyLength(network/TlsChecker.cpp:82) : Minimum requested key size 2000 ``` -------------------------------- ### Start Change PIN Workflow Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Initiates the change PIN workflow. Supports customization of system dialogs on iOS via messages and automatic status updates. Requires API level v2 for status parameter. ```json { "cmd": "RUN_CHANGE_PIN", "handleInterrupt": false, "status": true, "messages": { "sessionStarted": "Please place your ID card on the top of the device's back side.", "sessionFailed": "Scanning process failed.", "sessionSucceeded": "Scanning process has been finished successfully.", "sessionInProgress": "Scanning process is in progress." } } ``` -------------------------------- ### RUN_CHANGE_PIN Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/commands.rst Starts a change PIN workflow. This command initiates the process for changing the user's PIN on their ID card. It supports optional parameters for handling interruptions, status messages, and custom dialog messages on iOS. ```APIDOC ## RUN_CHANGE_PIN ### Description Starts a change PIN workflow. The |AppName| will send a :ref:`change_pin` message when the workflow is started. The system dialog on iOS can be customized by **messages**. This dialog won't be stopped by default after an :ref:`enter_pin`, :ref:`enter_can`, :ref:`enter_new_pin` and :ref:`enter_puk`. ### Parameters #### Request Body - **handleInterrupt** (boolean) - Optional - True to automatically handle system dialog on iOS, otherwise false. :ref:`api_level` v1 only. (default: false) - **status** (boolean) - Optional - True to enable automatic :ref:`status` messages, otherwise false. :ref:`api_level` v2 only. (default: true) - **messages** (object) - Optional - Messages for the system dialog on iOS. (default: empty) - **sessionStarted** (string) - Shown if scanning is started. - **sessionFailed** (string) - Shown if communication was stopped with an error. - **sessionSucceeded** (string) - Shown if communication was stopped successfully. - **sessionInProgress** (string) - Shown if communication is in progress. This message will be appended with current percentage level. ### Request Example ```json { "cmd": "RUN_CHANGE_PIN", "handleInterrupt": false, "status": true, "messages": { "sessionStarted": "Please place your ID card on the top of the device's back side.", "sessionFailed": "Scanning process failed.", "sessionSucceeded": "Scanning process has been finished successfully.", "sessionInProgress": "Scanning process is in progress." } } ``` ### Note This command is allowed only if the |AppName| has no running authentication or other workflow. Otherwise you will get a :ref:`bad_state` message as an answer. ``` -------------------------------- ### Include Qt Core Private Directories Source: https://github.com/governikus/ausweisapp/blob/community/test/helper/common/CMakeLists.txt Includes the private include directories for Qt Core, marked as SYSTEM to avoid user warnings. ```cmake target_include_directories(AusweisAppTestHelperCommon SYSTEM PRIVATE ${Qt6Core_PRIVATE_INCLUDE_DIRS}) ``` -------------------------------- ### API_LEVEL Message Example Source: https://github.com/governikus/ausweisapp/blob/community/docs/sdk/messages.rst This JSON object represents an API_LEVEL message. It includes an optional error message, a list of available API levels, and the currently selected API level. This message is sent in response to get_api_level or set_api_level commands. ```json { "msg": "API_LEVEL", "error": "optional error message like an invalid level", "available": [1,2,3], "current": 3 } ```