diff options
Diffstat (limited to 'src')
144 files changed, 6407 insertions, 1204 deletions
diff --git a/src/Boot/Windows/Release/BootLoader.com.gz b/src/Boot/Windows/Release/BootLoader.com.gz Binary files differindex b2859c5e..9bf2133e 100644 --- a/src/Boot/Windows/Release/BootLoader.com.gz +++ b/src/Boot/Windows/Release/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_AES/BootLoader.com.gz b/src/Boot/Windows/Release_AES/BootLoader.com.gz Binary files differindex dda3c191..222aa5a1 100644 --- a/src/Boot/Windows/Release_AES/BootLoader.com.gz +++ b/src/Boot/Windows/Release_AES/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_AES_SHA2/BootLoader.com.gz b/src/Boot/Windows/Release_AES_SHA2/BootLoader.com.gz Binary files differindex 89bbd0bb..6aebbf06 100644 --- a/src/Boot/Windows/Release_AES_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Release_AES_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Camellia/BootLoader.com.gz b/src/Boot/Windows/Release_Camellia/BootLoader.com.gz Binary files differindex e4113bbc..f090cdfb 100644 --- a/src/Boot/Windows/Release_Camellia/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Camellia/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Camellia_SHA2/BootLoader.com.gz b/src/Boot/Windows/Release_Camellia_SHA2/BootLoader.com.gz Binary files differindex a7351aff..edc5e25f 100644 --- a/src/Boot/Windows/Release_Camellia_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Camellia_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_SHA2/BootLoader.com.gz b/src/Boot/Windows/Release_SHA2/BootLoader.com.gz Binary files differindex 5cc3ac4a..b9d83263 100644 --- a/src/Boot/Windows/Release_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Release_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Serpent/BootLoader.com.gz b/src/Boot/Windows/Release_Serpent/BootLoader.com.gz Binary files differindex 93d50bd2..2a9cac0b 100644 --- a/src/Boot/Windows/Release_Serpent/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Serpent/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Serpent_SHA2/BootLoader.com.gz b/src/Boot/Windows/Release_Serpent_SHA2/BootLoader.com.gz Binary files differindex 9e11a85b..19ab043c 100644 --- a/src/Boot/Windows/Release_Serpent_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Serpent_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Twofish/BootLoader.com.gz b/src/Boot/Windows/Release_Twofish/BootLoader.com.gz Binary files differindex 50ef7af2..885190f2 100644 --- a/src/Boot/Windows/Release_Twofish/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Twofish/BootLoader.com.gz diff --git a/src/Boot/Windows/Release_Twofish_SHA2/BootLoader.com.gz b/src/Boot/Windows/Release_Twofish_SHA2/BootLoader.com.gz Binary files differindex 17654817..0090b771 100644 --- a/src/Boot/Windows/Release_Twofish_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Release_Twofish_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue/BootLoader.com.gz b/src/Boot/Windows/Rescue/BootLoader.com.gz Binary files differindex dde75739..181b2d35 100644 --- a/src/Boot/Windows/Rescue/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_AES/BootLoader.com.gz b/src/Boot/Windows/Rescue_AES/BootLoader.com.gz Binary files differindex 5bca6dd3..5114925b 100644 --- a/src/Boot/Windows/Rescue_AES/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_AES/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_AES_SHA2/BootLoader.com.gz b/src/Boot/Windows/Rescue_AES_SHA2/BootLoader.com.gz Binary files differindex a3a50d81..52382753 100644 --- a/src/Boot/Windows/Rescue_AES_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_AES_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Camellia/BootLoader.com.gz b/src/Boot/Windows/Rescue_Camellia/BootLoader.com.gz Binary files differindex 82e823dc..60d7d41a 100644 --- a/src/Boot/Windows/Rescue_Camellia/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Camellia/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Camellia_SHA2/BootLoader.com.gz b/src/Boot/Windows/Rescue_Camellia_SHA2/BootLoader.com.gz Binary files differindex 978d43ae..f2a0fc22 100644 --- a/src/Boot/Windows/Rescue_Camellia_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Camellia_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_SHA2/BootLoader.com.gz b/src/Boot/Windows/Rescue_SHA2/BootLoader.com.gz Binary files differindex bb4fd841..47e8283a 100644 --- a/src/Boot/Windows/Rescue_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Serpent/BootLoader.com.gz b/src/Boot/Windows/Rescue_Serpent/BootLoader.com.gz Binary files differindex b2cc5727..c248eb6b 100644 --- a/src/Boot/Windows/Rescue_Serpent/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Serpent/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Serpent_SHA2/BootLoader.com.gz b/src/Boot/Windows/Rescue_Serpent_SHA2/BootLoader.com.gz Binary files differindex e1e0ac0e..e3e889e0 100644 --- a/src/Boot/Windows/Rescue_Serpent_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Serpent_SHA2/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Twofish/BootLoader.com.gz b/src/Boot/Windows/Rescue_Twofish/BootLoader.com.gz Binary files differindex fd17642e..6525bcaa 100644 --- a/src/Boot/Windows/Rescue_Twofish/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Twofish/BootLoader.com.gz diff --git a/src/Boot/Windows/Rescue_Twofish_SHA2/BootLoader.com.gz b/src/Boot/Windows/Rescue_Twofish_SHA2/BootLoader.com.gz Binary files differindex 49afd19b..9837e671 100644 --- a/src/Boot/Windows/Rescue_Twofish_SHA2/BootLoader.com.gz +++ b/src/Boot/Windows/Rescue_Twofish_SHA2/BootLoader.com.gz diff --git a/src/Build/CMakeLists.txt b/src/Build/CMakeLists.txt index 9da138ab..458040e8 100644 --- a/src/Build/CMakeLists.txt +++ b/src/Build/CMakeLists.txt @@ -11,8 +11,8 @@ elseif ( NOT DEFINED NOGUI ) endif() # - Set version of the package -set( FULL_VERSION "1.26.10" ) -set( VERSION "1.26.10" ) +set( FULL_VERSION "1.26.15" ) +set( VERSION "1.26.15" ) set( RELEASE "1" ) # - Set PROJECT_NAME and CONFLICT_PACKAGE values @@ -111,6 +111,15 @@ if ( UNIX ) file(READ "/etc/centos-release" CENTOS_RELEASE) string(REGEX MATCH "release ([0-9 /\\.]+)" _ ${CENTOS_RELEASE}) set(PLATFORM_VERSION ${CMAKE_MATCH_1}) + + # Get fedora release version + elseif(EXISTS "/etc/fedora-release") + + set ( PLATFORM "Fedora" ) + + file(READ "/etc/fedora-release" FEDORA_RELEASE) + string(REGEX MATCH "release ([0-9 /\\.]+)" _ ${FEDORA_RELEASE}) + set(PLATFORM_VERSION ${CMAKE_MATCH_1}) # Only if distribution uses systemd and if all previous files didn't exist # i.e OpenSUSE @@ -128,6 +137,8 @@ if ( UNIX ) set ( PLATFORM "Debian" ) elseif ( FULL_PLATFORM MATCHES "^.*CentOS.*$" ) set ( PLATFORM "CentOS" ) + elseif ( FULL_PLATFORM MATCHES "^.*Fedora.*$" ) + set ( PLATFORM "Fedora" ) endif ( ) # Get ditribution release version @@ -164,7 +175,7 @@ if ( PLATFORM STREQUAL "Debian" OR PLATFORM STREQUAL "Ubuntu" ) execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) endif( ) -elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) ) +elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) OR ( PLATFORM STREQUAL "Fedora" )) execute_process(COMMAND arch OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -295,7 +306,7 @@ if ( ( PLATFORM STREQUAL "Debian" ) OR ( PLATFORM STREQUAL "Ubuntu" ) ) set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${DEBIAN_PREINST};${DEBIAN_POSTINST};${DEBIAN_PRERM};${DEBIAN_POSTRM}) set(CPACK_DEBIAN_PACKAGE_CONFLICTS "${CONFLICT_PACKAGE}") -elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) ) +elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) OR ( PLATFORM STREQUAL "Fedora" )) # RPM control script(s) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging/rpm-control) @@ -318,17 +329,13 @@ elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) ) if (NOGUI) set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, sudo" ) else () - if ( PLATFORM STREQUAL "CentOS" ) - - if ( DEFINED WITHGTK3 AND WITHGTK3 ) - set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo, pcsc-lite" ) - else () - set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" ) - endif() - - elseif ( PLATFORM STREQUAL "openSUSE" ) - - set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" ) + find_package(PkgConfig REQUIRED) + pkg_check_modules(GTK3 gtk+-3.0) + + if(GTK3_FOUND) + set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3, sudo, pcsc-lite" ) + else() + set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2, sudo, pcsc-lite" ) endif() endif() diff --git a/src/Build/Resources/MacOSX/Info.plist.legacy.xml b/src/Build/Resources/MacOSX/Info.plist.legacy.xml index 6b86f9f5..5b9ced6e 100644 --- a/src/Build/Resources/MacOSX/Info.plist.legacy.xml +++ b/src/Build/Resources/MacOSX/Info.plist.legacy.xml @@ -74,7 +74,7 @@ <string>TRUE</string> <key>CFBundleVersion</key> - <string>1.26.10</string> + <string>_VERSION_</string> <key>CFBundleShortVersionString</key> <string>_VERSION_</string> diff --git a/src/Build/Resources/MacOSX/Info.plist.xml b/src/Build/Resources/MacOSX/Info.plist.xml index 1a12d6bf..04ed21c1 100644 --- a/src/Build/Resources/MacOSX/Info.plist.xml +++ b/src/Build/Resources/MacOSX/Info.plist.xml @@ -74,7 +74,7 @@ <string>TRUE</string> <key>CFBundleVersion</key> - <string>1.26.10</string> + <string>_VERSION_</string> <key>CFBundleShortVersionString</key> <string>_VERSION_</string> @@ -83,7 +83,7 @@ <string>VeraCrypt _VERSION_</string> <key>LSMinimumSystemVersion</key> - <string>10.9.0</string> + <string>12.0.0</string> <key>LSRequiresCarbon</key> <false/> diff --git a/src/Build/build_cmake_deb.sh b/src/Build/build_cmake_deb.sh index f756cd10..8bceb886 100755 --- a/src/Build/build_cmake_deb.sh +++ b/src/Build/build_cmake_deb.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -18,9 +18,26 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") # Directory where the VeraCrypt has been checked out export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi +fi + # The sources of wxWidgets 3.2.5 must be extracted to the parent directory export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 -echo "Using wxWidgets sources in $WX_ROOT" cd $SOURCEPATH @@ -41,7 +58,13 @@ build_and_install() { wxstatic_value="" if [ "$wxstatic" = "WXSTATIC" ]; then wxstatic_value="WXSTATIC=1" - make $wxstatic_value $nogui wxbuild || exit 1 + # Check if wx-config exists in WX_BUILD_DIR + if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." + else + echo "Using wxWidgets sources in $WX_ROOT" + make $wxstatic_value $nogui wxbuild || exit 1 + fi fi indicator_value="" diff --git a/src/Build/build_cmake_opensuse.sh b/src/Build/build_cmake_opensuse.sh index 622eb4cd..13a75bec 100644 --- a/src/Build/build_cmake_opensuse.sh +++ b/src/Build/build_cmake_opensuse.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -18,9 +18,26 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") # Directory where the VeraCrypt has been checked out export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") -# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi +fi + +# The sources of wxWidgets 3.2.5 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 cd $SOURCEPATH @@ -29,18 +46,19 @@ echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries # This will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGui -# To build wxWidgets using GTK-2 -make WXSTATIC=1 wxbuild || exit 1 -ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64 +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 wxbuild || exit 1 + ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64 +fi + make WXSTATIC=1 clean || exit 1 make WXSTATIC=1 || exit 1 make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 clean || exit 1 -# make WXSTATIC=1 || exit 1 -# make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 - echo "Building console version of VeraCrypt for RPM using wxWidgets static libraries" # This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?" @@ -50,18 +68,19 @@ echo "Building console version of VeraCrypt for RPM using wxWidgets static libra # This will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole -# To build wxWidgets using GTK-2 -make WXSTATIC=1 NOGUI=1 wxbuild || exit 1 -ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64 +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 NOGUI=1 wxbuild || exit 1 + ln -s $WX_BUILD_DIR/lib $WX_BUILD_DIR/lib64 +fi + make WXSTATIC=1 NOGUI=1 clean || exit 1 make WXSTATIC=1 NOGUI=1 || exit 1 make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 clean || exit 1 -# make WXSTATIC=1 NOGUI=1 || exit 1 -# make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 - echo "Creating VeraCrypt RPM packages " # -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM @@ -70,8 +89,8 @@ echo "Creating VeraCrypt RPM packages " mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console -# wxWidgets was built using GTK-2 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -DNOGUI=FALSE || exit 1 +# wxWidgets was built using native GTK version +cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DNOGUI=FALSE || exit 1 cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=FALSE -DNOGUI=TRUE || exit 1 +cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DNOGUI=TRUE || exit 1 cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake|| exit 1 diff --git a/src/Build/build_cmake_rpm_gtk2.sh b/src/Build/build_cmake_rpm.sh index 3f33cc1c..ba6ea355 100644 --- a/src/Build/build_cmake_rpm_gtk2.sh +++ b/src/Build/build_cmake_rpm.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -18,9 +18,26 @@ export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") # Directory where the VeraCrypt has been checked out export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") -# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi +fi + +# The sources of wxWidgets 3.2.5 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 cd $SOURCEPATH @@ -29,17 +46,18 @@ echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries # This will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGui -# To build wxWidgets using GTK-2 -make WXSTATIC=1 wxbuild || exit 1 +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 wxbuild || exit 1 +fi + make WXSTATIC=1 clean || exit 1 make WXSTATIC=1 || exit 1 make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 clean || exit 1 -# make WXSTATIC=1 || exit 1 -# make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 - echo "Building console version of VeraCrypt for RPM using wxWidgets static libraries" # This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?" @@ -49,17 +67,18 @@ echo "Building console version of VeraCrypt for RPM using wxWidgets static libra # This will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole -# To build wxWidgets using GTK-2 -make WXSTATIC=1 NOGUI=1 wxbuild || exit 1 +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 NOGUI=1 wxbuild || exit 1 +fi + make WXSTATIC=1 NOGUI=1 clean || exit 1 make WXSTATIC=1 NOGUI=1 || exit 1 make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 clean || exit 1 -# make WXSTATIC=1 NOGUI=1 || exit 1 -# make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 - echo "Creating VeraCrypt RPM packages " # -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM @@ -68,8 +87,8 @@ echo "Creating VeraCrypt RPM packages " mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console -# wxWidgets was built using GTK-2 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -DNOGUI=FALSE || exit 1 +# wxWidgets was built using native GTK version +cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DNOGUI=FALSE || exit 1 cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=FALSE -DNOGUI=TRUE || exit 1 +cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DNOGUI=TRUE || exit 1 cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake || exit 1 diff --git a/src/Build/build_cmake_rpm_gtk3.sh b/src/Build/build_cmake_rpm_gtk3.sh deleted file mode 100644 index 72556dcf..00000000 --- a/src/Build/build_cmake_rpm_gtk3.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2013-2022 IDRIX -# Governed by the Apache License 2.0 the full text of which is contained -# in the file License.txt included in VeraCrypt binary and source -# code distribution packages. -# - -# Errors should cause script to exit -set -e - -# Absolute path to this script -export SCRIPT=$(readlink -f "$0") -# Absolute path this script is in -export SCRIPTPATH=$(dirname "$SCRIPT") -# Source directory which contains the Makefile -export SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") -# Directory where the VeraCrypt has been checked out -export PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") - -# The sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" - -cd $SOURCEPATH - -echo "Building GUI version of VeraCrypt for RPM using wxWidgets static libraries" - -# This will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuildGui - -# To build wxWidgets using GTK-3 -make WXSTATIC=1 WITHGTK3=1 wxbuild || exit 1 -make WXSTATIC=1 clean || exit 1 -make WXSTATIC=1 || exit 1 -make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 - -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 clean || exit 1 -# make WXSTATIC=1 || exit 1 -# make WXSTATIC=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1 - -echo "Building console version of VeraCrypt for RPM using wxWidgets static libraries" - -# This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?" -# when building over SSH without X11 Forwarding -# export DISPLAY=:0.0 - -# This will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole - -# To build wxWidgets using GTK-3 -make WXSTATIC=1 WITHGTK3=1 NOGUI=1 wxbuild || exit 1 -make WXSTATIC=1 NOGUI=1 clean || exit 1 -make WXSTATIC=1 NOGUI=1 || exit 1 -make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 - -# Uncomment below and comment lines above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 clean || exit 1 -# make WXSTATIC=1 NOGUI=1 || exit 1 -# make WXSTATIC=1 NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1 - -echo "Creating VeraCrypt RPM packages " - -# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM -# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack RPM - -mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI -mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console - -# wxWidgets was built using GTK-3 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=TRUE -DNOGUI=FALSE || exit 1 -cpack --config $PARENTDIR/VeraCrypt_Packaging/GUI/CPackConfig.cmake || exit 1 -cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/Console -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/Console" -DWITHGTK3=TRUE -DNOGUI=TRUE || exit 1 -cpack --config $PARENTDIR/VeraCrypt_Packaging/Console/CPackConfig.cmake|| exit 1 diff --git a/src/Build/build_veracrypt_freebsd.sh b/src/Build/build_veracrypt_freebsd.sh index 176c8499..892a7eed 100755 --- a/src/Build/build_veracrypt_freebsd.sh +++ b/src/Build/build_veracrypt_freebsd.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -15,15 +15,26 @@ SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") # directory where the VeraCrypt has been checked out PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") -# Make sure only root can run our script -if [ "$(id -u)" != "0" ]; then - echo "VeraCrypt must be built by root" 1>&2 - exit 1 +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi fi -# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" +# The sources of wxWidgets 3.2.5 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 cd $SOURCEPATH @@ -32,17 +43,30 @@ echo "Building GUI version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGui -gmake WXSTATIC=1 wxbuild && gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + gmake WXSTATIC=1 wxbuild || exit 1 +fi -# Uncomment below and comment line above to reuse existing wxWidgets build -#gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package +gmake WXSTATIC=1 clean || exit 1 +gmake WXSTATIC=1 || exit 1 +gmake WXSTATIC=1 package || exit 1 echo "Building console version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole -gmake WXSTATIC=1 NOGUI=1 wxbuild && gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -#gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + gmake WXSTATIC=1 NOGUI=1 wxbuild || exit 1 +fi +gmake WXSTATIC=1 NOGUI=1 clean || exit 1 +gmake WXSTATIC=1 NOGUI=1 || exit 1 +gmake WXSTATIC=1 NOGUI=1 package || exit 1 diff --git a/src/Build/build_veracrypt_linux.sh b/src/Build/build_veracrypt_linux.sh index fa928556..b6ac39ed 100755 --- a/src/Build/build_veracrypt_linux.sh +++ b/src/Build/build_veracrypt_linux.sh @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -20,9 +20,26 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi +fi + +# The sources of wxWidgets 3.2.5 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 cd $SOURCEPATH @@ -31,17 +48,29 @@ echo "Building GUI version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGui -make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 wxbuild || exit 1 +fi +make WXSTATIC=1 clean || exit 1 +make WXSTATIC=1 || exit 1 +make WXSTATIC=1 package || exit 1 echo "Building console version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole -make WXSTATIC=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 NOGUI=1 wxbuild || exit 1 +fi +make WXSTATIC=1 NOGUI=1 clean || exit 1 +make WXSTATIC=1 NOGUI=1 || exit 1 +make WXSTATIC=1 NOGUI=1 package || exit 1 diff --git a/src/Build/build_veracrypt_linux_gtk3.sh b/src/Build/build_veracrypt_linux_gtk3.sh deleted file mode 100644 index bae6a856..00000000 --- a/src/Build/build_veracrypt_linux_gtk3.sh +++ /dev/null @@ -1,47 +0,0 @@ -# -# Copyright (c) 2013-2022 IDRIX -# Governed by the Apache License 2.0 the full text of which is contained -# in the file License.txt included in VeraCrypt binary and source -# code distribution packages. -# - -# Absolute path to this script -SCRIPT=$(readlink -f "$0") -# Absolute path this script is in -SCRIPTPATH=$(dirname "$SCRIPT") -# source directory which contains the Makefile -SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") -# directory where the VeraCrypt has been checked out -PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") - -# Make sure only root can run our script -if [ "$(id -u)" != "0" ]; then - echo "VeraCrypt must be built by root" 1>&2 - exit 1 -fi - -# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" - -cd $SOURCEPATH - -echo "Building GUI version of VeraCrypt" - -# this will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuildGui - -make WXSTATIC=1 WITHGTK3=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -#make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package - -echo "Building console version of VeraCrypt" - -# this will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole - -make WXSTATIC=1 WITHGTK3=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -#make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package diff --git a/src/Build/build_veracrypt_linux_no_sse2.sh b/src/Build/build_veracrypt_linux_no_sse2.sh index f68641b9..6f0739c7 100755 --- a/src/Build/build_veracrypt_linux_no_sse2.sh +++ b/src/Build/build_veracrypt_linux_no_sse2.sh @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2022 IDRIX +# Copyright (c) 2013-2024 IDRIX # Governed by the Apache License 2.0 the full text of which is contained # in the file License.txt included in VeraCrypt binary and source # code distribution packages. @@ -20,9 +20,26 @@ if [ "$(id -u)" != "0" ]; then exit 1 fi -# the sources of wxWidgets 3.2.2.1 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 -echo "Using wxWidgets sources in $WX_ROOT" +# Check the condition of wxBuildConsole and wxWidgets-3.2.5 in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-3.2.5 is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-3.2.5" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-3.2.5 is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-3.2.5 found in /tmp. Exiting." + exit 1 + fi +fi + +# The sources of wxWidgets 3.2.5 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 cd $SOURCEPATH @@ -31,17 +48,29 @@ echo "Building GUI version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGuiNoSSE2 -make WXSTATIC=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 NOSSE2=1 wxbuild || exit 1 +fi +make WXSTATIC=1 NOSSE2=1 clean || exit 1 +make WXSTATIC=1 NOSSE2=1 || exit 1 +make WXSTATIC=1 NOSSE2=1 package || exit 1 echo "Building console version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsoleNoSSE2 -make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package - -# Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild || exit 1 +fi +make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean || exit 1 +make WXSTATIC=1 NOGUI=1 NOSSE2=1 || exit 1 +make WXSTATIC=1 NOGUI=1 NOSSE2=1 package || exit diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh index 687da160..13302442 100755 --- a/src/Build/build_veracrypt_macosx.sh +++ b/src/Build/build_veracrypt_macosx.sh @@ -7,26 +7,77 @@ # code distribution packages. # +# Exit immediately if a command exits with a non-zero status +set -e + # Absolute path this script is in -SCRIPTPATH=$(cd "$(dirname "$0")"; pwd) +SCRIPTPATH=$(cd "$(dirname "$0")" && pwd) # source directory which contains the Makefile -SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd) +SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")" && pwd) # directory where the VeraCrypt project has been checked out -PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd) +PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")" && pwd) + +# Default wxWidgets version +DEFAULT_WX_VERSION="3.2.5" +WX_VERSION="$DEFAULT_WX_VERSION" + +# Initialize flags +brew=false +package=false +fuset=false +local_build=false -while getopts bp flag +# Function to display usage information +usage() { + echo "Usage: $0 [options]" + echo "Options:" + echo " -b Use Homebrew to build with precompiled packages" + echo " -p Create a package after building" + echo " -f Build with FUSE-T support" + echo " -l Use local wxWidgets and disable universal binaries" + echo " -v <version> Specify wxWidgets version (default: $DEFAULT_WX_VERSION)" + echo " -h Display this help message" + exit 1 +} + +# Parse command-line options +while getopts "bpflv:h" flag do case "${flag}" in b) brew=true;; p) package=true;; + f) fuset=true;; + l) local_build=true;; + v) + if [ -z "$OPTARG" ]; then + echo "Error: -v requires a version argument." + usage + fi + WX_VERSION=${OPTARG} + ;; + h) usage;; + *) usage;; esac done -if [ -n "$brew" ]; then - export VC_OSX_SDK=$(xcrun --show-sdk-version) #use the latest version installed, this might fail +export VC_OSX_FUSET=$([ "$fuset" = true ] && echo 1 || echo 0) + +if [ "$fuset" = true ]; then + echo "Building VeraCrypt with FUSE-T support" +else + echo "Building VeraCrypt with MacFUSE support" +fi + +if [ "$brew" = true ]; then + if ! command -v brew &> /dev/null; then + echo "Homebrew is not installed. Please install Homebrew or run without the -b flag." + exit 1 + fi + + export VC_OSX_SDK=$(xcrun --show-sdk-version) # use the latest version installed, this might fail export VC_OSX_TARGET=${VC_OSX_SDK} echo "Using MacOSX SDK $VC_OSX_SDK with target set to $VC_OSX_TARGET" - cd $SOURCEPATH + cd "$SOURCEPATH" echo "Building VeraCrypt with precompiled homebrew packages" cellar=$(brew --cellar "wxwidgets") @@ -38,30 +89,62 @@ if [ -n "$brew" ]; then export CPU_ARCH=$(uname -m) export AS=$(which yasm) export COMPILE_ASM=$( if [[ "$CPU_ARCH" != "arm64" ]]; then echo true; else echo false; fi ) - make clean && make - if [ -n "$package" ]; then + make clean + make + if [ "$package" = true ]; then make package fi exit 0 fi -# the sources of wxWidgets 3.2.5 must be extracted to the parent directory (for night mode) -export WX_ROOT=$PARENTDIR/wxWidgets-3.2.5 -echo "Using wxWidgets sources in $WX_ROOT" +if [ "$local_build" = true ]; then + echo "Building VeraCrypt with local wxWidgets support and no universal binary" + export LOCAL_DEVELOPMENT_BUILD=true +fi + +# Check the condition of wxBuildConsole and wxWidgets-$WX_VERSION in the original PARENTDIR +if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxBuildConsole is present." +elif [ -d "$PARENTDIR/wxWidgets-$WX_VERSION" ]; then + echo "Using existing PARENTDIR: $PARENTDIR, wxWidgets-$WX_VERSION is present." +else + # Change PARENTDIR to /tmp and check conditions again + export PARENTDIR="/tmp" + if [ -d "$PARENTDIR/wxBuildConsole" ]; then + echo "Switched to PARENTDIR: /tmp, wxBuildConsole is present in /tmp." + elif [ -d "$PARENTDIR/wxWidgets-$WX_VERSION" ]; then + echo "Switched to PARENTDIR: /tmp, wxWidgets-$WX_VERSION is present in /tmp." + else + echo "Error: Neither wxBuildConsole nor wxWidgets-$WX_VERSION found in /tmp. Exiting." + exit 1 + fi +fi + +# The sources of wxWidgets $WX_VERSION must be extracted to the parent directory +export WX_ROOT="$PARENTDIR/wxWidgets-$WX_VERSION" # this will be the temporary wxWidgets directory -export WX_BUILD_DIR=$PARENTDIR/wxBuild-3.2.5 +export WX_BUILD_DIR="$PARENTDIR/wxBuild-$WX_VERSION" # define the SDK version to use and OSX minimum target. We target 12 by default export VC_OSX_TARGET=12 export VC_OSX_SDK=$(xcrun --show-sdk-version) #use the latest version installed echo "Using MacOSX SDK $VC_OSX_SDK with target set to $VC_OSX_TARGET" -cd $SOURCEPATH +cd "$SOURCEPATH" echo "Building VeraCrypt" -make WXSTATIC=FULL wxbuild && make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package - -# Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package +# Check if wx-config exists in WX_BUILD_DIR +if [ -L "${WX_BUILD_DIR}/wx-config" ]; then + echo "wx-config already exists in ${WX_BUILD_DIR}. Skipping wxbuild." +else + echo "Using wxWidgets sources in $WX_ROOT" + make WXSTATIC=FULL wxbuild +fi +make WXSTATIC=FULL clean +make WXSTATIC=FULL +if [ "$package" = true ]; then + make WXSTATIC=FULL package +fi +echo "VeraCrypt build completed successfully." diff --git a/src/Build/sign_rpm.sh b/src/Build/sign_rpm.sh new file mode 100644 index 00000000..9abc041e --- /dev/null +++ b/src/Build/sign_rpm.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Function to display usage information +usage() { + echo "Usage: $0 <directory>" + exit 1 +} + +# Check if a directory was provided as an argument +if [ $# -ne 1 ]; then + usage +fi + +DIRECTORY="$1" + +# Check if the specified directory exists +if [ ! -d "$DIRECTORY" ]; then + echo "Error: Directory '$DIRECTORY' does not exist." + exit 1 +fi + +# Check if there are any RPM files in the directory +shopt -s nullglob # Make the glob return an empty array if no match +rpm_files=("$DIRECTORY"/*.rpm) + +if [ ${#rpm_files[@]} -eq 0 ]; then + echo "No RPM files found in directory '$DIRECTORY'." + exit 0 +fi + +# Iterate over each RPM file in the directory +for rpm_file in "${rpm_files[@]}"; do + echo "Processing $rpm_file..." + + # Remove the existing signature if any + echo "Removing existing signature from $rpm_file (if any)..." + rpmsign --delsign "$rpm_file" || { + echo "Failed to remove signature from $rpm_file." + exit 1 + } + + # Sign the RPM file + echo "Signing $rpm_file..." + rpmsign --define "_gpg_name veracrypt@idrix.fr" \ + --define "_gpg_digest_algo sha512" \ + --define "_source_filedigest_algorithm 10" \ + --define "_binary_filedigest_algorithm 10" \ + --addsign "$rpm_file" || { + echo "Failed to sign $rpm_file. Aborting." + exit 1 + } + + echo "Successfully signed $rpm_file." +done diff --git a/src/COMReg/COMReg.rc b/src/COMReg/COMReg.rc index 0f789fec..8c16a632 100644 --- a/src/COMReg/COMReg.rc +++ b/src/COMReg/COMReg.rc @@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -45,11 +45,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt COMReg" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCrypt COMReg.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" diff --git a/src/COMReg/COMReg_vs2019.vcxproj b/src/COMReg/COMReg_vs2019.vcxproj new file mode 100644 index 00000000..b85658ac --- /dev/null +++ b/src/COMReg/COMReg_vs2019.vcxproj @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{C8914211-32AC-4F48-ACD9-8212E8DE53F3}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>COMReg</RootNamespace> + <ProjectName>COMReg</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <TargetName>VeraCryptCOMRegBase</TargetName> + <OutDir>$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(ConfigurationName)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <TargetName>VeraCryptCOMRegBase</TargetName> + <OutDir>$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(ConfigurationName)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;VC_COMREG;_DEBUG;_WINDOWS;HAVE_CONFIG_H;ZIP_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <AdditionalIncludeDirectories>..\Setup;..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>..\Common\Debug\Zip.lib;..\Crypto\Debug\crypto.lib;..\Common\Debug\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>copy Debug\VeraCryptCOMRegBase.exe "..\Debug\Setup Files\VeraCryptCOMRegBase.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;VC_COMREG;NDEBUG;_WINDOWS;HAVE_CONFIG_H;ZIP_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <AdditionalIncludeDirectories>..\Setup;..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ControlFlowGuard>Guard</ControlFlowGuard> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateMapFile>true</GenerateMapFile> + </Link> + <PostBuildEvent> + <Command>copy Release\VeraCryptCOMRegBase.exe "..\Release\Setup Files\VeraCryptCOMRegBase.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\Common\Crc.c" /> + <ClCompile Include="..\Common\Dlgcode.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Setup\SelfExtract.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Default</CompileAs> + </ClCompile> + <ClCompile Include="COMReg.cpp" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="COMReg.rc" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Crc.h" /> + <ClInclude Include="..\Common\Dlgcode.h" /> + <ClInclude Include="..\Setup\SelfExtract.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/src/COMReg/COMReg_vs2019.vcxproj.filters b/src/COMReg/COMReg_vs2019.vcxproj.filters new file mode 100644 index 00000000..cc5c60a3 --- /dev/null +++ b/src/COMReg/COMReg_vs2019.vcxproj.filters @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{453a6bf1-2afd-4016-8b8f-e3821a6c8ab5}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\Common"> + <UniqueIdentifier>{efcd999c-3973-4bd6-af14-0583669e6722}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="COMReg.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Setup\SelfExtract.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Crc.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="COMReg.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Setup\SelfExtract.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Dlgcode.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Crc.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/COMReg/COMReg_vs2019.vcxproj.user b/src/COMReg/COMReg_vs2019.vcxproj.user new file mode 100644 index 00000000..deea718b --- /dev/null +++ b/src/COMReg/COMReg_vs2019.vcxproj.user @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LocalDebuggerCommand>$(TargetPath)</LocalDebuggerCommand> + <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> + </PropertyGroup> +</Project>
\ No newline at end of file diff --git a/src/Common/Apidrvr.h b/src/Common/Apidrvr.h index 4074503d..04d69c05 100644 --- a/src/Common/Apidrvr.h +++ b/src/Common/Apidrvr.h @@ -177,6 +177,7 @@ typedef struct ULONG MaximumTransferLength; ULONG MaximumPhysicalPages; ULONG AlignmentMask; + BOOL VolumeMasterKeyVulnerable; } MOUNT_STRUCT; typedef struct @@ -316,6 +317,8 @@ typedef struct // is read-only (or mounted an outer/normal TrueCrypt volume as read only) uint32 HiddenSysLeakProtectionCount; + BOOL MasterKeyVulnerable; + } BootEncryptionStatus; diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp index 2080a44b..f79e7339 100644 --- a/src/Common/BootEncryption.cpp +++ b/src/Common/BootEncryption.cpp @@ -1462,6 +1462,7 @@ namespace VeraCrypt /* IMPORTANT: Do NOT add any potentially time-consuming operations to this function. */ BootEncryptionStatus status; + memset (&status, 0, sizeof(status)); CallDriver (TC_IOCTL_GET_BOOT_ENCRYPTION_STATUS, NULL, 0, &status, sizeof (status)); return status; } @@ -2635,14 +2636,24 @@ namespace VeraCrypt bool EfiBoot::IsEfiBoot() { DWORD BootOrderLen; BootOrderLen = GetFirmwareEnvironmentVariable(L"BootOrder", EfiVarGuid, tempBuf, sizeof(tempBuf)); - return BootOrderLen != 0; + return (BootOrderLen != 0) || (GetLastError() != ERROR_INVALID_FUNCTION); } void EfiBoot::DeleteStartExec(uint16 statrtOrderNum, wchar_t* type) { - SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, TRUE); + DWORD dwLastError; + BOOL bPrivilegesSet = IsPrivilegeEnabled (SE_SYSTEM_ENVIRONMENT_NAME); + if (!bPrivilegesSet && !SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, TRUE)) + { + dwLastError = GetLastError(); + wchar_t szMsg[128]; + StringCchPrintfW(szMsg, ARRAYSIZE(szMsg), L"Failed to set SE_SYSTEM_ENVIRONMENT_NAME privilege (error code 0x%.8X)", dwLastError); + throw ErrorException(szMsg, SRC_POS); + } // Check EFI if (!IsEfiBoot()) { - throw ErrorException(L"can not detect EFI environment", SRC_POS); + if (!bPrivilegesSet) + SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, FALSE); + throw ErrorException(L"Failed to detect EFI environment (error ERROR_INVALID_FUNCTION)", SRC_POS); } wchar_t varName[256]; StringCchPrintfW(varName, ARRAYSIZE (varName), L"%s%04X", type == NULL ? L"Boot" : type, statrtOrderNum); @@ -2685,13 +2696,26 @@ namespace VeraCrypt SetFirmwareEnvironmentVariable(next.c_str(), EfiVarGuid, startOrder, 0); } } + + if (!bPrivilegesSet) + SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, FALSE); } void EfiBoot::SetStartExec(wstring description, wstring execPath, bool setBootEntry, bool forceFirstBootEntry, bool setBootNext, uint16 statrtOrderNum , wchar_t* type, uint32 attr) { - SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, TRUE); + DWORD dwLastError; + BOOL bPrivilegesSet = IsPrivilegeEnabled (SE_SYSTEM_ENVIRONMENT_NAME); + if (!bPrivilegesSet && !SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, TRUE)) + { + dwLastError = GetLastError(); + wchar_t szMsg[128]; + StringCchPrintfW(szMsg, ARRAYSIZE(szMsg), L"Failed to set SE_SYSTEM_ENVIRONMENT_NAME privilege (error code 0x%.8X)", dwLastError); + throw ErrorException(szMsg, SRC_POS); + } // Check EFI if (!IsEfiBoot()) { - throw ErrorException(L"can not detect EFI environment", SRC_POS); + if (!bPrivilegesSet) + SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, FALSE); + throw ErrorException(L"Failed to detect EFI environment (error ERROR_INVALID_FUNCTION)", SRC_POS); } if (bDeviceInfoValid) @@ -2865,6 +2889,9 @@ namespace VeraCrypt SetFirmwareEnvironmentVariable(next.c_str(), EfiVarGuid, &statrtOrderNum, 2); } + + if (!bPrivilegesSet) + SetPrivilege(SE_SYSTEM_ENVIRONMENT_NAME, FALSE); } bool EfiBoot::CompareFiles (const wchar_t* fileName1, const wchar_t* fileName2) @@ -5401,6 +5428,10 @@ namespace VeraCrypt int status = ReadVolumeHeader (!encStatus.HiddenSystem, header, oldPassword, old_pkcs5, old_pim, &cryptoInfo, NULL); finally_do_arg (PCRYPTO_INFO, cryptoInfo, { if (finally_arg) crypto_close (finally_arg); }); + // if the XTS master key is vulnerable, return error and do not allow the user to change the password since the master key will not be changed + if ((status == 0) && cryptoInfo->bVulnerableMasterKey) + status = ERR_SYSENC_XTS_MASTERKEY_VULNERABLE; + if (status != 0) { handleError (hwndDlg, status, SRC_POS); diff --git a/src/Common/Common.rc b/src/Common/Common.rc index cbd401d8..41778dfc 100644 --- a/src/Common/Common.rc +++ b/src/Common/Common.rc @@ -344,9 +344,9 @@ IDD_TEXT_EDIT_DLG DIALOGEX 0, 0, 372, 220 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - PUSHBUTTON "OK",IDOK,306,201,58,14 + PUSHBUTTON "OK",IDOK,244,201,58,14 CONTROL "",IDC_INFO_BOX_TEXT,"RichEdit20W",ES_MULTILINE | ES_WANTRETURN | ES_NUMBER | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,5,6,361,188 - DEFPUSHBUTTON "Cancel",IDCANCEL,240,201,58,14 + DEFPUSHBUTTON "Cancel",IDCANCEL,308,201,58,14 END diff --git a/src/Common/Crypto.h b/src/Common/Crypto.h index 178e08e1..89d22f0e 100644 --- a/src/Common/Crypto.h +++ b/src/Common/Crypto.h @@ -277,6 +277,8 @@ typedef struct CRYPTO_INFO_t uint32 SectorSize; + BOOL bVulnerableMasterKey; // TRUE if XTS primary key is identical to secondary key (i.e. the volume is vulnerable to attack on XTS mode) + #endif // !TC_WINDOWS_BOOT UINT64_STRUCT VolumeSize; diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index e7103d0d..b91167d4 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -2156,7 +2156,7 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam L"Based on TrueCrypt 7.1a, freely available at http://www.truecrypt.org/ .\r\n\r\n" L"Portions of this software:\r\n" - L"Copyright \xA9 2013-2023 IDRIX. All rights reserved.\r\n" + L"Copyright \xA9 2013-2024 IDRIX. All rights reserved.\r\n" L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\r\n" L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\r\n" L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\r\n" @@ -2169,7 +2169,7 @@ BOOL CALLBACK AboutDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam L"Copyright \xA9 1999-2023 Igor Pavlov\r\n\r\n" L"This software as a whole:\r\n" - L"Copyright \xA9 2013-2023 IDRIX. All rights reserved.\r\n\r\n" + L"Copyright \xA9 2013-2024 IDRIX. All rights reserved.\r\n\r\n" L"An IDRIX Release"); @@ -4165,6 +4165,7 @@ BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa case WM_INITDIALOG: { prm = (TEXT_INFO_DIALOG_PARAM_PTR)lParam; + LocalizeDialog (hwndDlg, NULL); // increase size limit of rich edit control SendMessage(GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), EM_EXLIMITTEXT, 0, -1); @@ -4175,9 +4176,43 @@ BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa if (prm->ReadOnly) { // switch rich edit control to ReadOnly - SendMessage(GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), ES_READONLY, TRUE, 0); + SendMessage(GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), EM_SETREADONLY , TRUE, 0); // hide cancel button - ShowWindow(GetDlgItem(hwndDlg, IDCANCEL), SW_HIDE); + HWND hwndCancel = GetDlgItem(hwndDlg, IDCANCEL); + ShowWindow(hwndCancel, SW_HIDE); + + // Reposition OK button to Cancel button's position + HWND hwndOK = GetDlgItem(hwndDlg, IDOK); + if (hwndOK && hwndCancel) + { + // Get Cancel button's position in screen coordinates + RECT rectCancel; + if (GetWindowRect(hwndCancel, &rectCancel)) + { + // Convert Cancel button's position to dialog's client coordinates + POINT ptCancel = { rectCancel.left, rectCancel.top }; + ScreenToClient(hwndDlg, &ptCancel); + + // Get OK button's current size + RECT rectOK; + if (GetWindowRect(hwndOK, &rectOK)) + { + int width = rectOK.right - rectOK.left; + int height = rectOK.bottom - rectOK.top; + + // Move OK button to Cancel button's position + SetWindowPos( + hwndOK, + NULL, + ptCancel.x, + ptCancel.y, + width, + height, + SWP_NOZORDER | SWP_NOACTIVATE + ); + } + } + } } SendMessage (hwndDlg, TC_APPMSG_LOAD_TEXT_BOX_CONTENT, 0, 0); @@ -4189,8 +4224,12 @@ BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa { if (!prm->ReadOnly) { - prm->Text.resize(GetWindowTextLengthA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT)) + 1); - GetWindowTextA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), &(prm->Text)[0], (int) prm->Text.size()); + // read content of the text box as UTF16 and then convert it to UTF8 + HWND hEdit = GetDlgItem(hwndDlg, IDC_INFO_BOX_TEXT); + int size = GetWindowTextLengthW(hEdit); + std::vector<WCHAR> buffer(size + 1); + GetWindowTextW(hEdit, buffer.data(), size + 1); + prm->Text = WideToUtf8String(buffer.data()); } NormalCursor (); EndDialog (hwndDlg, IDOK); @@ -4207,7 +4246,8 @@ BOOL CALLBACK TextEditDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa case TC_APPMSG_LOAD_TEXT_BOX_CONTENT: { - SetWindowTextA (GetDlgItem (hwndDlg, IDC_INFO_BOX_TEXT), prm->Text.c_str()); + // convert prm->Text to UTF16 using Utf8StringToWide + SetWindowTextW(GetDlgItem(hwndDlg, IDC_INFO_BOX_TEXT), Utf8StringToWide(prm->Text).c_str()); } return 0; @@ -5577,6 +5617,14 @@ void handleError (HWND hwndDlg, int code, const char* srcPos) break; #endif + case ERR_XTS_MASTERKEY_VULNERABLE: + MessageBoxW (hwndDlg, AppendSrcPos (GetString ("ERR_XTS_MASTERKEY_VULNERABLE"), srcPos).c_str(), lpszTitle, ICON_HAND); + break; + + case ERR_SYSENC_XTS_MASTERKEY_VULNERABLE: + MessageBoxW (hwndDlg, AppendSrcPos (GetString ("ERR_SYSENC_XTS_MASTERKEY_VULNERABLE"), srcPos).c_str(), lpszTitle, ICON_HAND); + break; + default: StringCbPrintfW (szTmp, sizeof(szTmp), GetString ("ERR_UNKNOWN"), code); MessageBoxW (hwndDlg, AppendSrcPos (szTmp, srcPos).c_str(), lpszTitle, ICON_HAND); @@ -8953,6 +9001,12 @@ retry: LastMountedVolumeDirty = mount.FilesystemDirty; + if (mount.VolumeMasterKeyVulnerable + && !Silent) + { + Warning ("ERR_XTS_MASTERKEY_VULNERABLE", hwndDlg); + } + if (mount.FilesystemDirty) { wchar_t msg[1024]; @@ -13692,11 +13746,11 @@ BOOL SetPrivilege(LPTSTR szPrivilegeName, BOOL bEnable) &tkp.Privileges[0].Luid)) { tkp.PrivilegeCount = 1; - tkp.Privileges[0].Attributes = bEnable? SE_PRIVILEGE_ENABLED : SE_PRIVILEGE_REMOVED; + tkp.Privileges[0].Attributes = bEnable? SE_PRIVILEGE_ENABLED : 0; bRet = AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL); dwLastError = GetLastError (); - if ( ERROR_SUCCESS != dwLastError) + if (bRet && (ERROR_NOT_ALL_ASSIGNED == dwLastError)) { bRet = FALSE; } @@ -13907,20 +13961,33 @@ static unsigned int __stdcall SecureDesktopThread( LPVOID lpThreadParameter ) StringCbCopy(SecureDesktopName, sizeof (SecureDesktopName), pParam->szDesktopName); pParam->hDesk = hSecureDesk; - // wait for SwitchDesktop to succeed before using it for current thread - while (true) + bNewDesktopSet = SetThreadDesktop (hSecureDesk); + + if (bNewDesktopSet) { - if (SwitchDesktop (hSecureDesk)) + // call ImmDisableIME from imm32.dll to disable IME since it can create issue with secure desktop + // cf: https://keepass.info/help/kb/sec_desk.html#ime + HMODULE hImmDll = LoadLibraryEx (L"imm32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); + if (hImmDll) { - break; + typedef BOOL (WINAPI *ImmDisableIME_t)(DWORD); + ImmDisableIME_t ImmDisableIME = (ImmDisableIME_t) GetProcAddress (hImmDll, "ImmDisableIME"); + if (ImmDisableIME) + { + ImmDisableIME (0); + } } - Sleep (SECUREDESKTOP_MONOTIR_PERIOD); - } - bNewDesktopSet = SetThreadDesktop (hSecureDesk); + // wait for SwitchDesktop to succeed before using it for current thread + while (true) + { + if (SwitchDesktop (hSecureDesk)) + { + break; + } + Sleep (SECUREDESKTOP_MONOTIR_PERIOD); + } - if (bNewDesktopSet) - { // create the thread that will ensure that VeraCrypt secure desktop has always user input // this is done only if the stop event is created successfully HANDLE hStopEvent = CreateEvent(NULL, TRUE, FALSE, NULL); @@ -13950,6 +14017,12 @@ static unsigned int __stdcall SecureDesktopThread( LPVOID lpThreadParameter ) } pParam->bDlgDisplayed = TRUE; + + // free imm32.dll handle + if (hImmDll) + { + FreeLibrary (hImmDll); + } } else { @@ -14070,19 +14143,20 @@ INT_PTR SecureDesktopDialogBoxParam( // dialog box was indeed displayed in Secure Desktop retValue = param.retValue; bSuccess = TRUE; + + // switch back to the original desktop + while (!SwitchDesktop (hOriginalDesk)) + { + Sleep (SECUREDESKTOP_MONOTIR_PERIOD); + } + + SetThreadDesktop (hOriginalDesk); } - } - if (param.hDesk) - { - while (!SwitchDesktop (hOriginalDesk)) + if (param.hDesk) { - Sleep (SECUREDESKTOP_MONOTIR_PERIOD); + CloseDesktop (param.hDesk); } - - SetThreadDesktop (hOriginalDesk); - - CloseDesktop (param.hDesk); } // get the new list of ctfmon.exe processes in order to find the ID of the diff --git a/src/Common/Language.c b/src/Common/Language.c index 278b7dd1..a6bc9891 100644 --- a/src/Common/Language.c +++ b/src/Common/Language.c @@ -83,6 +83,31 @@ static char *MapFirstLanguageFile () return LanguageFileBuffer; } +static int IsValidLanguageFileName(const wchar_t* filename) { + size_t len = wcslen(filename); + + // Check the base format and length directly + if (_wcsnicmp(filename, L"Language.", 9) != 0 || (len != 15 && len != 18)) + return 0; // Does not start with "Language." or has incorrect length + + // Check for the ".xml" suffix + if (_wcsicmp(filename + len - 4, L".xml") != 0) + return 0; // Does not end with ".xml" + + // Detailed checks based on the specific length + if (len == 15) { + // Format should be Language.xx.xml + if (iswalpha(filename[9]) && iswalpha(filename[10])) + return 1; // Valid format for short code + } else if (len == 18) { + // Format should be Language.xx-yy.xml + if (iswalpha(filename[9]) && iswalpha(filename[10]) && filename[11] == L'-' && + iswalpha(filename[12]) && iswalpha(filename[13])) + return 1; // Valid format for long code + } + + return 0; // If none of the conditions are met, the filename is invalid +} static char *MapNextLanguageFile (int resourceid) { @@ -91,6 +116,7 @@ static char *MapNextLanguageFile (int resourceid) HANDLE file; DWORD read; BOOL bStatus; + BOOL validFileFound = FALSE; /* free memory here to avoid leaks */ if (LanguageFileBuffer != NULL) @@ -122,6 +148,24 @@ static char *MapNextLanguageFile (int resourceid) if (LanguageFileFindHandle == INVALID_HANDLE_VALUE) return NULL; if (find.nFileSizeHigh != 0) return NULL; + // Validate the file name format + while (!validFileFound) + { + if (!IsValidLanguageFileName(find.cFileName)) + { + if (!FindNextFileW(LanguageFileFindHandle, &find)) + { + FindClose(LanguageFileFindHandle); + LanguageFileFindHandle = INVALID_HANDLE_VALUE; + return NULL; + } + } + else + { + validFileFound = TRUE; + } + } + LanguageFileBuffer = malloc(find.nFileSizeLow + 1); if (LanguageFileBuffer == NULL) return NULL; diff --git a/src/Common/Language.xml b/src/Common/Language.xml index e3e96a1f..9821bbe9 100644 --- a/src/Common/Language.xml +++ b/src/Common/Language.xml @@ -632,12 +632,12 @@ <entry lang="en" key="PASSWORD_HIDDEN_OS_TITLE">Password for Hidden Operating System</entry> <entry lang="en" key="PASSWORD_LENGTH_WARNING">WARNING: Short passwords are easy to crack using brute force techniques!\n\nWe recommend choosing a password consisting of 20 or more characters. Are you sure you want to use a short password?</entry> <entry lang="en" key="PASSWORD_TITLE">Volume Password</entry> - <entry lang="en" key="PASSWORD_WRONG">Operation failed due to one or more of the following:\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.</entry> - <entry lang="en" key="PASSWORD_OR_KEYFILE_WRONG">Operation failed due to one or more of the following:\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.</entry> - <entry lang="en" key="PASSWORD_OR_MODE_WRONG">Operation failed due to one or more of the following:\n - Wrong mount mode.\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.</entry> - <entry lang="en" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Operation failed due to one or more of the following:\n - Wrong mount mode.\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.</entry> - <entry lang="en" key="PASSWORD_WRONG_AUTOMOUNT">Auto-mount failed due to one or more of the following:\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - No valid volume found.</entry> - <entry lang="en" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Auto-mount failed due to one or more of the following:\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - No valid volume found.</entry> + <entry lang="en" key="PASSWORD_WRONG">Operation failed due to one or more of the following:\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> + <entry lang="en" key="PASSWORD_OR_KEYFILE_WRONG">Operation failed due to one or more of the following:\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> + <entry lang="en" key="PASSWORD_OR_MODE_WRONG">Operation failed due to one or more of the following:\n - Wrong mount mode.\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> + <entry lang="en" key="PASSWORD_OR_KEYFILE_OR_MODE_WRONG">Operation failed due to one or more of the following:\n - Wrong mount mode.\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - Not a valid volume.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> + <entry lang="en" key="PASSWORD_WRONG_AUTOMOUNT">Auto-mount failed due to one or more of the following:\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - No valid volume found.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> + <entry lang="en" key="PASSWORD_OR_KEYFILE_WRONG_AUTOMOUNT">Auto-mount failed due to one or more of the following:\n - Incorrect keyfile(s).\n - Incorrect password.\n - Incorrect Volume PIM number.\n - Incorrect PRF (hash).\n - No valid volume found.\n - Volume uses an old algorithm that has been removed.\n - TrueCrypt format volumes are no longer supported.</entry> <entry lang="en" key="PASSWORD_WRONG_CAPSLOCK_ON">\n\nWarning: Caps Lock is on. This may cause you to enter your password incorrectly.</entry> <entry lang="en" key="PIM_CHANGE_WARNING">Remember Number to Mount Volume</entry> <entry lang="en" key="PIM_HIDVOL_HOST_TITLE">Outer Volume PIM</entry> @@ -1617,10 +1617,10 @@ <entry lang="en" key="EMV_SELECT_AID_FAILED">The AID of the card in the reader could not be selected.</entry> <entry lang="en" key="EMV_ICC_CERT_NOTFOUND">ICC Public Key Certificate was not found in the card.</entry> <entry lang="en" key="EMV_ISSUER_CERT_NOTFOUND">Issuer Public Key Certificate was not found in the card.</entry> - <entry lang="en" key="EMV_CPLC_NOTFOUND">CLPC was not found in the EMV card.</entry> + <entry lang="en" key="EMV_CPLC_NOTFOUND">CPLC was not found in the EMV card.</entry> <entry lang="en" key="EMV_PAN_NOTFOUND">No Primary Account Number (PAN) found in the EMV card.</entry> <entry lang="en" key="INVALID_EMV_PATH">EMV path is invalid.</entry> - <entry lang="en" key="EMV_KEYFILE_DATA_NOTFOUND">Unable to build a keyfile from the EMV card's data.\n\nOne of the following is missing:\n- ICC Public Key Certificate.\n- Issuer Public Key Certificate.\n- CPCL data.</entry> + <entry lang="en" key="EMV_KEYFILE_DATA_NOTFOUND">Unable to build a keyfile from the EMV card's data.\n\nOne of the following is missing:\n- ICC Public Key Certificate.\n- Issuer Public Key Certificate.\n- CPLC data.</entry> <entry lang="en" key="SCARD_W_REMOVED_CARD">No card in the reader.\n\nPlease make sure the card is correctly slotted.</entry> <entry lang="en" key="FORMAT_EXTERNAL_FAILED">Windows format.com command failed to format the volume as NTFS/exFAT/ReFS: Error 0x%.8X.\n\nFalling back to using Windows FormatEx API.</entry> <entry lang="en" key="FORMATEX_API_FAILED">Windows FormatEx API failed to format the volume as NTFS/exFAT/ReFS.\n\nFailure status = %s.</entry> @@ -1638,6 +1638,9 @@ <entry lang="en" key="LINUX_LANGUAGE">Language</entry> <entry lang="en" key="LINUX_SELECT_SYS_DEFAULT_LANG">Select system's default language</entry> <entry lang="en" key="LINUX_RESTART_FOR_LANGUAGE_CHANGE">For the language change to come into effect, VeraCrypt needs to be restarted.</entry> + <entry lang="en" key="ERR_XTS_MASTERKEY_VULNERABLE">WARNING: The volume's master key is vulnerable to an attack that compromises data security.\n\nPlease create a new volume and transfer the data to it.</entry> + <entry lang="en" key="ERR_SYSENC_XTS_MASTERKEY_VULNERABLE">WARNING: The encrypted system's master key is vulnerable to an attack that compromises data security.\nPlease decrypt the system partition/drive and then re-encrypt it.</entry> + <entry lang="en" key="ERR_XTS_MASTERKEY_VULNERABLE_SHORT">WARNING: The volume's master key has a security vulnerability.</entry> </localization> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="VeraCrypt"> diff --git a/src/Common/Lzma_vs2019.vcxproj b/src/Common/Lzma_vs2019.vcxproj index 81a57daa..9f640dc5 100644 --- a/src/Common/Lzma_vs2019.vcxproj +++ b/src/Common/Lzma_vs2019.vcxproj @@ -61,6 +61,7 @@ <Keyword>Win32Proj</Keyword> <RootNamespace>Lzma</RootNamespace> <ProjectName>Lzma</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> @@ -128,22 +129,28 @@ </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -197,6 +204,7 @@ <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -215,6 +223,7 @@ <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -233,6 +242,7 @@ <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> diff --git a/src/Common/Password.c b/src/Common/Password.c index ae6b8035..c0247207 100644 --- a/src/Common/Password.c +++ b/src/Common/Password.c @@ -371,6 +371,10 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5, if (nStatus == ERR_CIPHER_INIT_WEAK_KEY) nStatus = 0; // We can ignore this error here + // if the XTS master key is vulnerable, return error and do not allow the user to change the password since the master key will not be changed + if ((nStatus == 0) && cryptoInfo->bVulnerableMasterKey) + nStatus = ERR_XTS_MASTERKEY_VULNERABLE; + if (nStatus == ERR_PASSWORD_WRONG) { continue; // Try next volume type diff --git a/src/Common/SCard.cpp b/src/Common/SCard.cpp index 9f8d1145..edd315f6 100644 --- a/src/Common/SCard.cpp +++ b/src/Common/SCard.cpp @@ -6,7 +6,7 @@ namespace VeraCrypt { SCardManager SCard::manager; - SCard::SCard() : m_reader(NULL) + SCard::SCard() { } diff --git a/src/Common/SCardLoader.cpp b/src/Common/SCardLoader.cpp index 16026e62..24486002 100644 --- a/src/Common/SCardLoader.cpp +++ b/src/Common/SCardLoader.cpp @@ -320,7 +320,7 @@ namespace VeraCrypt return scardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen); } - LONG SCardLoader::SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders) + LONG SCardLoader::SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders) { Initialize(); @@ -399,4 +399,4 @@ namespace VeraCrypt return scardSetAttrib(hCard, dwAttrId, pbAttr, cbAttrLen); } -}
\ No newline at end of file +} diff --git a/src/Common/SCardLoader.h b/src/Common/SCardLoader.h index a7243d82..af0758ed 100644 --- a/src/Common/SCardLoader.h +++ b/src/Common/SCardLoader.h @@ -13,8 +13,6 @@ #include <PCSC/winscard.h> #include <PCSC/wintypes.h> #include "reader.h" -typedef LPSCARD_READERSTATE_A LPSCARD_READERSTATE; -using VeraCrypt::uint8; #define BOOL int #else #undef BOOL @@ -22,7 +20,6 @@ using VeraCrypt::uint8; #include <winscard.h> #include <wintypes.h> #include <reader.h> -using VeraCrypt::uint8; #define BOOL int #endif #endif @@ -48,7 +45,7 @@ namespace VeraCrypt typedef LONG (SCARD_CALL_SPEC *SCardBeginTransactionPtr)(SCARDHANDLE hCard); typedef LONG (SCARD_CALL_SPEC *SCardEndTransactionPtr)(SCARDHANDLE hCard, DWORD dwDisposition); typedef LONG (SCARD_CALL_SPEC *SCardStatusPtr)(SCARDHANDLE hCard, LPTSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, BYTE* pbAtr, LPDWORD pcbAtrLen); - typedef LONG (SCARD_CALL_SPEC *SCardGetStatusChangePtr)(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders); + typedef LONG (SCARD_CALL_SPEC *SCardGetStatusChangePtr)(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders); typedef LONG (SCARD_CALL_SPEC *SCardControlPtr)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned); typedef LONG (SCARD_CALL_SPEC *SCardTransmitPtr)(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, const BYTE* pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, BYTE* pbRecvBuffer, LPDWORD pcbRecvLength); typedef LONG (SCARD_CALL_SPEC *SCardListReaderGroupsPtr)(SCARDCONTEXT hContext, LPTSTR mszGroups, LPDWORD pcchGroups); @@ -111,7 +108,7 @@ namespace VeraCrypt static LONG SCardBeginTransaction(SCARDHANDLE hCard); static LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition); static LONG SCardStatus(SCARDHANDLE hCard, LPTSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, BYTE* pbAtr, LPDWORD pcbAtrLen); - static LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE rgReaderStates, DWORD cReaders); + static LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout, SCARD_READERSTATE* rgReaderStates, DWORD cReaders); static LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned); static LONG SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, const BYTE* pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, BYTE* pbRecvBuffer, LPDWORD pcbRecvLength); static LONG SCardListReaderGroups(SCARDCONTEXT hContext, LPTSTR mszGroups, LPDWORD pcchGroups); @@ -122,4 +119,4 @@ namespace VeraCrypt }; }; -#endif // TC_HEADER_Common_SCardLoader
\ No newline at end of file +#endif // TC_HEADER_Common_SCardLoader diff --git a/src/Common/SCardReader.cpp b/src/Common/SCardReader.cpp index de269ce6..6c5f654a 100644 --- a/src/Common/SCardReader.cpp +++ b/src/Common/SCardReader.cpp @@ -17,7 +17,7 @@ namespace VeraCrypt } else { - m_scardLoader = NULL; + m_scardLoader.reset(); m_hSCReaderContext = 0; } m_hCard = hCard; @@ -84,7 +84,7 @@ namespace VeraCrypt void SCardReader::Clear(void) { m_szSCReaderName = L""; - m_scardLoader = NULL; + m_scardLoader.reset(); m_hSCReaderContext = 0; m_hCard = 0; m_dwProtocol = 0; diff --git a/src/Common/TLVParser.cpp b/src/Common/TLVParser.cpp index 1e51739c..5ddf37e5 100644 --- a/src/Common/TLVParser.cpp +++ b/src/Common/TLVParser.cpp @@ -169,7 +169,7 @@ namespace VeraCrypt shared_ptr<TLVNode> TLVParser::TLV_Find(shared_ptr<TLVNode> node, uint16 tag) { size_t i = 0; - shared_ptr<TLVNode> tmpnode = NULL; + shared_ptr<TLVNode> tmpnode; if (node->Tag == tag) { return node; @@ -177,11 +177,11 @@ namespace VeraCrypt for (i = 0; i < node->Subs->size(); i++) { tmpnode = TLV_Find(node->Subs->at(i),tag); - if (tmpnode != NULL) + if (tmpnode) { return tmpnode; } } - return NULL; + return shared_ptr<TLVNode>(); } -}
\ No newline at end of file +} diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h index 377ac388..3fd18358 100644 --- a/src/Common/Tcdefs.h +++ b/src/Common/Tcdefs.h @@ -59,7 +59,7 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift); #define TC_APP_NAME "VeraCrypt" // Version displayed to user -#define VERSION_STRING "1.26.10" +#define VERSION_STRING "1.26.15" #ifdef VC_EFI_CUSTOM_MODE #define VERSION_STRING_SUFFIX "-CustomEFI" @@ -73,9 +73,9 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift); #define VERSION_NUM 0x0126 // Release date -#define TC_STR_RELEASE_DATE L"November 8, 2023" -#define TC_RELEASE_DATE_YEAR 2023 -#define TC_RELEASE_DATE_MONTH 11 +#define TC_STR_RELEASE_DATE L"September 2, 2024" +#define TC_RELEASE_DATE_YEAR 2024 +#define TC_RELEASE_DATE_MONTH 9 #define BYTES_PER_KB 1024LL #define BYTES_PER_MB 1048576LL @@ -108,6 +108,12 @@ typedef unsigned __int64 uint64; #define LL(x) x##ui64 #endif +#if _MSC_VER > 1900 +#define VC_CDECL __cdecl // this is needed because Windows driver on VS2019 uses stdcall for build +#else +#define VC_CDECL +#endif + #pragma warning( disable : 4201 ) // disable: 4201 nonstandard extension used : nameless struct/union #pragma warning( disable : 4324 ) // disable: 4324 structure was padded due to __declspec(align()) @@ -151,6 +157,8 @@ typedef uint64 TC_LARGEST_COMPILER_UINT; #define TRUE 1 #endif +#define VC_CDECL + #endif // !_MSC_VER #define TC_INT_TYPES_DEFINED @@ -349,7 +357,13 @@ extern BOOLEAN VC_KeAreAllApcsDisabled (VOID); #ifdef _M_ARM64 # define _WIN32_WINNT 0x0A00 #else -# define _WIN32_WINNT 0x0601 /* Does not apply to the driver */ +// for Visual Studio 2015 and later, set minimum Windows version to Windows 8 +// for old versions of Visual Studio, set minimum Windows version to Windows 7 +#if _MSC_VER >= 1900 +# define _WIN32_WINNT 0x0602 +#else +# define _WIN32_WINNT 0x0601 +#endif #endif #endif @@ -494,7 +508,9 @@ enum ERR_NONSYS_INPLACE_ENC_INCOMPLETE = 32, ERR_USER_ABORT = 33, ERR_RAND_INIT_FAILED = 34, - ERR_CAPI_INIT_FAILED = 35 + ERR_CAPI_INIT_FAILED = 35, + ERR_XTS_MASTERKEY_VULNERABLE = 36, + ERR_SYSENC_XTS_MASTERKEY_VULNERABLE = 37 }; #endif // #ifndef TCDEFS_H diff --git a/src/Common/Volumes.c b/src/Common/Volumes.c index df1cd1e3..7ee519f6 100644 --- a/src/Common/Volumes.c +++ b/src/Common/Volumes.c @@ -597,6 +597,14 @@ KeyReady: ; goto err; } + // check that first half of keyInfo.master_keydata is different from the second half. If they are the same return error + if (memcmp (keyInfo->master_keydata, keyInfo->master_keydata + EAGetKeySize (cryptoInfo->ea), EAGetKeySize (cryptoInfo->ea)) == 0) + { + cryptoInfo->bVulnerableMasterKey = TRUE; + if (retHeaderCryptoInfo) + retHeaderCryptoInfo->bVulnerableMasterKey = TRUE; + } + status = ERR_SUCCESS; goto ret; } diff --git a/src/Common/Zip_vs2019.vcxproj b/src/Common/Zip_vs2019.vcxproj index 26ab3310..b68dcab8 100644 --- a/src/Common/Zip_vs2019.vcxproj +++ b/src/Common/Zip_vs2019.vcxproj @@ -252,22 +252,28 @@ </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Configuration)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -337,6 +343,7 @@ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -360,6 +367,7 @@ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -383,6 +391,7 @@ <PreprocessorDefinitions>_CRT_NONSTDC_NO_WARNINGS;_LIB;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <AdditionalIncludeDirectories>zlib;libzip</AdditionalIncludeDirectories> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <SubSystem>Windows</SubSystem> diff --git a/src/Core/Core.h b/src/Core/Core.h index 65ea5bee..b9e53021 100644 --- a/src/Core/Core.h +++ b/src/Core/Core.h @@ -82,9 +82,13 @@ namespace VeraCrypt shared_ptr <Pkcs5Kdf> m_newPkcs5Kdf; int m_wipeCount; bool m_emvSupportEnabled; - ChangePasswordThreadRoutine(shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, shared_ptr <Pkcs5Kdf> newPkcs5Kdf, int wipeCount, bool emvSupportEnabled) : m_volumePath(volumePath), m_preserveTimestamps(preserveTimestamps), m_password(password), m_pim(pim), m_kdf(kdf), m_keyfiles(keyfiles), m_newPassword(newPassword), m_newPim(newPim), m_newKeyfiles(newKeyfiles), m_newPkcs5Kdf(newPkcs5Kdf), m_wipeCount(wipeCount), m_emvSupportEnabled(emvSupportEnabled) {} + bool m_masterKeyVulnerable; + ChangePasswordThreadRoutine(shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, shared_ptr <Pkcs5Kdf> newPkcs5Kdf, int wipeCount, bool emvSupportEnabled) : m_volumePath(volumePath), m_preserveTimestamps(preserveTimestamps), m_password(password), m_pim(pim), m_kdf(kdf), m_keyfiles(keyfiles), m_newPassword(newPassword), m_newPim(newPim), m_newKeyfiles(newKeyfiles), m_newPkcs5Kdf(newPkcs5Kdf), m_wipeCount(wipeCount), m_emvSupportEnabled(emvSupportEnabled), m_masterKeyVulnerable(false) {} virtual ~ChangePasswordThreadRoutine() { } - virtual void ExecutionCode(void) { Core->ChangePassword(m_volumePath, m_preserveTimestamps, m_password, m_pim, m_kdf, m_keyfiles, m_newPassword, m_newPim, m_newKeyfiles, m_emvSupportEnabled, m_newPkcs5Kdf, m_wipeCount); } + virtual void ExecutionCode(void) { + shared_ptr <Volume> openVolume = Core->ChangePassword(m_volumePath, m_preserveTimestamps, m_password, m_pim, m_kdf, m_keyfiles, m_newPassword, m_newPim, m_newKeyfiles, m_emvSupportEnabled, m_newPkcs5Kdf, m_wipeCount); + m_masterKeyVulnerable = openVolume->IsMasterKeyVulnerable(); + } }; class OpenVolumeThreadRoutine : public WaitThreadRoutine diff --git a/src/Core/CoreBase.cpp b/src/Core/CoreBase.cpp index 356d4348..0c6d5c9e 100644 --- a/src/Core/CoreBase.cpp +++ b/src/Core/CoreBase.cpp @@ -77,10 +77,11 @@ namespace VeraCrypt } } - void CoreBase::ChangePassword (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, bool emvSupportEnabled, shared_ptr <Pkcs5Kdf> newPkcs5Kdf, int wipeCount) const + shared_ptr <Volume> CoreBase::ChangePassword (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, bool emvSupportEnabled, shared_ptr <Pkcs5Kdf> newPkcs5Kdf, int wipeCount) const { shared_ptr <Volume> volume = OpenVolume (volumePath, preserveTimestamps, password, pim, kdf, keyfiles, emvSupportEnabled); ChangePassword (volume, newPassword, newPim, newKeyfiles, emvSupportEnabled, newPkcs5Kdf, wipeCount); + return volume; } void CoreBase::CoalesceSlotNumberAndMountPoint (MountOptions &options) const diff --git a/src/Core/CoreBase.h b/src/Core/CoreBase.h index 03aa922a..e646fce3 100644 --- a/src/Core/CoreBase.h +++ b/src/Core/CoreBase.h @@ -34,7 +34,7 @@ namespace VeraCrypt virtual ~CoreBase (); virtual void ChangePassword (shared_ptr <Volume> openVolume, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, bool emvSupportEnabled, shared_ptr <Pkcs5Kdf> newPkcs5Kdf = shared_ptr <Pkcs5Kdf> (), int wipeCount = PRAND_HEADER_WIPE_PASSES) const; - virtual void ChangePassword (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, bool emvSupportEnabled, shared_ptr <Pkcs5Kdf> newPkcs5Kdf = shared_ptr <Pkcs5Kdf> (), int wipeCount = PRAND_HEADER_WIPE_PASSES) const; + virtual shared_ptr <Volume> ChangePassword (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, bool emvSupportEnabled, shared_ptr <Pkcs5Kdf> newPkcs5Kdf = shared_ptr <Pkcs5Kdf> (), int wipeCount = PRAND_HEADER_WIPE_PASSES) const; virtual void CheckFilesystem (shared_ptr <VolumeInfo> mountedVolume, bool repair = false) const = 0; virtual void CoalesceSlotNumberAndMountPoint (MountOptions &options) const; virtual void CreateKeyfile (const FilePath &keyfilePath) const; diff --git a/src/Core/Unix/CoreUnix.cpp b/src/Core/Unix/CoreUnix.cpp index 26076a28..1868eb6d 100644 --- a/src/Core/Unix/CoreUnix.cpp +++ b/src/Core/Unix/CoreUnix.cpp @@ -303,17 +303,45 @@ namespace VeraCrypt continue; shared_ptr <VolumeInfo> mountedVol; - try + // Introduce a retry mechanism with a timeout for control file access + // This workaround is limited to FUSE-T mounted volume under macOS for + // which md.Device starts with "fuse-t:" +#ifdef VC_MACOSX_FUSET + bool isFuseT = wstring(mf.Device).find(L"fuse-t:") == 0; + int controlFileRetries = 10; // 10 retries with 500ms sleep each, total 5 seconds + while (!mountedVol && (controlFileRetries-- > 0)) +#endif { - shared_ptr <File> controlFile (new File); - controlFile->Open (string (mf.MountPoint) + FuseService::GetControlPath()); + try + { + shared_ptr <File> controlFile (new File); + controlFile->Open (string (mf.MountPoint) + FuseService::GetControlPath()); - shared_ptr <Stream> controlFileStream (new FileStream (controlFile)); - mountedVol = Serializable::DeserializeNew <VolumeInfo> (controlFileStream); + shared_ptr <Stream> controlFileStream (new FileStream (controlFile)); + mountedVol = Serializable::DeserializeNew <VolumeInfo> (controlFileStream); + } + catch (const std::exception& e) + { +#ifdef VC_MACOSX_FUSET + // if exception starts with "VeraCrypt::Serializer::ValidateName", then + // serialization is not ready yet and we need to wait before retrying + // this happens when FUSE-T is used under macOS and if it is the first time + // the volume is mounted + if (isFuseT && string (e.what()).find ("VeraCrypt::Serializer::ValidateName") != string::npos) + { + Thread::Sleep(500); // Wait before retrying + } + else + { + break; // Control file not found or other error + } +#endif + } } - catch (...) + + if (!mountedVol) { - continue; + continue; // Skip to the next mounted filesystem } if (!volumePath.IsEmpty() && wstring (mountedVol->Path).compare (volumePath) != 0) diff --git a/src/Core/Unix/MacOSX/CoreMacOSX.cpp b/src/Core/Unix/MacOSX/CoreMacOSX.cpp index dde0d949..cfd34072 100644 --- a/src/Core/Unix/MacOSX/CoreMacOSX.cpp +++ b/src/Core/Unix/MacOSX/CoreMacOSX.cpp @@ -119,6 +119,7 @@ namespace VeraCrypt void CoreMacOSX::MountAuxVolumeImage (const DirectoryPath &auxMountPoint, const MountOptions &options) const { +#ifndef VC_MACOSX_FUSET // Check FUSE version char fuseVersionString[MAXHOSTNAMELEN + 1] = { 0 }; size_t fuseVersionStringLength = MAXHOSTNAMELEN; @@ -153,7 +154,7 @@ namespace VeraCrypt if (fuseVersionMajor < 2 || (fuseVersionMajor == 2 && fuseVersionMinor < 5)) throw HigherFuseVersionRequired (SRC_POS); - +#endif // Mount volume image string volImage = string (auxMountPoint) + FuseService::GetVolumeImagePath(); diff --git a/src/Crypto/Aes.h b/src/Crypto/Aes.h index db1bed27..dcadfc2b 100644 --- a/src/Crypto/Aes.h +++ b/src/Crypto/Aes.h @@ -139,7 +139,7 @@ AES_RETURN aes_encrypt_key256(const unsigned char *key, aes_encrypt_ctx cx[1]); AES_RETURN aes_encrypt_key(const unsigned char *key, int key_len, aes_encrypt_ctx cx[1]); #endif -AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1]); +AES_RETURN VC_CDECL aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1]); #endif @@ -161,7 +161,7 @@ AES_RETURN aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1]); AES_RETURN aes_decrypt_key(const unsigned char *key, int key_len, aes_decrypt_ctx cx[1]); #endif -AES_RETURN aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1]); +AES_RETURN VC_CDECL aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1]); #endif diff --git a/src/Crypto/Aes_hw_cpu.h b/src/Crypto/Aes_hw_cpu.h index 58adc78d..face0a0c 100644 --- a/src/Crypto/Aes_hw_cpu.h +++ b/src/Crypto/Aes_hw_cpu.h @@ -25,9 +25,9 @@ uint8 is_aes_hw_cpu_supported (); #endif void aes_hw_cpu_enable_sse (); void aes_hw_cpu_decrypt (const uint8 *ks, uint8 *data); -void aes_hw_cpu_decrypt_32_blocks (const uint8 *ks, uint8 *data); +void VC_CDECL aes_hw_cpu_decrypt_32_blocks (const uint8 *ks, uint8 *data); void aes_hw_cpu_encrypt (const uint8 *ks, uint8 *data); -void aes_hw_cpu_encrypt_32_blocks (const uint8 *ks, uint8 *data); +void VC_CDECL aes_hw_cpu_encrypt_32_blocks (const uint8 *ks, uint8 *data); #if defined(__cplusplus) } diff --git a/src/Crypto/Aescrypt.c b/src/Crypto/Aescrypt.c index 46175981..7348e2cf 100644 --- a/src/Crypto/Aescrypt.c +++ b/src/Crypto/Aescrypt.c @@ -94,7 +94,7 @@ extern "C" #define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ no_table(x,t_use(s,box),fwd_var,rf1,c)) #endif -AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1]) +AES_RETURN VC_CDECL aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1]) { uint_32t locals(b0, b1); const uint_32t *kp; #if defined( dec_fmvars ) @@ -231,7 +231,7 @@ AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out, const aes_en #define rnd_key(n) (kp - n * N_COLS) #endif -AES_RETURN aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1]) +AES_RETURN VC_CDECL aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1]) { uint_32t locals(b0, b1); #if defined( dec_imvars ) dec_imvars; /* declare variables for inv_mcol() if needed */ diff --git a/src/Crypto/Crypto_vs2019.vcxproj b/src/Crypto/Crypto_vs2019.vcxproj index ccd512b9..ab3d5f3b 100644 --- a/src/Crypto/Crypto_vs2019.vcxproj +++ b/src/Crypto/Crypto_vs2019.vcxproj @@ -38,6 +38,7 @@ <ConfigurationType>StaticLibrary</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> @@ -48,11 +49,13 @@ <ConfigurationType>StaticLibrary</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> @@ -94,18 +97,18 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(ConfigurationName)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(ConfigurationName)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -182,6 +185,7 @@ <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4100;4127;4201;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Lib> <OutputFile>$(OutDir)Crypto.lib</OutputFile> @@ -205,6 +209,7 @@ <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4100;4127;4201;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Lib> <OutputFile>$(OutDir)Crypto.lib</OutputFile> @@ -226,6 +231,7 @@ <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4100;4127;4201;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Lib> <OutputFile>$(OutDir)Crypto.lib</OutputFile> diff --git a/src/Crypto/Sha2.c b/src/Crypto/Sha2.c index 42215c89..3cce21d7 100644 --- a/src/Crypto/Sha2.c +++ b/src/Crypto/Sha2.c @@ -27,7 +27,7 @@ extern "C" #endif #if CRYPTOPP_BOOL_X64 || ((CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32) && !defined (TC_MACOSX)) - void sha512_compress_nayuki(uint_64t state[8], const uint_8t block[128]); + void VC_CDECL sha512_compress_nayuki(uint_64t state[8], const uint_8t block[128]); #endif #if defined(__cplusplus) } @@ -309,7 +309,7 @@ extern "C" #endif #if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 - void sha256_compress_nayuki(uint_32t state[8], const uint_8t block[64]); + void VC_CDECL sha256_compress_nayuki(uint_32t state[8], const uint_8t block[64]); #endif #if defined(__cplusplus) diff --git a/src/Driver/DriveFilter.c b/src/Driver/DriveFilter.c index a615797a..6fda3c37 100644 --- a/src/Driver/DriveFilter.c +++ b/src/Driver/DriveFilter.c @@ -522,10 +522,16 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password, if (ReadVolumeHeader (!hiddenVolume, header, password, pkcs5_prf, pim, &Extension->Queue.CryptoInfo, Extension->HeaderCryptoInfo) == 0) { - // Header decrypted + // Header decrypted status = STATUS_SUCCESS; Dump ("Header decrypted\n"); + if (Extension->HeaderCryptoInfo->bVulnerableMasterKey) + { + // The volume header master key is vulnerable + Dump ("The volume header master key is vulnerable\n"); + } + // calculate Fingerprint ComputeBootLoaderFingerprint (Extension->LowerDeviceObject, header); @@ -2017,6 +2023,7 @@ void GetBootEncryptionStatus (PIRP irp, PIO_STACK_LOCATION irpSp) bootEncStatus->ConfiguredEncryptedAreaStart = Extension->ConfiguredEncryptedAreaStart; bootEncStatus->ConfiguredEncryptedAreaEnd = Extension->ConfiguredEncryptedAreaEnd; bootEncStatus->EncryptedAreaStart = Extension->Queue.EncryptedAreaStart; + bootEncStatus->MasterKeyVulnerable = Extension->HeaderCryptoInfo->bVulnerableMasterKey; if (SetupInProgress) { diff --git a/src/Driver/Driver.rc b/src/Driver/Driver.rc index ed2e4560..bf3481b8 100644 --- a/src/Driver/Driver.rc +++ b/src/Driver/Driver.rc @@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,13,0 + PRODUCTVERSION 1,26,13,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -45,11 +45,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt Driver" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.13" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "veracrypt.sys" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.13" END END BLOCK "VarFileInfo" diff --git a/src/Driver/Fuse/Driver.make b/src/Driver/Fuse/Driver.make index b3640115..47f3c2cd 100644 --- a/src/Driver/Fuse/Driver.make +++ b/src/Driver/Fuse/Driver.make @@ -15,6 +15,6 @@ NAME := Driver OBJS := OBJS += FuseService.o -CXXFLAGS += $(shell $(PKG_CONFIG) fuse --cflags) +CXXFLAGS += $(shell $(PKG_CONFIG) $(VC_FUSE_PACKAGE) --cflags) include $(BUILD_INC)/Makefile.inc diff --git a/src/Driver/Fuse/FuseService.h b/src/Driver/Fuse/FuseService.h index 872cb368..d09a40db 100644 --- a/src/Driver/Fuse/FuseService.h +++ b/src/Driver/Fuse/FuseService.h @@ -38,7 +38,7 @@ namespace VeraCrypt VolumeSlotNumber SlotNumber; }; - friend class ExecFunctor; + friend struct ExecFunctor; public: static bool AuxDeviceInfoReceived () { return !OpenVolumeInfo.VirtualDevice.IsEmpty(); } diff --git a/src/Driver/Ntvol.c b/src/Driver/Ntvol.c index c26fcebf..68f63f16 100644 --- a/src/Driver/Ntvol.c +++ b/src/Driver/Ntvol.c @@ -89,6 +89,7 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject, mount->VolumeMountedReadOnlyAfterDeviceWriteProtected = FALSE; mount->VolumeMountedReadOnlyAfterPartialSysEnc = FALSE; + mount->VolumeMasterKeyVulnerable = FALSE; // If we are opening a device, query its size first if (bRawDevice) @@ -648,6 +649,9 @@ NTSTATUS TCOpenVolume (PDEVICE_OBJECT DeviceObject, Dump ("Volume header decrypted\n"); Dump ("Required program version = %x\n", (int) Extension->cryptoInfo->RequiredProgramVersion); Dump ("Legacy volume = %d\n", (int) Extension->cryptoInfo->LegacyVolume); + Dump ("Master key vulnerable = %d\n", (int) Extension->cryptoInfo->bVulnerableMasterKey); + + mount->VolumeMasterKeyVulnerable = Extension->cryptoInfo->bVulnerableMasterKey; if (IsHiddenSystemRunning() && !Extension->cryptoInfo->hiddenVolume) { diff --git a/src/Driver/veracrypt_vs2019.vcxproj b/src/Driver/veracrypt_vs2019.vcxproj index e956bcb0..8a360525 100644 --- a/src/Driver/veracrypt_vs2019.vcxproj +++ b/src/Driver/veracrypt_vs2019.vcxproj @@ -29,7 +29,10 @@ <ItemGroup> <ClCompile Include="..\Common\Cache.c" /> <ClCompile Include="..\Common\Crc.c" /> - <ClCompile Include="..\Common\Crypto.c" /> + <ClCompile Include="..\Common\Crypto.c"> + <CallingConvention Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdCall</CallingConvention> + <CallingConvention Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StdCall</CallingConvention> + </ClCompile> <ClCompile Include="..\Common\EncryptionThreadPool.c" /> <ClCompile Include="..\Common\Endian.c" /> <ClCompile Include="..\Common\GfMul.c" /> @@ -38,7 +41,12 @@ <ClCompile Include="..\Common\Volumes.c" /> <ClCompile Include="..\Common\Wipe.c" /> <ClCompile Include="..\Common\Xts.c" /> - <ClCompile Include="..\Crypto\Aescrypt.c" /> + <ClCompile Include="..\Crypto\Aescrypt.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="..\Crypto\Aeskey.c" /> <ClCompile Include="..\Crypto\Aestab.c" /> <ClCompile Include="..\Crypto\blake2s.c" /> @@ -54,30 +62,33 @@ <ClCompile Include="..\Crypto\kuznyechik.c" /> <ClCompile Include="..\Crypto\kuznyechik_simd.c"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\Crypto\rdrand.c"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\Crypto\SerpentFast.c" /> <ClCompile Include="..\Crypto\SerpentFast_simd.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\Crypto\Sha2.c"> + <CallingConvention Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdCall</CallingConvention> + <CallingConvention Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StdCall</CallingConvention> </ClCompile> - <ClCompile Include="..\Crypto\Sha2.c" /> <ClCompile Include="..\Crypto\Streebog.c" /> <ClCompile Include="..\Crypto\t1ha2.c" /> <ClCompile Include="..\Crypto\t1ha2_selfcheck.c" /> @@ -170,34 +181,45 @@ <PropertyGroup /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> - <OutDir>$(SolutionDir)$(Platform)\$(ConfigurationName)\</OutDir> + <OutDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</OutDir> <TargetName>veracrypt</TargetName> + <IntDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <TargetName>veracrypt</TargetName> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> + <OutDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <TargetName>veracrypt</TargetName> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> + <OutDir>$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(ConfigurationName)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> <OutDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</OutDir> <TargetName>veracrypt</TargetName> + <IntDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <TargetName>veracrypt</TargetName> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> + <OutDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(Platform)\$(ConfigurationName)\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <TargetName>veracrypt</TargetName> <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> + <OutDir>$(ProjectDir)$(ConfigurationName)\</OutDir> + <IntDir>$(ProjectDir)$(ConfigurationName)\</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -215,14 +237,16 @@ <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>TC_WINDOWS_DRIVER;_WIN32;_NO_CRT_STDIO_INLINE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4064;4627;4627;4366;4100;4057;4457;4456;4152;4213;4244;4127;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <CallingConvention>Cdecl</CallingConvention> </ClCompile> <PostBuildEvent> - <Command>copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-arm64.sys"</Command> + <Command>copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.sys"</Command> </PostBuildEvent> <Inf> <SpecifyDriverVerDirectiveVersion>false</SpecifyDriverVerDirectiveVersion> @@ -232,14 +256,16 @@ <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>TC_WINDOWS_DRIVER;_WIN32;_NO_CRT_STDIO_INLINE;DEBUG;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4064;4627;4627;4366;4100;4057;4457;4456;4152;4213;4244;4127;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <CallingConvention>StdCall</CallingConvention> </ClCompile> <PostBuildEvent> - <Command>copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-arm64.sys"</Command> + <Command>copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt.sys"</Command> </PostBuildEvent> <Inf> <SpecifyDriverVerDirectiveVersion>false</SpecifyDriverVerDirectiveVersion> @@ -249,6 +275,7 @@ <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -267,14 +294,16 @@ <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>TC_WINDOWS_DRIVER;_WIN32;_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4064;4627;4627;4366;4100;4057;4457;4456;4152;4213;4244;4127;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <CallingConvention>Cdecl</CallingConvention> </ClCompile> <PostBuildEvent> - <Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt-arm64.sys"</Command> + <Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt-x64.sys"</Command> </PostBuildEvent> <Inf> <SpecifyArchitecture>true</SpecifyArchitecture> @@ -285,14 +314,16 @@ <Link> <AdditionalDependencies>fltmgr.lib;%(AdditionalDependencies)</AdditionalDependencies> <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile> + <GenerateMapFile>true</GenerateMapFile> </Link> <ClCompile> <AdditionalIncludeDirectories>$(SolutionDir)Common;$(SolutionDir)Crypto;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>TC_WINDOWS_DRIVER;_WIN32;_NO_CRT_STDIO_INLINE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4064;4627;4627;4366;4100;4057;4457;4456;4152;4213;4244;4127;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <CallingConvention>StdCall</CallingConvention> </ClCompile> <PostBuildEvent> - <Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt-arm64.sys"</Command> + <Command>copy $(TargetPath) "..\Release\Setup Files\VeraCrypt.sys"</Command> </PostBuildEvent> <Inf> <SpecifyArchitecture>true</SpecifyArchitecture> @@ -303,6 +334,7 @@ <FilesToPackage Include="$(TargetPath)" /> </ItemGroup> <ItemGroup> + <ClInclude Include="..\Common\Tcdefs.h" /> <ClInclude Include="..\Crypto\Aes.h" /> <ClInclude Include="..\Crypto\Aesopt.h" /> <ClInclude Include="..\Crypto\AesSmall.h" /> @@ -343,16 +375,12 @@ <CustomBuild Include="..\Crypto\Aes_hw_cpu.asm"> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -g -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox --prefix _ -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> @@ -360,21 +388,25 @@ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\Aes_x64.asm"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win64 -Ox -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> @@ -383,14 +415,12 @@ </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox -g --prefix _ -o "$(TargetDir)\%(Filename).obj" "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & nasm.exe -Xvc -f win32 -Ox --prefix _ -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> @@ -399,81 +429,109 @@ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\Twofish_x64.S"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\Camellia_aesni_x64.S"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\Camellia_x64.S"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -p gas -D WINABI -D __YASM__ -f win64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha256-x86-nayuki.S"> <FileType>Document</FileType> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha256_avx1_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha256_avx2_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha256_sse4_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> @@ -485,50 +543,70 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & vsyasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f win32 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha512-x64-nayuki.S"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -Xvc -p gas -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha512_avx1_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha512_avx2_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\sha512_sse4_x64.asm"> <FileType>Document</FileType> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & yasm.exe -D WINABI -D __YASM__ -f x64 -o "$(TargetDir)\%(Filename).obj" -l "$(TargetDir)\%(Filename).lst" "%(FullPath)"</Command> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> </CustomBuild> </ItemGroup> <ItemGroup> @@ -538,14 +616,12 @@ </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & ml.exe /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & ml.exe /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)"</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> @@ -553,11 +629,11 @@ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </CustomBuild> </ItemGroup> <ItemGroup> @@ -567,14 +643,12 @@ </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo %(Filename)%(Extension) & ml.exe /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" </Command> - <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & ml64.exe /nologo /D_M_X64 /W3 /Cx /Zi /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)" -</Command> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo %(Filename)%(Extension) & ml.exe /nologo /D_M_X86 /W3 /Cx /Zi /safeseh /Fo "$(TargetDir)\%(Filename).obj" /c "%(FullPath)"</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> @@ -582,11 +656,11 @@ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)\%(Filename).obj;%(Outputs)</Outputs> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> - <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild> </CustomBuild> </ItemGroup> <ItemGroup> diff --git a/src/Driver/veracrypt_vs2019.vcxproj.filters b/src/Driver/veracrypt_vs2019.vcxproj.filters index f0c7d0e3..43a1a222 100644 --- a/src/Driver/veracrypt_vs2019.vcxproj.filters +++ b/src/Driver/veracrypt_vs2019.vcxproj.filters @@ -264,6 +264,9 @@ <ClInclude Include="..\Crypto\AesSmall.h"> <Filter>Crypto\Header Files</Filter> </ClInclude> + <ClInclude Include="..\Common\Tcdefs.h"> + <Filter>Common</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <CustomBuild Include="..\Crypto\Aes_hw_cpu.asm"> diff --git a/src/ExpandVolume/ExpandVolume.c b/src/ExpandVolume/ExpandVolume.c index d9019ada..34184dda 100644 --- a/src/ExpandVolume/ExpandVolume.c +++ b/src/ExpandVolume/ExpandVolume.c @@ -691,6 +691,12 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas if (nStatus == ERR_CIPHER_INIT_WEAK_KEY) nStatus = 0; // We can ignore this error here + // if the volume master key is vulnerable, print a warning to inform the user + if ((nStatus == 0) && cryptoInfo->bVulnerableMasterKey) + { + DebugAddProgressDlgStatus(hwndDlg, GetString ("ERR_XTS_MASTERKEY_VULNERABLE_SHORT")); + } + if (nStatus != 0) { cryptoInfo = NULL; diff --git a/src/ExpandVolume/ExpandVolume.rc b/src/ExpandVolume/ExpandVolume.rc index a65d738f..69c77dc4 100644 --- a/src/ExpandVolume/ExpandVolume.rc +++ b/src/ExpandVolume/ExpandVolume.rc @@ -192,8 +192,8 @@ IDR_MOUNT_RSRC_HEADER HEADER "resource.h" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -210,11 +210,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt Expander" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCryptExpander.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" diff --git a/src/ExpandVolume/ExpandVolume_vs2019.vcxproj b/src/ExpandVolume/ExpandVolume_vs2019.vcxproj index 32937616..e053cadf 100644 --- a/src/ExpandVolume/ExpandVolume_vs2019.vcxproj +++ b/src/ExpandVolume/ExpandVolume_vs2019.vcxproj @@ -50,6 +50,7 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -65,11 +66,13 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -133,34 +136,34 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">false</LinkIncremental> @@ -199,7 +202,8 @@ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -222,6 +226,7 @@ <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX86</TargetMachine> <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>VeraCryptExpander.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -253,7 +258,8 @@ copy Debug\VeraCryptExpander.exe "..\Debug\Setup Files" >NUL: <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -276,6 +282,7 @@ copy Debug\VeraCryptExpander.exe "..\Debug\Setup Files" >NUL: <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX64</TargetMachine> <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>VeraCryptExpander.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -309,7 +316,8 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" >NUL: <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -330,6 +338,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-x64.exe" >NUL: <SubSystem>Windows</SubSystem> <DataExecutionPrevention>true</DataExecutionPrevention> <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>VeraCryptExpander.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -364,6 +373,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-arm64.exe" >NUL: <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -456,6 +466,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-arm64.exe" >NUL: <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -503,6 +514,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCryptExpander-arm64.exe" >NUL: <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4311;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\ARM64\Release\crypto.lib;..\Common\ARM64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> diff --git a/src/Format/Format.rc b/src/Format/Format.rc index 46e811b7..c988a811 100644 --- a/src/Format/Format.rc +++ b/src/Format/Format.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -46,11 +46,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt Format" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCrypt Format.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" diff --git a/src/Format/Format_vs2019.vcxproj b/src/Format/Format_vs2019.vcxproj index 95f61615..dc8de14a 100644 --- a/src/Format/Format_vs2019.vcxproj +++ b/src/Format/Format_vs2019.vcxproj @@ -50,6 +50,7 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -65,11 +66,13 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -133,34 +136,34 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">false</LinkIncremental> @@ -208,6 +211,7 @@ <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX86</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Format.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -248,6 +252,7 @@ copy Debug\VeraCryptFormat.exe "..\Debug\Setup Files\VeraCrypt Format.exe" >N <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX64</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Format.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -288,6 +293,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-x64.exe" >NUL: <ProgramDatabaseFile>$(OutDir)Format.pdb</ProgramDatabaseFile> <SubSystem>Windows</SubSystem> <DataExecutionPrevention>true</DataExecutionPrevention> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Format.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -319,6 +325,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -403,6 +410,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -446,6 +454,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt Format-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4204;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\ARM64\Release\crypto.lib;..\Common\ARM64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> diff --git a/src/LICENSE b/src/LICENSE index 19d47e25..2e1779a0 100644 --- a/src/LICENSE +++ b/src/LICENSE @@ -175,7 +175,7 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS -Copyright 2013-2023 IDRIX +Copyright 2013-2024 IDRIX Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/Main/CommandLineInterface.cpp b/src/Main/CommandLineInterface.cpp index 1b4a0c1b..735cbeef 100644 --- a/src/Main/CommandLineInterface.cpp +++ b/src/Main/CommandLineInterface.cpp @@ -29,6 +29,7 @@ namespace VeraCrypt ArgPim (-1), ArgSize (0), ArgVolumeType (VolumeType::Unknown), + ArgAllowScreencapture (false), ArgDisableFileSizeCheck (false), ArgUseLegacyPassword (false), #if defined(TC_LINUX ) || defined (TC_FREEBSD) @@ -41,6 +42,9 @@ namespace VeraCrypt parser.SetSwitchChars (L"-"); +#if defined(TC_WINDOWS) || defined(TC_MACOSX) + parser.AddSwitch (L"", L"allow-screencapture", _("Allow window to be included in screenshots and screen captures (Windows/MacOS)")); +#endif parser.AddOption (L"", L"auto-mount", _("Auto mount device-hosted/favorite volumes")); parser.AddSwitch (L"", L"backup-headers", _("Backup volume headers")); parser.AddSwitch (L"", L"background-task", _("Start Background Task")); @@ -142,6 +146,11 @@ namespace VeraCrypt ArgMountOptions = Preferences.DefaultMountOptions; } +#if defined(TC_WINDOWS) || defined(TC_MACOSX) + ArgAllowScreencapture = parser.Found (L"allow-screencapture"); +#else + ArgAllowScreencapture = true; // Protection against screenshots is supported only on Windows and MacOS +#endif // Commands if (parser.Found (L"auto-mount", &str)) { diff --git a/src/Main/CommandLineInterface.h b/src/Main/CommandLineInterface.h index 4003dc05..f773ca6f 100644 --- a/src/Main/CommandLineInterface.h +++ b/src/Main/CommandLineInterface.h @@ -84,6 +84,7 @@ namespace VeraCrypt VolumeInfoList ArgVolumes; VolumeType::Enum ArgVolumeType; shared_ptr<SecureBuffer> ArgTokenPin; + bool ArgAllowScreencapture; bool ArgDisableFileSizeCheck; bool ArgUseLegacyPassword; #if defined(TC_LINUX ) || defined (TC_FREEBSD) diff --git a/src/Main/Forms/AboutDialog.cpp b/src/Main/Forms/AboutDialog.cpp index e3768361..01c579d5 100644 --- a/src/Main/Forms/AboutDialog.cpp +++ b/src/Main/Forms/AboutDialog.cpp @@ -27,7 +27,11 @@ namespace VeraCrypt versionStaticTextFont.SetWeight (wxFONTWEIGHT_BOLD); VersionStaticText->SetFont (versionStaticTextFont); - VersionStaticText->SetLabel (Application::GetName() + L" " + StringConverter::ToWide (Version::String())); + wstring versionStr = StringConverter::ToWide (Version::String()); +#ifdef VC_MACOSX_FUSET + versionStr += L" (FUSE-T build)"; +#endif + VersionStaticText->SetLabel (Application::GetName() + L" " + versionStr); CopyrightStaticText->SetLabel (TC_STR_RELEASED_BY); WebsiteHyperlink->SetLabel (L"www.idrix.fr"); @@ -57,7 +61,7 @@ namespace VeraCrypt L"Paulo Barreto, Brian Gladman, Wei Dai, Peter Gutmann, and many others.\n\n" L"Portions of this software:\n" - L"Copyright \xA9 2013-2023 IDRIX. All rights reserved.\n" + L"Copyright \xA9 2013-2024 IDRIX. All rights reserved.\n" L"Copyright \xA9 2003-2012 TrueCrypt Developers Association. All Rights Reserved.\n" L"Copyright \xA9 1998-2000 Paul Le Roux. All Rights Reserved.\n" L"Copyright \xA9 1998-2008 Brian Gladman. All Rights Reserved.\n" @@ -70,7 +74,7 @@ namespace VeraCrypt L"Copyright \xA9 1999-2023 Igor Pavlov\n\n" L"\nThis software as a whole:\n" - L"Copyright \xA9 2013-2023 IDRIX. All rights reserved.\n\n" + L"Copyright \xA9 2013-2024 IDRIX. All rights reserved.\n\n" L"This software uses wxWidgets library, which is copyright \xA9 1998-2011 Julian Smart, Robert Roebling et al.\n\n" diff --git a/src/Main/Forms/ChangePasswordDialog.cpp b/src/Main/Forms/ChangePasswordDialog.cpp index 397ee693..39da8e60 100644 --- a/src/Main/Forms/ChangePasswordDialog.cpp +++ b/src/Main/Forms/ChangePasswordDialog.cpp @@ -171,6 +171,7 @@ namespace VeraCrypt RandomNumberGenerator::SetEnrichedByUserStatus (false); Gui->UserEnrichRandomPool (this, NewPasswordPanel->GetPkcs5Kdf() ? NewPasswordPanel->GetPkcs5Kdf()->GetHash() : shared_ptr <Hash>()); + bool masterKeyVulnerable = false; { #ifdef TC_UNIX // Temporarily take ownership of a device if the user is not an administrator @@ -193,6 +194,7 @@ namespace VeraCrypt CurrentPasswordPanel->GetPassword(), CurrentPasswordPanel->GetVolumePim(), CurrentPasswordPanel->GetPkcs5Kdf(), CurrentPasswordPanel->GetKeyfiles(), newPassword, newPim, newKeyfiles, NewPasswordPanel->GetPkcs5Kdf(), NewPasswordPanel->GetHeaderWipeCount(), Gui->GetPreferences().EMVSupportEnabled); Gui->ExecuteWaitThreadRoutine (this, &routine); + masterKeyVulnerable = routine.m_masterKeyVulnerable; } switch (DialogMode) @@ -214,6 +216,9 @@ namespace VeraCrypt throw ParameterIncorrect (SRC_POS); } + if (masterKeyVulnerable) + Gui->ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + EndModal (wxID_OK); } catch (UnportablePassword &e) diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp index 6355f139..77f371d8 100644 --- a/src/Main/Forms/MainFrame.cpp +++ b/src/Main/Forms/MainFrame.cpp @@ -84,6 +84,7 @@ namespace VeraCrypt InitTaskBarIcon(); InitEvents(); InitMessageFilter(); + InitWindowPrivacy(); if (!GetPreferences().SecurityTokenModule.IsEmpty() && !SecurityToken::IsInitialized()) { @@ -470,6 +471,12 @@ namespace VeraCrypt #endif } + + void MainFrame::InitWindowPrivacy () + { + Gui->SetContentProtection(!CmdLine->ArgAllowScreencapture); + } + void MainFrame::InitPreferences () { try diff --git a/src/Main/Forms/MainFrame.h b/src/Main/Forms/MainFrame.h index ab70eae3..ed1c44f7 100644 --- a/src/Main/Forms/MainFrame.h +++ b/src/Main/Forms/MainFrame.h @@ -84,6 +84,7 @@ namespace VeraCrypt void InitMessageFilter (); void InitPreferences (); void InitTaskBarIcon (); + void InitWindowPrivacy(); bool IsFreeSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); } bool IsMountedSlotSelected () const { return SlotListCtrl->GetSelectedItemCount() == 1 && !Gui->GetListCtrlSubItemText (SlotListCtrl, SelectedItemIndex, ColumnPath).empty(); } void LoadFavoriteVolumes (); diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp index c4d5140f..4e7644b6 100644 --- a/src/Main/Forms/PreferencesDialog.cpp +++ b/src/Main/Forms/PreferencesDialog.cpp @@ -82,15 +82,70 @@ namespace VeraCrypt LanguageListBox->Append("System default"); LanguageListBox->Append("English"); + langEntries = { + {"system", L"System default"}, + {"ar", L"العربية"}, + {"be", L"Беларуская"}, + {"bg", L"Български"}, + {"ca", L"Català"}, + {"co", L"Corsu"}, + {"cs", L"Čeština"}, + {"da", L"Dansk"}, + {"de", L"Deutsch"}, + {"el", L"Ελληνικά"}, + {"en", L"English"}, + {"es", L"Español"}, + {"et", L"Eesti"}, + {"eu", L"Euskara"}, + {"fa", L"فارسي"}, + {"fi", L"Suomi"}, + {"fr", L"Français"}, + {"he", L"עברית"}, + {"hu", L"Magyar"}, + {"id", L"Bahasa Indonesia"}, + {"it", L"Italiano"}, + {"ja", L"日本語"}, + {"ka", L"ქართული"}, + {"ko", L"한국어"}, + {"lv", L"Latviešu"}, + {"nb", L"Norsk Bokmål"}, + {"nl", L"Nederlands"}, + {"nn", L"Norsk Nynorsk"}, + {"pl", L"Polski"}, + {"ro", L"Română"}, + {"ru", L"Русский"}, + {"pt-br", L"Português-Brasil"}, + {"sk", L"Slovenčina"}, + {"sl", L"Slovenščina"}, + {"sv", L"Svenska"}, + {"th", L"ภาษาไทย"}, + {"tr", L"Türkçe"}, + {"uk", L"Українська"}, + {"uz", L"Ўзбекча"}, + {"vi", L"Tiếng Việt"}, + {"zh-cn", L"简体中文"}, + {"zh-hk", L"繁體中文(香港)"}, + {"zh-tw", L"繁體中文"} + }; + if (wxDir::Exists(languagesFolder.GetName())) { size_t langCount; - langCount = wxDir::GetAllFiles(languagesFolder.GetName(), &langArray, wxEmptyString, wxDIR_FILES); + langCount = wxDir::GetAllFiles(languagesFolder.GetName(), &langArray, "*.xml", wxDIR_FILES); for (size_t i = 0; i < langCount; ++i) { wxFileName filename(langArray[i]); - wxString langId = filename.GetName().AfterLast('.'); - wxString langNative = langEntries[langId]; - if (!langNative.empty()) { - LanguageListBox->Append(langNative); + + // Get the name part of the file (without extension) + wxString basename = filename.GetName(); + + // Check if the basename matches the pattern "Language.langId" + if (basename.StartsWith("Language.")) { + wxString langId = basename.AfterFirst('.'); + + // Verify if the language ID exists in langEntries map + wxString langNative = langEntries[langId]; + if (!langNative.empty()) { + LanguageListBox->Append(langNative); + } } } } @@ -435,11 +490,11 @@ namespace VeraCrypt if (LanguageListBox->GetSelection() != wxNOT_FOUND) { wxString langToFind = LanguageListBox->GetString(LanguageListBox->GetSelection()); - for (const auto &each: langEntries) { - if (each.second == langToFind) { - Preferences.Language = each.first; + for (map<wxString, std::wstring>::const_iterator each = langEntries.begin(); each != langEntries.end(); ++each) { + if (each->second == langToFind) { + Preferences.Language = each->first; #ifdef DEBUG - cout << "Lang set to: " << each.first << endl; + cout << "Lang set to: " << each->first << endl; #endif } } diff --git a/src/Main/Forms/PreferencesDialog.h b/src/Main/Forms/PreferencesDialog.h index 50e8489e..5e7f7e71 100644 --- a/src/Main/Forms/PreferencesDialog.h +++ b/src/Main/Forms/PreferencesDialog.h @@ -60,50 +60,7 @@ namespace VeraCrypt UserPreferences Preferences; bool RestoreValidatorBell; HotkeyList UnregisteredHotkeys; - map<wxString, wstring> langEntries = { - {"system", L"System default"}, - {"ar", L"العربية"}, - {"be", L"Беларуская"}, - {"bg", L"Български"}, - {"ca", L"Català"}, - {"co", L"Corsu"}, - {"cs", L"Čeština"}, - {"da", L"Dansk"}, - {"de", L"Deutsch"}, - {"el", L"Ελληνικά"}, - {"en", L"English"}, - {"es", L"Español"}, - {"et", L"Eesti"}, - {"eu", L"Euskara"}, - {"fa", L"فارسي"}, - {"fi", L"Suomi"}, - {"fr", L"Français"}, - {"he", L"עברית"}, - {"hu", L"Magyar"}, - {"id", L"Bahasa Indonesia"}, - {"it", L"Italiano"}, - {"ja", L"日本語"}, - {"ka", L"ქართული"}, - {"ko", L"한국어"}, - {"lv", L"Latviešu"}, - {"nl", L"Nederlands"}, - {"nn", L"Norsk Nynorsk"}, - {"pl", L"Polski"}, - {"ro", L"Română"}, - {"ru", L"Русский"}, - {"pt-br", L"Português-Brasil"}, - {"sk", L"Slovenčina"}, - {"sl", L"Slovenščina"}, - {"sv", L"Svenska"}, - {"th", L"ภาษาไทย"}, - {"tr", L"Türkçe"}, - {"uk", L"Українська"}, - {"uz", L"Ўзбекча"}, - {"vi", L"Tiếng Việt"}, - {"zh-cn", L"简体中文"}, - {"zh-hk", L"繁體中文(香港)"}, - {"zh-tw", L"繁體中文"} - }; + map<wxString, wstring> langEntries; }; } diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp index 3f09e39f..311738ca 100644 --- a/src/Main/Forms/VolumeCreationWizard.cpp +++ b/src/Main/Forms/VolumeCreationWizard.cpp @@ -37,6 +37,19 @@ namespace VeraCrypt { + class OpenOuterVolumeFunctor : public Functor + { + public: + OpenOuterVolumeFunctor (const DirectoryPath &outerVolumeMountPoint) : OuterVolumeMountPoint (outerVolumeMountPoint) { } + + virtual void operator() () + { + Gui->OpenExplorerWindow (OuterVolumeMountPoint); + } + + DirectoryPath OuterVolumeMountPoint; + }; + #ifdef TC_MACOSX bool VolumeCreationWizard::ProcessEvent(wxEvent& event) @@ -338,18 +351,6 @@ namespace VeraCrypt return new InfoWizardPage (GetPageParent()); } - struct OpenOuterVolumeFunctor : public Functor - { - OpenOuterVolumeFunctor (const DirectoryPath &outerVolumeMountPoint) : OuterVolumeMountPoint (outerVolumeMountPoint) { } - - virtual void operator() () - { - Gui->OpenExplorerWindow (OuterVolumeMountPoint); - } - - DirectoryPath OuterVolumeMountPoint; - }; - InfoWizardPage *page = new InfoWizardPage (GetPageParent(), LangString["LINUX_OPEN_OUTER_VOL"], shared_ptr <Functor> (new OpenOuterVolumeFunctor (MountedOuterVolume->MountPoint))); diff --git a/src/Main/Forms/WaitDialog.h b/src/Main/Forms/WaitDialog.h index 89de8718..53f5048b 100644 --- a/src/Main/Forms/WaitDialog.h +++ b/src/Main/Forms/WaitDialog.h @@ -80,7 +80,7 @@ namespace VeraCrypt m_bThreadRunning = true; } - int GetCharWidth (wxWindow *window) const + static int ComputeCharWidth (wxWindow *window) { int width; int height; @@ -179,7 +179,7 @@ namespace VeraCrypt { wxPasswordEntryDialog dialog (this, wxString::Format (LangString["ENTER_TOKEN_PASSWORD"], e.GetString()), LangString["IDD_TOKEN_PASSWORD"]); - dialog.SetSize (wxSize (GetCharWidth (&dialog) * 50, -1)); + dialog.SetSize (wxSize (ComputeCharWidth (&dialog) * 50, -1)); if (dialog.ShowModal() != wxID_OK) m_queue.Post(wxT("")); diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp index af2db217..1cb62671 100644 --- a/src/Main/GraphicUserInterface.cpp +++ b/src/Main/GraphicUserInterface.cpp @@ -37,6 +37,32 @@ namespace VeraCrypt { + class AdminPasswordGUIRequestHandler : public GetStringFunctor + { + public: + virtual void operator() (string &passwordStr) + { + + wxString sValue; + if (Gui->GetWaitDialog()) + { + Gui->GetWaitDialog()->RequestAdminPassword(sValue); + if (sValue.IsEmpty()) + throw UserAbort (SRC_POS); + } + else + { + wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]); + if (dialog.ShowModal() != wxID_OK) + throw UserAbort (SRC_POS); + sValue = dialog.GetValue(); + } + wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased + finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); }); + + StringConverter::ToSingle (wPassword, passwordStr); + } + }; #ifdef TC_MACOSX int GraphicUserInterface::g_customIdCmdV = 0; int GraphicUserInterface::g_customIdCmdA = 0; @@ -165,6 +191,7 @@ namespace VeraCrypt hiddenVolumeMountOptions.Path = volumePath; VolumeType::Enum volumeType = VolumeType::Normal; + bool masterKeyVulnerable = false; // Open both types of volumes while (true) @@ -247,6 +274,13 @@ namespace VeraCrypt } } + // check if volume master key is vulnerable + if (volume->IsMasterKeyVulnerable()) + { + masterKeyVulnerable = true; + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + } + if (volumeType == VolumeType::Hidden) hiddenVolume = volume; else @@ -340,6 +374,10 @@ namespace VeraCrypt } ShowWarning ("VOL_HEADER_BACKED_UP"); + + // display again warning that master key is vulnerable + if (masterKeyVulnerable) + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); } void GraphicUserInterface::BeginInteractiveBusyState (wxWindow *window) @@ -452,33 +490,7 @@ namespace VeraCrypt shared_ptr <GetStringFunctor> GraphicUserInterface::GetAdminPasswordRequestHandler () { - struct AdminPasswordRequestHandler : public GetStringFunctor - { - virtual void operator() (string &passwordStr) - { - - wxString sValue; - if (Gui->GetWaitDialog()) - { - Gui->GetWaitDialog()->RequestAdminPassword(sValue); - if (sValue.IsEmpty()) - throw UserAbort (SRC_POS); - } - else - { - wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]); - if (dialog.ShowModal() != wxID_OK) - throw UserAbort (SRC_POS); - sValue = dialog.GetValue(); - } - wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased - finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); }); - - StringConverter::ToSingle (wPassword, passwordStr); - } - }; - - return shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler); + return shared_ptr <GetStringFunctor> (new AdminPasswordGUIRequestHandler); } int GraphicUserInterface::GetCharHeight (wxWindow *window) const @@ -1440,6 +1452,7 @@ namespace VeraCrypt /* force the display of the random enriching interface */ RandomNumberGenerator::SetEnrichedByUserStatus (false); + bool masterKeyVulnerable = false; if (restoreInternalBackup) { // Restore header from the internal backup @@ -1492,6 +1505,8 @@ namespace VeraCrypt return; } + masterKeyVulnerable = volume->IsMasterKeyVulnerable(); + RandomNumberGenerator::Start(); UserEnrichRandomPool (nullptr); @@ -1590,6 +1605,7 @@ namespace VeraCrypt if (decryptRoutine.m_bResult) { + masterKeyVulnerable = layout->GetHeader()->IsMasterKeyVulnerable(); decryptedLayout = layout; break; } @@ -1645,6 +1661,12 @@ namespace VeraCrypt } ShowInfo ("VOL_HEADER_RESTORED"); + + // display warning if the volume master key is vulnerable + if (masterKeyVulnerable) + { + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + } } DevicePath GraphicUserInterface::SelectDevice (wxWindow *parent) const @@ -1852,6 +1874,14 @@ namespace VeraCrypt listCtrl->SetMinSize (wxSize (width, listCtrl->GetMinSize().GetHeight())); } + + void GraphicUserInterface::SetContentProtection (bool enable) const + { +#if defined(TC_WINDOWS) || defined(TC_MACOSX) + GetActiveWindow()->SetContentProtection(enable ? wxCONTENT_PROTECTION_ENABLED : wxCONTENT_PROTECTION_NONE); +#endif + } + void GraphicUserInterface::ShowErrorTopMost (const wxString &message) const { ShowMessage (message, wxOK | wxICON_ERROR, true); diff --git a/src/Main/GraphicUserInterface.h b/src/Main/GraphicUserInterface.h index d48b7973..d333551c 100644 --- a/src/Main/GraphicUserInterface.h +++ b/src/Main/GraphicUserInterface.h @@ -86,6 +86,7 @@ namespace VeraCrypt virtual void SetListCtrlColumnWidths (wxListCtrl *listCtrl, list <int> columnWidthPermilles, bool hasVerticalScrollbar = true) const; virtual void SetListCtrlHeight (wxListCtrl *listCtrl, size_t rowCount) const; virtual void SetListCtrlWidth (wxListCtrl *listCtrl, size_t charCount, bool hasVerticalScrollbar = true) const; + virtual void SetContentProtection(bool enable) const; virtual void ShowErrorTopMost (char *langStringId) const { ShowErrorTopMost (LangString[langStringId]); } virtual void ShowErrorTopMost (const wxString &message) const; virtual void ShowInfoTopMost (char *langStringId) const { ShowInfoTopMost (LangString[langStringId]); } diff --git a/src/Main/Main.make b/src/Main/Main.make index c811f74c..178c4669 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -102,7 +102,7 @@ endif #------ FUSE configuration ------ -FUSE_LIBS = $(shell $(PKG_CONFIG) fuse --libs) +FUSE_LIBS = $(shell $(PKG_CONFIG) $(VC_FUSE_PACKAGE) --libs) #------ Executable ------ @@ -127,15 +127,39 @@ PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(PLATFORM_ARCH).tar.gz endif endif +# Determine GUI/GTK conditions +GUI_CONDITION := $(filter gui,$(INSTALLER_TYPE)) +GTK2_CONDITION := $(filter 2,$(GTK_VERSION)) + ifeq "$(origin NOSSE2)" "command line" INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH)_legacy.sh + +ifneq (,$(GUI_CONDITION)) +ifneq (,$(GTK2_CONDITION)) +INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-gtk2-gui-$(CPU_ARCH)-legacy +else INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)-legacy +endif +else +INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)-legacy +endif + else INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH).sh + +ifneq (,$(GUI_CONDITION)) +ifneq (,$(GTK2_CONDITION)) +INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-gtk2-gui-$(CPU_ARCH) +else +INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) +endif +else INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) endif endif + +endif #----------------------------------- #------ FreeBSD package naming ------ @@ -151,8 +175,21 @@ INSTALLER_TYPE := gui PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_$(PLATFORM_ARCH).tar.gz endif +# Determine GUI/GTK conditions +GUI_CONDITION := $(filter gui,$(INSTALLER_TYPE)) +GTK2_CONDITION := $(filter 2,$(GTK_VERSION)) + INTERNAL_INSTALLER_NAME := veracrypt_install_f$(SYSTEMNAME)_$(INSTALLER_TYPE)_$(CPU_ARCH).sh + +ifneq (,$(GUI_CONDITION)) +ifneq (,$(GTK2_CONDITION)) +INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-gtk2-gui-$(CPU_ARCH) +else +INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) +endif +else INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) +endif endif #----------------------------------- @@ -223,13 +260,17 @@ ifdef VC_LEGACY_BUILD productsign --sign "Developer ID Installer: IDRIX (Z933746L2S)" --timestamp "$(BASE_DIR)/Setup/MacOSX/VeraCrypt Legacy $(TC_VERSION).pkg" $(BASE_DIR)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg rm -f $(APPNAME)_Legacy_$(TC_VERSION).dmg else +ifeq "$(VC_OSX_FUSET)" "1" + /usr/local/bin/packagesbuild $(BASE_DIR)/Setup/MacOSX/veracrypt_fuse-t.pkgproj +else /usr/local/bin/packagesbuild $(BASE_DIR)/Setup/MacOSX/veracrypt.pkgproj +endif ifneq ("$(LOCAL_DEVELOPMENT_BUILD)","true") productsign --sign "Developer ID Installer: IDRIX (Z933746L2S)" --timestamp "$(BASE_DIR)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(BASE_DIR)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg else # copy the unsigned package to the expected location cp "$(BASE_DIR)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(BASE_DIR)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg -end +endif rm -f $(APPNAME)_$(TC_VERSION).dmg endif rm -f "$(BASE_DIR)/Setup/MacOSX/template.dmg" diff --git a/src/Main/StringFormatter.h b/src/Main/StringFormatter.h index 97c39ae2..d7f64dd0 100644 --- a/src/Main/StringFormatter.h +++ b/src/Main/StringFormatter.h @@ -52,7 +52,10 @@ namespace VeraCrypt StringFormatter (const wxString &format, StringFormatterArg arg0 = StringFormatterArg(), StringFormatterArg arg1 = StringFormatterArg(), StringFormatterArg arg2 = StringFormatterArg(), StringFormatterArg arg3 = StringFormatterArg(), StringFormatterArg arg4 = StringFormatterArg(), StringFormatterArg arg5 = StringFormatterArg(), StringFormatterArg arg6 = StringFormatterArg(), StringFormatterArg arg7 = StringFormatterArg(), StringFormatterArg arg8 = StringFormatterArg(), StringFormatterArg arg9 = StringFormatterArg()); virtual ~StringFormatter (); - explicit operator wstring () const { return wstring (FormattedString); } +#if (__cplusplus >= 201103L) + explicit +#endif + operator wstring () const { return wstring (FormattedString); } operator wxString () const { return FormattedString; } operator StringFormatterArg () const { return FormattedString; } diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp index 3346ee3e..bc3f6f5a 100644 --- a/src/Main/TextUserInterface.cpp +++ b/src/Main/TextUserInterface.cpp @@ -30,6 +30,27 @@ namespace VeraCrypt { + class AdminPasswordTextRequestHandler : public GetStringFunctor + { + public: + AdminPasswordTextRequestHandler (TextUserInterface *userInterface) : UI (userInterface) { } + virtual void operator() (string &passwordStr) + { + UI->ShowString (_("Enter your user password or administrator password: ")); + + TextUserInterface::SetTerminalEcho (false); + finally_do ({ TextUserInterface::SetTerminalEcho (true); }); + + wstring wPassword (UI->ReadInputStreamLine()); + finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); }); + + UI->ShowString (L"\n"); + + StringConverter::ToSingle (wPassword, passwordStr); + } + TextUserInterface *UI; + }; + TextUserInterface::TextUserInterface () { #ifdef TC_UNIX @@ -293,6 +314,7 @@ namespace VeraCrypt hiddenVolumeMountOptions.EMVSupportEnabled = true; VolumeType::Enum volumeType = VolumeType::Normal; + bool masterKeyVulnerable = false; // Open both types of volumes while (true) @@ -366,6 +388,13 @@ namespace VeraCrypt } } + // check if volume master key is vulnerable + if (volume->IsMasterKeyVulnerable()) + { + masterKeyVulnerable = true; + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + } + if (volumeType == VolumeType::Hidden) hiddenVolume = volume; else @@ -433,6 +462,10 @@ namespace VeraCrypt ShowString (L"\n"); ShowInfo ("VOL_HEADER_BACKED_UP"); + + // display again warning that master key is vulnerable + if (masterKeyVulnerable) + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); } void TextUserInterface::ChangePassword (shared_ptr <VolumePath> volumePath, shared_ptr <VolumePassword> password, int pim, shared_ptr <Hash> currentHash, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, shared_ptr <Hash> newHash) const @@ -511,6 +544,12 @@ namespace VeraCrypt break; } + // display warning if volume master key is vulnerable + if (volume->IsMasterKeyVulnerable()) + { + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + } + // New password if (!newPassword.get() && !Preferences.NonInteractive) newPassword = AskPassword (_("Enter new password"), true); @@ -1095,27 +1134,7 @@ namespace VeraCrypt shared_ptr <GetStringFunctor> TextUserInterface::GetAdminPasswordRequestHandler () { - struct AdminPasswordRequestHandler : public GetStringFunctor - { - AdminPasswordRequestHandler (TextUserInterface *userInterface) : UI (userInterface) { } - virtual void operator() (string &passwordStr) - { - UI->ShowString (_("Enter your user password or administrator password: ")); - - TextUserInterface::SetTerminalEcho (false); - finally_do ({ TextUserInterface::SetTerminalEcho (true); }); - - wstring wPassword (UI->ReadInputStreamLine()); - finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); }); - - UI->ShowString (L"\n"); - - StringConverter::ToSingle (wPassword, passwordStr); - } - TextUserInterface *UI; - }; - - return shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler (this)); + return shared_ptr <GetStringFunctor> (new AdminPasswordTextRequestHandler (this)); } void TextUserInterface::ImportTokenKeyfiles () const @@ -1538,6 +1557,7 @@ namespace VeraCrypt /* force the display of the random enriching interface */ RandomNumberGenerator::SetEnrichedByUserStatus (false); + bool masterKeyVulnerable = false; if (restoreInternalBackup) { // Restore header from the internal backup @@ -1585,6 +1605,8 @@ namespace VeraCrypt throw_err (LangString ["VOLUME_HAS_NO_BACKUP_HEADER"]); } + masterKeyVulnerable = volume->IsMasterKeyVulnerable(); + RandomNumberGenerator::Start(); UserEnrichRandomPool(); @@ -1672,6 +1694,7 @@ namespace VeraCrypt if (layout->GetHeader()->Decrypt (headerBuffer, *passwordKey, options.Pim, kdf, layout->GetSupportedKeyDerivationFunctions(), layout->GetSupportedEncryptionAlgorithms(), layout->GetSupportedEncryptionModes())) { decryptedLayout = layout; + masterKeyVulnerable = layout->GetHeader()->IsMasterKeyVulnerable(); break; } } @@ -1722,6 +1745,11 @@ namespace VeraCrypt ShowString (L"\n"); ShowInfo ("VOL_HEADER_RESTORED"); + // display warning if the volume master key is vulnerable + if (masterKeyVulnerable) + { + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + } } void TextUserInterface::SetTerminalEcho (bool enable) diff --git a/src/Main/TextUserInterface.h b/src/Main/TextUserInterface.h index becb1d59..34a7cb40 100644 --- a/src/Main/TextUserInterface.h +++ b/src/Main/TextUserInterface.h @@ -19,9 +19,11 @@ namespace VeraCrypt { + class AdminPasswordTextRequestHandler; class TextUserInterface : public UserInterface { public: + friend class AdminPasswordTextRequestHandler; TextUserInterface (); virtual ~TextUserInterface (); diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp index 09b1fcdd..b216101a 100644 --- a/src/Main/UserInterface.cpp +++ b/src/Main/UserInterface.cpp @@ -32,6 +32,15 @@ namespace VeraCrypt { + class AdminPasswordRequestHandler : public GetStringFunctor + { + public: + virtual void operator() (string &str) + { + throw ElevationFailed (SRC_POS, "sudo", 1, ""); + } + }; + UserInterface::UserInterface () { } @@ -558,14 +567,6 @@ namespace VeraCrypt } else { - struct AdminPasswordRequestHandler : public GetStringFunctor - { - virtual void operator() (string &str) - { - throw ElevationFailed (SRC_POS, "sudo", 1, ""); - } - }; - Core->SetAdminPasswordCallback (shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler)); } @@ -651,6 +652,7 @@ namespace VeraCrypt bool protectedVolumeMounted = false; bool legacyVolumeMounted = false; + bool vulnerableVolumeMounted = false; foreach_ref (const HostDevice &device, devices) { @@ -693,6 +695,10 @@ namespace VeraCrypt if (newMountedVolumes.back()->EncryptionAlgorithmMinBlockSize == 8) legacyVolumeMounted = true; + + if (newMountedVolumes.back()->MasterKeyVulnerable) + vulnerableVolumeMounted = true; + } catch (DriverError&) { } catch (MissingVolumeData&) { } @@ -707,6 +713,9 @@ namespace VeraCrypt } else { + if (vulnerableVolumeMounted) + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + if (someVolumesShared) ShowWarning ("DEVICE_IN_USE_INFO"); @@ -740,10 +749,12 @@ namespace VeraCrypt favorite.ToMountOptions (options); + bool mountPerformed = false; if (Preferences.NonInteractive) { BusyScope busy (this); newMountedVolumes.push_back (Core->MountVolume (options)); + mountPerformed = true; } else { @@ -751,6 +762,7 @@ namespace VeraCrypt { BusyScope busy (this); newMountedVolumes.push_back (Core->MountVolume (options)); + mountPerformed = true; } catch (...) { @@ -768,6 +780,9 @@ namespace VeraCrypt newMountedVolumes.push_back (volume); } } + + if (mountPerformed && newMountedVolumes.back()->MasterKeyVulnerable) + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); } if (!newMountedVolumes.empty() && GetPreferences().CloseSecurityTokenSessionsAfterMount) @@ -804,6 +819,9 @@ namespace VeraCrypt } } + if (volume->MasterKeyVulnerable) + ShowWarning ("ERR_XTS_MASTERKEY_VULNERABLE"); + if (volume->EncryptionAlgorithmMinBlockSize == 8) ShowWarning ("WARN_64_BIT_BLOCK_CIPHER"); @@ -855,6 +873,14 @@ namespace VeraCrypt ShowWarning (e.mException); } +#if !defined(TC_WINDOWS) && !defined(TC_MACOSX) +// Function to check if a given executable exists and is executable +static bool IsExecutable(const string& exe) { + return wxFileName::IsFileExecutable("/usr/bin/" + exe) || + wxFileName::IsFileExecutable("/usr/local/bin/" + exe); +} +#endif + void UserInterface::OpenExplorerWindow (const DirectoryPath &path) { if (path.IsEmpty()) @@ -879,60 +905,58 @@ namespace VeraCrypt catch (exception &e) { ShowError (e); } #else - // MIME handler for directory seems to be unavailable through wxWidgets - wxString desktop = GetTraits()->GetDesktopEnvironment(); - bool xdgOpenPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/xdg-open")) || wxFileName::IsFileExecutable (wxT("/usr/local/bin/xdg-open")); - bool nautilusPresent = wxFileName::IsFileExecutable (wxT("/usr/bin/nautilus")) || wxFileName::IsFileExecutable (wxT("/usr/local/bin/nautilus")); - - if (desktop == L"GNOME" || (desktop.empty() && !xdgOpenPresent && nautilusPresent)) - { - // args.push_back ("--no-default-window"); // This option causes nautilus not to launch under FreeBSD 11 - args.push_back ("--no-desktop"); - args.push_back (string (path)); - try - { - Process::Execute ("nautilus", args, 2000); + string directoryPath = string(path); + // Primary attempt: Use xdg-open + if (IsExecutable("xdg-open")) { + try { + args.push_back(directoryPath); + Process::Execute("xdg-open", args, 2000); + return; } catch (TimeOut&) { } - catch (exception &e) { ShowError (e); } + catch (exception&) {} } - else if (desktop == L"KDE") - { - try - { - args.push_back (string (path)); - Process::Execute ("dolphin", args, 2000); - } - catch (TimeOut&) { } - catch (exception&) - { + + // Fallback attempts: Try known file managers + const char* fallbackFileManagers[] = { "gio", "kioclient5", "kfmclient", "exo-open", "nautilus", "dolphin", "caja", "thunar", "pcmanfm" }; + const size_t numFileManagers = sizeof(fallbackFileManagers) / sizeof(fallbackFileManagers[0]); + + for (size_t i = 0; i < numFileManagers; ++i) { + const char* fm = fallbackFileManagers[i]; + if (IsExecutable(fm)) { args.clear(); - args.push_back ("openURL"); - args.push_back (string (path)); - try - { - Process::Execute ("kfmclient", args, 2000); + if (strcmp(fm, "gio") == 0) { + args.push_back("open"); + args.push_back(directoryPath); + } + else if (strcmp(fm, "kioclient5") == 0) { + args.push_back("exec"); + args.push_back(directoryPath); + } + else if (strcmp(fm, "kfmclient") == 0) { + args.push_back("openURL"); + args.push_back(directoryPath); + } + else if (strcmp(fm, "exo-open") == 0) { + args.push_back("--launch"); + args.push_back("FileManager"); + args.push_back(directoryPath); + } + else { + args.push_back(directoryPath); + } + + try { + Process::Execute(fm, args, 2000); + return; // Success } catch (TimeOut&) { } - catch (exception &e) { ShowError (e); } + catch (exception &) {} } } - else if (xdgOpenPresent) - { - // Fallback on the standard xdg-open command - // which is not always available by default - args.push_back (string (path)); - try - { - Process::Execute ("xdg-open", args, 2000); - } - catch (TimeOut&) { } - catch (exception &e) { ShowError (e); } - } - else - { - ShowWarning (wxT("Unable to find a file manager to open the mounted volume")); - } + + ShowWarning(wxT("Unable to find a file manager to open the mounted volume.\n" + "Please install xdg-utils or set a default file manager.")); #endif } diff --git a/src/Makefile b/src/Makefile index 799a8ff5..15af9c6c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -23,8 +23,8 @@ # SSSE3: Enable SSSE3 support in compiler # SSE41: Enable SSE4.1 support in compiler # NOSSE2: Disable SEE2 support in compiler -# WITHGTK3: Build wxWidgets against GTK3 -# WOLFCRYPT: Build with wolfCrypt as crypto provider (see Crypto/wolfCrypt.md) +# WOLFCRYPT: Build with wolfCrypt as crypto provider (see Crypto/wolfCrypt.md) +# WITHFUSET: Build with FUSE-T support on macOS instead of MacFUSE #------ Targets ------ # all @@ -52,6 +52,8 @@ export LFLAGS := export PKG_CONFIG ?= pkg-config export PKG_CONFIG_PATH ?= /usr/local/lib/pkgconfig +export VC_FUSE_PACKAGE := fuse +export VC_OSX_FUSET ?= 0 export WX_CONFIG ?= wx-config export WX_CONFIG_ARGS := --unicode @@ -62,6 +64,12 @@ WX_ROOT ?= $(BASE_DIR)/wxWidgets export TC_BUILD_CONFIG := Release +ifeq "$(origin WITHFUSET)" "command line" + ifneq "$(WITHFUSET)" "0" + VC_OSX_FUSET := 1 + endif +endif + ifeq "$(origin DEBUG)" "command line" ifneq "$(DEBUG)" "0" TC_BUILD_CONFIG := Debug @@ -97,16 +105,6 @@ ifeq "$(origin WXSTATIC)" "command line" endif endif -ifeq "$(origin INDICATOR)" "command line" - ifneq (,$(findstring gtk3,$(shell $(WX_CONFIG) --selected-config))) - INDICATOR_LIBRARY=ayatana-appindicator3-0.1 - else - INDICATOR_LIBRARY=ayatana-appindicator-0.1 - endif - export AYATANA_LIBS += $(shell $(PKG_CONFIG) --libs $(INDICATOR_LIBRARY)) - C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags $(INDICATOR_LIBRARY)) -DHAVE_INDICATORS -endif - #------ Release configuration ------ ifeq "$(TC_BUILD_CONFIG)" "Release" @@ -150,6 +148,7 @@ export ENABLE_WOLFCRYPT ?= 0 export GCC_GTEQ_440 := 0 export GCC_GTEQ_430 := 0 +export GTK_VERSION := 0 ARCH ?= $(shell uname -m) @@ -202,7 +201,7 @@ ifeq "$(shell uname -s)" "Linux" C_CXX_FLAGS += -DTC_UNIX -DTC_LINUX # PCSC - C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite) + C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite) # Extract the major and minor version numbers of GCC in a combined format for easy comparison GCC_VERSION := $(shell $(CC) -dumpversion | awk -F. '{printf "%d%02d", $$1, $$2}') @@ -220,6 +219,12 @@ ifeq "$(shell uname -s)" "Linux" CXXFLAGS += -std=gnu++14 endif + # Linked in GCC versions below 6 was setting large value for MAXPAGESIZE which is not good for ASLR security + # So, we need to manually add the linker flag "-z max-page-size=4096" to set the maximum page size to 4KB + # in order to improve ASLR security. Starting from GCC 6, the default value of MAXPAGESIZE is 4KB. + ifeq ($(shell expr $(GCC_VERSION) \< 600), 1) + LFLAGS += -Wl,-z,max-page-size=4096 + endif ifeq "$(SIMD_SUPPORTED)" "1" CFLAGS += -msse2 @@ -279,13 +284,6 @@ ifeq "$(shell uname -s)" "Linux" WXCONFIG_CFLAGS += -mno-sse2 WXCONFIG_CXXFLAGS += -mno-sse2 endif - - ifeq "$(origin WITHGTK3)" "command line" - WX_CONFIGURE_FLAGS += --with-gtk=3 - else - WX_CONFIGURE_FLAGS += --with-gtk=2 - endif - endif #------ Mac OS X configuration ------ @@ -302,7 +300,10 @@ ifeq "$(shell uname -s)" "Darwin" #check to see if XCode 3 path exists.Otherwise, use XCode 4 path VC_OSX_SDK_PATH := /Developer/SDKs/MacOSX$(VC_OSX_SDK).sdk ifeq ($(wildcard $(VC_OSX_SDK_PATH)/SDKSettings.plist),) - VC_OSX_SDK_PATH := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(VC_OSX_SDK).sdk + VC_OSX_SDK_PATH := $(shell xcrun --sdk macosx$(VC_OSX_SDK) --show-sdk-path) + ifeq ($(VC_OSX_SDK_PATH),) +$(error Specified SDK version was not found, ensure your active developer directory is correct through xcode-select) + endif endif #----- Legacy build if OSX <= 10.8: we build both 32-bit and 64-bit ---- @@ -315,23 +316,23 @@ ifeq "$(shell uname -s)" "Darwin" GCC_GTEQ_430 := 1 + CXXFLAGS += -std=c++11 C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_MACOSX -mmacosx-version-min=$(VC_OSX_TARGET) -isysroot $(VC_OSX_SDK_PATH) LFLAGS += -mmacosx-version-min=$(VC_OSX_TARGET) -Wl,-syslibroot $(VC_OSX_SDK_PATH) - #Xcode 15 linker emits a warning "no platform load command found" when linking object files generated by yasm + # Xcode 15 linker emits a warning "no platform load command found" when linking object files generated by yasm # To suppress this warning, we need to use -Wl,-ld_classic flag in order to use the old ld64 linker # https://mjtsai.com/blog/2024/03/15/xcode-15-no-platform-load-command-found/ - # Check Xcode version for using specific linker flag - XCODE_VERSION := $(shell xcodebuild -version 2>/dev/null | grep 'Xcode' | sed -E 's/Xcode ([0-9]+).*/\1/') - ifneq ($(XCODE_VERSION),) - ifeq "$(shell expr $(XCODE_VERSION) \>= 15)" "1" - LFLAGS += -Wl,-ld_classic - endif - else - $(error Xcode not found, please check your installation) + # We can check whether newer linker is in use if ld -v reports dyld instead of ld64. + ifeq ($(shell xcrun --sdk macosx$(VC_OSX_SDK) ld -v 2>&1 | grep -oE 'PROJECT:[^-]+' | cut -d: -f2),dyld) + LFLAGS += -Wl,-ld_classic endif WX_CONFIGURE_FLAGS += --with-macosx-version-min=$(VC_OSX_TARGET) --with-macosx-sdk=$(VC_OSX_SDK_PATH) + ifneq "$(VC_OSX_FUSET)" "0" + C_CXX_FLAGS += -DVC_MACOSX_FUSET + VC_FUSE_PACKAGE := fuse-t + endif # Set x86 assembly flags (-msse2, -mssse3, -msse4.1) # Apply flags if SIMD_SUPPORTED is 1 or if not in local development build (we are creating universal binary in this case) @@ -380,7 +381,6 @@ ifeq "$(shell uname -s)" "Darwin" ARCH_FLAG += -arch i386 WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64 else - CXXFLAGS += -std=c++11 # Non-development build defaults to universal binary for arm64 and x86_64 ARCH_FLAG += -arch arm64 WX_CONFIGURE_FLAGS += --enable-universal_binary=arm64,x86_64 @@ -413,7 +413,7 @@ ifeq "$(shell uname -s)" "FreeBSD" C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_FREEBSD # PCSC - C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite) + C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite) CC := cc CXX := c++ @@ -474,7 +474,7 @@ ifeq "$(shell uname -s)" "OpenBSD" C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_OPENBSD # PCSC - C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite) + C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite) CC := cc CXX := c++ @@ -501,10 +501,29 @@ ifeq "$(shell uname -s)" "SunOS" WX_CONFIGURE_FLAGS += --with-gtk # PCSC - C_CXX_FLAGS += $(shell pkg-config --cflags libpcsclite) + C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags libpcsclite) endif +ifneq (,$(filter Linux FreeBSD OpenBSD,$(PLATFORM))) + # Determine GTK version + GTK_VERSION := $(shell $(PKG_CONFIG) --modversion gtk+-3.0 2>/dev/null | grep -o '^3' || echo 2) + ifeq ($(GTK_VERSION),3) + WX_CONFIGURE_FLAGS += --with-gtk=3 + else + WX_CONFIGURE_FLAGS += --with-gtk=2 + endif + + ifeq "$(origin INDICATOR)" "command line" + ifeq ($(GTK_VERSION),3) + INDICATOR_LIBRARY=ayatana-appindicator3-0.1 + else + INDICATOR_LIBRARY=ayatana-appindicator-0.1 + endif + export AYATANA_LIBS += $(shell $(PKG_CONFIG) --libs $(INDICATOR_LIBRARY)) + C_CXX_FLAGS += $(shell $(PKG_CONFIG) --cflags $(INDICATOR_LIBRARY)) -DHAVE_INDICATORS + endif +endif #------ Common configuration ------ @@ -534,12 +553,17 @@ WX_CONFIGURE_FLAGS += --disable-protocol --disable-protocols --disable-url --dis ifneq (,$(filter Linux FreeBSD,$(PLATFORM))) WX_CONFIGURE_FLAGS += --disable-tooltips -ifneq "$(origin WITHGTK3)" "command line" +ifneq ($(GTK_VERSION),3) WX_CONFIGURE_FLAGS += --disable-graphics_ctx endif else WX_CONFIGURE_FLAGS += --disable-graphics_ctx endif +else +# Disable libtiff on macOS +ifeq "$(PLATFORM)" "MacOSX" + WX_CONFIGURE_FLAGS += --without-libtiff +endif endif diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index c3898b72..a851ebef 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -702,7 +702,9 @@ void EnableDisableButtons (HWND hwndDlg) case TC_MLIST_ITEM_FREE: default: +#if !defined(VCEXPANDER) EnableSplitButton(hwndDlg, IDOK); +#endif SetWindowTextW (hOKButton, GetString ("MOUNT_BUTTON")); // Invalid the button IDOK so that it will be redrawn InvalidateRect (hOKButton, NULL, TRUE); @@ -1259,6 +1261,20 @@ static BOOL SysEncryptionOrDecryptionRequired (void) ); } +// Returns TRUE if system encryption master key is vulnerable +static BOOL SysEncryptionMasterKeyVulnerable (void) +{ + try + { + BootEncStatus = BootEncObj->GetStatus(); + return (BootEncStatus.DriveMounted || BootEncStatus.DriveEncrypted) && BootEncStatus.MasterKeyVulnerable; + } + catch (Exception &) + { + return FALSE; + } +} + // Returns TRUE if the system partition/drive is completely encrypted static BOOL SysDriveOrPartitionFullyEncrypted (BOOL bSilent) { @@ -7435,10 +7451,12 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if (!Quit) // Do not care about system encryption or in-place encryption if we were launched from the system startup sequence (the wizard was added to it too). { + BOOL bActionPerformed = FALSE; if (SysEncryptionOrDecryptionRequired ()) { if (!MutexExistsOnSystem (TC_MUTEX_NAME_SYSENC)) // If no instance of the wizard is currently taking care of system encryption { + bActionPerformed = TRUE; // We shouldn't block the mutex at this point if (SystemEncryptionStatus == SYSENC_STATUS_PRETEST @@ -7465,7 +7483,17 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa { BOOL bDecrypt = FALSE; if (AskNonSysInPlaceEncryptionResume(hwndDlg, &bDecrypt) == IDYES) + { + bActionPerformed = TRUE; ResumeInterruptedNonSysInplaceEncProcess (bDecrypt); + } + } + + if (!bActionPerformed) + { + // display warning if the master key is vulnerable + if (SysEncryptionMasterKeyVulnerable()) + WarningTopMost ("ERR_SYSENC_XTS_MASTERKEY_VULNERABLE", hwndDlg); } } @@ -8108,6 +8136,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa } } } +#if !defined(VCEXPANDER) else { LPNMHDR pnmh = (LPNMHDR)lParam; @@ -8120,6 +8149,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa DestroyMenu(hmenu); } } +#endif return 0; case WM_ERASEBKGND: @@ -11447,6 +11477,12 @@ int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume) handleError (hwndDlg, nStatus, SRC_POS); } + // display a warning if the master key is vulnerable + if (restoredCryptoInfo->bVulnerableMasterKey) + { + Warning ("ERR_XTS_MASTERKEY_VULNERABLE", hwndDlg); + } + BOOL hiddenVol = restoredCryptoInfo->hiddenVolume; if (legacyBackup) diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc index 7827bab9..9953469e 100644 --- a/src/Mount/Mount.rc +++ b/src/Mount/Mount.rc @@ -560,8 +560,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -578,11 +578,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCrypt.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" diff --git a/src/Mount/Mount_vs2019.vcxproj b/src/Mount/Mount_vs2019.vcxproj index 4a944eec..c63953fc 100644 --- a/src/Mount/Mount_vs2019.vcxproj +++ b/src/Mount/Mount_vs2019.vcxproj @@ -50,6 +50,7 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -65,11 +66,13 @@ <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <CharacterSet>Unicode</CharacterSet> <PlatformToolset>v142</PlatformToolset> + <SpectreMitigation>Spectre</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> @@ -133,34 +136,34 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">Release\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(Platform)\$(Configuration)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|ARM64'">$(ProjectDir)$(Platform)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|x64'">false</LinkIncremental> @@ -195,7 +198,8 @@ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -217,6 +221,7 @@ <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX86</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Mount.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -244,7 +249,8 @@ copy Debug\VeraCrypt.exe "..\Debug\Setup Files" >NUL: <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -266,6 +272,7 @@ copy Debug\VeraCrypt.exe "..\Debug\Setup Files" >NUL: <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention>true</DataExecutionPrevention> <TargetMachine>MachineX64</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Mount.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -295,7 +302,8 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" >NUL: <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <BufferSecurityCheck>true</BufferSecurityCheck> - <FunctionLevelLinking>false</FunctionLevelLinking> + <FunctionLevelLinking> + </FunctionLevelLinking> <PrecompiledHeader> </PrecompiledHeader> <BrowseInformation> @@ -315,6 +323,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-x64.exe" >NUL: <ProgramDatabaseFile>$(OutDir)Mount.pdb</ProgramDatabaseFile> <SubSystem>Windows</SubSystem> <DataExecutionPrevention>true</DataExecutionPrevention> + <GenerateMapFile>true</GenerateMapFile> </Link> <Manifest> <AdditionalManifestFiles>Mount.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> @@ -349,6 +358,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\Release\crypto.lib;..\Common\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -439,6 +449,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\x64\Release\crypto.lib;..\Common\x64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -485,6 +496,7 @@ copy $(TargetPath) "..\Debug\Setup Files\VeraCrypt-arm64.exe" >NUL: <WarningLevel>Level4</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DisableSpecificWarnings>4057;4100;4127;4201;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> </ClCompile> <Link> <AdditionalDependencies>..\Crypto\ARM64\Release\crypto.lib;..\Common\ARM64\Release\Zip.lib;mpr.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -1,4 +1,4 @@ -Copyright 2013-2023 IDRIX +Copyright 2013-2024 IDRIX Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/Readme.txt b/src/Readme.txt index e383838a..a20ab4f8 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -101,7 +101,7 @@ Requirements for Building VeraCrypt for Linux and Mac OS X: - GNU Make - GNU C++ Compiler 4.0 or compatible -- Apple Xcode (Mac OS X only) +- Apple Xcode or Xcode command line tools (Mac OS X only) - YASM 1.3.0 or newer (Linux only, x86/x64 architecture only) - pkg-config - wxWidgets 3.0 shared library and header files installed or @@ -232,10 +232,10 @@ Copyright Information --------------------- This software as a whole: -Copyright (c) 2013-2023 IDRIX. All rights reserved. +Copyright (c) 2013-2024 IDRIX. All rights reserved. Portions of this software: -Copyright (c) 2013-2023 IDRIX. All rights reserved. +Copyright (c) 2013-2024 IDRIX. All rights reserved. Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved. Copyright (c) 1998-2000 Paul Le Roux. All rights reserved. Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved. diff --git a/src/Release/Setup Files/Product64.wxs b/src/Release/Setup Files/Product64.wxs index d2107447..00fdad6a 100644 --- a/src/Release/Setup Files/Product64.wxs +++ b/src/Release/Setup Files/Product64.wxs @@ -4,7 +4,7 @@ <!-- FullProductVersion's first 3 parts MUST BE incremented at each release in order for upgrades to work ; Windows Installer ignores the 4th part --> - <?define var.FullProductVersion = 1.26.10?> + <?define var.FullProductVersion = 1.26.15?> <?define var.ProductName = VeraCrypt $(var.FullProductVersion)?> <!-- Unique GUID identifying this family of product (32-bit and 64-bit have the same) --> @@ -12,7 +12,7 @@ <!-- Unique GUID identifying this product release (32-bit and 64-bit have different ones) --> <!-- MUST BE regenerated for each new release --> - <?define var.ProductGuid = {03253FAE-94F8-46F8-ACE9-5458DA9EA621}?> + <?define var.ProductGuid = {71867013-A794-4A50-AC6A-0153F9868C8C}?> <!-- Unique GUID identifying a particular Windows Installer package --> <!-- When compiling a product, it should not be set in order to allow it to be generated for each build --> @@ -221,7 +221,15 @@ <Directory Id="HTMLDOCSFOLDER" Name="html"> <!-- Reference C:\Program Files\VeraCrypt\docs\html\en --> - <Directory Id="ENHTMLDOCSFOLDER" Name="en"/> + <Directory Id="ENHTMLDOCSFOLDER" Name="en"> + + <!-- Reference C:\Program Files\VeraCrypt\docs\html\en\CompilingGuidelineWin --> + <Directory Id="ENGUIDEHTMLFOLDER" Name="CompilingGuidelineWin"/> + + <!-- Reference C:\Program Files\VeraCrypt\docs\html\en\ru --> + <Directory Id="ENRUHTMLFOLDER" Name="ru"/> + + </Directory> </Directory> @@ -252,25 +260,25 @@ <DirectoryRef Id="APPLICATIONROOTFOLDER"> <Component Id="LICENSEFile" Guid="{370D29C4-3A58-4B9E-A0D6-A06430FCCA6D}"> - <File Id="LICENSE" Name="LICENSE" Source="$(sys.CURRENTDIR)\LICENSE" KeyPath="yes" DiskId="1" /> + <File Id="LICENSE" Name="LICENSE" Source="$(sys.CURRENTDIR)\LICENSE" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="LicenseTxt" Guid="{14F0F218-FBA2-4C68-820B-376345AB9D33}"> - <File Id="License.txt" Name="License.txt" Source="$(sys.CURRENTDIR)\License.txt" KeyPath="yes" DiskId="1" /> + <File Id="License.txt" Name="License.txt" Source="$(sys.CURRENTDIR)\License.txt" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="NOTICEFile" Guid="{56980D3E-9568-446D-8518-CA381EBE56C4}"> - <File Id="NOTICE" Name="NOTICE" Source="$(sys.CURRENTDIR)\NOTICE" KeyPath="yes" DiskId="1" /> + <File Id="NOTICE" Name="NOTICE" Source="$(sys.CURRENTDIR)\NOTICE" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="VeraCrypt_FormatExe" Guid="{55F89F55-62A6-40D0-A7B4-BC2505C118AA}"> <File Id="VeraCrypt_Format.exe" Name="VeraCrypt Format.exe" Source="$(sys.CURRENTDIR)\VeraCrypt Format-x64.exe" KeyPath="yes" DiskId="1" /> </Component> <Component Id="veracryptCat" Guid="{F1910CF2-3DA7-471D-845E-1A1C20AD3076}"> - <File Id="veracrypt.cat" Name="veracrypt.cat" Source="$(sys.CURRENTDIR)\veracrypt-x64.cat" KeyPath="yes" DiskId="1" /> + <File Id="veracrypt.cat" Name="veracrypt.cat" Source="$(sys.CURRENTDIR)\veracrypt-x64.cat" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="VeraCryptExe" Guid="{9C13F7BE-6ACE-48DE-BD44-714F421ADC2C}"> <File Id="VeraCrypt.exe" Name="VeraCrypt.exe" Source="$(sys.CURRENTDIR)\VeraCrypt-x64.exe" KeyPath="yes" DiskId="1" /> </Component> <Component Id="veracryptInf" Guid="{955B99DC-74C3-476D-8ECE-52FD0916EA34}"> - <File Id="veracrypt.inf" Name="veracrypt.inf" Source="$(sys.CURRENTDIR)\veracrypt.inf" KeyPath="yes" DiskId="1" /> + <File Id="veracrypt.inf" Name="veracrypt.inf" Source="$(sys.CURRENTDIR)\veracrypt.inf" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="veracryptSys" Guid="{5CE01773-01EA-417C-BBA4-8363881763DC}"> <File Id="veracrypt.sys" Name="veracrypt.sys" Source="$(sys.CURRENTDIR)\veracrypt-x64.sys" KeyPath="yes" DiskId="1" /> @@ -290,121 +298,130 @@ <DirectoryRef Id="LANGUAGESFOLDER"> <Component Id="cmpF27E43A4E59E04A5B095C5101B229139" Guid="{8EB22F2F-AFE2-45E5-92C3-AB50B377935E}"> - <File Id="fil1B0F0BB59C5EE9FC44F8DA3BA57CB272" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ar.xml" DiskId="1" /> + <File Id="fil1B0F0BB59C5EE9FC44F8DA3BA57CB272" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ar.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4350812363930B900E24C845940DF416" Guid="{52F707BF-2C0D-4690-84E8-8C1806BFC740}"> - <File Id="fil7E02C9035678F667086D2D483D8FDF35" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.be.xml" DiskId="1" /> + <File Id="fil7E02C9035678F667086D2D483D8FDF35" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.be.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1DD254125CF07901EACECC70930818B0" Guid="{AD31462E-039E-41CF-B2CF-D73FD4075C76}"> - <File Id="filA52BE38FF2164268AA9562C09281D09B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.bg.xml" DiskId="1" /> + <File Id="filA52BE38FF2164268AA9562C09281D09B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.bg.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp8C9E97CFD69D3BCB44B84D886720F3FC" Guid="{A328C74D-C352-4406-8C75-8BA159210936}"> - <File Id="fil2A31F450F9C022901212461A240C5D17" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ca.xml" DiskId="1" /> + <File Id="fil2A31F450F9C022901212461A240C5D17" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ca.xml" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp8EEB5407564497843BCFB99ECD7450CD" Guid="{2C24BFAF-798B-4480-BCC1-23C766447E26}"> + <File Id="fil05C1472701031E1165B20A1F476071FF" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.co.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2BC45D6EC406DDC470E8501442A7AF68" Guid="{5E99CB8F-33E2-430C-A0B2-A31058D6D449}"> - <File Id="fil0F3AB0CD6266BA1530A0253F059A85DD" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.cs.xml" DiskId="1" /> + <File Id="fil0F3AB0CD6266BA1530A0253F059A85DD" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.cs.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp74A0CA1914A6C6FE33D76DE1C01C676D" Guid="{F1E82507-7C31-41F0-A643-69BB53F3CD41}"> - <File Id="filDED1A10C5657065D291DC62CA9A32FAE" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.da.xml" DiskId="1" /> + <File Id="filDED1A10C5657065D291DC62CA9A32FAE" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.da.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpC186D3472CE1EC872FF1B0CF3682B3B6" Guid="{C23FC0D1-A6B7-4AB1-BA05-EBDC1B4328F9}"> - <File Id="filF4D7849840B295D75BA68B5F6C12F7B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.de.xml" DiskId="1" /> + <File Id="filF4D7849840B295D75BA68B5F6C12F7B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.de.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2AB0B613D25DDEF3466CBC86BD6B878B" Guid="{3757C2DE-FCC8-4970-8CB8-A0D9B2404A1C}"> - <File Id="fil7AECCD25826C51216C12F09DC87F1B22" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.el.xml" DiskId="1" /> + <File Id="fil7AECCD25826C51216C12F09DC87F1B22" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.el.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB09224EB45E097BF511CBC5DBE3E251C" Guid="{70B91FFF-BDB7-48AE-A664-243A057F1EA7}"> - <File Id="filC426C0D58EE0FC49743BDB8AEDA3C6BE" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.es.xml" DiskId="1" /> + <File Id="filC426C0D58EE0FC49743BDB8AEDA3C6BE" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.es.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF24BBBEB613F893CBC5FBF6533CB48C9" Guid="{F578356A-16E1-42CF-8DB2-2DC21B4C154B}"> - <File Id="fil38AB8BFA030ACBECA75C821E3574759A" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.et.xml" DiskId="1" /> + <File Id="fil38AB8BFA030ACBECA75C821E3574759A" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.et.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp50E1DEF37599D2900447B13FC285B7B7" Guid="{1FDF2F45-97F1-40C0-A450-A2342BBF913C}"> - <File Id="fil1BCCDEC84EB4D85DB0380FCD6153D1FA" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.eu.xml" DiskId="1" /> + <File Id="fil1BCCDEC84EB4D85DB0380FCD6153D1FA" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.eu.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp46E5A0DB48A03A91267C97A664BD9BD4" Guid="{07165ABB-1B3C-4C0F-A73E-E3A85AB37B58}"> - <File Id="fil1AC953E5BA23EC81206D212369F1544D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fa.xml" DiskId="1" /> + <File Id="fil1AC953E5BA23EC81206D212369F1544D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fa.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp95BAB91FA0B7E37D5B9343478899CC75" Guid="{F0ADBE30-225D-4EF9-B0F4-1ADEFEF07625}"> - <File Id="filEEF3EF4EEE97747B255238CFB88EAF9C" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fi.xml" DiskId="1" /> + <File Id="filEEF3EF4EEE97747B255238CFB88EAF9C" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fi.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE73E4CCF9F6EC39998B9BE35E43768CC" Guid="{EA4FADF0-BF20-40FD-9BAA-D1023357FD28}"> - <File Id="filFB10C722F275051A8DDB25D4D9AF43E5" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fr.xml" DiskId="1" /> + <File Id="filFB10C722F275051A8DDB25D4D9AF43E5" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.fr.xml" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp8E5262918FDC1B2986951E925B0B9AA5" Guid="{C467DF8F-E07D-4C2B-B5D5-1E4B898C4942}"> + <File Id="fil12FBBE0FB30498855B0E7185B5E18A10" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.he.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp28EEAA4B2230460BDDA61DEFBC71A905" Guid="{68D7B2E5-273B-4782-AF3D-65F255BBF9B2}"> - <File Id="filD03BE3868262DD16654690ED91BC89C8" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.hu.xml" DiskId="1" /> + <File Id="filD03BE3868262DD16654690ED91BC89C8" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.hu.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpCFF4CB46421F1A713D45607393ED9B90" Guid="{F96AF79F-0364-4A68-8790-209C751C37FB}"> - <File Id="fil040570D344D75F6A57E5DD5ECB94BD8B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.id.xml" DiskId="1" /> + <File Id="fil040570D344D75F6A57E5DD5ECB94BD8B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.id.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp31601B4199D0CD3977758A3F2B63CDE7" Guid="{9F347364-2673-4184-A069-342A88BAF90C}"> - <File Id="fil5A7288C1B9CC498419FC14D5B12B1D8D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.it.xml" DiskId="1" /> + <File Id="fil5A7288C1B9CC498419FC14D5B12B1D8D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.it.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp8E2E0489348A190B00532591CE0AC325" Guid="{BE526CC3-99F7-4F94-AFC4-C86FCF0D742C}"> - <File Id="fil9DF155D4A63D3AAAFDBF3BEF8C47BBEA" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ja.xml" DiskId="1" /> + <File Id="fil9DF155D4A63D3AAAFDBF3BEF8C47BBEA" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ja.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpEE57E2901F12294E638E66C39F1B39BB" Guid="{C2CAFD97-84B7-4053-A8D0-DE21F4D8F741}"> - <File Id="filFD48E7A9628E7FF9B3D96BD222A3A0D9" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ka.xml" DiskId="1" /> + <File Id="filFD48E7A9628E7FF9B3D96BD222A3A0D9" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ka.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2F1F644C870AFF8970FE18AF2CD151C4" Guid="{96564F4E-7D92-40B3-84F6-84B357EB4F41}"> - <File Id="filF68A13BECFA9D8DD21B371298AF93B5B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ko.xml" DiskId="1" /> + <File Id="filF68A13BECFA9D8DD21B371298AF93B5B" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ko.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4B8E0B5A7B7A8BE4267C722B1434E4CF" Guid="{E9AD4FA0-9CD7-43B9-8099-69AD6EB1A305}"> - <File Id="fil23F177B7621D7D78240CAA60E6AB1048" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.lv.xml" DiskId="1" /> + <File Id="fil23F177B7621D7D78240CAA60E6AB1048" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.lv.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp84BB49D30BDBB4212707D14B7A9C13F1" Guid="{B63CC062-CD52-463F-8B30-1E611A90EDA9}"> - <File Id="filA7135961859CF705E28FFF4DA79A28C2" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.my.xml" DiskId="1" /> + <File Id="filA7135961859CF705E28FFF4DA79A28C2" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.my.xml" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6097F5CB407EFCDADFEA02548151AD81" Guid="{1A88CAD2-9C59-4E0E-9915-6006E5907346}"> + <File Id="filC743CCDC4A101E271BA40FDF6F08CC12" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.nb.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp406E3BE632055CDDE1E42F45E31318DC" Guid="{627980E8-F6BE-4794-B9BC-68F96267D721}"> - <File Id="filF46FDB7781620EB1D7491039E4029463" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.nl.xml" DiskId="1" /> + <File Id="filF46FDB7781620EB1D7491039E4029463" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.nl.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4E363AF94947A27A4E9CF57C69E6DE54" Guid="{9D17F34C-4475-4995-A696-FE3EA54F2FBB}"> - <File Id="fil24BA52B3E3209F48021C1D75AF5BBDB4" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.nn.xml" DiskId="1" /> + <File Id="fil24BA52B3E3209F48021C1D75AF5BBDB4" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.nn.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp562F7970AF2F9EF535AC21A84C7229D1" Guid="{9F36CA4F-BF14-40D7-81A2-8ADFCC0EF30B}"> - <File Id="fil8C40C1C5E3776F4C0FCF8BD02D742D70" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.pl.xml" DiskId="1" /> + <File Id="fil8C40C1C5E3776F4C0FCF8BD02D742D70" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.pl.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp19EF976916B5E207A32BA08C3143A281" Guid="{B0EAEA97-9176-4613-9338-41B63B85CB18}"> - <File Id="fil6CC66A3690F008524FCCB68FA1EE1176" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.pt-br.xml" DiskId="1" /> + <File Id="fil6CC66A3690F008524FCCB68FA1EE1176" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.pt-br.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4C9B5090256B2E88D27C9CF7E6CFD9EF" Guid="{8D783A02-023C-4018-8315-79A82BA593E2}"> - <File Id="filA3239DE9C316B9C04171EB42F4F9653D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ro.xml" DiskId="1" /> + <File Id="filA3239DE9C316B9C04171EB42F4F9653D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ro.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp91165C08D5943C21F132A349F8CBAAE7" Guid="{0C3290FF-8000-42CF-8329-92C828AE5A53}"> - <File Id="fil77375796E780F641C2FF5E6E3D4CAFDB" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ru.xml" DiskId="1" /> + <File Id="fil77375796E780F641C2FF5E6E3D4CAFDB" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.ru.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4A51B27F9D8DBBABFE4581EC2B162832" Guid="{FB8CCAC7-0EAC-4C1A-B5E5-BEFD8F7B47E6}"> - <File Id="fil414686FD325EB0C5D03FC4693978451D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sk.xml" DiskId="1" /> + <File Id="fil414686FD325EB0C5D03FC4693978451D" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sk.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp041827E393D8777802256FD480D377FC" Guid="{7FEB72AD-48CA-4330-A4C9-A22218EC5D8F}"> - <File Id="fil4EABC40F288E8289D4888EB0BE6F07B1" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sl.xml" DiskId="1" /> + <File Id="fil4EABC40F288E8289D4888EB0BE6F07B1" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sl.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp68CC2DB5FA70FC1F6CA959FB5E1B78BF" Guid="{00D9FB47-120C-4061-B2DB-8F3D5D94F221}"> - <File Id="fil90E6ABC4A98B19C0ECCDCC9712928162" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sv.xml" DiskId="1" /> + <File Id="fil90E6ABC4A98B19C0ECCDCC9712928162" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.sv.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFF128AFA659D8C2E65E0BE55E0943F83" Guid="{5AB50FC2-867A-4239-850F-AD2C0FCDA2DE}"> - <File Id="fil5BF14221A225DAB25A02463BBC92DC37" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.th.xml" DiskId="1" /> + <File Id="fil5BF14221A225DAB25A02463BBC92DC37" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.th.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1896040764F0DF6F89280C428013ECE7" Guid="{3A2D27E8-4AB3-471A-A574-F148DCDF8D8C}"> - <File Id="filE839661CD956C44F0E95C85AAA11D6FF" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.tr.xml" DiskId="1" /> + <File Id="filE839661CD956C44F0E95C85AAA11D6FF" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.tr.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA52EAD237A44CBD337E302185BE12FB2" Guid="{4D7A4A01-5AFB-4B37-93C7-91B9DA96BA30}"> - <File Id="fil9E3A6DE502ECEF2025129A97D3F98CA2" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.uk.xml" DiskId="1" /> + <File Id="fil9E3A6DE502ECEF2025129A97D3F98CA2" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.uk.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpBBB82A6228B54372ACAF9B1310CB2025" Guid="{939C9CDD-0CEA-4161-9812-96B77B643C2E}"> - <File Id="fil4B209843380976D1FBEB96B21EB849B5" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.uz.xml" DiskId="1" /> + <File Id="fil4B209843380976D1FBEB96B21EB849B5" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.uz.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4A275EC29DB9B5ECD56CD9C62D358750" Guid="{0E29F3C1-2D27-4F1F-BEC0-C39CA1B4EAAF}"> - <File Id="fil1FD00998B7A757165A03FDFD6D241F14" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.vi.xml" DiskId="1" /> + <File Id="fil1FD00998B7A757165A03FDFD6D241F14" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.vi.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp8DF0B84F470901D8800F8CAB88A90656" Guid="{7B9A6F50-C242-4DAE-BD10-CDF2D63FB4AC}"> - <File Id="fil4EC683D0A468CAA1D4B8FC6FFCBFEAD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-cn.xml" DiskId="1" /> + <File Id="fil4EC683D0A468CAA1D4B8FC6FFCBFEAD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-cn.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp529250BEE557732B5B8CBC47914A0F2A" Guid="{2D4E3902-96E9-4C8B-BF8C-623D10FF7B57}"> - <File Id="fil915C308602F025646FC5A874F74AA475" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-hk.xml" DiskId="1" /> + <File Id="fil915C308602F025646FC5A874F74AA475" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-hk.xml" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp38274F8F5E4F600A9AC5225A0472D656" Guid="{74B65782-BFB6-42CD-B3BA-D736C7B0B3BE}"> - <File Id="filFD4B1ECAE9F0FF855503D800C1A2891A" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-tw.xml" DiskId="1" /> + <File Id="filFD4B1ECAE9F0FF855503D800C1A2891A" KeyPath="yes" Source="$(sys.CURRENTDIR)\Languages\Language.zh-tw.xml" Checksum="yes" DiskId="1" /> </Component> </DirectoryRef> @@ -413,7 +430,7 @@ <DirectoryRef Id="DOCSFOLDER"> <Component Id="VCUserGuideChm" Guid="{8CBE67F1-D493-4B33-9141-DB221021C59B}"> - <File Id="VeraCrypt_User_Guide.chm" Name="VeraCrypt User Guide.chm" Source="$(sys.CURRENTDIR)\docs\VeraCrypt User Guide.chm" KeyPath="yes" DiskId="1" /> + <File Id="VeraCrypt_User_Guide.chm" Name="VeraCrypt User Guide.chm" Source="$(sys.CURRENTDIR)\docs\VeraCrypt User Guide.chm" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> </DirectoryRef> @@ -422,11 +439,11 @@ <DirectoryRef Id="EFIDOCSFOLDER"> <Component Id="dcs_tpm_owner_02_pdf" Guid="{DC75D11E-8250-4DDD-9BD2-451194F8717D}"> - <File Id="dcs_tpm_owner_02.pdf" Name="dcs_tpm_owner_02.pdf" Source="$(sys.CURRENTDIR)\docs\EFI-DCS\dcs_tpm_owner_02.pdf" KeyPath="yes" DiskId="1" /> + <File Id="dcs_tpm_owner_02.pdf" Name="dcs_tpm_owner_02.pdf" Source="$(sys.CURRENTDIR)\docs\EFI-DCS\dcs_tpm_owner_02.pdf" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> <Component Id="disk_encryption_v1_2_pdf" Guid="{DFD46CE4-B65B-468A-B236-3E5C43090235}"> - <File Id="disk_encryption_v1_2.pdf" Name="disk_encryption_v1_2.pdf" Source="$(sys.CURRENTDIR)\docs\EFI-DCS\disk_encryption_v1_2.pdf" KeyPath="yes" DiskId="1" /> + <File Id="disk_encryption_v1_2.pdf" Name="disk_encryption_v1_2.pdf" Source="$(sys.CURRENTDIR)\docs\EFI-DCS\disk_encryption_v1_2.pdf" KeyPath="yes" Checksum="yes" DiskId="1" /> </Component> </DirectoryRef> @@ -436,635 +453,1238 @@ <DirectoryRef Id="ENHTMLDOCSFOLDER"> <Component Id="cmp5A2505C1E4CE33EAC578A8D1C8C505D2" Guid="{EB5FB334-0E04-4DC8-BCA7-9233982B0FF8}"> - <File Id="fil2FC60DD03A8AFECD3E1FB3B2F358CDF5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Acknowledgements.html" DiskId="1" /> + <File Id="fil2FC60DD03A8AFECD3E1FB3B2F358CDF5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Acknowledgements.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE985CD1A96188861286D758A12A1D0A1" Guid="{25ED8C45-E6AF-4582-ADDE-5EDF51BF4EC2}"> - <File Id="fil81B62ADB5DD42B4C9666C61A4F59E00C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Additional Security Requirements and Precautions.html" DiskId="1" /> + <File Id="fil81B62ADB5DD42B4C9666C61A4F59E00C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Additional Security Requirements and Precautions.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp310514F655B6D66F5308A5823B0AB691" Guid="{B18F4EA7-2A2E-4DB2-BA72-E1AE3C090C4D}"> - <File Id="fil8194761219752C0F565AAD6F30B00920" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\AES.html" DiskId="1" /> + <File Id="fil8194761219752C0F565AAD6F30B00920" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\AES.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0664DF8B1FE440C02B1E20D2F23C2CDF" Guid="{2A048A0F-A19B-4EE2-A1FA-2761C8931A29}"> - <File Id="fil6B563B1A4AA551468283EEB5872DD176" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\arrow_right.gif" DiskId="1" /> + <File Id="fil6B563B1A4AA551468283EEB5872DD176" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\arrow_right.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2934E77CB835216789F88BD686160A94" Guid="{084CDB58-6A9F-4985-9818-727FBFF0D95B}"> - <File Id="fil960742ACFA2D79EEC2E6D45D7A93047B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Authenticity and Integrity.html" DiskId="1" /> + <File Id="fil960742ACFA2D79EEC2E6D45D7A93047B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Authenticity and Integrity.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp688E76C9A297923D616068E33A6A4F49" Guid="{63DABE8B-7EE0-479E-890F-701C7E890647}"> - <File Id="filCC9CD11F958A26366B700B8EE8812A65" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Authors.html" DiskId="1" /> + <File Id="filCC9CD11F958A26366B700B8EE8812A65" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Authors.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC40B9AEA2BA26327EDBF8EE050CB076B" Guid="{F3D7A2DA-32AC-4418-997E-B7E2AEF8A099}"> + <File Id="fil2DE49A9DD9C4A7B8D0D3A654CF73A48F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Avoid Third-Party File Extensions.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2ABB10C0A5AC0F1084EDF94E0FDFFD09" Guid="{034D6A64-B712-49C1-9450-5585B207C8AD}"> - <File Id="fil63E5CE3D0A91ACFF543B523A58476CCF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\bank_30x30.png" DiskId="1" /> + <File Id="fil63E5CE3D0A91ACFF543B523A58476CCF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\bank_30x30.png" Checksum="yes" DiskId="1" /> </Component> - <Component Id="cmp32E7F4F5C0F44D00B53E3946E7E1FCF9" Guid="{4A9AD9E2-8ADA-41BF-B2EC-643579DF9B35}"> - <File Id="filD1052E711F1CD089D66C27B04EDD6113" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BCH_Logo_48x30.png" DiskId="1" /> + <Component Id="cmp793A7E676882B650FFCEE4F41B92CB85" Guid="{73A7AE9C-003C-4DF6-AD85-3FE264669165}"> + <File Id="filD1052E711F1CD089D66C27B04EDD6113" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BCH_Logo_30x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp989B890D94671F634D04D8F945090F21" Guid="{4C123649-753C-404B-908D-AF1B48CBB844}"> - <File Id="fil02D4C60C8A30C22AE1F14E33DA3DA38C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BC_Logo_30x30.png" DiskId="1" /> + <File Id="fil02D4C60C8A30C22AE1F14E33DA3DA38C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BC_Logo_30x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp109BF0667C5A7B7036CCAAD9B29D9449" Guid="{5951DADE-1544-4213-A018-E33CC10AFA5C}"> - <File Id="fil07FA1CE512F8C8605304C23C4DFE264D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial.html" DiskId="1" /> + <File Id="fil07FA1CE512F8C8605304C23C4DFE264D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp82ABD3094B751094F3A49CD338A3713D" Guid="{1D02B8D8-92E6-4E2E-B29B-1C3633C625BB}"> - <File Id="fil4431451829FDF5841BC97BA0A0CA8133" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_001.jpg" DiskId="1" /> + <File Id="fil4431451829FDF5841BC97BA0A0CA8133" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_001.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE6A18205CB9F847CD7C4375AED2196D5" Guid="{D84BA05D-74CB-47CE-8098-C3C27E9292BA}"> - <File Id="fil89FAEFEC223673825DC022EED971C0E0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_002.jpg" DiskId="1" /> + <File Id="fil89FAEFEC223673825DC022EED971C0E0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_002.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAA4D61C5E17E2A8513EC120AC9B1DB8A" Guid="{62C84C2A-D459-4BE2-84B4-7D43F3C5726E}"> - <File Id="filE334137ACF34B80CE263C7A3868862FE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_003.jpg" DiskId="1" /> + <File Id="filE334137ACF34B80CE263C7A3868862FE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_003.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp39251BC13DA4AD6508E18D90D86DF06D" Guid="{E4095A6D-EAD5-429C-A75F-39758A7F1C87}"> - <File Id="fil924A6AEB99A9EF73D5240117A35F4A73" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_004.jpg" DiskId="1" /> + <File Id="fil924A6AEB99A9EF73D5240117A35F4A73" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_004.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpBABB0BD95FD763E9C72D2F51C325CF15" Guid="{0905EB74-CB03-4479-8D47-D5F1071E6D1C}"> - <File Id="fil2C527AD0D6FF9D8991263AEAEF0028C1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_005.jpg" DiskId="1" /> + <File Id="fil2C527AD0D6FF9D8991263AEAEF0028C1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_005.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2FE3B3719DCC4362AFF8BF7B4CADFF80" Guid="{8F29956A-6555-45C9-B254-F277FD9D0230}"> - <File Id="fil1CCA48715513D4C909E9B413C8D1DDD0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_007.jpg" DiskId="1" /> + <File Id="fil1CCA48715513D4C909E9B413C8D1DDD0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_007.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2FC8BD312D06FEC4E244604E27117B62" Guid="{22F89049-FED2-46D8-A298-E43ECE3226B9}"> - <File Id="fil4F7DCD31A2B30BC40BCC4E76DDCE58C1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_008.jpg" DiskId="1" /> + <File Id="fil4F7DCD31A2B30BC40BCC4E76DDCE58C1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_008.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAE99FB30CC29DF92E71A31EC39E61EF5" Guid="{C125C0FE-AEC0-455B-A7A6-BD216E712F11}"> - <File Id="fil3E632F1EA36028C0146D810EB2A994BB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_009.jpg" DiskId="1" /> + <File Id="fil3E632F1EA36028C0146D810EB2A994BB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_009.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp535B1A9BACA231F518973D620DC23779" Guid="{35958B4E-683D-4F34-B510-04E5801B4A1C}"> - <File Id="fil820662B184499949D0F2AF8C702010BF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_010.jpg" DiskId="1" /> + <File Id="fil820662B184499949D0F2AF8C702010BF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_010.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD2ED5F6D8C0A4CA0D26F9F1BB34AB8BA" Guid="{E3CDE6DA-DCC0-418C-926F-406962D00BB7}"> - <File Id="fil0377513CEC808B0549D7B1D3AC22DED8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_011.jpg" DiskId="1" /> + <File Id="fil0377513CEC808B0549D7B1D3AC22DED8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_011.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp5F7E0D8587039E1BA0F236F228C163BD" Guid="{B3E56E0C-7368-42D8-9EEC-56FC2568A649}"> - <File Id="fil07880CC54CBA150765E18E78D707B361" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_012.jpg" DiskId="1" /> + <File Id="fil07880CC54CBA150765E18E78D707B361" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_012.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF4DA2D3DABC768C2040A67A993C53E9E" Guid="{817105D4-7E68-417B-9592-F664A20AD861}"> - <File Id="filA63E7BA341C510BB5F5BE441475173A0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_013.jpg" DiskId="1" /> + <File Id="filA63E7BA341C510BB5F5BE441475173A0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_013.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpC0AD9100DE0F43E8149F8D3271B02D17" Guid="{81CFCB27-3F21-493C-AA7A-836E05157AC3}"> - <File Id="fil1872F82E98E3D4AAE017F70E311912DE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_014.jpg" DiskId="1" /> + <File Id="fil1872F82E98E3D4AAE017F70E311912DE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_014.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp32646E8087D106AE2B62E5DCF2419EDD" Guid="{54C078C1-1641-4A06-BBCA-D6A2C0389695}"> - <File Id="fil0C921426CF20987C0ED9364F11F534F0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_015.jpg" DiskId="1" /> + <File Id="fil0C921426CF20987C0ED9364F11F534F0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_015.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB3C777FAF214F7D304EE7CF907D7FF57" Guid="{C44D9DD8-7803-41C1-9323-4CFD516C2DEB}"> - <File Id="filE9FA9200D40A4970139496FD4D09CC9C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_016.jpg" DiskId="1" /> + <File Id="filE9FA9200D40A4970139496FD4D09CC9C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_016.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp338115DF524F0B412A21AB64F59240DD" Guid="{D4B1FD10-580F-4889-95F4-EDFFFC3C1309}"> - <File Id="fil74DD6EA64196A3168E669A1FF7AE3E0A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_017.jpg" DiskId="1" /> + <File Id="fil74DD6EA64196A3168E669A1FF7AE3E0A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_017.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2F24E0C7B7175D60257F6D01231C8373" Guid="{BF43A78C-C0A8-498E-A3EF-7D0265F1E312}"> - <File Id="fil37771854D19D4FEC1E9E8DB377B24B8D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_018.jpg" DiskId="1" /> + <File Id="fil37771854D19D4FEC1E9E8DB377B24B8D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_018.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAE9D52ADD94D3A2711AA79FA0C91CA00" Guid="{3EF7862C-7D09-4662-BF1C-67D05EBF9711}"> - <File Id="filEC84ED23804D7FD220C90FF50B92FD7C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_019.jpg" DiskId="1" /> + <File Id="filEC84ED23804D7FD220C90FF50B92FD7C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_019.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0A6270FD26128E8D1CC83E392E91A772" Guid="{5252F18E-BFB7-4FCC-865E-809BBD431C22}"> - <File Id="filBB21339DA6F921A2596897061F9C1F7E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_020.jpg" DiskId="1" /> + <File Id="filBB21339DA6F921A2596897061F9C1F7E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_020.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpEDB0E152195A7EB91BBB28631B689E0B" Guid="{C3750B19-85AF-4B35-98C9-969168C0C19F}"> - <File Id="fil23F7783C38C515A1DAA07F85B306D695" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_021.jpg" DiskId="1" /> + <File Id="fil23F7783C38C515A1DAA07F85B306D695" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_021.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFD76EB6B5546D1C38CC33FABA95FAA15" Guid="{AA874CBC-A2B7-48C6-AC23-654C190C65B0}"> - <File Id="fil769661E570AC147356DE7C8AD17F9F76" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_022.jpg" DiskId="1" /> + <File Id="fil769661E570AC147356DE7C8AD17F9F76" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_022.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpDC4FD19F507A5152351B9F71C8691486" Guid="{5B95B2F6-EF6F-4D08-9014-F4C621EA49D3}"> - <File Id="fil6AD3B2642AC17EBF625FEBC38F376F96" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_023.gif" DiskId="1" /> + <File Id="fil6AD3B2642AC17EBF625FEBC38F376F96" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_023.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9E45BE754042F9DD742A0B7B9F27E786" Guid="{7DD3EFD4-E5DC-4D5A-BCE0-5E2F6FA86E9C}"> - <File Id="fil29A133B2F2F200139A6F8BA5753FD673" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_024.gif" DiskId="1" /> + <File Id="fil29A133B2F2F200139A6F8BA5753FD673" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_024.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB6AC414023A6BDBF855F4A807DAE138C" Guid="{557B4D3A-C503-4EAF-8DFC-5B9177A1F737}"> - <File Id="filE1FF7E56D4D7BAE636B289521CD0C787" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_034.png" DiskId="1" /> + <File Id="filE1FF7E56D4D7BAE636B289521CD0C787" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Beginner's Tutorial_Image_034.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA80F47C0DB1649FE99DA7D449012D2D7" Guid="{E4AB233F-F5AE-4B26-83E5-524108F801B6}"> - <File Id="filC92F8B3C25C841839FF268DAF13ADBCC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BLAKE2s-256.html" DiskId="1" /> + <File Id="filC92F8B3C25C841839FF268DAF13ADBCC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\BLAKE2s-256.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp053692809BD5B3F5682AFCC539A767A3" Guid="{C99F1ECB-6AAB-4D06-B4C7-134CD2502104}"> - <File Id="fil9D6A859E5E76057E4E64E35D03BF1739" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Camellia.html" DiskId="1" /> + <File Id="fil9D6A859E5E76057E4E64E35D03BF1739" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Camellia.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9049A791E9E1AB7FF01BD7F08D1CB069" Guid="{F9B7E6CD-6AAB-4FD2-9CCC-8D13191057FA}"> - <File Id="fil768C59AC95806B46E5921E83E17DF406" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Cascades.html" DiskId="1" /> + <File Id="fil768C59AC95806B46E5921E83E17DF406" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Cascades.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4E6F9484484A40645D519F688ED9C21E" Guid="{5231376B-B4D8-4733-8EA9-ECA11DD034BF}"> - <File Id="fil45397F2F396BA3408992A437902E6951" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Changing Passwords and Keyfiles.html" DiskId="1" /> + <File Id="fil45397F2F396BA3408992A437902E6951" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Changing Passwords and Keyfiles.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3CF724F2A2347A2A30C85CB76490F687" Guid="{BB072BB5-3F7F-4F18-B00F-0A75D3AC0F49}"> - <File Id="filF949C326CAEAC18B9572844C807C9D19" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Choosing Passwords and Keyfiles.html" DiskId="1" /> + <File Id="filF949C326CAEAC18B9572844C807C9D19" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Choosing Passwords and Keyfiles.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3858A4BB7577362DE87F4485575DFC99" Guid="{94549BE1-9A7B-4DA7-A66F-17193865335E}"> - <File Id="fil72F9481463D425378DDDD5FCDBCC909B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Command Line Usage.html" DiskId="1" /> + <File Id="fil72F9481463D425378DDDD5FCDBCC909B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Command Line Usage.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA06B9542AEB64F96BB784F47800158A8" Guid="{87929DDC-82A3-42CF-B610-D625A9EC404A}"> - <File Id="filD596E938BA564F06A23DAAAA0909B229" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineLinux.html" DiskId="1" /> + <File Id="filD596E938BA564F06A23DAAAA0909B229" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineLinux.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpACD4069DDF564A8DAB5D542BB8850131" Guid="{657E9938-9161-4C60-9112-944DD2BF2DE8}"> - <File Id="fil0794C6C86BD24D62883FD840ADE90FC7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelines.html" DiskId="1" /> - </Component> - <Component Id="cmp735FE6B2F10C43019E11256864209EBC" Guid="{F87625DF-E610-4CCF-94E7-7293DDCD35DB}"> - <File Id="filAB026A12CD59448B0346D8FB6BD594EB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\AddNewSystemVar.jpg" DiskId="1" /> - </Component> - <Component Id="cmp89BB363FF83EBA271361A4208E069DA9" Guid="{1E6E3A37-453A-4E81-AC23-45F3BB4800E2}"> - <File Id="filE7535CB597FF0868DC51F9D3E8A1E45C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\CertificateCannotBeVerified.jpg" DiskId="1" /> - </Component> - <Component Id="cmp5115B3C02C1C0CF975E4B7C3152C163A" Guid="{D705F09B-8F81-48FE-A6D6-B46EE47425CE}"> - <File Id="fil8DCBEED9F9CD2F449C888E90DBEC8A0F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\CertVerifyFails.jpg" DiskId="1" /> - </Component> - <Component Id="cmp3E70583F999D652B21E6E2D526666F61" Guid="{EA0DBD20-DFB7-4DF2-B29C-538C7FAE83C3}"> - <File Id="fil8BA636EB3F15CDFBF9B1B07AF40CAF5C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DistributionPackageDamaged.jpg" DiskId="1" /> - </Component> - <Component Id="cmpC2D0D30677874908C48FF8A921712958" Guid="{0CB7D629-B12B-4CCB-B65D-F92BC4099ED1}"> - <File Id="filABD544E660E7612EF24A540F4DAC89DE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVS2010.jpg" DiskId="1" /> - </Component> - <Component Id="cmp88EB50D9762FA92B2E52313A7C92F2DD" Guid="{BF41CBAB-594C-42FF-BC86-88869CD77445}"> - <File Id="filD123B515FACC275A341B8C7A4DD19074" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVS2019.jpg" DiskId="1" /> - </Component> - <Component Id="cmp3DABA5B6F2E779D915E1B8D680AE7855" Guid="{203AC826-E013-40E8-A944-9D9622669066}"> - <File Id="fil6BA9B558534B9399EA06F31375A6D8C5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVSBuildTools.jpg" DiskId="1" /> - </Component> - <Component Id="cmp2EA15F417E5EE9D31E028263C137695F" Guid="{F4EDBAFC-4B84-4502-9AA4-4272281B26B9}"> - <File Id="fil2DD203CD9997BD21FC45EFDF85BECE94" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\gzipCommandLine.jpg" DiskId="1" /> - </Component> - <Component Id="cmp51D438A1152A65EAD414012A5EAEA2CA" Guid="{8B4B3B03-9D19-4D15-9060-1ABB4CF4A80E}"> - <File Id="fil612E91212B4BE3447B34C59AD43D5FC2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\NasmCommandLine.jpg" DiskId="1" /> - </Component> - <Component Id="cmpD52CCEF7A4A330F26D3B3F7355D03646" Guid="{4C764331-E584-49C0-80FA-9251776108E3}"> - <File Id="fil63F42635C3D23E1CC8D9541703F69B96" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-1.jpg" DiskId="1" /> - </Component> - <Component Id="cmp1A9BFDDFF15FF47166075F319B97BB6E" Guid="{F0EF5133-371D-4767-9265-266277E4D939}"> - <File Id="fil609F8FC8F03A7AC92A7DDB6123F2771B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-2.jpg" DiskId="1" /> - </Component> - <Component Id="cmp320762048B274197D27F739096C4A23A" Guid="{118CF290-CD2D-4515-A55D-48AD4DBEF8F0}"> - <File Id="fil08D2CB8983DA4BA20DFFA5471E60CAD3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-3.jpg" DiskId="1" /> - </Component> - <Component Id="cmp952051BDCF309CAEB1D62701560D8F78" Guid="{6BA07F89-BAA5-4E06-BE93-65AF8DF895EC}"> - <File Id="fil335EB17B9D8DE11A9A8E0204C43BB2C7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-4.jpg" DiskId="1" /> - </Component> - <Component Id="cmp6AB232B7503BC35E25CB33C789242482" Guid="{0B2B14B7-2D21-4904-999D-8DA37C7289BE}"> - <File Id="fil9069630D9AA559C8EA243ADEB3DF0B69" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectAdvancedSystemSettings.jpg" DiskId="1" /> - </Component> - <Component Id="cmpE8ABDCD58C9636346FAE7E941A38CA6E" Guid="{2CF0B479-EFAF-499E-8630-AE4E41C8E424}"> - <File Id="filA8C1D27C90C6647C16EB5EE8728DC943" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectEnvironmentVariables.jpg" DiskId="1" /> - </Component> - <Component Id="cmp9CD73EB218D7148E55F141E31AEC9D8C" Guid="{299F81CE-0140-4A97-93C2-C6B2CD3F8514}"> - <File Id="fil8DB747C30552955A70B6FDAC1BC95198" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectPathVariable.jpg" DiskId="1" /> - </Component> - <Component Id="cmpE504F295E3ED5CEBDCF231608F6757B2" Guid="{0B23E02F-0D76-4F41-9081-CCC6A2634F05}"> - <File Id="fil4E06FA5FE9FA09E4F71E22CFA0FC7BA9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectThisPC.jpg" DiskId="1" /> - </Component> - <Component Id="cmp84A8D3A9BF75ED8047B7DEAB02F26003" Guid="{1EE2E63F-CE1F-4D90-97E9-AE186BC6DDA0}"> - <File Id="fil0470CF25D1C5B0A85FD8091673E3E2E0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\upxCommandLine.jpg" DiskId="1" /> - </Component> - <Component Id="cmp63A4BE623C0E3F77B3BFA5B467C33A1A" Guid="{845FE6B7-11D1-4FEB-AFBE-A9EC8B7775DD}"> - <File Id="filDC81CAAEC5DCB86937437877F26C046A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010BuildSolution.jpg" DiskId="1" /> - </Component> - <Component Id="cmp63CE6B664C7396B79B1B28591EEC72B9" Guid="{E0F7F066-1B4F-48B8-8C02-AB0661E0AFF5}"> - <File Id="filC02619AFFB25501B6AA29599FAA01DEB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010Win32Config.jpg" DiskId="1" /> - </Component> - <Component Id="cmp4D6100E03DC3B05F17A7E2BA4AAF1EA1" Guid="{3AF8735B-D193-4F71-8C51-E8B1FE71CE5B}"> - <File Id="filF697D096B67A6A8C84BB93AEB4199206" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010X64Config.jpg" DiskId="1" /> - </Component> - <Component Id="cmpB7641BE40D4D1642AB3647B669008A94" Guid="{15A8F3D3-4364-4499-BBA9-2E29CD19D5C4}"> - <File Id="filBD820E84E255A9B91DDC38D189515EE6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2019ARM64Config.jpg" DiskId="1" /> - </Component> - <Component Id="cmp4DB96DA8172D79B63A7FBE08E016A280" Guid="{E6F2B68D-8CD9-42DE-AC2A-B5A2AB1F5DC1}"> - <File Id="filEFA99F46C962110CBA6A0B14162F1764" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2019BuildSolution.jpg" DiskId="1" /> - </Component> - <Component Id="cmp615D3647A56F3ED6F0766CEEE9EFCF9F" Guid="{7A343344-91E3-4AEA-BD32-5E524AE8BEA4}"> - <File Id="filD10154F2B3C2E7CB1EF84555EDA195C3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\YasmCommandLine.jpg" DiskId="1" /> + <File Id="fil0794C6C86BD24D62883FD840ADE90FC7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelines.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9FDD7E3C06564AF29700B82B19BC0501" Guid="{5DC9861F-1EB1-457D-9FAA-01DB499F6040}"> - <File Id="filC4ADB6F8DFE44319BB70B7089B72BFBF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin.html" DiskId="1" /> + <File Id="filC4ADB6F8DFE44319BB70B7089B72BFBF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp90AB4CF273108F47223E3432838CDE37" Guid="{9510EAF5-F452-4991-9BA2-F1F641C1D697}"> - <File Id="fil1DAD595818432F019735F37E86305500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Contact.html" DiskId="1" /> + <File Id="fil1DAD595818432F019735F37E86305500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Contact.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB9A0461BF7CF75538111B088C986A62F" Guid="{EC931A38-5F11-4C02-AA88-3A072E802C0B}"> - <File Id="fil8ABFD40EA9A1BE1765D794C2B8EAF909" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Contributed Resources.html" DiskId="1" /> + <File Id="fil8ABFD40EA9A1BE1765D794C2B8EAF909" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Contributed Resources.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp33C4617DBE37ED14B978BC4770F0C3F8" Guid="{387DE078-7507-48EF-A5A3-3A72FAAC8301}"> + <File Id="fil07A195AACB6D39C19DFCDC356E01958A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Conversion_Guide_VeraCrypt_1.26_and_Later.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD8C7B52BC03709FAB2642B93BFE4FFE8" Guid="{1592BAD3-086F-4DDE-8970-199B44FFBD6E}"> - <File Id="filE99ED4C6D87549A1F623A37A5C47552A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Converting TrueCrypt volumes and partitions.html" DiskId="1" /> + <File Id="filE99ED4C6D87549A1F623A37A5C47552A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Converting TrueCrypt volumes and partitions.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFD6EB163EA6B74C4F59FF04D2B3796CC" Guid="{60D5BA7E-7466-4F09-ADB4-571A7502DD7B}"> - <File Id="filBD6D90F11807407F91F2F7AEA5DDC8EA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg" DiskId="1" /> + <File Id="filBD6D90F11807407F91F2F7AEA5DDC8EA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Converting TrueCrypt volumes and partitions_truecrypt_convertion.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp612D2E75E857D164665BE8CA37570D04" Guid="{6D667BD9-F8C1-4C46-BEA0-6AAA44B838CA}"> - <File Id="fil14C75587323CCC7F69E32786D82A5BD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Creating New Volumes.html" DiskId="1" /> + <File Id="fil14C75587323CCC7F69E32786D82A5BD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Creating New Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF65BF759DA7F65BAD6D74A83FEF9D205" Guid="{08FEF348-778B-42C7-81B9-F62EA5F658A6}"> - <File Id="filDAF1BCFE93CF42677E91DCF5E515D861" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Data Leaks.html" DiskId="1" /> + <File Id="filDAF1BCFE93CF42677E91DCF5E515D861" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Data Leaks.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA6A249B42C89657DE664B9D88D04DB3F" Guid="{76F64E31-ED27-46A8-8A0D-6CFB4A79B856}"> - <File Id="fil58A7A13A2773C5CDDBF9D85254395A75" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Default Mount Parameters.html" DiskId="1" /> + <File Id="fil58A7A13A2773C5CDDBF9D85254395A75" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Default Mount Parameters.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpEE8A03DA56EF1B35979430E8711A6960" Guid="{034B338B-7719-4E70-B08E-C118CBCD2432}"> - <File Id="fil7D0C9ABA361EB2D263FA1F2EDB839223" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Default Mount Parameters_VeraCrypt_password_using_default_parameters.png" DiskId="1" /> + <File Id="fil7D0C9ABA361EB2D263FA1F2EDB839223" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Default Mount Parameters_VeraCrypt_password_using_default_parameters.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp628E75C5DD0F38348B6F8694D5D5149C" Guid="{B4CA9CED-3087-4115-AC8C-A8E12C3A4383}"> - <File Id="filAFAAE965983C249FC9A818A28333DFA4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Defragmenting.html" DiskId="1" /> + <File Id="filAFAAE965983C249FC9A818A28333DFA4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Defragmenting.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp40BDD4F3CA20DEE006E087930EF3847C" Guid="{696CB75F-F832-4E11-9617-E4F05B6CA29A}"> - <File Id="fil7887EE82BC26C1CFAAC5CD3A29EF5049" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Digital Signatures.html" DiskId="1" /> + <File Id="fil7887EE82BC26C1CFAAC5CD3A29EF5049" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Digital Signatures.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp7AEEABAF151FCE92735664A55F7B8FFA" Guid="{40361F33-E50C-492C-8D5F-9B32B2318FBF}"> - <File Id="filE430D3D4AD453AD90952510D4194438A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Disclaimers.html" DiskId="1" /> + <File Id="filE430D3D4AD453AD90952510D4194438A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Disclaimers.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9380DDE2560B4D8EE9CC363AF4BC7B5F" Guid="{787E2CF2-DF61-4341-94A2-497BCF9882C8}"> - <File Id="fil04BCDEC7438B23A6BBF1C95ACF126266" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Documentation.html" DiskId="1" /> + <File Id="fil04BCDEC7438B23A6BBF1C95ACF126266" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Documentation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp84A94F04CD486338F57C03B316145945" Guid="{44F12D12-3BB4-4FE5-B829-5D471C05A2AF}"> - <File Id="fil07C7557AAF506EE9095B8C76E9C56776" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation.html" DiskId="1" /> + <File Id="fil07C7557AAF506EE9095B8C76E9C56776" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpDF544847A4B1F86B3BA3468336CD73FE" Guid="{8E46CB17-1956-4E28-B8F4-30DEFCEA1CF6}"> - <File Id="filD27301F6F853ABFC08499D4085599774" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_Bank.html" DiskId="1" /> + <File Id="filD27301F6F853ABFC08499D4085599774" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_Bank.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9A6A861B59A23E534C7407EF95500AA5" Guid="{044EF38F-E86C-4A28-B675-CA7E8E318559}"> - <File Id="fil87AEAF6DE829555C03BF7888DDD40D8F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate.gif" DiskId="1" /> + <File Id="fil87AEAF6DE829555C03BF7888DDD40D8F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp09C34B1CBDE9F2F4E897340B1C67728E" Guid="{CEA5EA37-6E8B-4DC0-A4DC-F95A050D36A1}"> - <File Id="fil2E4790AC38717B6E5E9B77A926CA98C4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_CHF.gif" DiskId="1" /> + <File Id="fil2E4790AC38717B6E5E9B77A926CA98C4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_CHF.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD3183A7373751A19B4B7C9B041F9035D" Guid="{23A3ADFD-3BC8-4F77-9281-EED6A67CAFFD}"> - <File Id="fil12198C69AEB78A4CDE5C4343E8EE27A7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_Dollars.gif" DiskId="1" /> + <File Id="fil12198C69AEB78A4CDE5C4343E8EE27A7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_Dollars.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3DED9073AB120DC026C48E9CDF9283EB" Guid="{8F9DA5BB-3BFE-4D21-8B79-65AFBFC93ECF}"> - <File Id="filDA4E4CC3AAE26E3ADE9CFF4940975500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_Euros.gif" DiskId="1" /> + <File Id="filDA4E4CC3AAE26E3ADE9CFF4940975500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_Euros.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0FF3027C2662D967ACB4B01BA7BC85F9" Guid="{1B9D2475-C2D0-4695-B51D-AE53BFF05A46}"> - <File Id="filF7C4F27359F58FD995B964FF3B5AAAFF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_GBP.gif" DiskId="1" /> + <File Id="filF7C4F27359F58FD995B964FF3B5AAAFF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_GBP.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3FC9C0126A2074CAABCF73197358F824" Guid="{7AD29EC1-38EF-4F2A-8038-E70A6D360CA0}"> - <File Id="fil0D75D569E37C808031A4217294796BC7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_PLN.gif" DiskId="1" /> + <File Id="fil0D75D569E37C808031A4217294796BC7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_PLN.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1830E220882FBA276350032258B478AA" Guid="{A1A3410C-6B91-44FF-AC33-BDB18F4F2022}"> - <File Id="fil7779997A454E1C0068F2DF292319AA6A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_YEN.gif" DiskId="1" /> + <File Id="fil7779997A454E1C0068F2DF292319AA6A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_donate_YEN.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp433CCCF103F2A8AF57F9FC528232C836" Guid="{D427BFF5-7DC7-4414-A920-51E2CAAAB671}"> + <File Id="fil64A82A6BA01444F0F0AF2BFBFCB524D1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VC_BTC_Sigwit.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE5D6E9DF3EE1301C6D5A4F44362BCE96" Guid="{0811DEAF-F857-4839-A31B-C1B3A2C932FE}"> - <File Id="fil83A3E2E3996B9CC933A606F6E4661FD5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_BitcoinCash.png" DiskId="1" /> + <File Id="fil83A3E2E3996B9CC933A606F6E4661FD5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_BitcoinCash.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB7B429D414CF1DD05A4B70CE94E343F7" Guid="{04490FFA-387E-4FD7-9449-AB6C99886EA9}"> - <File Id="fil25C86292E018E61CB762731F14261986" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Bitcoin_small.png" DiskId="1" /> + <File Id="fil25C86292E018E61CB762731F14261986" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Bitcoin_small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp00845B9781D5633702C834BCB4EB93D1" Guid="{A41BFAC5-42BF-45DB-BFF9-703F9DBE7346}"> - <File Id="filAD426632459DB7AB1528AC311CE28870" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Ethereum.png" DiskId="1" /> + <File Id="filAD426632459DB7AB1528AC311CE28870" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Ethereum.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp47F92D029E335F7865F8ACB30763FED2" Guid="{A6C96C85-D0E8-442B-8C84-8705F17EE4C7}"> - <File Id="fil155C2578FFCBDBD39679AB6AF62EEA7B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Litecoin.png" DiskId="1" /> + <File Id="fil155C2578FFCBDBD39679AB6AF62EEA7B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Litecoin.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF3B90B0C1F316854E9142B22783ACF19" Guid="{A369FF58-377C-47B9-A2A6-B222CA95898C}"> - <File Id="filBE9E8FB59340806B67751E8BC2E00071" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Monero.png" DiskId="1" /> + <File Id="filBE9E8FB59340806B67751E8BC2E00071" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Donation_VeraCrypt_Monero.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBD37FB188B29DB82A15EBC9C1DB66F94" Guid="{20A19599-83B8-4DF7-8B42-84F20DFA760F}"> + <File Id="fil8D7D976D180AF0CD0B43FD64BEF15E5B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\EMV Smart Cards.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2EC17F48BC15C5405D2DB40FC6E01745" Guid="{700262B3-5BB2-4482-B96B-A511EA875986}"> - <File Id="filACA26698300072DB7F917CA47A8AB6B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Encryption Algorithms.html" DiskId="1" /> + <File Id="filACA26698300072DB7F917CA47A8AB6B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Encryption Algorithms.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE00F8980768E14DF59474B5CB3D84041" Guid="{45C099F3-92B5-4514-9049-BEA244F0C942}"> - <File Id="fil0B06214692CAA0ACCACC01D1372A93B5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Encryption Scheme.html" DiskId="1" /> + <File Id="fil0B06214692CAA0ACCACC01D1372A93B5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Encryption Scheme.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD17B73F5892E45458E960025558B3452" Guid="{F974B54B-B964-4B65-A718-DF09BE96F106}"> - <File Id="filAEB57F6A5B5C2593D13AEF942A2C721C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Ethereum_Logo_19x30.png" DiskId="1" /> + <File Id="filAEB57F6A5B5C2593D13AEF942A2C721C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Ethereum_Logo_19x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF45A8248FAFA80A8DF62989C477E7C0F" Guid="{9184BA24-53AB-4753-907C-E88D7F56B3FE}"> - <File Id="filA72BC6DCFD81551D166437E20BA8224F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\FAQ.html" DiskId="1" /> + <File Id="filA72BC6DCFD81551D166437E20BA8224F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\FAQ.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD066CBBD66E8CABB4AD4B928F823A5D2" Guid="{A8B260B0-505C-4948-801F-A03236A0D61D}"> - <File Id="filACB34BF3CCD1B081CBA230C962B4023D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Favorite Volumes.html" DiskId="1" /> + <File Id="filACB34BF3CCD1B081CBA230C962B4023D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Favorite Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpACFE3B967BB844C3FD0FE21C9E87EE5B" Guid="{46D1B528-C7B7-4AEC-B5AE-0A3F91D4312E}"> - <File Id="fil88A41060BD4F57CB6135E162D4AB5CD7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-au-small.png" DiskId="1" /> + <File Id="fil88A41060BD4F57CB6135E162D4AB5CD7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-au-small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFAA171DECE81EA4EA99B5570C9FF7D0E" Guid="{6EC15848-F7A8-40B3-88DF-52010E89E634}"> - <File Id="fil16558379B1C9116103DF96CB9C5C36AD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-au.png" DiskId="1" /> + <File Id="fil16558379B1C9116103DF96CB9C5C36AD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-au.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp7C1E782A2C12520E4CACF0D8FD4EAA4E" Guid="{625A778A-7F8A-42D8-A725-85973721DFF0}"> - <File Id="filA16A3EF20ACB7C21ACD09A4D1593A6F1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-eu-small.png" DiskId="1" /> + <File Id="filA16A3EF20ACB7C21ACD09A4D1593A6F1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-eu-small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE9009D51D7CF4AA8BBA735E91F1D6044" Guid="{58D024BC-047D-44AA-9818-9E68C256D84D}"> - <File Id="filCEC0006C74C3A5D4FB0CDA60EEE61C91" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-eu.png" DiskId="1" /> + <File Id="filCEC0006C74C3A5D4FB0CDA60EEE61C91" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-eu.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp5D46BFDD0D54DD715695756148C22028" Guid="{42A27E61-0190-4654-8996-91B092CC314F}"> - <File Id="filE84495221B2E5A505F3AA4CA4595C7A9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-gb-small.png" DiskId="1" /> + <File Id="filE84495221B2E5A505F3AA4CA4595C7A9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-gb-small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE34BBB4D255F23D71B0143270915E6D7" Guid="{5E95AE9C-8807-4E4D-81DA-1A83DACDC8A1}"> - <File Id="filECFBF3D126ECCB088B3B313A370D71ED" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-gb.png" DiskId="1" /> + <File Id="filECFBF3D126ECCB088B3B313A370D71ED" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-gb.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpEB665F1BFDB30B20C90142CCD1DA7664" Guid="{DB6617B7-2FEE-4FDB-A2DA-834B33B29C3E}"> - <File Id="fil968867F284C9559835DFF02CFA106E13" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-nz-small.png" DiskId="1" /> + <File Id="fil968867F284C9559835DFF02CFA106E13" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-nz-small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFDCC994071E7ADACE3EB2CBACC60E34A" Guid="{0494762C-CFB8-4CF7-85AA-0650B2B4E813}"> - <File Id="filF5C5A9923D299431406A6B5D8D2BF34D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-nz.png" DiskId="1" /> + <File Id="filF5C5A9923D299431406A6B5D8D2BF34D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-nz.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp21A3A9B1C7FAA004EF937114F0F41C61" Guid="{2F88A1FE-94B5-46E0-93C2-DE9F9BEE58FF}"> - <File Id="filC1071DD08F53BDD0249A4E15993448D6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-us-small.png" DiskId="1" /> + <File Id="filC1071DD08F53BDD0249A4E15993448D6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-us-small.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFD4A149B4654FEF0542A5ECE211A86B8" Guid="{CC1D951A-2C70-4AE4-AC3C-E2D56789B981}"> - <File Id="fil1120ADD37C4E5039A94D7442675B202D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-us.png" DiskId="1" /> + <File Id="fil1120ADD37C4E5039A94D7442675B202D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flag-us.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE7CDDDCDA7CD20F1150F2879E0293D1D" Guid="{67630C6C-178E-41CF-A74A-AA086E5B4553}"> - <File Id="filA42CDEA93CCFE721C2569FA3D0786D57" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flattr-badge-large.png" DiskId="1" /> + <File Id="filA42CDEA93CCFE721C2569FA3D0786D57" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\flattr-badge-large.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9CDBE7ACC2D5393535D2981C3DD73682" Guid="{97414D97-9C51-419A-9FE2-392223B7600A}"> - <File Id="fil901AA5AF4A010844A1F50A5881B8FD16" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\gf2_mul.gif" DiskId="1" /> + <File Id="fil901AA5AF4A010844A1F50A5881B8FD16" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\gf2_mul.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF09EAA16502FCF137AAD38D70D50B200" Guid="{95BBE9B0-AB65-43FF-A3C4-0D347BE43DF0}"> - <File Id="fil3E73719A927F1E24178C1E3C05DC1384" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hardware Acceleration.html" DiskId="1" /> + <File Id="fil3E73719A927F1E24178C1E3C05DC1384" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hardware Acceleration.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp62D4B7B5DACB58D3EEA9E6D3385769A7" Guid="{285C17A2-418E-4ACD-B0E8-A3940A9E9E61}"> - <File Id="fil05C2A8A0846F0288FDC2580173316E05" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hash Algorithms.html" DiskId="1" /> + <File Id="fil05C2A8A0846F0288FDC2580173316E05" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hash Algorithms.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpBF36D06FA293DFD3AFA1543C43A54E17" Guid="{EC20DE1B-F10D-4F9E-9CEA-8E06170EE71C}"> - <File Id="fil12E28B4819EEC3590C5CFA611E8BAF01" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Header Key Derivation.html" DiskId="1" /> + <File Id="fil12E28B4819EEC3590C5CFA611E8BAF01" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Header Key Derivation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp7345D3EE0CFEA227E8AA9ADADF95E623" Guid="{F5E2342E-2879-48B1-B3CE-5C626AEDC366}"> - <File Id="fil25DB00F86CBD631E7750B8050A9CC9CD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hibernation File.html" DiskId="1" /> + <File Id="fil25DB00F86CBD631E7750B8050A9CC9CD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hibernation File.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE92C5D4B774B7214B49931528F7EDCF6" Guid="{44B9627E-29EC-4B8E-9B20-3D0ECCC77C1E}"> - <File Id="filA094EFE79FB6AAAEDCCC3C997972E35E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hidden Operating System.html" DiskId="1" /> + <File Id="filA094EFE79FB6AAAEDCCC3C997972E35E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hidden Operating System.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB6A3927A1BE4D2836C1007D3CC989C4B" Guid="{13D8AB5D-0F73-4C29-AB08-9086313EF010}"> - <File Id="filC7CDBCEC9B1D4BA6BCFC0362CE353D51" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hidden Volume.html" DiskId="1" /> + <File Id="filC7CDBCEC9B1D4BA6BCFC0362CE353D51" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hidden Volume.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp28666EA10A3DCEC7D2583ADD52785FDC" Guid="{55E58038-C992-4683-AA9F-9CA4111884FF}"> - <File Id="fil707007462E284E1048B6AB488EFFD466" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_facebook_veracrypt.png" DiskId="1" /> + <File Id="fil707007462E284E1048B6AB488EFFD466" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_facebook_veracrypt.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp08768A6308C114126260614CCDF6F72E" Guid="{30FDB2BD-5E5B-421E-97AE-F819944A4B57}"> - <File Id="filFA4C178FEBD09C0A4D38AA90B4523E9E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_reddit.png" DiskId="1" /> + <File Id="filFA4C178FEBD09C0A4D38AA90B4523E9E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_reddit.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF00E284DEEE43B341D12987E20DB76C5" Guid="{A2160846-E461-4C23-BC88-64531B3D2C59}"> - <File Id="fil4A9EA521DBB6DD5E280E4186CD34FA11" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_utilities-file-archiver-3.png" DiskId="1" /> + <File Id="fil4A9EA521DBB6DD5E280E4186CD34FA11" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_utilities-file-archiver-3.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB75BD74E0F63097DC1777FF4BF440479" Guid="{E2C9732A-0FD0-4A33-9B69-0BCD132AB427}"> - <File Id="filDABCE60F828DEEE9AE5064EA3F71EC67" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_VeraCrypt_Default_Mount_Parameters.png" DiskId="1" /> + <File Id="filDABCE60F828DEEE9AE5064EA3F71EC67" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_VeraCrypt_Default_Mount_Parameters.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1745256A6ECE8FB1779B0DA82CEECAB9" Guid="{1A5FBC9F-430E-4F8D-AEA4-7391D85F2E27}"> - <File Id="fil9C3B9E9CFB06A1F7C162B4941656906A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_VeraCrypt_menu_Default_Mount_Parameters.png" DiskId="1" /> + <File Id="fil9C3B9E9CFB06A1F7C162B4941656906A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Home_VeraCrypt_menu_Default_Mount_Parameters.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3F248F4BDDB12D98D3CF173FEA01CE24" Guid="{1B2E6370-1DD1-42D8-9E84-6D85922DFA07}"> - <File Id="fil9E39BB9774782EA2337679D8B86AB1A5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hot Keys.html" DiskId="1" /> + <File Id="fil9E39BB9774782EA2337679D8B86AB1A5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Hot Keys.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1209E63998A1D1504B062C4ECC45EE07" Guid="{ED60D316-7B35-4622-90B5-938260E9E150}"> - <File Id="fil2B4301AD5F5E385426DEEE0DE166D557" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\How to Back Up Securely.html" DiskId="1" /> + <File Id="fil2B4301AD5F5E385426DEEE0DE166D557" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\How to Back Up Securely.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp035C544DF9B46B9DD7871AD7898B7D36" Guid="{44C5611E-FF00-41F3-B744-E18801513D89}"> - <File Id="filF60B07EAEE2B63ECAA396508EC68858F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Incompatibilities.html" DiskId="1" /> + <File Id="filF60B07EAEE2B63ECAA396508EC68858F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Incompatibilities.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA891AF32EF72B7AC80533FC31773B604" Guid="{305DB86E-AE27-4634-9CE1-C4C875EF9569}"> - <File Id="fil8F60E744AB05081B8929E635DDF7B733" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Introduction.html" DiskId="1" /> + <File Id="fil8F60E744AB05081B8929E635DDF7B733" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Introduction.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1FC684D1C3742A927228DE9A669A2895" Guid="{EE9D3F20-7EB4-4628-ADE6-51238E60A998}"> - <File Id="fil9BA13C18F0927CFB3AFBFBDA5944B166" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Issues and Limitations.html" DiskId="1" /> + <File Id="fil9BA13C18F0927CFB3AFBFBDA5944B166" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Issues and Limitations.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp265116FC4778248E01BADFB30A2C32A7" Guid="{37C6EB1F-7A7D-4F00-9204-51240EB7FB81}"> - <File Id="filC57676C07D244DB5A336F1D52D978004" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Journaling File Systems.html" DiskId="1" /> + <File Id="filC57676C07D244DB5A336F1D52D978004" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Journaling File Systems.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB2A3FFEE7A15E23A2835A843438E3669" Guid="{BF14B9BF-8AFB-4E5E-80E4-CA2F3D132F51}"> - <File Id="filF08A4DB40EFF11FE0784034B3D70B750" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles in VeraCrypt.html" DiskId="1" /> + <File Id="filF08A4DB40EFF11FE0784034B3D70B750" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles in VeraCrypt.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFC8FB415783E0AA424FBD685EFACF54E" Guid="{01FCB5FD-953B-49D6-B993-6AC117052F6B}"> - <File Id="fil6DA5794E0BA3F26779AFE828D4E41AAC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles in VeraCrypt_Image_040.gif" DiskId="1" /> + <File Id="fil6DA5794E0BA3F26779AFE828D4E41AAC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles in VeraCrypt_Image_040.gif" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2BCEA21755E1C812ACCF15A09210FCCD" Guid="{0CECEA1A-AB6B-49B6-8D07-8D86B452995A}"> - <File Id="fil5450B4F3DD747980B87B30ACEC318F6E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles.html" DiskId="1" /> + <File Id="fil5450B4F3DD747980B87B30ACEC318F6E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Keyfiles.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9EC1750F7CD9717D3A761FC2930C509D" Guid="{980F49E8-EBCD-4720-8466-C03DC2B3BBD7}"> - <File Id="fil780042F951150166D5D328C10993CE7E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Kuznyechik.html" DiskId="1" /> + <File Id="fil780042F951150166D5D328C10993CE7E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Kuznyechik.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4298A84BD6956E2A2742B5678BCFF173" Guid="{2809427F-697F-48A4-853B-5BE4AE1E720A}"> - <File Id="fil01E37EFCBAF6AB983418B79E3DD75E88" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Language Packs.html" DiskId="1" /> + <File Id="fil01E37EFCBAF6AB983418B79E3DD75E88" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Language Packs.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2D9F7D88EF1F843BDEA5A39D13330B8A" Guid="{7A515A66-AD7E-4B89-8935-62C7B3FCF0A7}"> - <File Id="fil587E308C1A86BF1B8DA5BEFF409C509E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Legal Information.html" DiskId="1" /> + <File Id="fil587E308C1A86BF1B8DA5BEFF409C509E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Legal Information.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp58EAECCB29CB9ABDDDB72F9378E4EE77" Guid="{03CB945A-4EE1-4EC6-8360-56B00FD8C7E8}"> - <File Id="fil76CDD0FA0D1CFE86ABAFDF8ED174B7D5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\liberapay_donate.svg" DiskId="1" /> + <File Id="fil76CDD0FA0D1CFE86ABAFDF8ED174B7D5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\liberapay_donate.svg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp61C660976A230AD4AD8B42A90D4BCC7C" Guid="{7B5EFF52-9EBF-4A15-8117-684E0B40EC9E}"> - <File Id="filE7AA75571211982F69DEE42B8A42D2BA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\LTC_Logo_30x30.png" DiskId="1" /> + <File Id="filE7AA75571211982F69DEE42B8A42D2BA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\LTC_Logo_30x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp29A0605ED3FB7D4E2EAC833D56411563" Guid="{A65BBFC8-1956-4F8E-A0C8-74D32230342F}"> - <File Id="fil9DB1C5CAE05C434550F18FEFC614D725" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Main Program Window.html" DiskId="1" /> + <File Id="fil9DB1C5CAE05C434550F18FEFC614D725" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Main Program Window.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4A0EF1CFD1E1DE8B4E7BF698E05680E9" Guid="{273E1197-B7FC-40E4-AFB0-317D1D0AD816}"> - <File Id="fil8F40D01C235606BC89A05FF0956B7146" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Malware.html" DiskId="1" /> + <File Id="fil8F40D01C235606BC89A05FF0956B7146" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Malware.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1E4F8137AD337BEA1B902E6B003AB953" Guid="{6FF05277-1E0B-4885-8AC4-9B3044DA19CA}"> - <File Id="fil1C19C87ED25856F0A34F96A3AA92D695" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Memory Dump Files.html" DiskId="1" /> + <File Id="fil1C19C87ED25856F0A34F96A3AA92D695" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Memory Dump Files.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp8D35F7D61B2B7DF0EDEAE2E56031E7CB" Guid="{41103C48-5692-4593-8042-75B847917265}"> - <File Id="fil03685445FCFED7E0BA2CA91812337283" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Miscellaneous.html" DiskId="1" /> + <File Id="fil03685445FCFED7E0BA2CA91812337283" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Miscellaneous.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpDE2C66707086A509EABD0F9F6E8BDB1A" Guid="{077B9131-7B76-4E56-9895-0A34F2B7DB5A}"> - <File Id="fil52FBC994010BF4A06B7C78261E002986" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Modes of Operation.html" DiskId="1" /> + <File Id="fil52FBC994010BF4A06B7C78261E002986" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Modes of Operation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpA80443C3767E3E51F3DE88BFD0D7A33B" Guid="{221A050D-548A-42F2-9555-7ECA43D71CB6}"> - <File Id="filD4C6BB0CDA1B086217E6C8B6E4930DEE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Monero_Logo_30x30.png" DiskId="1" /> + <File Id="filD4C6BB0CDA1B086217E6C8B6E4930DEE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Monero_Logo_30x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp214446AAABEBAC0C3827B8977083FAE2" Guid="{76AB42FF-2CD5-4CC2-9E32-640FFA611F17}"> - <File Id="fil82C85BB54B2E986169D519B2AAF71A46" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Mounting VeraCrypt Volumes.html" DiskId="1" /> + <File Id="fil82C85BB54B2E986169D519B2AAF71A46" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Mounting VeraCrypt Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4AF022868FE6883520C700676C43B15D" Guid="{DE7F786D-2B71-4654-86F1-C02CCDA23E23}"> - <File Id="fil1B5039BFF40C7C3BAA602D9AE17668E6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Multi-User Environment.html" DiskId="1" /> + <File Id="fil1B5039BFF40C7C3BAA602D9AE17668E6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Multi-User Environment.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp340BBEC25292C3BE778BA8F158DB87B1" Guid="{34107694-BD63-4466-9317-E2745861F0FE}"> + <File Id="filDF64E26B5CFC7EDB198C7CEA46690CA0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Normal Dismount vs Force Dismount.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpC27AA2C4496C9EFA95DCD663B031B5D0" Guid="{23C15FAB-969E-491A-802E-ADE3255F9002}"> - <File Id="fil5FA8E7B0268E1EF7F9FAFA478FE0C8B1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Notation.html" DiskId="1" /> + <File Id="fil5FA8E7B0268E1EF7F9FAFA478FE0C8B1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Notation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9CBBC8311BBFC54C8DC1162BB17E5AED" Guid="{9C5C22CF-AB15-4D0C-B715-AF1E31B0AFD0}"> - <File Id="fil7A50CAD8D98A751781AF007ABEE22CD2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Paging File.html" DiskId="1" /> + <File Id="fil7A50CAD8D98A751781AF007ABEE22CD2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Paging File.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp033461B0777614621A2ED7B4E2B08D55" Guid="{1A3135F7-200E-4563-90C3-79E5511394CD}"> - <File Id="fil45662024A9E5B2BEBA51908F9478105E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Parallelization.html" DiskId="1" /> + <File Id="fil45662024A9E5B2BEBA51908F9478105E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Parallelization.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0E43CDBBAE343957423AE2907AC16883" Guid="{5C63387F-3BB8-405A-BA0A-10F87C828F9A}"> - <File Id="fil70B46565AEC42A408480FE289D55EA5E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\paypal_30x30.png" DiskId="1" /> + <File Id="fil70B46565AEC42A408480FE289D55EA5E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\paypal_30x30.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp8A8526D2061A14810E1B7A8A6E527DCD" Guid="{F46FE563-00F0-465E-A7E7-901B1B3F412E}"> - <File Id="filF33DCC20E8AA63F4190D46B9D22D71C6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM).html" DiskId="1" /> + <File Id="filF33DCC20E8AA63F4190D46B9D22D71C6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM).html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAE2DADEF126C59D8CCD3A18D8CDC49C8" Guid="{EF70E2B7-4109-4327-BE89-0D411119AC4D}"> - <File Id="fil357A891A8A012F17A7B040E444D36B5F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png" DiskId="1" /> + <File Id="fil357A891A8A012F17A7B040E444D36B5F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp2F972A5C99F7EE708B7C232EE8647672" Guid="{3190ECDC-675E-4845-A885-F12A1DF98B80}"> - <File Id="filF8BC3136E117642C05A9DE926C174FAF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png" DiskId="1" /> + <File Id="filF8BC3136E117642C05A9DE926C174FAF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB21F7D781FE7B006ABCA7974A21F29E2" Guid="{E07A247C-4600-4FAD-9766-585D2385EA6B}"> - <File Id="fil559077BE31FD160F8A07CC74414D0B6A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png" DiskId="1" /> + <File Id="fil559077BE31FD160F8A07CC74414D0B6A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF345174585735CD7A31AE138DDE8B439" Guid="{516094A0-18EA-4AA4-806C-DAFC7BAF1245}"> - <File Id="fil191704A44DE6065F1A5919C5EB1D49E1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png" DiskId="1" /> + <File Id="fil191704A44DE6065F1A5919C5EB1D49E1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp06772C03A0ECA40F11F1D5C5ACD607D8" Guid="{9235C68E-30B0-4B4C-94EB-6BDBC4057677}"> - <File Id="filF226612AEE0B01C8ECE40DDF61B34478" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png" DiskId="1" /> + <File Id="filF226612AEE0B01C8ECE40DDF61B34478" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp79E890B8891FA87AA5B10A67E15E7E8E" Guid="{E0EA3C67-4624-47E1-A528-9859B868C7A5}"> - <File Id="fil6351515AD3FA423CD458336ABC480500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png" DiskId="1" /> + <File Id="fil6351515AD3FA423CD458336ABC480500" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp89C46AE8EC4175E62A9CFE3DF9DF924A" Guid="{0A572658-4C6A-4F2A-8302-FF92CCEA3FB4}"> - <File Id="fil0435E327F9A0E86EC58E465ED1474BBB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Physical Security.html" DiskId="1" /> + <File Id="fil0435E327F9A0E86EC58E465ED1474BBB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Physical Security.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpC8F860B10D41961424874F69C6D84ED3" Guid="{ED207B14-7958-4933-BF3A-1A1F85ECBA4E}"> - <File Id="fil3B718B54EE1655F0A905435EE96043B9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Pipelining.html" DiskId="1" /> + <File Id="fil3B718B54EE1655F0A905435EE96043B9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Pipelining.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp285021B8CBC8E92B1CBCE4C88731083C" Guid="{86BDBC99-AC0B-4542-B14E-99908DD27628}"> - <File Id="filB7C15B9F7B056DB59B2E536B74F5F1AE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Plausible Deniability.html" DiskId="1" /> + <File Id="filB7C15B9F7B056DB59B2E536B74F5F1AE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Plausible Deniability.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpABE9B0A93A9B14C0732EBD8CD17A11AE" Guid="{5EE9BF82-FFB8-4511-B967-3383965953FB}"> - <File Id="filE75832AA56BFC08BDB777474186CECD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Portable Mode.html" DiskId="1" /> + <File Id="filE75832AA56BFC08BDB777474186CECD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Portable Mode.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD9B960879A3227B971E33222CE13BC18" Guid="{BD467209-9DA1-4383-BE25-E2EC8C9616ED}"> - <File Id="filFBF0DB894794EFB2376487A579DFED67" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Preface.html" DiskId="1" /> + <File Id="filFBF0DB894794EFB2376487A579DFED67" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Preface.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3B3BB414D13FDBF2B0C7A9CEBD7D98F5" Guid="{2CF8409E-3423-44A2-96FA-54D793EEB3F0}"> - <File Id="fil7F7441447BC07C288597FEFA0D495255" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Program Menu.html" DiskId="1" /> + <File Id="fil7F7441447BC07C288597FEFA0D495255" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Program Menu.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB39B1096387C2617720F515D24953B37" Guid="{48233666-96CF-4C73-9284-259EC39EA2B7}"> - <File Id="filBE0C2BED7FB2DD3D2FC511AC4D7D385A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes.html" DiskId="1" /> + <File Id="filBE0C2BED7FB2DD3D2FC511AC4D7D385A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp493A37205039E2A3A476A1A4F5360EBF" Guid="{3D92A6B0-B03F-4C86-8020-F756FBAADDC8}"> - <File Id="filC70F6B9415FAADA8160DB4529D0BE54D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_027.jpg" DiskId="1" /> + <File Id="filC70F6B9415FAADA8160DB4529D0BE54D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_027.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpF36A771DF9B1C4CD8E82C08A6D3D0786" Guid="{C0D77203-5FAC-4052-A490-ABB0346384AF}"> - <File Id="filE1423115AD04FF5AEC6F63AA963CB4D6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_028.jpg" DiskId="1" /> + <File Id="filE1423115AD04FF5AEC6F63AA963CB4D6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_028.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp63F6A68C5538B45661168554BC3B93D1" Guid="{252A5E82-AD3A-49A7-8185-421735A09DCE}"> - <File Id="fil5286E3B666BFB60D10FBA4CF8D8F6925" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_029.jpg" DiskId="1" /> + <File Id="fil5286E3B666BFB60D10FBA4CF8D8F6925" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_029.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0158A6D8BED6391AC7150B6C6AE2A9F9" Guid="{5A0D3271-1439-4E71-B7F6-D645FEC8FD49}"> - <File Id="fil2C5151D680BC4575AC607487970F87D8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_030.jpg" DiskId="1" /> + <File Id="fil2C5151D680BC4575AC607487970F87D8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_030.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpDE45667E9E3CD9F800EAC1E02B57AAB7" Guid="{333167EF-38B6-49E2-A24A-04E08F7D87BE}"> - <File Id="fil1B03C5F8575364F36A893E5EE4723659" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_031.jpg" DiskId="1" /> + <File Id="fil1B03C5F8575364F36A893E5EE4723659" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Protection of Hidden Volumes_Image_031.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp632453049391BAACDD117A40EC442743" Guid="{75B50C72-2495-4A22-BFDA-5BFE041EB265}"> - <File Id="fil37E6C8BC6738BF93446E4F2D13E312EC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Random Number Generator.html" DiskId="1" /> + <File Id="fil37E6C8BC6738BF93446E4F2D13E312EC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Random Number Generator.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpCE16E453CAD75A461B4FEBF451A51B7B" Guid="{E68D3F57-0A30-4492-9088-F2D1B0C7934A}"> - <File Id="filC3043FC38C97C7B8038FF12DD7882D85" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Reallocated Sectors.html" DiskId="1" /> + <File Id="filC3043FC38C97C7B8038FF12DD7882D85" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Reallocated Sectors.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpC741D187A28A87BD33866C9AC09A1298" Guid="{FB850461-6BD1-495F-9C10-19A34CFA0F16}"> - <File Id="filFFB70B91C00A69849F9E36950C6606B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\References.html" DiskId="1" /> + <File Id="filFFB70B91C00A69849F9E36950C6606B3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\References.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB313B00E647A121B2CBE47F3048A18A7" Guid="{5985576D-6F6C-4D96-9B3E-9E0961CF9FAF}"> - <File Id="fil2EB5F87C05CCC55D3964D595C85EF19E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Release Notes.html" DiskId="1" /> + <File Id="fil2EB5F87C05CCC55D3964D595C85EF19E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Release Notes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp400428F6494DE58618E3B92539548C39" Guid="{0A1869ED-25F1-4430-97A5-4C6EA8CDA7FC}"> - <File Id="filEDEDEF956F04F36B4163989F9AB9285F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Removable Medium Volume.html" DiskId="1" /> + <File Id="filEDEDEF956F04F36B4163989F9AB9285F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Removable Medium Volume.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFB2313AB16EF2467366ED136C0E61CE6" Guid="{CFEC9559-9F85-46C6-9E98-AEBB573B96FE}"> - <File Id="filE496203C4727FDF47F8352CB9722A8C7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Removing Encryption.html" DiskId="1" /> + <File Id="filE496203C4727FDF47F8352CB9722A8C7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Removing Encryption.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB4C7B1A7A3EC0CB2DE805AC5CC5FC0D7" Guid="{4534E8B2-114E-4173-AE3E-75E0D96EB573}"> - <File Id="fil8CFD1CFDCBE261B6F91D9E587F8720C0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Model.html" DiskId="1" /> + <File Id="fil8CFD1CFDCBE261B6F91D9E587F8720C0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Model.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp00540BF93A805E0B9996945B61E1BC2F" Guid="{1D5B7A85-87F3-45AF-9C09-BA7E088A835D}"> - <File Id="filA7A29851126AC571C090BB0FBEE83CB5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Requirements and Precautions.html" DiskId="1" /> + <File Id="filA7A29851126AC571C090BB0FBEE83CB5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Requirements and Precautions.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp4C46C6668AD830D543AFE593D51676B3" Guid="{4CD21E9D-243F-4A58-A535-AA8EF9D2BFD1}"> - <File Id="fil440C5158A3CD96689918C976DC917325" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Requirements for Hidden Volumes.html" DiskId="1" /> + <File Id="fil440C5158A3CD96689918C976DC917325" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Requirements for Hidden Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp6EE914124966E3A0F695359116413DD4" Guid="{724FA79D-49BC-4075-ABF4-0C318AE39855}"> - <File Id="filD229058EB41E2E150C0CA4D0EC1DF39B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Tokens & Smart Cards.html" DiskId="1" /> + <File Id="filD229058EB41E2E150C0CA4D0EC1DF39B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Security Tokens & Smart Cards.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp28E29B4CA17AB51913B756CD9397EEFE" Guid="{1B9083B9-8E76-44CA-AE3E-0771B1ABA62B}"> - <File Id="filC173058120D357E87951F41755A9210B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Serpent.html" DiskId="1" /> + <File Id="filC173058120D357E87951F41755A9210B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Serpent.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp5DF24509F284FABC600232197F803DE5" Guid="{120A40CF-E44A-4F4F-9072-93248DABACA2}"> - <File Id="fil01F3ACD810057C4A059A5C424E1B79E1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\SHA-256.html" DiskId="1" /> + <File Id="fil01F3ACD810057C4A059A5C424E1B79E1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\SHA-256.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp09E31B885345FBEA1F473AF7A10FD88D" Guid="{1B1C80CF-6C3C-4C7D-BE7B-579042701D0F}"> - <File Id="fil2E702CC679444D8DDB66A3FBDB32C807" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\SHA-512.html" DiskId="1" /> + <File Id="fil2E702CC679444D8DDB66A3FBDB32C807" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\SHA-512.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAE05C79A35A43ECCAC995A711DC4D60B" Guid="{151A493F-38A5-4EF1-9740-255B610B4117}"> - <File Id="fil167B9CF3B9CD2FA5458778733095F780" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Sharing over Network.html" DiskId="1" /> + <File Id="fil167B9CF3B9CD2FA5458778733095F780" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Sharing over Network.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB6D91209A93313D08150643F1738DED8" Guid="{270DF8A0-8859-49F3-BF05-2F155C3CA428}"> - <File Id="filF3B75776C2FEC0F4397274BCA02330DB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Source Code.html" DiskId="1" /> + <File Id="filF3B75776C2FEC0F4397274BCA02330DB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Source Code.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpDB66E821EC13977824FB1069DF5DAA69" Guid="{D08B0614-2B88-4445-9B47-52BEA0E29E77}"> - <File Id="filA67FBF7D25BFBA155A0E4570F404CBEE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Standard Compliance.html" DiskId="1" /> + <File Id="filA67FBF7D25BFBA155A0E4570F404CBEE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Standard Compliance.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp159AB26E32632FC87229090B3AA89BF8" Guid="{B35B4FD4-D82C-47E9-BB2A-5539115F40CC}"> - <File Id="filBFED47E502C7539F724D68EAF73A554D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Streebog.html" DiskId="1" /> + <File Id="filBFED47E502C7539F724D68EAF73A554D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Streebog.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp5BE3E12343551B853E1B143371CBEBE6" Guid="{5ACC0589-AD8D-4BAC-BD40-201BAD7D07BC}"> - <File Id="filA40C816E149FB745F49DAF482DF97F3B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\styles.css" DiskId="1" /> + <File Id="filA40C816E149FB745F49DAF482DF97F3B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\styles.css" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0E081D9499DA225BB788494A1D86893D" Guid="{A79816FA-0683-4097-988B-75FB49DF3265}"> - <File Id="filB5B2E158090CD673A8FE9D55020AFC48" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Supported Operating Systems.html" DiskId="1" /> + <File Id="filB5B2E158090CD673A8FE9D55020AFC48" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Supported Operating Systems.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpBC7134AF21BAE309E9FD1A52ADF92527" Guid="{9570C06B-324A-4216-8D39-57AE06CAC70A}"> - <File Id="fil6D85A49AF2B16D6EE47465F315B140EF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Supported Systems for System Encryption.html" DiskId="1" /> + <File Id="fil6D85A49AF2B16D6EE47465F315B140EF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Supported Systems for System Encryption.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB586F01E9F9657C498F2AB64E1F51BD7" Guid="{9E7FE222-18AC-48E5-ADAD-2A45BD498DAB}"> - <File Id="fil4943B1ACB69010EBD9EC4E9D4E010E11" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\System Encryption.html" DiskId="1" /> + <File Id="fil4943B1ACB69010EBD9EC4E9D4E010E11" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\System Encryption.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp6EB049078039C276CADA69E7B79FDFA8" Guid="{8BDEFB8D-9143-45EE-8095-65B5F4C95417}"> - <File Id="fil5A3E287172F44E471AE59AE8AB15B797" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\System Favorite Volumes.html" DiskId="1" /> + <File Id="fil5A3E287172F44E471AE59AE8AB15B797" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\System Favorite Volumes.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3135BB68A1F44DDD9FE19B7D5FB4ED7B" Guid="{00ED20A0-F1D4-443F-91EE-646A14B229BA}"> - <File Id="fil2C3C74388CBEB07327ED4D549C0067FE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Technical Details.html" DiskId="1" /> + <File Id="fil2C3C74388CBEB07327ED4D549C0067FE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Technical Details.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp98ECAD990DF7B535B05EF6E840B7B2DF" Guid="{1827AFAB-C8B0-46BF-B281-88662B87E583}"> - <File Id="filAB4D4629FE812B0E1CDB1E3CBFB4A297" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Trim Operation.html" DiskId="1" /> + <File Id="filAB4D4629FE812B0E1CDB1E3CBFB4A297" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Trim Operation.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpFE417CCCB859A1C3E4FB90A9C4E132F0" Guid="{A03D9719-6170-4239-9E67-5857521417C3}"> - <File Id="filECA5FD7DEC2F3112CF19DB201F4DD774" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Troubleshooting.html" DiskId="1" /> + <File Id="filECA5FD7DEC2F3112CF19DB201F4DD774" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Troubleshooting.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpD91C00B1B2AACF38761B45D0574884D7" Guid="{52CD1733-C124-401A-9830-56AECD35F8DF}"> - <File Id="fil524C8D572AD8121392C6584496A57345" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\TrueCrypt Support.html" DiskId="1" /> + <File Id="fil524C8D572AD8121392C6584496A57345" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\TrueCrypt Support.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp590EDE3CE6E09D0D43B35287E849B75A" Guid="{5A433701-05CD-4972-9B85-B318BFD5D8DD}"> - <File Id="fil35D6691D20085B8A5F8941864C44EC0C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\TrueCrypt Support_truecrypt_mode_gui.jpg" DiskId="1" /> + <File Id="fil35D6691D20085B8A5F8941864C44EC0C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\TrueCrypt Support_truecrypt_mode_gui.jpg" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9D6F95F912C3B9C95E92E39BA1CE6BC9" Guid="{95929E0A-1AB1-44BC-A86D-F4F4B552121F}"> - <File Id="filE04EC2E8B20706A01283B31462E0DB0F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\twitter_veracrypt.PNG" DiskId="1" /> + <File Id="filE04EC2E8B20706A01283B31462E0DB0F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\twitter_veracrypt.PNG" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpAD429D8A050A0D31B661626BDCA9C952" Guid="{6437B9F6-6024-4ACA-8FF1-23A613E2373E}"> - <File Id="filC71BF1DDF8EB4C886801C1E95CD42F31" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Twofish.html" DiskId="1" /> + <File Id="filC71BF1DDF8EB4C886801C1E95CD42F31" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Twofish.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp3BDE199844AB81673ABB0E5E61E9B7B5" Guid="{95B5F172-3BBE-4620-B68A-F2D3473C066C}"> - <File Id="filD2BC6D56B2FF1A44DB6FF7B24B594430" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Unencrypted Data in RAM.html" DiskId="1" /> + <File Id="filD2BC6D56B2FF1A44DB6FF7B24B594430" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Unencrypted Data in RAM.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0A4AB9AEF0D351FA5E63BCD67DC00607" Guid="{CF5B6BB4-4263-4354-BA4F-ADF283A0F238}"> - <File Id="fil82416621AEEFEB29EFA3DE265214EA14" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Uninstalling VeraCrypt.html" DiskId="1" /> + <File Id="fil82416621AEEFEB29EFA3DE265214EA14" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Uninstalling VeraCrypt.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpCC25F1CB6A1C9D8B47C407B818F73B59" Guid="{5E74CF1D-85A3-4A4F-B1D8-E965912E00DA}"> - <File Id="fil9D6D114ED531555871AD956FCBA5B7DC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Using VeraCrypt Without Administrator Privileges.html" DiskId="1" /> + <File Id="fil9D6D114ED531555871AD956FCBA5B7DC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Using VeraCrypt Without Administrator Privileges.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE0F5E8A2D6FEF181686370F0E1EAC632" Guid="{FDF54DAD-73B4-4D06-A292-353E3AFC27F7}"> - <File Id="fil980276E3BC07E82993537096C68872EF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Background Task.html" DiskId="1" /> + <File Id="fil980276E3BC07E82993537096C68872EF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Background Task.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp46B2E8BCD50BD668153E793EB737BC39" Guid="{A899B8CF-2847-4BC2-BDD5-4B9C77EC13F9}"> - <File Id="filF1064BAE73402AAE56CBD0BED505159D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Hidden Operating System.html" DiskId="1" /> + <File Id="filF1064BAE73402AAE56CBD0BED505159D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Hidden Operating System.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0305CC2824E44F697B402E56A0CD1754" Guid="{4A81FE38-C1CE-430D-855B-2126B865A643}"> - <File Id="filB279C24D2499DFD0899469188292D02E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt License.html" DiskId="1" /> + <File Id="filB279C24D2499DFD0899469188292D02E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt License.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9DD3085A37E22E035A65C74A5B9C209E" Guid="{B7D36E91-D8FE-4E85-A69F-0A3A381C1C65}"> + <File Id="filAB85146302AE4E183B91C079E609D501" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Memory Protection.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1FFF1F3DF3F162C4AEDA7871C7886618" Guid="{8178164B-C657-40BC-854D-55E06F002939}"> + <File Id="fil045BED1ADE4CE7CDFCC60D97F1C5C2E4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt RAM Encryption.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp0E00CBDCB82A904FD6AD82E458CA6AA7" Guid="{54998F1F-E717-4881-B63E-A3493B3EB7FD}"> - <File Id="fil069503600DD8A66DCDA448933183871D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Rescue Disk.html" DiskId="1" /> + <File Id="fil069503600DD8A66DCDA448933183871D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Rescue Disk.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp594B5E68E63675F4986F6717BC1F5950" Guid="{1216918B-2AEE-48BE-B956-9BF6F9AA568E}"> - <File Id="fil3AB9FDA0E3D8D0A0BD0C321E1779EC14" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt System Files.html" DiskId="1" /> + <File Id="fil3AB9FDA0E3D8D0A0BD0C321E1779EC14" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt System Files.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp62748E79EC04EBE33DC46770AD65CDCE" Guid="{6A32F378-04F7-42B4-A9B2-7A500BB34071}"> - <File Id="filB21E0ACBD1948FFB662842F1F6A86DAB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Volume Format Specification.html" DiskId="1" /> + <File Id="filB21E0ACBD1948FFB662842F1F6A86DAB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Volume Format Specification.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpE1265CF3CC5E0B487E99D9D5936BB3F4" Guid="{ADFAD315-C3D8-4084-A7F3-FA957429C5F1}"> - <File Id="filDFCE636A6439CD7F236E004E67DBCD23" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Volume.html" DiskId="1" /> + <File Id="filDFCE636A6439CD7F236E004E67DBCD23" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt Volume.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp1C162513D52824629D7C9FAF96054182" Guid="{8772B5F9-85B5-4DB9-AD86-AF6FB0FECF13}"> - <File Id="fil0CC62FF0B0565DF602BDF277B36D1696" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt128x128.png" DiskId="1" /> + <File Id="fil0CC62FF0B0565DF602BDF277B36D1696" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\VeraCrypt128x128.png" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpB5FA2A488D2C7E59E0B52D18820CE00A" Guid="{CF1BAE7D-281D-49DB-A096-51C3B3DFC40F}"> - <File Id="filCEA5B6C14C18E120FCFF7BBD6791B9FD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Volume Clones.html" DiskId="1" /> + <File Id="filCEA5B6C14C18E120FCFF7BBD6791B9FD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Volume Clones.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmpBB1A4A1EB3FBBE5B2BF2752C302CDC2D" Guid="{69F8D869-FB10-436B-8D13-DBBA92BA4B29}"> - <File Id="fil78A530A8C9B138112029FBCC58AE22E7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Wear-Leveling.html" DiskId="1" /> + <File Id="fil78A530A8C9B138112029FBCC58AE22E7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Wear-Leveling.html" Checksum="yes" DiskId="1" /> </Component> <Component Id="cmp9D908DF026E6297D51B6C4A6700092F1" Guid="{567314CF-BEA8-4AA7-A9EF-F0C776EF80E1}"> - <File Id="fil21EEF98CAEE8AF1A7263353EE9D83C38" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Whirlpool.html" DiskId="1" /> + <File Id="fil21EEF98CAEE8AF1A7263353EE9D83C38" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\Whirlpool.html" Checksum="yes" DiskId="1" /> </Component> </DirectoryRef> + <DirectoryRef Id="ENGUIDEHTMLFOLDER"> + <Component Id="cmpD07393B381E6260DBC0496E0A2B3FDA3" Guid="{C61BFF9C-4570-41C9-A145-F1B271DEB2AA}"> + <File Id="fil45D44F58FC42A92ED1B70EEBBF5E5844" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\AddNewSystemVar.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1731A59A75547D8FA04524DDC7AD2988" Guid="{2C8CB716-7D9E-4F50-B9C8-EA1C71E31D48}"> + <File Id="fil478EA0687A41B5B80BC6BF504A376432" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\CertificateCannotBeVerified.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7FFBD1C115BC0813B91129B4078705CF" Guid="{1AA16711-12DB-4B24-9BB6-3E6FB3707516}"> + <File Id="filCA6B7745E3D514309BF2980CAD6AB81A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\CertVerifyFails.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD7F278D2B4ABBD3373A66252A80FF41C" Guid="{CF6447A0-DAF5-45D9-A0A9-F2341D4A4061}"> + <File Id="fil90040C32C21366278AF4F9B0770BB25F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DistributionPackageDamaged.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA3CA3666C6CCD54031801DA1FF7D7AF3" Guid="{AF6C1FA9-6075-4792-A8B5-4F994C94DD06}"> + <File Id="filEC7C429726D3A10F5E8482C64F649E02" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVS2010.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE90376C911384CD5AE71D0E60076C55E" Guid="{09FB6D81-A013-4EC8-96C9-6F3530570555}"> + <File Id="fil9DAFD0DFC5C2FD1CA5B558445885EE11" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVS2019.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2F53ACA5C5C155121B87F5D6E8A68D40" Guid="{F9F2E740-0F1F-4A07-96FA-10A10C1132EF}"> + <File Id="fil8B115B29D371466A76CB62B7AD5560A2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\DownloadVSBuildTools.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp843B9A72B11653FC613E6888545A2914" Guid="{1E547014-186F-4925-903B-6CB62664647F}"> + <File Id="filF0BF15D8539245F90B27EEEB3133F103" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\gzipCommandLine.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5AF6BA98113B1A6C1B9EB20C78BA4ABF" Guid="{E48105F3-0AF3-4E51-B213-C3FB2DFF5D8C}"> + <File Id="fil055DE3608BF413F80BA1EC0678EDAB73" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\NasmCommandLine.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB235C44A240AB4854F159B87373D335B" Guid="{1FE23DB9-D54B-4D87-BF6A-93E617240040}"> + <File Id="fil0DB2655878FFFEDA44CEC84F76FA2FF7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-1.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6F71C2116891CBBDE64C81A41B85C674" Guid="{BE9D55D0-2777-426B-810D-3F00D7EE2A2E}"> + <File Id="fil281EAD12D3A9AA60B13D898D2B3A8A2D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-2.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9DEEBC6C9B984AFFF4F946DBE6084FB3" Guid="{758D1278-6BB5-4E45-9B5E-F6F3A34A6B23}"> + <File Id="fil853E3417AFE131726F5D73ABC94A0C9E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-3.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD474D105652697A5807E9CBF4B0A0AD0" Guid="{CA7287C0-9F39-4E87-96C3-C72B40B7047B}"> + <File Id="fil69F96FBCAB78BCA39AFF3FE63A0464A1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\RegeditPermissions-4.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp451C53B55201540C7B07BBE0A73A6F69" Guid="{7B7D3DB2-8718-44D3-83F5-CAF12773BBEE}"> + <File Id="fil5E97C4B70EB432B740CA4737AC988C13" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectAdvancedSystemSettings.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp75EA034E68DFB3C765DBA38C1EBEA351" Guid="{9DE6B724-30C2-4FD2-9E35-B8F6BF1CF8F7}"> + <File Id="filED3D1BEAF21EAB3BC54BE5C5DCB23F08" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectEnvironmentVariables.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5691E0C2C85E2E1EDE1E41214E222640" Guid="{E86BFFA0-1542-44E5-9FBD-DD986193863E}"> + <File Id="filF6B7FD6E909E158F3D20366602DCE5BA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectPathVariable.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2C05B384BC73DF32992E4B57F3F48AF5" Guid="{E76F018E-CF7B-4713-905E-C39D507AEFC9}"> + <File Id="filF451A122A259FDA8F0302673E33E393B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\SelectThisPC.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp4B12B4AD977CC6FE0C361B0C98C6A236" Guid="{9B3FB9E4-B494-47DB-BFA8-FE8D3B75DEE8}"> + <File Id="fil3FDE27E383E01656E08AE2D9260C0BD6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\upxCommandLine.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp41B2B2449677DAA52A41DC7795E8C33B" Guid="{30500157-0CFC-4CA2-BDFF-1971593C8977}"> + <File Id="filCD8D226F949DCFC55EF0A6729661BD58" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010BuildSolution.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp22F9BF579449876818B8F5773E181345" Guid="{8CE9FBF5-01EA-484E-B3EA-3C4FDC25B314}"> + <File Id="filABE76B7A556C14CD856E0633C9772570" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010Win32Config.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp82302DD1E595AFE99785A70427299C19" Guid="{FB7BBA9C-0585-4818-BCCA-B4AC014814F8}"> + <File Id="filAEE42E97BCFF0018F4B6A833F9B86C75" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2010X64Config.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp18D83E4B99481D3D79B9D2F79E287226" Guid="{4FF6ACE3-D92E-4111-B18C-414B9B4FDA70}"> + <File Id="fil11F306D0D13B2899353C15034177A76C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2019ARM64Config.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2BDF1EA1DD0D9D8D7E67AF7BA1FB0822" Guid="{6F466AFC-FF88-4B98-AEDA-4C42DC342B44}"> + <File Id="fil2AE15ED2C657441A1C5C5B533C846A70" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\VS2019BuildSolution.jpg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp817AF448E496E79AE0E03C16657AE14E" Guid="{6274C2E2-46EF-4C61-8E64-B52862B79206}"> + <File Id="filDBECC226A37181B82CA8C4E0B7C8DE8B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\CompilingGuidelineWin\YasmCommandLine.jpg" Checksum="yes" DiskId="1" /> + </Component> + </DirectoryRef> + + <DirectoryRef Id="ENRUHTMLFOLDER"> + <Component Id="cmp98E10412F1F15FEA92DA14D5D072CC76" Guid="{1E46D8C7-3B34-4500-BA58-F4568C76F8E9}"> + <File Id="filE7158AD1CC1F2BCB188A5C16A3790D24" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Acknowledgements.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA1262CC2F2086CCA8E3EE8DDA77FF086" Guid="{37CFD927-8FD8-4492-AC66-6BFA4BB30057}"> + <File Id="fil00957996E9B98730DB94A7A4B2B8EF74" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Additional Security Requirements and Precautions.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2DDBA3B10DB23CB1F8EA928B46CCA181" Guid="{D6EC8961-CA94-4CEC-BE7D-D775E5632DBF}"> + <File Id="filF02367149B3227BB79F3302B40C135FF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\AES.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp0020DEB1B692BF8C113BCDD9C35CFDAE" Guid="{243B1975-E40B-4922-B01F-E1DF79D9DCC2}"> + <File Id="filF344A4E68FC8509A979BB35B089860B8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\arrow_right.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2ED752BBF695DA0426DC658681B0246F" Guid="{BB1CFCA6-3545-4996-A247-936EF8E2436F}"> + <File Id="fil712F67BC00D210FE2DC6FE54D8330494" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Authenticity and Integrity.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC2831D4EDB2C6161E9AFFA4E118B4690" Guid="{267F1CEA-6284-404A-A515-BE8DB1297CAB}"> + <File Id="fil3994915D664715F5E1D6B8036277443E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Authors.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC8A17F149AF21481048D7258418DBDA4" Guid="{E4DCA4B4-4DD8-4226-A300-FE27FAB153B6}"> + <File Id="filE221B653D1A3D5D92DCF93954A475DCD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Avoid Third-Party File Extensions.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9D4113D4E0B7F3BA260B8B2B533E299C" Guid="{053CD221-5DEA-4B4E-8D72-D4198E8B0098}"> + <File Id="fil12D7FEE7232612FE63E08ADEC345D47A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\bank_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp84EEBEA4353C6BB7FAFBC651A3044D91" Guid="{DBFC0956-2133-4921-801F-0FF9A81C9579}"> + <File Id="fil3B8C024F8DB19366E87F3C5B4D08E1FD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\BCH_Logo_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE3AD138F57F6B7D59BEA109296613C6A" Guid="{FA3C180E-2F56-49BE-BEEA-87EBF0CF7C34}"> + <File Id="fil7F8D2098D3946F3A50507359AA79957F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\BC_Logo_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9C042008F4284C90B114419C6CAEF43C" Guid="{F7B88459-EEB2-48B4-A5A0-D78FF622604F}"> + <File Id="filA38BA4FD3CBD520C4BD1311E55B6270B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp776BD71B225596C1F5DDCBAFBEDC3D8A" Guid="{AA0FAD8B-1DA3-4231-BC21-8D976A89B747}"> + <File Id="fil95352C343D200A572CCA9B5F3216734C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_001.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp71F37A3E4D3EAAE76DDD223623EFEFF3" Guid="{EE33699A-E18F-4EA7-A3CC-7F5164D6B9AC}"> + <File Id="fil515D9625F30D9AA3341D887EB7243A15" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_002.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7B45DBB2FDDDBAAE80C9BED8518D5162" Guid="{03825687-9E7F-43A5-872D-232A6030670B}"> + <File Id="fil26CA7E302A716630C9E25D3222398391" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_003.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp11BA4D17FE816D5B509E1340905776C1" Guid="{512D95A8-5D46-4676-8BE5-8A2043F4FFB1}"> + <File Id="fil7CC8B3097101E0815AB2FAB58EFD1FAD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_004.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp030C129762387E5309D0ECB8DAF65212" Guid="{68CBF198-6F90-42DB-A610-CF6752359A04}"> + <File Id="filD847DDCA3C9A01BFCFC279CE475E38CF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_005.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAC9DB62D88BBBAE847557DB06BD10C23" Guid="{C2B39D01-686B-4628-A562-FE9CE19EE324}"> + <File Id="fil9F166ECFFD49484817A6A83F22A4EB62" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_007.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp4A6D2989B95765B61974E1E22E2ACF78" Guid="{8CC30554-7833-45CB-8F06-3C5CA07941F2}"> + <File Id="fil046DA564BF688137EBC3D8293A148A62" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_008.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD359378B1A7405FAF65C49BE76F981C5" Guid="{DD22690F-0113-4FE0-9EFA-73E0286743A7}"> + <File Id="fil445D2473E8262D0A415272A40D0F92BE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_009.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp70D8557BE97B70FD9EECAAA0EF5CD03D" Guid="{F2991DD2-1070-4268-AAE9-0A067FD4A7B3}"> + <File Id="filC97FA3E5B5F62D52A279889568A19229" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_010.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpDEBA4E7882793204DA1CC9999C05F964" Guid="{1141FB98-70E8-4537-AD6B-E3DA782DD993}"> + <File Id="fil51D1A64B9108C442EF04556269639C8C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_011.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF516F4196B3085018BC093FCBCB58A4C" Guid="{7EEF4F94-A793-4C4C-A380-5059BB91734F}"> + <File Id="fil485A1A150DC757712ED1D373271356C2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_012.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAC8162634F24C0C33B2E3C6864DA4A2A" Guid="{8D4F4D5E-6CCD-4F3A-A9D7-F86FC6678184}"> + <File Id="filB503C8CE72B1330C0F3A7832E62759B8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_013.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB081741BBB46FA24327C9DB71A7B02B8" Guid="{8BEC6350-9486-43F2-8A9F-3C957D4C76AC}"> + <File Id="fil3EE96533748DCCD69CE6AADE0015DF54" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_014.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD4723B9A6D4909DFC0E1B4B4EE660C09" Guid="{262A559D-11E1-44E0-9870-8DF73F86CFBF}"> + <File Id="filB08CDB0AE9AE7A1F9A4F57F341F8DB7B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_015.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp39E9D88B683EA4F12640DA0A65DE3549" Guid="{7BFBE955-1A72-4658-A0F5-245038DA588B}"> + <File Id="fil898074D01F195541018A9ED1241021DA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_016.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp0F2F30410D88E2533026D3C3E4744E34" Guid="{6BAD98D5-E079-4825-8D96-A266EB104820}"> + <File Id="fil6230D2280E85D4BBC55E3BA6A19F1599" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_017.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB5D683C358B00897FA9F0FF22F315D7B" Guid="{305AAA8B-927A-41F2-AB74-9582B16A78AB}"> + <File Id="fil626B6666F3D264B65D1380788A3424C4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_018.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD3CD0A2A3035277B8D5C83DDD56EEC09" Guid="{24C5AF5D-BCF1-4582-AADE-A06ED51E6016}"> + <File Id="fil1C095262FAAF04439797181DF2BCD399" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_019.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpFAF93B91B7847306F97A8F13C9237BBF" Guid="{281FA34F-4494-4EC0-A5AB-206715464D4F}"> + <File Id="fil399630611E57ED34FF5F55A58F6A6EA8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_020.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp110F96A11106F1AC7DD0DB03480BC3AD" Guid="{5328DB01-C257-4D67-A843-BB3CAF7BD6C5}"> + <File Id="fil3D26C3623F74441149A46AF79BDEFBBA" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_021.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD14CBD246BD84D409AC5C9435CB93C69" Guid="{7BF37DFB-6E5C-48C6-A5A5-49F980C62D80}"> + <File Id="fil7430394DC66200EC9A37F3EAA89C5F4B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_022.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp338A05D33900D38A2218604CA622D528" Guid="{FE1A076C-BD66-4AD3-BAFC-F4B729F27453}"> + <File Id="fil6B82AC858902DDA6B13CB462FCA8C2FC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_023.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6AE588318312858B13C37DBB81243BB4" Guid="{EBFDED23-3C6A-4D64-A975-0F5906F1DD03}"> + <File Id="fil143CBEFBDE83CBE94970CA93A007D362" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_024.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp40450814BCB759314CC3FDE6C648C0C4" Guid="{0350A675-CF91-4686-A3EF-1DEAB8F22764}"> + <File Id="fil90C779622EBB339C3AB90FCF647FB159" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Beginner's Tutorial_Image_034.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp8D0D5C8F66B9E9213FACEB65D779E93B" Guid="{823A3D60-4534-497E-88E9-A23C7DAE7B29}"> + <File Id="fil7C200F86B78E2A91BB493FF5F651CEB4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\BLAKE2s-256.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1969CFCA4E8E6853AB60C3E5E84EC96C" Guid="{0636E6EC-8C7D-477E-BF1A-85FB37C9CF76}"> + <File Id="filF963F35BD28A778D78CBD6DACA37987D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Camellia.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp0BF1FE522880BBDA428837E3B646DA5D" Guid="{74D1739C-F0C6-428E-B86B-ED6E77784B6E}"> + <File Id="fil0ACFE35E496076BAFFD2359D7E95CE6C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Cascades.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2ADCCFAA99C96B7E74D50F58AA2DDAFA" Guid="{457851C3-1FB6-4580-8D73-3761F7CF08F6}"> + <File Id="filD0542209DDFBCDFC2ABD1237FBEE184E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Changing Passwords and Keyfiles.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp0E448FAC0CED589DD138E162986FC0DE" Guid="{035ECEC0-9B4E-41FF-A4A4-8EC14B2FB947}"> + <File Id="filA793DC75E1D0F03F15CC0F4D341D43BE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Choosing Passwords and Keyfiles.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp06C8D9A3457DEA62A19ACB286B2E32EF" Guid="{400FCE30-08DD-48AF-9025-6FFFFCBE5D09}"> + <File Id="filED12CF7F85BA168570C78F70F348013F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Command Line Usage.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7447D492A3894509DC750B48E7DCF613" Guid="{9B804653-B3F6-4FCD-98E3-FB314555737B}"> + <File Id="filA6BC7A2C35BF2D2985FC723FD56D3ACF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\CompilingGuidelineLinux.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5C2B87E203BB5FCA4F77B19D3E6BA307" Guid="{7A0933C7-384F-4DAE-B571-D16D1F9EEBB1}"> + <File Id="filA3657AC1CCAAD3DD9B2B804FFC97369E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\CompilingGuidelines.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA5748D4E937680A92DBAE78CE5B2F28C" Guid="{B62CC2F2-FACD-4EBD-BDF6-7CE826624805}"> + <File Id="fil5DB2B097D4C2BADED0282CCCBB289955" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\CompilingGuidelineWin.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6FAAD943919CED1962892A80342F6791" Guid="{A9914433-E735-40E1-A95C-A5B76131C400}"> + <File Id="fil1CF8CA43DFF75AA00E095B0A70374FA3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Contact.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp948EA396F48A342F4EF23F2210CB5B4F" Guid="{7D17553E-3229-4748-99E4-429CAEF47D0A}"> + <File Id="fil9C60823BB1AA224FE34CD4D700B43BC5" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Contributed Resources.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp29F827B72EB9BA3A4BBF4135346BFB3F" Guid="{B828A496-9C99-48E6-AE06-729F28EF3E71}"> + <File Id="fil7C98F44466206CB68570E9E352608D5E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Conversion_Guide_VeraCrypt_1.26_and_Later.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA6461FAA6FF2B690A1950611770B4238" Guid="{6B5E731B-CFFF-4A5A-96AE-73868F17389C}"> + <File Id="fil342E8576E5BD6E8EC8117C02301B29AC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Converting TrueCrypt volumes and partitions.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA386DE1E79E889FA61290114537BDEE3" Guid="{5CAD6EE0-E4B0-459A-B90A-665F13BFAA9B}"> + <File Id="filE3DC8BDB3EF17E11B5B23A05E0A24779" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Converting TrueCrypt volumes and partitions_truecrypt_convertion.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF78CD517DB1E24484B5CC82B2DDD5E9C" Guid="{4E848927-689A-4649-8A22-760F5E52E679}"> + <File Id="filAA3E420FD899F39B025E177868028D1F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Creating New Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBA0D70B7A50226DCD8144689A79ABDCA" Guid="{E57A9C60-1140-4AAA-A1A0-701D1A21B053}"> + <File Id="fil5AD3CE9C014F011BC53CA40A9E6045F6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Data Leaks.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp589D4976F5CF94C27910A8F4EBF29FD5" Guid="{B4BAB52C-05BC-450A-9EAF-537FF9A46DD3}"> + <File Id="filEC6FB28FFC2CD1E5CB26F25B71BA629A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Default Mount Parameters.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpDEF5E40C0360414577A9FB6E9D209C31" Guid="{26B9A786-BA73-4666-A374-7E5CC0592203}"> + <File Id="fil5FDF31D27DD1BDB73A9E5A4C2D589A7C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Default Mount Parameters_VeraCrypt_password_using_default_parameters.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC0FF4C2C070C62B0E55BA14B329A58FD" Guid="{EB3A59EE-B573-4920-BC6A-9151B4B8AED8}"> + <File Id="fil23768A1C9C05F83DB735D9295E237A2B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Defragmenting.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5F3D5E0970DA4DCB5655AEC4AD1C94C5" Guid="{0E1D5043-3EC2-41A8-93C8-3A84310449A5}"> + <File Id="filAC9A11620C67DBAF2AD27878B9C9A2CF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Digital Signatures.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp14BBB28777FE8A9914F4BB38B50C0311" Guid="{6AB068A5-D95F-47D2-BE6B-B7F59867E192}"> + <File Id="fil0E7CF18F39AC92ACA3367FBB71E1C693" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Disclaimers.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp10C79CC28991F4E8A3E33C66D7280D88" Guid="{F6CE703A-6A93-42C1-B40D-3CAF643B5A4A}"> + <File Id="fil251DD3CBCB210AF49D6BD4EBE80CAFC3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Documentation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7E0AF9A50799D06DE12C94A60C834F5D" Guid="{A69B4D59-88C2-43E4-ADA4-9AF2EBEA1B45}"> + <File Id="fil88AE8F1D1D73320B20A12E91039B1D93" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC547B50DD1AB37E959FB18D1AFD9C051" Guid="{B998C0C8-3AB5-4A28-9775-44704A059A5C}"> + <File Id="filD0D938903C2CBD5A5C816A84B0916199" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_Bank.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp716240038B6F46034428E43768E32CA7" Guid="{3F6B140B-980E-4C77-8F23-3042F0DE1232}"> + <File Id="fil81D7649C6E479DA68C7CE5A9FAABD5B6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpEF2FE09A2E8F60EB28ECBA7BEE5E9026" Guid="{FACD44DF-1AFE-47BC-B040-7314EF8901FB}"> + <File Id="filD1253F529C397B15FE6B1C21D2E083B2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_CHF.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp4DE7E89729EE1EE9EEA042F80B412D3D" Guid="{4ED6286F-296E-454D-8C1E-B675F267F0A1}"> + <File Id="fil56E8C2BE62B8D5FBF24CAC9D2BE338F7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_Dollars.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBC866AF7B9269946668A324AD39D08A7" Guid="{2CBC09D3-3308-47D0-9DDC-8F06E1F513F3}"> + <File Id="filC467D47EEF3B27D242F8D55BEC0C3B45" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_Euros.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp59C951F15FE54CBB5EF2528D4AA6F73C" Guid="{6EB86A24-5DED-498B-BC73-7A7F1DDA3048}"> + <File Id="fil311C93950CD02E7B5C437C150B7E11D8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_GBP.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1BCCBDD405E75313F3B3CE6EE8DA86B5" Guid="{DC9B1FCE-BA6E-4B38-8FD5-3E68CEC9B122}"> + <File Id="fil1A20E57E9AE32470876005B2246B9C9D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_PLN.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp3E991C4739DF1DE5475ECE135EE98D0E" Guid="{FA9C68EB-D745-427A-982A-251CA386B625}"> + <File Id="fil5B40D49C27FF86BFF5CC8CDD9D34B25D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_donate_YEN.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF6A11C5F07AADC2DF98D1549024AA5D8" Guid="{C63CD654-EFD2-4C67-AF32-CD69ADF0CE0B}"> + <File Id="fil7804A7A2C59A4FEDB9469EBCC705C5C4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VC_BTC_Sigwit.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp92387146C4EDCAC1653A2FDD573D2695" Guid="{6E26E556-D86B-405F-8772-41B57A62CF0E}"> + <File Id="fil43B20F7F00EF4AF79D0F82FB86BDF1A3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VeraCrypt_BitcoinCash.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAD29968DFA6888826A5718FF6533D96B" Guid="{E26BF267-9896-4A32-B3B1-52FF1771DA1B}"> + <File Id="fil6997FE1AC19191CA5556C409A2B06A66" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VeraCrypt_Bitcoin_small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpECD5EF9F2075A8512411DC0C4A5249D0" Guid="{3225A53B-22E0-4BCA-99A0-E2C1604DDF74}"> + <File Id="filFBCFEB2644899D7672ED7C8B4B93583C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VeraCrypt_Ethereum.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCB8D27F16124CAAC7244A48FFA4AFB7D" Guid="{7E07BDF4-422E-4740-B2B4-D35ECE68FFFA}"> + <File Id="fil5E96F5FACBC48E4D44AF52E7017EDE2E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VeraCrypt_Litecoin.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC65A16FF1BC895E90BBB53B78E68DFD9" Guid="{F06D8C06-FFAD-41BA-9EB6-9B4152D1C5D0}"> + <File Id="fil99117693F262D29831F855AE5C5BE2FB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Donation_VeraCrypt_Monero.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp87F512AEE17E1578EAAE94230A2D42F8" Guid="{39BC9692-4381-4634-928D-1A0DF36CEF23}"> + <File Id="fil849BF471E22B7E5A8E6028B9CE71D955" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\EMV Smart Cards.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp97920FB49AE81562FA7ABFFA9A5DE439" Guid="{4CD7F374-7ABF-4818-B904-415E1ABE4C87}"> + <File Id="filB1351FC0C4B53047D98C8D2C2E74B76F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Encryption Algorithms.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC57C3FF497FC91DB80B6398E7FEE7A64" Guid="{69676767-4954-4E36-BF2C-C8C57E283809}"> + <File Id="fil999EA9470381ED95774B2F30327F42CC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Encryption Scheme.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpACDA6D0F0078725DD4A8708187C76CD3" Guid="{94D0E529-D973-4608-AED7-9BF84D153B93}"> + <File Id="filACFA702EC92AAF197E324F8A4670925F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Ethereum_Logo_19x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCEB5D33CBF8513543D361078523B750C" Guid="{B03D987A-5F64-498D-81C5-8931210167FD}"> + <File Id="fil9DF0E4F06C4CC28FE82B68EA719CA7A8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\FAQ.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5FC13AB774FAACB290717853ADC20FCD" Guid="{5D5F86EF-D567-45BB-9042-C8ACC0D1A64C}"> + <File Id="filC6B2CBE7C0D68BA11C5ABBB141BF9C13" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Favorite Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp725B9ABA14E65E9EFE49157CA4FC128B" Guid="{3F54B3BD-731F-4862-80C6-9B8610DA6C34}"> + <File Id="filF10F025AC0583B894E3286096A01D86C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-au-small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBD55DC12534E09C8553C28F5B5C0FA4E" Guid="{38080305-F2F4-4B27-9416-7D66A6778A5B}"> + <File Id="filAA95BAC6F92E0C3E60810688DFD29980" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-au.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7C45FE83120EA12DB05FC171A06B30AE" Guid="{44347474-FEB5-42B6-B784-DEA6588E94A3}"> + <File Id="fil567D7AAE5C7AD34C3E9CCD97F45A7DA9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-eu-small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA76542EBEEBAFF2C7A5BF5AB2741D4FE" Guid="{52AB5852-823F-44F8-BAAE-6E45841053A3}"> + <File Id="fil0C410338570867504C800558921DF547" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-eu.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9B9F529CBDC007E9FA5CF79E8867DA67" Guid="{660D3EB9-69E9-4C09-A80B-61B685164865}"> + <File Id="filA65F8408CB5D977DB1FB2F2D213C9C1B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-gb-small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp87244E466A2EB7ABF13AA619B977BF78" Guid="{B5D6863C-CB4D-4547-AE1A-1589D58ED59C}"> + <File Id="fil8E1098F49A784F0A7BB739B645B79486" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-gb.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp712EA51FB151C694292EA58C5A578BA6" Guid="{0690E629-B61A-4529-968E-111F8B76CC3A}"> + <File Id="fil051335FB12568EC0300D3074923E2FC7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-nz-small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp870CD5E9E23CF6C9067DEADE20C9FC35" Guid="{2C9B1C3B-A64C-4702-BF0A-6A841EA5DE07}"> + <File Id="fil58E6588D8192387A80BBC90A47D15F5A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-nz.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB006A7FF853B4EBD76D04C32E9455C4B" Guid="{0875F9DA-30F6-4C1F-B8DD-FF0F3DB5322E}"> + <File Id="fil10D204C1119D321DB710C753AE3FCD84" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-us-small.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp472CDC24D7DCA0786CBD55DD01B3C326" Guid="{C9019907-5646-477C-9C10-42E3BAEFB5D4}"> + <File Id="fil7033CEBEB76DFF2B46660583C49940C0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flag-us.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp89C6FF5C5AC2CD9880C5409B5AB83825" Guid="{06FD875A-5E07-497B-B597-6B58C380FDE0}"> + <File Id="filC477A3F4D76A8B461F5C190234398634" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\flattr-badge-large.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6C831E6A491B7EB59D88781A5BFE9F15" Guid="{EB98758E-25C9-46FC-A862-EA5D70B8F995}"> + <File Id="filA731163EA92A35C96170C2E03BB425A4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\gf2_mul.gif" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp60679C4F1990149DFE8EBD00D7C156DA" Guid="{9BD3D120-BDDF-4674-98B2-41AD9EF6AB63}"> + <File Id="filD0CC24199C304D7A8A858CBA7A654B2C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hardware Acceleration.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6382DF988EB9E433728A02875F366B29" Guid="{08193FF0-DE93-4D2D-88FD-EF79D1485504}"> + <File Id="fil190EAE3EEB7E8D6D25C505DF88F3E4A3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hash Algorithms.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6ED341130E7BC5619B617E61C4DB60A8" Guid="{EE5A73E1-801E-4D35-B003-7DD3FA395578}"> + <File Id="filF859FB60E1E6FCFE2743075386E7C44B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Header Key Derivation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp216B8D95DCCC0DBA860DA22728386441" Guid="{9DE55946-949E-4B69-ABCC-9C2CB28D0F60}"> + <File Id="fil67764638227AC03759557FA84F4E45A7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hibernation File.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE4595A43F5FE7BD7D162F3652BA6C266" Guid="{EC6DD328-04BD-40BF-82D4-352C38A83BD9}"> + <File Id="filA7C6D42B98E460E939BC11C81965F139" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hidden Operating System.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7D5BE6FDEA3DE19095769A66D0AE29A8" Guid="{730C3E41-3612-40D4-90F3-CE31171737A1}"> + <File Id="fil0781238BA710BA7239906B2C6683D2E3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hidden Volume.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp61565372125F227105B9AE44241F1967" Guid="{CB7C0BBC-C81E-40B0-B804-868BD85D7176}"> + <File Id="fil78AAC896C033D0BD64B2A21C0375B4A6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Home_facebook_veracrypt.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBC1662DFA34FC9A8F203FDC51697C8A5" Guid="{ECB71BBB-96FC-4118-B23C-15EAC0EF8201}"> + <File Id="fil87BEE86BAAA572C9FCE0B78D72488EF7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Home_reddit.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5EF5D5F4FEB4B57BF58C3046BAD8A1E1" Guid="{27F5DF12-28FB-41CC-9DA8-B2C285095A90}"> + <File Id="fil3F75AFE90F61500851F4A30816C1C0DC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Home_utilities-file-archiver-3.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE9488D44ACC744E76E072585F84C491B" Guid="{9C3FC852-677B-416B-81D0-30C50AFCC315}"> + <File Id="filFDD8D99DEF8FD2AA50A4119C26F6F020" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Home_VeraCrypt_Default_Mount_Parameters.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp4228F912DE70A8E8A341A3B3EB232186" Guid="{7B4D1332-FEF5-4C7E-9F1F-334EF1E3DF23}"> + <File Id="fil1018564094D177036DAC90EED085B81A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Home_VeraCrypt_menu_Default_Mount_Parameters.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp661A873DCAADCA5D6DE5658C1AF6238D" Guid="{7EC01292-7052-43A0-A3D2-4AFB95B17C20}"> + <File Id="filCFEB6318D5A8BE5C7567C50DA1291A8D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Hot Keys.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF8C6E0267E7995D280B8E7F4172C7F18" Guid="{4437A3A8-E9DE-4A0C-8F37-5F87FAE787F5}"> + <File Id="fil6ADBDC7868E643C76B763489C2E6A7A6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\How to Back Up Securely.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6004A52073268319FB67C09279279ACD" Guid="{643BB248-5A1A-419D-B100-35577D6977FD}"> + <File Id="fil24F63F6B8CB269B5C337242605B0CE5D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Incompatibilities.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpEEC16C2DA6C942B7F814FE2ECE9AAF65" Guid="{5FDCA6FF-29D4-4FEA-ACBA-C40632316DDB}"> + <File Id="filB96837EB023E33E1EE33E0B9FD3D2EEE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Introduction.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA116A7CF851D562952FD8F362EF4F15E" Guid="{A40EDCBA-F529-4FE3-A5FA-38443537A282}"> + <File Id="fil09B76C17ACCD566BA33B58E3783195CB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Issues and Limitations.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAA28C1518620F4CA7377132D083B5E31" Guid="{FC4C3276-6E1F-4667-A9D2-B30A5A048DC4}"> + <File Id="fil7363E637A85FB040AE31A8C10D9EA95E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Journaling File Systems.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC384B9F228D8242650A1A48FDE46FADB" Guid="{4C811F2A-F3A7-46DB-9918-1CF2DEB4A21C}"> + <File Id="fil8131C5093DE56CDE509DFC7DADB0393D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Keyfiles in VeraCrypt.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD858F6459F1D5BE26754F7B9A6B256FB" Guid="{0549963C-5BFE-471B-BF1C-3913C2AE310C}"> + <File Id="fil5ABC9680196CA5F82BE0317CCFE7AE4C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Keyfiles in VeraCrypt_Image_040.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD935A23E00BC5621253BAF554A60C48A" Guid="{C69045AC-0379-4C49-B7C7-CC595F754574}"> + <File Id="filA1D369E59AFCAD94F135D1A53959F488" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Keyfiles.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCA290469DDC2BF237F81DDD5B1767EED" Guid="{AF232DD2-C9E9-43B2-BA21-C653C3D78B17}"> + <File Id="fil707DCE82E2DB960CA32D798C9D58BFD0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Kuznyechik.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp72EE25B25C5C68F03DF9176C2D3F8BDD" Guid="{E162CD5B-C72D-4DEE-BD06-048CAB209743}"> + <File Id="fil30D8E2286343AA063BB31ADDD09E8B79" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Language Packs.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp29F705976D3FE416CA69F9A85F81E453" Guid="{6AA40E35-18C4-497A-97B8-1B5739FE9BD9}"> + <File Id="fil8F0F4FE7BE9BC18EB89888D49028E7E7" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Legal Information.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp3092B4A3F28D76A5F41FB2DC967976BF" Guid="{0C7EEAB5-C208-43A0-B276-7803E104A241}"> + <File Id="filFA23C1DA863D0B428EB6C84728997DB3" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\liberapay_donate.svg" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp05C4713E55D9E8032EF515CC96771B98" Guid="{06C44F0D-F6EC-4D04-AFB3-BCC88EF5DC0E}"> + <File Id="fil3EA3BDDE6D7CD02134F6440990EA9D22" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\LTC_Logo_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD979C33BE6277C13010EF93D9FB338C8" Guid="{598B57FA-D03A-41CF-9543-CF7C167A1C41}"> + <File Id="fil460751D6D3A89545E7ADB68946BC9E50" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Main Program Window.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBDF94D6F72E05F0E90815BA6CA48AEAA" Guid="{F3831D53-D041-4BBE-A8F5-5183E1B511C7}"> + <File Id="filB6A639CD358B2CAEC5D91CC50C4BEB6C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Malware.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5F801DCC01F26894D68A6EA08E45B76B" Guid="{ECA81186-9645-4814-A4DB-2423B3E44D50}"> + <File Id="fil5B5FD576468A05E387E8451479346039" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Memory Dump Files.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1F82E220BB2635E789DB76D708745EDD" Guid="{E46AADEA-AC47-4B33-9018-9A4B37107388}"> + <File Id="fil33F329D72F3E01B18BD0E9711CB53724" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Miscellaneous.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9FEF6DBD25CA9AFF6103A75B72D304B2" Guid="{AA5775F0-3653-4146-9CA9-8D832CB20084}"> + <File Id="fil4987E346273D390365EC2E924844B6F6" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Modes of Operation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp1710916CD3A94FB29C9213789A147AE0" Guid="{3BE0A3F7-0B98-4877-B598-F13C3D809D29}"> + <File Id="fil3B8702069522EEF4C41709CEF88CD320" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Monero_Logo_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAA303E0AEBC0E1EB8C2472B1ED65324A" Guid="{18BF4762-B5B2-44DD-809D-47E2500FF274}"> + <File Id="fil5DBD024B36EE31AE69F3FCD351434D83" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Mounting VeraCrypt Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpACAD2B0C89247F272E42D86D48ED6ECC" Guid="{29EE17AF-B34A-456D-BFBF-6CE3884EAD3F}"> + <File Id="filD2991527BE5D0C1F42F6C69FD01376B1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Multi-User Environment.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp4BC713FA989ECC8EC884548781C4F29D" Guid="{191AF27B-1811-4149-9713-2B3913422D32}"> + <File Id="filB4D109A8E9F7C159C41DA988EF4AE5BD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Normal Dismount vs Force Dismount.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2CF52C3BBF31CCD0752A49C11FF294A7" Guid="{0C07FB83-253B-4229-809C-4E1DA30C3626}"> + <File Id="fil4E4C69B10DB0A7BA934182EE4EEBE7A0" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Notation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE60FAB408B216C9ED62A362BC7EE475D" Guid="{E9977A92-ED5A-41B8-8145-A16EE57C3B9C}"> + <File Id="fil02CC195577742491580A891153510D87" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Paging File.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpAB7AC6D28286103D7E729673FEDFCD5C" Guid="{BA71446E-7917-42BE-BAFD-B60F970DE576}"> + <File Id="fil5CD332253AF628426FF803CFA3EEB00E" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Parallelization.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp3E980DF980C84895107EA078801D25F6" Guid="{8BAEEAE1-E52B-468A-8B0A-848F28F9A158}"> + <File Id="fil75BBCC1F9D06DC266552E73F1AD37E55" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\paypal_30x30.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpC84F22C32C2455E14F0833097B100309" Guid="{5B966B3C-CC2C-42CA-AD4B-3B6E61AA8CD6}"> + <File Id="filB60DDE7D449498811CB4503EBFD1627A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM).html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp13BEB53EDC29960F3AD13DEEAB9C92C1" Guid="{EF5A7914-9A73-40CC-8281-C39515F32CF6}"> + <File Id="fil9F16EA0C514E74BABDFA16FF779B2366" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6DA588A2041707855690C560C64C438D" Guid="{6E7A34E8-409E-4A6C-ABCC-A083EF0D85C8}"> + <File Id="fil0FDB5B4BB86CB0DC3DD9A47601F969E4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB03F168BA9DD4275F206E53CED02A12A" Guid="{0448D47D-EA99-49B9-AEF3-ECA71AAF3170}"> + <File Id="fil01744A7B2BAC5451C4CADEA956C6496F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step1.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp673ABA162209C25819DE3CACF4E612D4" Guid="{BD77BAE3-8403-4EEA-8253-53E99452BC4C}"> + <File Id="fil095B72AE4ABC141C50AFC0DFBB6FDE75" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_System_Step2.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2198CDB3A37522808F3C0FE67FEE31BF" Guid="{5C718434-79C6-4A36-9872-9BBAE0E3FD5A}"> + <File Id="fil47899B71D3625A90E35636946C2F9E8A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step1.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6CEA0C62D82A3B53499C2D4EF2C3B5F0" Guid="{EE5F98B8-8F0B-4102-80EE-D019827B79DA}"> + <File Id="filF0DDC36B8AFF23D140418C8E83CC7E7F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Personal Iterations Multiplier (PIM)_VeraCrypt_UsePIM_Step2.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7FBF805189D05F4E3E1197B6024D6583" Guid="{37E0E34D-7428-4F2B-B1A5-B5A5E447A54D}"> + <File Id="fil02F7FC5545130C979CAE47352812B471" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Physical Security.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp37C51862BC6949DB6195DC1A9FC37855" Guid="{E64AAA0F-4F7C-467E-8D46-EBDF6A21B6CD}"> + <File Id="fil3388DF9F080840CA1803899800611431" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Pipelining.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB12223A6EEF742CCFB738D9C8B708ED9" Guid="{72C5B029-9A91-41B1-951A-35C2F6DE8212}"> + <File Id="fil011529FF2DB96D173D1A002C4ED91EA2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Plausible Deniability.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF4B2DDF581FADDF14E3613D517675CE0" Guid="{6244D574-96CE-49E3-9CEE-AC6BC0073C7E}"> + <File Id="fil3CBD4B3C22495E5B593AE08E3A25FAD8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Portable Mode.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpBCCD12E77FAEA515D6C1555B7823E169" Guid="{9AC6C96F-2972-465D-BA9D-27CA21657D44}"> + <File Id="fil96C282D40ED5948DB9DE6EE18087FDB1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Preface.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp32627BA5A52D1C2FD2648C6907F4A00E" Guid="{CA2EE0D9-F48F-4955-90FF-CDE3EC30A414}"> + <File Id="filF6F199A516A1E59EDAFF7B2C94125326" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Program Menu.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7A44CB40DFC859E66D7CC2582EF9948D" Guid="{7ED5946B-15C3-4319-9392-745E1993CD7E}"> + <File Id="filE29BD05D74CF7147C16015D26E0D0965" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE819E5D393DD7BCB4D1C101FFFE6FB0E" Guid="{D0ACBBAE-6836-4C13-B7DB-B0F4C7814963}"> + <File Id="filE8C345D68AC9CD17F27D1775FE52DFA8" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes_Image_027.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA29ACAD11D850472C56137504F770B8F" Guid="{92B65549-F99C-425F-AC08-B241A4D489D4}"> + <File Id="filFAE8075438DD33C16F4374B435420976" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes_Image_028.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA2581CD77714E8D6C2A4DAA258590E29" Guid="{CE7715E9-7231-45B4-A467-D9C4E57C3DC9}"> + <File Id="filCC0A38CA5F69C4A5769E47C179450A09" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes_Image_029.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp3F6C602C80B5711DE3EDD2FE8EAFD00C" Guid="{CE514A3A-3FA7-4709-BF44-9AA7983E2085}"> + <File Id="filC9627DF124341B321750B55B59E0DE93" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes_Image_030.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp30C5A7CA791767CAD2E9E124826EE047" Guid="{20BF8298-08F8-45D4-B3F8-711CCF7D232B}"> + <File Id="fil3F8845ED4FC6FB48333245942CFCF281" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Protection of Hidden Volumes_Image_031.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp770DEAD9D0C6D2439CA86800A5709567" Guid="{8E54D7E5-AD67-4821-A89E-82CD481383FE}"> + <File Id="fil53F6F8C9562DA16D04B3676A819074DE" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Random Number Generator.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF8CB44545962DB01EC6DD9DFADA36FEF" Guid="{A0BCF67F-F6BD-43AA-8621-509DC4C098FF}"> + <File Id="fil926AD3DE34292736661E4121511E2C33" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Reallocated Sectors.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp8468AE251FAE8743371ADE14FEA935F7" Guid="{1107B9A1-0CD0-42EC-BB0E-FD9B36C2B389}"> + <File Id="fil94E6A42A2F5941B37BFA7B89E0013269" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\References.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD2BCE21F32CF98AF542769B408047D4E" Guid="{0211D943-81B4-41F1-986B-BC7C1F67BB12}"> + <File Id="fil369EA0C6D2CD0395EB1867686381962B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Release Notes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA1B275EE180C48643BFF410ED187E170" Guid="{702881C1-BF01-41FF-9E2F-41B41D7DCA41}"> + <File Id="filCA203D40F4E3E621019FDB803CCAC360" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Removable Medium Volume.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2458A9EEA35AAC6F7AA66C71F2C8E500" Guid="{82D7913B-B2EB-4721-AD4F-8C6C3A0E4205}"> + <File Id="fil7B2E2AC531EAA5E908E9FFE7B78141F9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Removing Encryption.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp725AEB3BD6705908D3DDDC49D446EEDA" Guid="{FBABFED7-B8A0-4118-8E71-78BBB5C9727E}"> + <File Id="filCB5E6D9EAC9BDF471001523E6BCDE4F9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Security Model.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp84C361E84DB09C711566B58D9822B3A4" Guid="{EB330FA8-0E12-4840-AD03-7490B7A379D8}"> + <File Id="fil69B171CC7FFA1445028EBBD77CC5C07A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Security Requirements and Precautions.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpEAC38538AB52AD68B5B36DEBE9310DDE" Guid="{7A28FE9A-1921-441B-BDB5-A587A8C232B4}"> + <File Id="filFAA0F1D9008EE05BEF57A6F603A76E56" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Security Requirements for Hidden Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7B700E12FA433825A9ED08182F8CF6A6" Guid="{DC0198A1-6AA0-4D03-8BEC-6046C0619847}"> + <File Id="fil651B93A431120CEA3EC491F3C5FC86C9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Security Tokens & Smart Cards.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp8548A76FB3F15F37E8690D54D9E37153" Guid="{8334F668-DBC2-42BC-8000-B4306206F69A}"> + <File Id="filFC7609F5E8D8B008DC89C72B23DD087A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Serpent.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp84AFAC0919E0FDAB5B0C943837BB10FB" Guid="{1C918891-7177-4955-B617-01A03190C47B}"> + <File Id="fil661E94A96B6BEF3A4929BC4C817D8D61" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\SHA-256.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7E863093EB77CAFCE23926751F601D06" Guid="{C9915AF7-A108-45EB-B2D2-8DF7FFE208D6}"> + <File Id="filEA2C97401DDFC0ECF10A85463E6A9ACB" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\SHA-512.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp88CC92142E3E491F76F7BE7582508F44" Guid="{B6C13DA0-2B05-4A3F-8B47-3FD0CE40336D}"> + <File Id="fil4FD6057086DCA9E013B009CD28709AB1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Sharing over Network.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA65F33B67588CC31BC7CAE2E2C651CB6" Guid="{B68A85A8-7B2B-4A64-9ADB-C0C0172A6204}"> + <File Id="fil16376E30B9EFAD82C45D2317FC963F7B" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Source Code.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp78D7D716B5B1FE70B04CF6A10B38E34F" Guid="{AEC8783E-96C2-4655-9EF2-27B26B43DEC9}"> + <File Id="fil508F4406283C4BD07CF4DBE0DAEB7FC1" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Standard Compliance.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF86B2467041088054881E7ED51D3AA2F" Guid="{DC9E4430-E848-4FCB-BDB5-40760F9F986B}"> + <File Id="fil4AD4BCDE7BA1C473CC4B8B6D8041DE57" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Streebog.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp219FFB7AC8A9CAE559B96D663382362F" Guid="{B926CCF9-C3C8-4A62-BED8-C2AF0B7CE1F6}"> + <File Id="fil9772FD94EFCC6A8BC4FE0C976F15653C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\styles.css" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCEA5EA46BBB2A62A8D881B31198C3386" Guid="{999DF0BE-0315-4E9D-99B7-A475AD95B12A}"> + <File Id="fil893681FE743A9EAE666520EE9F91C330" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Supported Operating Systems.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp491B948F4AC657873C77A063196DE773" Guid="{8D0D4082-3C1A-442B-8FCF-215B528AE79B}"> + <File Id="fil665656A640FCE92565333BD4E2254E5D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Supported Systems for System Encryption.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpEE20C9B71CFB2E466F13C6FC9BF04E09" Guid="{F29CA5C6-3F60-456B-8B2F-59E4D98B61D2}"> + <File Id="fil94ACC853FABE497736A2E73C65A6669C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\System Encryption.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp2B15CF0AFC8F3437B3049F59B0EF7601" Guid="{0C1EBA52-CC88-4A22-A707-F231FFB26915}"> + <File Id="fil1AA50714A76A911B470753E3FD5451F9" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\System Favorite Volumes.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp785E1DB76BBDEBFD70EA4BF62650054A" Guid="{49494907-7147-465F-96CA-7BA67E2D3BE0}"> + <File Id="fil0746875D7F30D72D84AE6F83F41B3215" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Technical Details.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp5F637265DB84736905EE09ED2ECC69A6" Guid="{5FF3DAAE-0A13-4602-AED4-344CB6876831}"> + <File Id="fil10E1AD2C9A7D2F295A4DCA9818BA5B3C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Trim Operation.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCBFB249454B517E4B7449B61557EACC9" Guid="{C89253D6-DE56-4052-A7D6-11FA96A9A1BE}"> + <File Id="filCE15EF3AA58605A26EB7AAE54A24FB28" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Troubleshooting.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp81CCD244B1F892AE169DD7F2A41000C5" Guid="{D079F524-A3BE-4689-8A2D-731031B3AABB}"> + <File Id="filAEB2FE1EAE65A54C48CD0ADC3944A226" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\TrueCrypt Support.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp233B1C3979F13771F5C1FD8DFF4D4606" Guid="{16A99EC8-4714-4AAF-A5C9-382A644B2EA3}"> + <File Id="filD07969409DE262F565120CE8C0039DF4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\TrueCrypt Support_truecrypt_mode_gui.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp21805FDD48B222E6357FC4461C6F3102" Guid="{A19DAAB6-54C4-4D43-992B-2FBEF3CBC4CD}"> + <File Id="filE17C724D3B33C0C3E547D99AFF866301" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\twitter_veracrypt.PNG" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp0D80FF102A8D89F5A82D722082F11599" Guid="{5DF42C4E-903A-4738-931D-FDD1CFBB761F}"> + <File Id="fil166CE41AE74FFA92BC4E3646C557F0B2" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Twofish.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp6D7F31C4B7308F5BA7E90B1ADD7038F0" Guid="{14D2850F-3AC3-4140-AF74-A640013A6CB5}"> + <File Id="fil38CE2A927CF9846606D0621A7D6A0FDD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Unencrypted Data in RAM.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7F598B7CD8D0338B1D394D65C681B267" Guid="{C17FBA85-E06C-4B94-9752-18DED3B73621}"> + <File Id="fil17BFC70CA94E4EBC98B25B5C8BD92541" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Uninstalling VeraCrypt.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpD9A9E41D1F43ECC44D1385DAF2D8FB60" Guid="{70C90DB6-D380-4EEE-81EC-F8277951FF95}"> + <File Id="fil969A4AE7B65954FDEC10561CE141BDBF" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Using VeraCrypt Without Administrator Privileges.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp9B9A53A0C6DD95A6630C0210F3BB18E3" Guid="{0B15B80D-CBED-4819-B443-4D8E2993F489}"> + <File Id="fil84C3A46EE20192B924C3D7A490BC1D80" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Background Task.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpB930876C3A86169D30AD296E2E8C8BB5" Guid="{83162AE8-15C0-4CD8-BD2E-7443B1DCF9B6}"> + <File Id="fil6C374CD9BC01F8F027BAB95107ABF7AD" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Hidden Operating System.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp02C9FCDEDD4174BB86092C3FC74686F0" Guid="{BF81515A-3967-4F72-BDAA-E34D98889079}"> + <File Id="fil6AE74A78DE657603388F9429170F121A" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt License.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp851C5E0A0D76AE035089E9529277A1F0" Guid="{6C87B442-D74A-4337-AAB1-967B2C1E05A9}"> + <File Id="fil07431A77C5E9494D4C4B945BB32F65AC" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Memory Protection.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpE6741DB4F8619935F0A2A35131BD3237" Guid="{E2230E40-DF2F-4A1A-8C65-A0F24DC8BB9B}"> + <File Id="fil8024C54A5F73498199A9DD6A357AD5C4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt RAM Encryption.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp661B947BA59FB91045269E4D99CF8CD5" Guid="{FC919CFE-CBDF-4E2F-8D01-1084A209356A}"> + <File Id="filC33A33ED6A2F9A8C3E8E529D88698CD4" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Rescue Disk.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp7FE90DA6D2CB3D2F620DFB67DBE5FBD7" Guid="{89C70FA3-77EB-4376-BF5A-528B616529A0}"> + <File Id="filA87A6F40D58E4DCFDE65BA47AD254E7D" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt System Files.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp03CC22A1DFFB0DB0AE4FBE6BDD0EB1AD" Guid="{0B11D197-21A6-4B9D-9FA8-551891F5BEE1}"> + <File Id="fil5D04F8DF1FECF8D4F4632DDF068F5B46" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Volume Format Specification.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp747C6DC3F1F94C8C379E8894CB58CC1E" Guid="{376A3808-5C87-42B1-B99F-A66EBBAF5AF0}"> + <File Id="fil2F7DDAEFCD182B864F9EF2F68E64FF90" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt Volume.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmp568BC886045DD9FA8CF128F42A72561F" Guid="{EFF6758A-D620-4A1C-A36C-F5F85C5FB513}"> + <File Id="fil944946E61E0A28EDE45AEDF5C637842F" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\VeraCrypt128x128.png" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpF58038EF3D3DCDDB51D498784BD02F0E" Guid="{8D8C09C0-8AD6-461C-9F64-8946CEDAF6A4}"> + <File Id="fil66E62E8A04016A2B6EC83AB990C5D219" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Volume Clones.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpA10ECE6646C3403587F5EA05B65F9E07" Guid="{E55A3BBF-F1DE-451E-9479-1A4987C17F45}"> + <File Id="fil52462FF21FC5B0BD710796D4FF9CA66C" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Wear-Leveling.html" Checksum="yes" DiskId="1" /> + </Component> + <Component Id="cmpCB7AD9B47FC8C557168958B7EC0363D5" Guid="{5FC67C64-1AE4-49E0-8341-438316E349E9}"> + <File Id="fil025AA83D381AD8CED0AB1CA421211A87" KeyPath="yes" Source="$(sys.CURRENTDIR)\docs\html\en\ru\Whirlpool.html" Checksum="yes" DiskId="1" /> + </Component> + </DirectoryRef> + <!-- Refer to Desktop folder in order to install files in it (shortcut) --> <DirectoryRef Id="DesktopFolder"> @@ -1271,6 +1891,7 @@ <ComponentRef Id="cmp4350812363930B900E24C845940DF416" /> <ComponentRef Id="cmp1DD254125CF07901EACECC70930818B0" /> <ComponentRef Id="cmp8C9E97CFD69D3BCB44B84D886720F3FC" /> + <ComponentRef Id="cmp8EEB5407564497843BCFB99ECD7450CD" /> <ComponentRef Id="cmp2BC45D6EC406DDC470E8501442A7AF68" /> <ComponentRef Id="cmp74A0CA1914A6C6FE33D76DE1C01C676D" /> <ComponentRef Id="cmpC186D3472CE1EC872FF1B0CF3682B3B6" /> @@ -1281,6 +1902,7 @@ <ComponentRef Id="cmp46E5A0DB48A03A91267C97A664BD9BD4" /> <ComponentRef Id="cmp95BAB91FA0B7E37D5B9343478899CC75" /> <ComponentRef Id="cmpE73E4CCF9F6EC39998B9BE35E43768CC" /> + <ComponentRef Id="cmp8E5262918FDC1B2986951E925B0B9AA5" /> <ComponentRef Id="cmp28EEAA4B2230460BDDA61DEFBC71A905" /> <ComponentRef Id="cmpCFF4CB46421F1A713D45607393ED9B90" /> <ComponentRef Id="cmp31601B4199D0CD3977758A3F2B63CDE7" /> @@ -1289,6 +1911,7 @@ <ComponentRef Id="cmp2F1F644C870AFF8970FE18AF2CD151C4" /> <ComponentRef Id="cmp4B8E0B5A7B7A8BE4267C722B1434E4CF" /> <ComponentRef Id="cmp84BB49D30BDBB4212707D14B7A9C13F1" /> + <ComponentRef Id="cmp6097F5CB407EFCDADFEA02548151AD81" /> <ComponentRef Id="cmp406E3BE632055CDDE1E42F45E31318DC" /> <ComponentRef Id="cmp4E363AF94947A27A4E9CF57C69E6DE54" /> <ComponentRef Id="cmp562F7970AF2F9EF535AC21A84C7229D1" /> @@ -1320,14 +1943,16 @@ <ComponentRef Id="dcs_tpm_owner_02_pdf" /> <ComponentRef Id="disk_encryption_v1_2_pdf" /> + <!-- C:\Program Files\VeraCrypt\docs\html\en --> <ComponentRef Id="cmp5A2505C1E4CE33EAC578A8D1C8C505D2" /> <ComponentRef Id="cmpE985CD1A96188861286D758A12A1D0A1" /> <ComponentRef Id="cmp310514F655B6D66F5308A5823B0AB691" /> <ComponentRef Id="cmp0664DF8B1FE440C02B1E20D2F23C2CDF" /> <ComponentRef Id="cmp2934E77CB835216789F88BD686160A94" /> <ComponentRef Id="cmp688E76C9A297923D616068E33A6A4F49" /> + <ComponentRef Id="cmpC40B9AEA2BA26327EDBF8EE050CB076B" /> <ComponentRef Id="cmp2ABB10C0A5AC0F1084EDF94E0FDFFD09" /> - <ComponentRef Id="cmp32E7F4F5C0F44D00B53E3946E7E1FCF9" /> + <ComponentRef Id="cmp793A7E676882B650FFCEE4F41B92CB85" /> <ComponentRef Id="cmp989B890D94671F634D04D8F945090F21" /> <ComponentRef Id="cmp109BF0667C5A7B7036CCAAD9B29D9449" /> <ComponentRef Id="cmp82ABD3094B751094F3A49CD338A3713D" /> @@ -1362,33 +1987,10 @@ <ComponentRef Id="cmp3858A4BB7577362DE87F4485575DFC99" /> <ComponentRef Id="cmpA06B9542AEB64F96BB784F47800158A8" /> <ComponentRef Id="cmpACD4069DDF564A8DAB5D542BB8850131" /> - <ComponentRef Id="cmp735FE6B2F10C43019E11256864209EBC" /> - <ComponentRef Id="cmp89BB363FF83EBA271361A4208E069DA9" /> - <ComponentRef Id="cmp5115B3C02C1C0CF975E4B7C3152C163A" /> - <ComponentRef Id="cmp3E70583F999D652B21E6E2D526666F61" /> - <ComponentRef Id="cmpC2D0D30677874908C48FF8A921712958" /> - <ComponentRef Id="cmp88EB50D9762FA92B2E52313A7C92F2DD" /> - <ComponentRef Id="cmp3DABA5B6F2E779D915E1B8D680AE7855" /> - <ComponentRef Id="cmp2EA15F417E5EE9D31E028263C137695F" /> - <ComponentRef Id="cmp51D438A1152A65EAD414012A5EAEA2CA" /> - <ComponentRef Id="cmpD52CCEF7A4A330F26D3B3F7355D03646" /> - <ComponentRef Id="cmp1A9BFDDFF15FF47166075F319B97BB6E" /> - <ComponentRef Id="cmp320762048B274197D27F739096C4A23A" /> - <ComponentRef Id="cmp952051BDCF309CAEB1D62701560D8F78" /> - <ComponentRef Id="cmp6AB232B7503BC35E25CB33C789242482" /> - <ComponentRef Id="cmpE8ABDCD58C9636346FAE7E941A38CA6E" /> - <ComponentRef Id="cmp9CD73EB218D7148E55F141E31AEC9D8C" /> - <ComponentRef Id="cmpE504F295E3ED5CEBDCF231608F6757B2" /> - <ComponentRef Id="cmp84A8D3A9BF75ED8047B7DEAB02F26003" /> - <ComponentRef Id="cmp63A4BE623C0E3F77B3BFA5B467C33A1A" /> - <ComponentRef Id="cmp63CE6B664C7396B79B1B28591EEC72B9" /> - <ComponentRef Id="cmp4D6100E03DC3B05F17A7E2BA4AAF1EA1" /> - <ComponentRef Id="cmpB7641BE40D4D1642AB3647B669008A94" /> - <ComponentRef Id="cmp4DB96DA8172D79B63A7FBE08E016A280" /> - <ComponentRef Id="cmp615D3647A56F3ED6F0766CEEE9EFCF9F" /> <ComponentRef Id="cmp9FDD7E3C06564AF29700B82B19BC0501" /> <ComponentRef Id="cmp90AB4CF273108F47223E3432838CDE37" /> <ComponentRef Id="cmpB9A0461BF7CF75538111B088C986A62F" /> + <ComponentRef Id="cmp33C4617DBE37ED14B978BC4770F0C3F8" /> <ComponentRef Id="cmpD8C7B52BC03709FAB2642B93BFE4FFE8" /> <ComponentRef Id="cmpFD6EB163EA6B74C4F59FF04D2B3796CC" /> <ComponentRef Id="cmp612D2E75E857D164665BE8CA37570D04" /> @@ -1408,11 +2010,13 @@ <ComponentRef Id="cmp0FF3027C2662D967ACB4B01BA7BC85F9" /> <ComponentRef Id="cmp3FC9C0126A2074CAABCF73197358F824" /> <ComponentRef Id="cmp1830E220882FBA276350032258B478AA" /> + <ComponentRef Id="cmp433CCCF103F2A8AF57F9FC528232C836" /> <ComponentRef Id="cmpE5D6E9DF3EE1301C6D5A4F44362BCE96" /> <ComponentRef Id="cmpB7B429D414CF1DD05A4B70CE94E343F7" /> <ComponentRef Id="cmp00845B9781D5633702C834BCB4EB93D1" /> <ComponentRef Id="cmp47F92D029E335F7865F8ACB30763FED2" /> <ComponentRef Id="cmpF3B90B0C1F316854E9142B22783ACF19" /> + <ComponentRef Id="cmpBD37FB188B29DB82A15EBC9C1DB66F94" /> <ComponentRef Id="cmp2EC17F48BC15C5405D2DB40FC6E01745" /> <ComponentRef Id="cmpE00F8980768E14DF59474B5CB3D84041" /> <ComponentRef Id="cmpD17B73F5892E45458E960025558B3452" /> @@ -1463,6 +2067,7 @@ <ComponentRef Id="cmpA80443C3767E3E51F3DE88BFD0D7A33B" /> <ComponentRef Id="cmp214446AAABEBAC0C3827B8977083FAE2" /> <ComponentRef Id="cmp4AF022868FE6883520C700676C43B15D" /> + <ComponentRef Id="cmp340BBEC25292C3BE778BA8F158DB87B1" /> <ComponentRef Id="cmpC27AA2C4496C9EFA95DCD663B031B5D0" /> <ComponentRef Id="cmp9CBBC8311BBFC54C8DC1162BB17E5AED" /> <ComponentRef Id="cmp033461B0777614621A2ED7B4E2B08D55" /> @@ -1521,6 +2126,8 @@ <ComponentRef Id="cmpE0F5E8A2D6FEF181686370F0E1EAC632" /> <ComponentRef Id="cmp46B2E8BCD50BD668153E793EB737BC39" /> <ComponentRef Id="cmp0305CC2824E44F697B402E56A0CD1754" /> + <ComponentRef Id="cmp9DD3085A37E22E035A65C74A5B9C209E" /> + <ComponentRef Id="cmp1FFF1F3DF3F162C4AEDA7871C7886618" /> <ComponentRef Id="cmp0E00CBDCB82A904FD6AD82E458CA6AA7" /> <ComponentRef Id="cmp594B5E68E63675F4986F6717BC1F5950" /> <ComponentRef Id="cmp62748E79EC04EBE33DC46770AD65CDCE" /> @@ -1530,6 +2137,226 @@ <ComponentRef Id="cmpBB1A4A1EB3FBBE5B2BF2752C302CDC2D" /> <ComponentRef Id="cmp9D908DF026E6297D51B6C4A6700092F1" /> + <!-- C:\Program Files\VeraCrypt\docs\html\en\CompilingGuidelineWin --> + <ComponentRef Id="cmpD07393B381E6260DBC0496E0A2B3FDA3" /> + <ComponentRef Id="cmp1731A59A75547D8FA04524DDC7AD2988" /> + <ComponentRef Id="cmp7FFBD1C115BC0813B91129B4078705CF" /> + <ComponentRef Id="cmpD7F278D2B4ABBD3373A66252A80FF41C" /> + <ComponentRef Id="cmpA3CA3666C6CCD54031801DA1FF7D7AF3" /> + <ComponentRef Id="cmpE90376C911384CD5AE71D0E60076C55E" /> + <ComponentRef Id="cmp2F53ACA5C5C155121B87F5D6E8A68D40" /> + <ComponentRef Id="cmp843B9A72B11653FC613E6888545A2914" /> + <ComponentRef Id="cmp5AF6BA98113B1A6C1B9EB20C78BA4ABF" /> + <ComponentRef Id="cmpB235C44A240AB4854F159B87373D335B" /> + <ComponentRef Id="cmp6F71C2116891CBBDE64C81A41B85C674" /> + <ComponentRef Id="cmp9DEEBC6C9B984AFFF4F946DBE6084FB3" /> + <ComponentRef Id="cmpD474D105652697A5807E9CBF4B0A0AD0" /> + <ComponentRef Id="cmp451C53B55201540C7B07BBE0A73A6F69" /> + <ComponentRef Id="cmp75EA034E68DFB3C765DBA38C1EBEA351" /> + <ComponentRef Id="cmp5691E0C2C85E2E1EDE1E41214E222640" /> + <ComponentRef Id="cmp2C05B384BC73DF32992E4B57F3F48AF5" /> + <ComponentRef Id="cmp4B12B4AD977CC6FE0C361B0C98C6A236" /> + <ComponentRef Id="cmp41B2B2449677DAA52A41DC7795E8C33B" /> + <ComponentRef Id="cmp22F9BF579449876818B8F5773E181345" /> + <ComponentRef Id="cmp82302DD1E595AFE99785A70427299C19" /> + <ComponentRef Id="cmp18D83E4B99481D3D79B9D2F79E287226" /> + <ComponentRef Id="cmp2BDF1EA1DD0D9D8D7E67AF7BA1FB0822" /> + <ComponentRef Id="cmp817AF448E496E79AE0E03C16657AE14E" /> + + <!-- C:\Program Files\VeraCrypt\docs\html\en\ru --> + <ComponentRef Id="cmp98E10412F1F15FEA92DA14D5D072CC76" /> + <ComponentRef Id="cmpA1262CC2F2086CCA8E3EE8DDA77FF086" /> + <ComponentRef Id="cmp2DDBA3B10DB23CB1F8EA928B46CCA181" /> + <ComponentRef Id="cmp0020DEB1B692BF8C113BCDD9C35CFDAE" /> + <ComponentRef Id="cmp2ED752BBF695DA0426DC658681B0246F" /> + <ComponentRef Id="cmpC2831D4EDB2C6161E9AFFA4E118B4690" /> + <ComponentRef Id="cmpC8A17F149AF21481048D7258418DBDA4" /> + <ComponentRef Id="cmp9D4113D4E0B7F3BA260B8B2B533E299C" /> + <ComponentRef Id="cmp84EEBEA4353C6BB7FAFBC651A3044D91" /> + <ComponentRef Id="cmpE3AD138F57F6B7D59BEA109296613C6A" /> + <ComponentRef Id="cmp9C042008F4284C90B114419C6CAEF43C" /> + <ComponentRef Id="cmp776BD71B225596C1F5DDCBAFBEDC3D8A" /> + <ComponentRef Id="cmp71F37A3E4D3EAAE76DDD223623EFEFF3" /> + <ComponentRef Id="cmp7B45DBB2FDDDBAAE80C9BED8518D5162" /> + <ComponentRef Id="cmp11BA4D17FE816D5B509E1340905776C1" /> + <ComponentRef Id="cmp030C129762387E5309D0ECB8DAF65212" /> + <ComponentRef Id="cmpAC9DB62D88BBBAE847557DB06BD10C23" /> + <ComponentRef Id="cmp4A6D2989B95765B61974E1E22E2ACF78" /> + <ComponentRef Id="cmpD359378B1A7405FAF65C49BE76F981C5" /> + <ComponentRef Id="cmp70D8557BE97B70FD9EECAAA0EF5CD03D" /> + <ComponentRef Id="cmpDEBA4E7882793204DA1CC9999C05F964" /> + <ComponentRef Id="cmpF516F4196B3085018BC093FCBCB58A4C" /> + <ComponentRef Id="cmpAC8162634F24C0C33B2E3C6864DA4A2A" /> + <ComponentRef Id="cmpB081741BBB46FA24327C9DB71A7B02B8" /> + <ComponentRef Id="cmpD4723B9A6D4909DFC0E1B4B4EE660C09" /> + <ComponentRef Id="cmp39E9D88B683EA4F12640DA0A65DE3549" /> + <ComponentRef Id="cmp0F2F30410D88E2533026D3C3E4744E34" /> + <ComponentRef Id="cmpB5D683C358B00897FA9F0FF22F315D7B" /> + <ComponentRef Id="cmpD3CD0A2A3035277B8D5C83DDD56EEC09" /> + <ComponentRef Id="cmpFAF93B91B7847306F97A8F13C9237BBF" /> + <ComponentRef Id="cmp110F96A11106F1AC7DD0DB03480BC3AD" /> + <ComponentRef Id="cmpD14CBD246BD84D409AC5C9435CB93C69" /> + <ComponentRef Id="cmp338A05D33900D38A2218604CA622D528" /> + <ComponentRef Id="cmp6AE588318312858B13C37DBB81243BB4" /> + <ComponentRef Id="cmp40450814BCB759314CC3FDE6C648C0C4" /> + <ComponentRef Id="cmp8D0D5C8F66B9E9213FACEB65D779E93B" /> + <ComponentRef Id="cmp1969CFCA4E8E6853AB60C3E5E84EC96C" /> + <ComponentRef Id="cmp0BF1FE522880BBDA428837E3B646DA5D" /> + <ComponentRef Id="cmp2ADCCFAA99C96B7E74D50F58AA2DDAFA" /> + <ComponentRef Id="cmp0E448FAC0CED589DD138E162986FC0DE" /> + <ComponentRef Id="cmp06C8D9A3457DEA62A19ACB286B2E32EF" /> + <ComponentRef Id="cmp7447D492A3894509DC750B48E7DCF613" /> + <ComponentRef Id="cmp5C2B87E203BB5FCA4F77B19D3E6BA307" /> + <ComponentRef Id="cmpA5748D4E937680A92DBAE78CE5B2F28C" /> + <ComponentRef Id="cmp6FAAD943919CED1962892A80342F6791" /> + <ComponentRef Id="cmp948EA396F48A342F4EF23F2210CB5B4F" /> + <ComponentRef Id="cmp29F827B72EB9BA3A4BBF4135346BFB3F" /> + <ComponentRef Id="cmpA6461FAA6FF2B690A1950611770B4238" /> + <ComponentRef Id="cmpA386DE1E79E889FA61290114537BDEE3" /> + <ComponentRef Id="cmpF78CD517DB1E24484B5CC82B2DDD5E9C" /> + <ComponentRef Id="cmpBA0D70B7A50226DCD8144689A79ABDCA" /> + <ComponentRef Id="cmp589D4976F5CF94C27910A8F4EBF29FD5" /> + <ComponentRef Id="cmpDEF5E40C0360414577A9FB6E9D209C31" /> + <ComponentRef Id="cmpC0FF4C2C070C62B0E55BA14B329A58FD" /> + <ComponentRef Id="cmp5F3D5E0970DA4DCB5655AEC4AD1C94C5" /> + <ComponentRef Id="cmp14BBB28777FE8A9914F4BB38B50C0311" /> + <ComponentRef Id="cmp10C79CC28991F4E8A3E33C66D7280D88" /> + <ComponentRef Id="cmp7E0AF9A50799D06DE12C94A60C834F5D" /> + <ComponentRef Id="cmpC547B50DD1AB37E959FB18D1AFD9C051" /> + <ComponentRef Id="cmp716240038B6F46034428E43768E32CA7" /> + <ComponentRef Id="cmpEF2FE09A2E8F60EB28ECBA7BEE5E9026" /> + <ComponentRef Id="cmp4DE7E89729EE1EE9EEA042F80B412D3D" /> + <ComponentRef Id="cmpBC866AF7B9269946668A324AD39D08A7" /> + <ComponentRef Id="cmp59C951F15FE54CBB5EF2528D4AA6F73C" /> + <ComponentRef Id="cmp1BCCBDD405E75313F3B3CE6EE8DA86B5" /> + <ComponentRef Id="cmp3E991C4739DF1DE5475ECE135EE98D0E" /> + <ComponentRef Id="cmpF6A11C5F07AADC2DF98D1549024AA5D8" /> + <ComponentRef Id="cmp92387146C4EDCAC1653A2FDD573D2695" /> + <ComponentRef Id="cmpAD29968DFA6888826A5718FF6533D96B" /> + <ComponentRef Id="cmpECD5EF9F2075A8512411DC0C4A5249D0" /> + <ComponentRef Id="cmpCB8D27F16124CAAC7244A48FFA4AFB7D" /> + <ComponentRef Id="cmpC65A16FF1BC895E90BBB53B78E68DFD9" /> + <ComponentRef Id="cmp87F512AEE17E1578EAAE94230A2D42F8" /> + <ComponentRef Id="cmp97920FB49AE81562FA7ABFFA9A5DE439" /> + <ComponentRef Id="cmpC57C3FF497FC91DB80B6398E7FEE7A64" /> + <ComponentRef Id="cmpACDA6D0F0078725DD4A8708187C76CD3" /> + <ComponentRef Id="cmpCEB5D33CBF8513543D361078523B750C" /> + <ComponentRef Id="cmp5FC13AB774FAACB290717853ADC20FCD" /> + <ComponentRef Id="cmp725B9ABA14E65E9EFE49157CA4FC128B" /> + <ComponentRef Id="cmpBD55DC12534E09C8553C28F5B5C0FA4E" /> + <ComponentRef Id="cmp7C45FE83120EA12DB05FC171A06B30AE" /> + <ComponentRef Id="cmpA76542EBEEBAFF2C7A5BF5AB2741D4FE" /> + <ComponentRef Id="cmp9B9F529CBDC007E9FA5CF79E8867DA67" /> + <ComponentRef Id="cmp87244E466A2EB7ABF13AA619B977BF78" /> + <ComponentRef Id="cmp712EA51FB151C694292EA58C5A578BA6" /> + <ComponentRef Id="cmp870CD5E9E23CF6C9067DEADE20C9FC35" /> + <ComponentRef Id="cmpB006A7FF853B4EBD76D04C32E9455C4B" /> + <ComponentRef Id="cmp472CDC24D7DCA0786CBD55DD01B3C326" /> + <ComponentRef Id="cmp89C6FF5C5AC2CD9880C5409B5AB83825" /> + <ComponentRef Id="cmp6C831E6A491B7EB59D88781A5BFE9F15" /> + <ComponentRef Id="cmp60679C4F1990149DFE8EBD00D7C156DA" /> + <ComponentRef Id="cmp6382DF988EB9E433728A02875F366B29" /> + <ComponentRef Id="cmp6ED341130E7BC5619B617E61C4DB60A8" /> + <ComponentRef Id="cmp216B8D95DCCC0DBA860DA22728386441" /> + <ComponentRef Id="cmpE4595A43F5FE7BD7D162F3652BA6C266" /> + <ComponentRef Id="cmp7D5BE6FDEA3DE19095769A66D0AE29A8" /> + <ComponentRef Id="cmp61565372125F227105B9AE44241F1967" /> + <ComponentRef Id="cmpBC1662DFA34FC9A8F203FDC51697C8A5" /> + <ComponentRef Id="cmp5EF5D5F4FEB4B57BF58C3046BAD8A1E1" /> + <ComponentRef Id="cmpE9488D44ACC744E76E072585F84C491B" /> + <ComponentRef Id="cmp4228F912DE70A8E8A341A3B3EB232186" /> + <ComponentRef Id="cmp661A873DCAADCA5D6DE5658C1AF6238D" /> + <ComponentRef Id="cmpF8C6E0267E7995D280B8E7F4172C7F18" /> + <ComponentRef Id="cmp6004A52073268319FB67C09279279ACD" /> + <ComponentRef Id="cmpEEC16C2DA6C942B7F814FE2ECE9AAF65" /> + <ComponentRef Id="cmpA116A7CF851D562952FD8F362EF4F15E" /> + <ComponentRef Id="cmpAA28C1518620F4CA7377132D083B5E31" /> + <ComponentRef Id="cmpC384B9F228D8242650A1A48FDE46FADB" /> + <ComponentRef Id="cmpD858F6459F1D5BE26754F7B9A6B256FB" /> + <ComponentRef Id="cmpD935A23E00BC5621253BAF554A60C48A" /> + <ComponentRef Id="cmpCA290469DDC2BF237F81DDD5B1767EED" /> + <ComponentRef Id="cmp72EE25B25C5C68F03DF9176C2D3F8BDD" /> + <ComponentRef Id="cmp29F705976D3FE416CA69F9A85F81E453" /> + <ComponentRef Id="cmp3092B4A3F28D76A5F41FB2DC967976BF" /> + <ComponentRef Id="cmp05C4713E55D9E8032EF515CC96771B98" /> + <ComponentRef Id="cmpD979C33BE6277C13010EF93D9FB338C8" /> + <ComponentRef Id="cmpBDF94D6F72E05F0E90815BA6CA48AEAA" /> + <ComponentRef Id="cmp5F801DCC01F26894D68A6EA08E45B76B" /> + <ComponentRef Id="cmp1F82E220BB2635E789DB76D708745EDD" /> + <ComponentRef Id="cmp9FEF6DBD25CA9AFF6103A75B72D304B2" /> + <ComponentRef Id="cmp1710916CD3A94FB29C9213789A147AE0" /> + <ComponentRef Id="cmpAA303E0AEBC0E1EB8C2472B1ED65324A" /> + <ComponentRef Id="cmpACAD2B0C89247F272E42D86D48ED6ECC" /> + <ComponentRef Id="cmp4BC713FA989ECC8EC884548781C4F29D" /> + <ComponentRef Id="cmp2CF52C3BBF31CCD0752A49C11FF294A7" /> + <ComponentRef Id="cmpE60FAB408B216C9ED62A362BC7EE475D" /> + <ComponentRef Id="cmpAB7AC6D28286103D7E729673FEDFCD5C" /> + <ComponentRef Id="cmp3E980DF980C84895107EA078801D25F6" /> + <ComponentRef Id="cmpC84F22C32C2455E14F0833097B100309" /> + <ComponentRef Id="cmp13BEB53EDC29960F3AD13DEEAB9C92C1" /> + <ComponentRef Id="cmp6DA588A2041707855690C560C64C438D" /> + <ComponentRef Id="cmpB03F168BA9DD4275F206E53CED02A12A" /> + <ComponentRef Id="cmp673ABA162209C25819DE3CACF4E612D4" /> + <ComponentRef Id="cmp2198CDB3A37522808F3C0FE67FEE31BF" /> + <ComponentRef Id="cmp6CEA0C62D82A3B53499C2D4EF2C3B5F0" /> + <ComponentRef Id="cmp7FBF805189D05F4E3E1197B6024D6583" /> + <ComponentRef Id="cmp37C51862BC6949DB6195DC1A9FC37855" /> + <ComponentRef Id="cmpB12223A6EEF742CCFB738D9C8B708ED9" /> + <ComponentRef Id="cmpF4B2DDF581FADDF14E3613D517675CE0" /> + <ComponentRef Id="cmpBCCD12E77FAEA515D6C1555B7823E169" /> + <ComponentRef Id="cmp32627BA5A52D1C2FD2648C6907F4A00E" /> + <ComponentRef Id="cmp7A44CB40DFC859E66D7CC2582EF9948D" /> + <ComponentRef Id="cmpE819E5D393DD7BCB4D1C101FFFE6FB0E" /> + <ComponentRef Id="cmpA29ACAD11D850472C56137504F770B8F" /> + <ComponentRef Id="cmpA2581CD77714E8D6C2A4DAA258590E29" /> + <ComponentRef Id="cmp3F6C602C80B5711DE3EDD2FE8EAFD00C" /> + <ComponentRef Id="cmp30C5A7CA791767CAD2E9E124826EE047" /> + <ComponentRef Id="cmp770DEAD9D0C6D2439CA86800A5709567" /> + <ComponentRef Id="cmpF8CB44545962DB01EC6DD9DFADA36FEF" /> + <ComponentRef Id="cmp8468AE251FAE8743371ADE14FEA935F7" /> + <ComponentRef Id="cmpD2BCE21F32CF98AF542769B408047D4E" /> + <ComponentRef Id="cmpA1B275EE180C48643BFF410ED187E170" /> + <ComponentRef Id="cmp2458A9EEA35AAC6F7AA66C71F2C8E500" /> + <ComponentRef Id="cmp725AEB3BD6705908D3DDDC49D446EEDA" /> + <ComponentRef Id="cmp84C361E84DB09C711566B58D9822B3A4" /> + <ComponentRef Id="cmpEAC38538AB52AD68B5B36DEBE9310DDE" /> + <ComponentRef Id="cmp7B700E12FA433825A9ED08182F8CF6A6" /> + <ComponentRef Id="cmp8548A76FB3F15F37E8690D54D9E37153" /> + <ComponentRef Id="cmp84AFAC0919E0FDAB5B0C943837BB10FB" /> + <ComponentRef Id="cmp7E863093EB77CAFCE23926751F601D06" /> + <ComponentRef Id="cmp88CC92142E3E491F76F7BE7582508F44" /> + <ComponentRef Id="cmpA65F33B67588CC31BC7CAE2E2C651CB6" /> + <ComponentRef Id="cmp78D7D716B5B1FE70B04CF6A10B38E34F" /> + <ComponentRef Id="cmpF86B2467041088054881E7ED51D3AA2F" /> + <ComponentRef Id="cmp219FFB7AC8A9CAE559B96D663382362F" /> + <ComponentRef Id="cmpCEA5EA46BBB2A62A8D881B31198C3386" /> + <ComponentRef Id="cmp491B948F4AC657873C77A063196DE773" /> + <ComponentRef Id="cmpEE20C9B71CFB2E466F13C6FC9BF04E09" /> + <ComponentRef Id="cmp2B15CF0AFC8F3437B3049F59B0EF7601" /> + <ComponentRef Id="cmp785E1DB76BBDEBFD70EA4BF62650054A" /> + <ComponentRef Id="cmp5F637265DB84736905EE09ED2ECC69A6" /> + <ComponentRef Id="cmpCBFB249454B517E4B7449B61557EACC9" /> + <ComponentRef Id="cmp81CCD244B1F892AE169DD7F2A41000C5" /> + <ComponentRef Id="cmp233B1C3979F13771F5C1FD8DFF4D4606" /> + <ComponentRef Id="cmp21805FDD48B222E6357FC4461C6F3102" /> + <ComponentRef Id="cmp0D80FF102A8D89F5A82D722082F11599" /> + <ComponentRef Id="cmp6D7F31C4B7308F5BA7E90B1ADD7038F0" /> + <ComponentRef Id="cmp7F598B7CD8D0338B1D394D65C681B267" /> + <ComponentRef Id="cmpD9A9E41D1F43ECC44D1385DAF2D8FB60" /> + <ComponentRef Id="cmp9B9A53A0C6DD95A6630C0210F3BB18E3" /> + <ComponentRef Id="cmpB930876C3A86169D30AD296E2E8C8BB5" /> + <ComponentRef Id="cmp02C9FCDEDD4174BB86092C3FC74686F0" /> + <ComponentRef Id="cmp851C5E0A0D76AE035089E9529277A1F0" /> + <ComponentRef Id="cmpE6741DB4F8619935F0A2A35131BD3237" /> + <ComponentRef Id="cmp661B947BA59FB91045269E4D99CF8CD5" /> + <ComponentRef Id="cmp7FE90DA6D2CB3D2F620DFB67DBE5FBD7" /> + <ComponentRef Id="cmp03CC22A1DFFB0DB0AE4FBE6BDD0EB1AD" /> + <ComponentRef Id="cmp747C6DC3F1F94C8C379E8894CB58CC1E" /> + <ComponentRef Id="cmp568BC886045DD9FA8CF128F42A72561F" /> + <ComponentRef Id="cmpF58038EF3D3DCDDB51D498784BD02F0E" /> + <ComponentRef Id="cmpA10ECE6646C3403587F5EA05B65F9E07" /> + <ComponentRef Id="cmpCB7AD9B47FC8C557168958B7EC0363D5" /> + </Feature> <Feature Id="Install_Registry" @@ -1814,4 +2641,4 @@ </Product> -</Wix>
\ No newline at end of file +</Wix> diff --git a/src/Release/Setup Files/build_msi_x64.bat b/src/Release/Setup Files/build_msi_x64.bat index e610160a..8d5a5449 100644 --- a/src/Release/Setup Files/build_msi_x64.bat +++ b/src/Release/Setup Files/build_msi_x64.bat @@ -2,14 +2,16 @@ ::Define search paths here for Wix ToolSet and SDK (and SignTool optionnally) ::------------------------------------ -@set SEARCH_WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.11\bin - -@set SEARCH_VC_DIR_PLATFORMSDK_1=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86 -@set SEARCH_VC_DIR_PLATFORMSDK_2=C:\Program Files (x86)\Windows Kits\10\bin\x86 -@set SEARCH_VC_DIR_PLATFORMSDK_3=C:\Program Files\Microsoft Platform SDK\bin -@set SEARCH_VC_DIR_PLATFORMSDK_4=C:\Program Files (x86)\Windows Kits\8.1\bin\x86 -@set SEARCH_VC_DIR_PLATFORMSDK_5=C:\Program Files (x86)\Windows Kits\8.0\bin\x86 -@set SEARCH_VC_DIR_PLATFORMSDK_6=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin +@set SEARCH_WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.14\bin + +@set SEARCH_VC_DIR_PLATFORMSDK_1=C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_2=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_3=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_4=C:\Program Files (x86)\Windows Kits\10\bin\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_5=C:\Program Files\Microsoft Platform SDK\bin +@set SEARCH_VC_DIR_PLATFORMSDK_6=C:\Program Files (x86)\Windows Kits\8.1\bin\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_7=C:\Program Files (x86)\Windows Kits\8.0\bin\x86 +@set SEARCH_VC_DIR_PLATFORMSDK_8=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin ::end of search paths diff --git a/src/Release/Setup Files/veracrypt-arm64.cat b/src/Release/Setup Files/veracrypt-arm64.cat Binary files differindex 36ce6256..b08beb21 100644 --- a/src/Release/Setup Files/veracrypt-arm64.cat +++ b/src/Release/Setup Files/veracrypt-arm64.cat diff --git a/src/Release/Setup Files/veracrypt-arm64.sys b/src/Release/Setup Files/veracrypt-arm64.sys Binary files differindex 55d8fe88..6eb2cab6 100644 --- a/src/Release/Setup Files/veracrypt-arm64.sys +++ b/src/Release/Setup Files/veracrypt-arm64.sys diff --git a/src/Release/Setup Files/veracrypt-x64.cat b/src/Release/Setup Files/veracrypt-x64.cat Binary files differindex 71faf7a1..a281819d 100644 --- a/src/Release/Setup Files/veracrypt-x64.cat +++ b/src/Release/Setup Files/veracrypt-x64.cat diff --git a/src/Release/Setup Files/veracrypt-x64.sys b/src/Release/Setup Files/veracrypt-x64.sys Binary files differindex 8808e1d7..4d6b5dca 100644 --- a/src/Release/Setup Files/veracrypt-x64.sys +++ b/src/Release/Setup Files/veracrypt-x64.sys diff --git a/src/Release/Setup Files/veracrypt.Inf b/src/Release/Setup Files/veracrypt.Inf index 533c5e63..567a502e 100644 --- a/src/Release/Setup Files/veracrypt.Inf +++ b/src/Release/Setup Files/veracrypt.Inf @@ -2,7 +2,7 @@ ;;; VeraCrypt ;;; ;;; -;;; Copyright (c) 2023, IDRIX +;;; Copyright (c) 2024, IDRIX ;;; [Version] @@ -10,7 +10,7 @@ signature = "$Windows NT$" Class = "Encryption" ;This is determined by the work this filter driver does ClassGuid = {a0a701c0-a511-42ff-aa6c-06dc0395576f} ;This value is determined by the Class Provider = %ProviderString% -DriverVer = 08/11/2023,1.26.10.0 +DriverVer = 07/28/2024,1.26.13.0 CatalogFile = veracrypt.cat diff --git a/src/Release/Setup Files/veracrypt.cat b/src/Release/Setup Files/veracrypt.cat Binary files differindex 4868f800..61f42269 100644 --- a/src/Release/Setup Files/veracrypt.cat +++ b/src/Release/Setup Files/veracrypt.cat diff --git a/src/Release/Setup Files/veracrypt.sys b/src/Release/Setup Files/veracrypt.sys Binary files differindex 8b6e13b3..9ce29478 100644 --- a/src/Release/Setup Files/veracrypt.sys +++ b/src/Release/Setup Files/veracrypt.sys diff --git a/src/Setup/Dir.c b/src/Setup/Dir.c index 3275567f..f0a89ced 100644 --- a/src/Setup/Dir.c +++ b/src/Setup/Dir.c @@ -65,58 +65,58 @@ mkfulldir (wchar_t *oriPath, BOOL bCheckonly) int -mkfulldir_internal (wchar_t *path) +mkfulldir_internal(wchar_t* path) { - wchar_t *token; - struct _stat st; - static wchar_t tokpath[_MAX_PATH]; - static wchar_t trail[_MAX_PATH]; - - if (wcslen(path) >= _MAX_PATH) - { - // directory name will be truncated so return failure to avoid unexepected behavior - return -1; - } - - StringCbCopyW (tokpath, _MAX_PATH, path); - trail[0] = L'\0'; - - token = wcstok (tokpath, L"\\/"); - - if (tokpath[0] == L'\\' && tokpath[1] == L'\\') - { /* unc */ - trail[0] = tokpath[0]; - trail[1] = tokpath[1]; - trail[2] = L'\0'; - if (token) - { - StringCbCatW (trail, _MAX_PATH, token); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - if (token) - { /* get share name */ - StringCbCatW (trail, _MAX_PATH, token); - StringCbCatW (trail, _MAX_PATH, L"\\"); - } - token = wcstok (NULL, L"\\/"); - } - } - - if (tokpath[1] == L':') - { /* drive letter */ - StringCbCatW (trail, _MAX_PATH, tokpath); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - } - - while (token != NULL) - { - int x; - StringCbCatW (trail, _MAX_PATH, token); - x = _wmkdir (trail); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - } - - return _wstat (path, &st); -} + wchar_t* token; + wchar_t* next_token = NULL; + struct _stat st; + static wchar_t tokpath[_MAX_PATH]; + static wchar_t trail[_MAX_PATH]; + + if (wcslen(path) >= _MAX_PATH) + { + // directory name will be truncated so return failure to avoid unexpected behavior + return -1; + } + + StringCbCopyW(tokpath, _MAX_PATH, path); + trail[0] = L'\0'; + + token = wcstok_s(tokpath, L"\\/", &next_token); + if (tokpath[0] == L'\\' && tokpath[1] == L'\\') + { /* unc */ + trail[0] = tokpath[0]; + trail[1] = tokpath[1]; + trail[2] = L'\0'; + if (token) + { + StringCbCatW(trail, _MAX_PATH, token); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + if (token) + { /* get share name */ + StringCbCatW(trail, _MAX_PATH, token); + StringCbCatW(trail, _MAX_PATH, L"\\"); + } + token = wcstok_s(NULL, L"\\/", &next_token); + } + } + + if (tokpath[1] == L':') + { /* drive letter */ + StringCbCatW(trail, _MAX_PATH, tokpath); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + } + + while (token != NULL) + { + int x; + StringCbCatW(trail, _MAX_PATH, token); + x = _wmkdir(trail); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + } + + return _wstat(path, &st); +}
\ No newline at end of file diff --git a/src/Setup/MacOSX/VeraCrypt.entitlements.plist b/src/Setup/MacOSX/VeraCrypt.entitlements.plist new file mode 100644 index 00000000..123d12a5 --- /dev/null +++ b/src/Setup/MacOSX/VeraCrypt.entitlements.plist @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.cs.disable-library-validation</key> + <true/> +</dict> +</plist> diff --git a/src/Setup/MacOSX/notarize.sh b/src/Setup/MacOSX/notarize.sh new file mode 100755 index 00000000..c3e2ff05 --- /dev/null +++ b/src/Setup/MacOSX/notarize.sh @@ -0,0 +1,140 @@ +#!/bin/bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Directory where the script is located +BUNDLE_PATH="${SCRIPT_DIR}/../../Main/VeraCrypt.app" # Path to the VeraCrypt.app bundle +APPLE_ID="appleid" # Apple ID +APP_SPECIFIC_PASSWORD="password" # app-specific password +TEAM_ID="teamid" # team ID +SIGNING_ID="signingid" # Signing ID + +# Check if VeraCrypt.app bundle exists +if [ ! -d "$BUNDLE_PATH" ]; then + echo "VeraCrypt.app bundle not found: $BUNDLE_PATH" + exit 1 +fi + +# Retrieve the version of VeraCrypt from Info.plist +VC_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${BUNDLE_PATH}/Contents/Info.plist") + +echo "Notarizing VeraCrypt ${VC_VERSION}..." + +# Change to the script directory +cd "${SCRIPT_DIR}" + +xattr -rc "$BUNDLE_PATH" +codesign --timestamp --option runtime --deep --force --entitlements "${SCRIPT_DIR}/VeraCrypt.entitlements.plist" --sign "${SIGNING_ID}" "$BUNDLE_PATH" + +# Check dependencies of the VeraCrypt binary +VC_BINARY="$BUNDLE_PATH/Contents/MacOS/VeraCrypt" +DEPENDENCY_OUTPUT=$(otool -L "$VC_BINARY" | grep libfuse-t.dylib) + +# Determine the correct .pkgproj file based on the dependency +PKGPROJ_FILE="${SCRIPT_DIR}/veracrypt.pkgproj" +DMG_LABEL="VeraCrypt_${VC_VERSION}.dmg" +if [[ "$DEPENDENCY_OUTPUT" != "" ]]; then + echo "VeraCrypt is linked against FUSE-T." + PKGPROJ_FILE="${SCRIPT_DIR}/veracrypt_fuse-t.pkgproj" + DMG_LABEL="VeraCrypt_FUSE-T_${VC_VERSION}.dmg" +else + echo "VeraCrypt is linked against standard MacFUSE." +fi + +/usr/local/bin/packagesbuild "$PKGPROJ_FILE" + +PKG_PATH="${SCRIPT_DIR}/VeraCrypt_${VC_VERSION}.pkg" # Constructed path to the VeraCrypt pkg +productsign --sign "Developer ID Installer: IDRIX (Z933746L2S)" --timestamp "${SCRIPT_DIR}/VeraCrypt ${VC_VERSION}.pkg" "$PKG_PATH" + +if [ ! -f "$PKG_PATH" ]; then + echo "pkg file not found: $PKG_PATH" + exit 1 +fi + +# Step 1: Upload PKG to Apple for notarization +echo "Uploading PKG to Apple for notarization..." +xcrun notarytool submit "$PKG_PATH" --apple-id "$APPLE_ID" --password "$APP_SPECIFIC_PASSWORD" --team-id "$TEAM_ID" --wait --output-format json > notarization_result.json + +# Check if the notarization submission was successful +if [ $? -ne 0 ]; then + echo "Failed to submit PKG for notarization." + cat notarization_result.json + exit 1 +fi + +# Extract the notarization UUID from the result +REQUEST_UUID=$(grep -o '"id":"[^"]*' notarization_result.json | sed 's/"id":"//') +echo "Notarization Request UUID: $REQUEST_UUID" + +# Step 2: Check the notarization status +echo "Checking notarization status..." +STATUS=$(grep -o '"status":"[^"]*' notarization_result.json | sed 's/"status":"//' | sed 's/"}//') +echo "Initial status: $STATUS" + +while [ "$STATUS" == "in progress" ]; do + sleep 30 + xcrun notarytool info "$REQUEST_UUID" --apple-id "$APPLE_ID" --password "$APP_SPECIFIC_PASSWORD" --team-id "$TEAM_ID" --output-format json > notarization_status.json + + if [ ! -f notarization_status.json ]; then + echo "Failed to retrieve notarization status." + exit 1 + fi + + STATUS=$(grep -o '"status":"[^"]*' notarization_status.json | sed 's/"status":"//' | sed 's/"}//') + echo "Current status: $STATUS" +done + +# Step 3: Staple the notarization ticket to the pkg or retrieve the log +if [ "$STATUS" == "Accepted" ]; then + echo "Stapling the notarization ticket to the pkg..." + # Staple the notarization ticket to the installer package + xcrun stapler staple "$PKG_PATH" + echo "Notarization and stapling completed successfully." + + # Clean up any existing temporary files and directories + rm -f template.dmg + rm -fr VeraCrypt_dmg + + # Create a directory to mount the template DMG + echo "Creating directory to mount the template DMG..." + mkdir -p VeraCrypt_dmg + + # Decompress the template DMG file + echo "Decompressing the template DMG file..." + bunzip2 -k -f template.dmg.bz2 + + # Attach the template DMG to the system, mount it at VeraCrypt_dmg directory + echo "Attaching the template DMG to the system..." + hdiutil attach template.dmg -noautoopen -quiet -mountpoint VeraCrypt_dmg + + # Copy the notarized installer package into the mounted DMG + echo "Copying the notarized installer package into the mounted DMG..." + cp "VeraCrypt_${VC_VERSION}.pkg" VeraCrypt_dmg/VeraCrypt_Installer.pkg + + # Detach the DMG, ensuring all changes are saved and it's unmounted + echo "Detaching the DMG..." + hdiutil detach VeraCrypt_dmg -quiet -force + + # Convert the DMG back to a compressed format (UDZO) and create the final DMG file + echo "Converting the DMG back to a compressed format..." + rm -f "${DMG_LABEL}" + hdiutil convert template.dmg -quiet -format UDZO -imagekey zlib-level=9 -o "${DMG_LABEL}" + + # Sign the final DMG file + echo "Signing the final DMG file..." + codesign -s "${SIGNING_ID}" --timestamp "${DMG_LABEL}" + + # Clean up temporary files and directories + rm -f template.dmg + rm -fr VeraCrypt_dmg +else + echo "Notarization failed. Retrieving log for more details..." + # Retrieve the notarization log for details on why it failed + xcrun notarytool log "$REQUEST_UUID" --apple-id "$APPLE_ID" --password "$APP_SPECIFIC_PASSWORD" --team-id "$TEAM_ID" --output-format json > notarization_log.json + cat notarization_log.json +fi + +# Clean up temporary files +rm -f notarization_result.json +rm -f notarization_status.json +rm -f notarization_log.json + +exit 0
\ No newline at end of file diff --git a/src/Setup/MacOSX/postinstall_fuse-t.sh b/src/Setup/MacOSX/postinstall_fuse-t.sh new file mode 100755 index 00000000..fb799b91 --- /dev/null +++ b/src/Setup/MacOSX/postinstall_fuse-t.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +chmod -R go-w /Applications/VeraCrypt.app + +exit 0 diff --git a/src/Setup/MacOSX/veracrypt.pkgproj b/src/Setup/MacOSX/veracrypt.pkgproj index 99c255ea..6f027358 100755 --- a/src/Setup/MacOSX/veracrypt.pkgproj +++ b/src/Setup/MacOSX/veracrypt.pkgproj @@ -557,7 +557,7 @@ <key>USE_HFS+_COMPRESSION</key> <false/> <key>VERSION</key> - <string>1.26.10</string> + <string>1.26.15</string> </dict> <key>TYPE</key> <integer>0</integer> @@ -1025,7 +1025,7 @@ https://osxfuse.github.io/ </dict> </array> <key>NAME</key> - <string>VeraCrypt 1.26.10</string> + <string>VeraCrypt 1.26.15</string> <key>PAYLOAD_ONLY</key> <false/> <key>TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING</key> diff --git a/src/Setup/MacOSX/veracrypt_Legacy.pkgproj b/src/Setup/MacOSX/veracrypt_Legacy.pkgproj index 6819907a..0c7d16cb 100755 --- a/src/Setup/MacOSX/veracrypt_Legacy.pkgproj +++ b/src/Setup/MacOSX/veracrypt_Legacy.pkgproj @@ -557,7 +557,7 @@ <key>USE_HFS+_COMPRESSION</key> <false/> <key>VERSION</key> - <string>1.26.10</string> + <string>1.26.15</string> </dict> <key>TYPE</key> <integer>0</integer> diff --git a/src/Setup/MacOSX/veracrypt_fuse-t.pkgproj b/src/Setup/MacOSX/veracrypt_fuse-t.pkgproj new file mode 100755 index 00000000..fb349daf --- /dev/null +++ b/src/Setup/MacOSX/veracrypt_fuse-t.pkgproj @@ -0,0 +1,1044 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>PACKAGES</key> + <array> + <dict> + <key>MUST-CLOSE-APPLICATION-ITEMS</key> + <array/> + <key>MUST-CLOSE-APPLICATIONS</key> + <false/> + <key>PACKAGE_FILES</key> + <dict> + <key>DEFAULT_INSTALL_LOCATION</key> + <string>/</string> + <key>HIERARCHY</key> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>Utilities</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>BUNDLE_CAN_DOWNGRADE</key> + <true/> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>../../Main/VeraCrypt.app</string> + <key>PATH_TYPE</key> + <integer>1</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>3</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>Applications</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>509</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>Application Support</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Documentation</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Filesystems</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Frameworks</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Input Methods</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Internet Plug-Ins</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>LaunchAgents</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>LaunchDaemons</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>PreferencePanes</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Preferences</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>Printers</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>PrivilegedHelperTools</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>1005</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>QuickLook</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>QuickTime</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Screen Savers</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Scripts</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Services</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Widgets</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Automator</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Extensions</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Library</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Extensions</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Library</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>System</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <dict> + <key>CHILDREN</key> + <array> + <dict> + <key>CHILDREN</key> + <array/> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>Shared</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>1023</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>80</integer> + <key>PATH</key> + <string>Users</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + </array> + <key>GID</key> + <integer>0</integer> + <key>PATH</key> + <string>/</string> + <key>PATH_TYPE</key> + <integer>0</integer> + <key>PERMISSIONS</key> + <integer>493</integer> + <key>TYPE</key> + <integer>1</integer> + <key>UID</key> + <integer>0</integer> + </dict> + <key>PAYLOAD_TYPE</key> + <integer>0</integer> + <key>PRESERVE_EXTENDED_ATTRIBUTES</key> + <false/> + <key>SHOW_INVISIBLE</key> + <false/> + <key>SPLIT_FORKS</key> + <true/> + <key>TREAT_MISSING_FILES_AS_WARNING</key> + <false/> + <key>VERSION</key> + <integer>5</integer> + </dict> + <key>PACKAGE_SCRIPTS</key> + <dict> + <key>POSTINSTALL_PATH</key> + <dict> + <key>PATH</key> + <string>postinstall_fuse-t.sh</string> + <key>PATH_TYPE</key> + <integer>1</integer> + </dict> + <key>PREINSTALL_PATH</key> + <dict> + <key>PATH_TYPE</key> + <integer>0</integer> + </dict> + <key>RESOURCES</key> + <array/> + </dict> + <key>PACKAGE_SETTINGS</key> + <dict> + <key>AUTHENTICATION</key> + <integer>1</integer> + <key>CONCLUSION_ACTION</key> + <integer>0</integer> + <key>FOLLOW_SYMBOLIC_LINKS</key> + <false/> + <key>IDENTIFIER</key> + <string>com.idrix.pkg.veracrypt</string> + <key>LOCATION</key> + <integer>0</integer> + <key>NAME</key> + <string>veracrypt</string> + <key>OVERWRITE_PERMISSIONS</key> + <false/> + <key>PAYLOAD_SIZE</key> + <integer>-1</integer> + <key>REFERENCE_PATH</key> + <string></string> + <key>RELOCATABLE</key> + <false/> + <key>USE_HFS+_COMPRESSION</key> + <false/> + <key>VERSION</key> + <string>1.26.15</string> + </dict> + <key>TYPE</key> + <integer>0</integer> + <key>UUID</key> + <string>B14381D9-EC5F-43E4-B971-82AB3D132A64</string> + </dict> + </array> + <key>PROJECT</key> + <dict> + <key>PROJECT_COMMENTS</key> + <dict> + <key>NOTES</key> + <data> + PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M + IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv + c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l + cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 + IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250 + ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp + dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u + dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD + b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExMzguNTEiPgo8c3R5bGUg + dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5 + Pgo8L2JvZHk+CjwvaHRtbD4K + </data> + </dict> + <key>PROJECT_PRESENTATION</key> + <dict> + <key>BACKGROUND</key> + <dict> + <key>APPAREANCES</key> + <dict> + <key>DARK_AQUA</key> + <dict/> + <key>LIGHT_AQUA</key> + <dict/> + </dict> + <key>SHARED_SETTINGS_FOR_ALL_APPAREANCES</key> + <true/> + </dict> + <key>INSTALLATION TYPE</key> + <dict> + <key>HIERARCHIES</key> + <dict> + <key>INSTALLER</key> + <dict> + <key>LIST</key> + <array> + <dict> + <key>DESCRIPTION</key> + <array/> + <key>OPTIONS</key> + <dict> + <key>HIDDEN</key> + <false/> + <key>STATE</key> + <integer>1</integer> + </dict> + <key>PACKAGE_UUID</key> + <string>B14381D9-EC5F-43E4-B971-82AB3D132A64</string> + <key>TITLE</key> + <array/> + <key>TOOLTIP</key> + <array/> + <key>TYPE</key> + <integer>0</integer> + <key>UUID</key> + <string>4F1ACCF7-AA2A-4C80-A42F-274D410A13D1</string> + </dict> + </array> + <key>REMOVED</key> + <dict/> + </dict> + </dict> + <key>MODE</key> + <integer>0</integer> + </dict> + <key>INSTALLATION_STEPS</key> + <array> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewIntroductionController</string> + <key>INSTALLER_PLUGIN</key> + <string>Introduction</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewReadMeController</string> + <key>INSTALLER_PLUGIN</key> + <string>ReadMe</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewLicenseController</string> + <key>INSTALLER_PLUGIN</key> + <string>License</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewDestinationSelectController</string> + <key>INSTALLER_PLUGIN</key> + <string>TargetSelect</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewInstallationTypeController</string> + <key>INSTALLER_PLUGIN</key> + <string>PackageSelection</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewInstallationController</string> + <key>INSTALLER_PLUGIN</key> + <string>Install</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + <dict> + <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key> + <string>ICPresentationViewSummaryController</string> + <key>INSTALLER_PLUGIN</key> + <string>Summary</string> + <key>LIST_TITLE_KEY</key> + <string>InstallerSectionTitle</string> + </dict> + </array> + <key>INTRODUCTION</key> + <dict> + <key>LOCALIZATIONS</key> + <array/> + </dict> + <key>LICENSE</key> + <dict> + <key>LOCALIZATIONS</key> + <array> + <dict> + <key>LANGUAGE</key> + <string>English</string> + <key>VALUE</key> + <dict> + <key>PATH</key> + <string>../../License.txt</string> + <key>PATH_TYPE</key> + <integer>1</integer> + </dict> + </dict> + </array> + <key>MODE</key> + <integer>0</integer> + </dict> + <key>README</key> + <dict> + <key>LOCALIZATIONS</key> + <array/> + </dict> + <key>SUMMARY</key> + <dict> + <key>LOCALIZATIONS</key> + <array/> + </dict> + <key>TITLE</key> + <dict> + <key>LOCALIZATIONS</key> + <array> + <dict> + <key>LANGUAGE</key> + <string>French</string> + <key>VALUE</key> + <string></string> + </dict> + </array> + </dict> + </dict> + <key>PROJECT_REQUIREMENTS</key> + <dict> + <key>LIST</key> + <array> + <dict> + <key>BEHAVIOR</key> + <integer>3</integer> + <key>DICTIONARY</key> + <dict> + <key>IC_REQUIREMENT_OS_DISK_TYPE</key> + <integer>1</integer> + <key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key> + <integer>0</integer> + <key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key> + <integer>119900</integer> + </dict> + <key>IC_REQUIREMENT_CHECK_TYPE</key> + <integer>0</integer> + <key>IDENTIFIER</key> + <string>fr.whitebox.Packages.requirement.os</string> + <key>MESSAGE</key> + <array> + <dict> + <key>LANGUAGE</key> + <string>English</string> + <key>VALUE</key> + <string>VeraCrypt requires MacOSX 12 and above.</string> + </dict> + <dict> + <key>LANGUAGE</key> + <string>French</string> + <key>VALUE</key> + <string>VeraCrypt nécessite MacOSX 12 et supérieur.</string> + </dict> + </array> + <key>NAME</key> + <string>Operating System</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>BEHAVIOR</key> + <integer>3</integer> + <key>DICTIONARY</key> + <dict> + <key>IC_REQUIREMENT_FILES_CONDITION</key> + <integer>0</integer> + <key>IC_REQUIREMENT_FILES_DISK_TYPE</key> + <integer>1</integer> + <key>IC_REQUIREMENT_FILES_LIST</key> + <array> + <string>/usr/local/lib/libfuse-t.dylib</string> + </array> + <key>IC_REQUIREMENT_FILES_SELECTOR</key> + <integer>0</integer> + </dict> + <key>IC_REQUIREMENT_CHECK_TYPE</key> + <integer>0</integer> + <key>IDENTIFIER</key> + <string>fr.whitebox.Packages.requirement.files</string> + <key>MESSAGE</key> + <array> + <dict> + <key>LANGUAGE</key> + <string>English</string> + <key>SECONDARY_VALUE</key> + <string></string> + <key>VALUE</key> + <string>FUSE-T seems to be missing on your machine. VeraCrypt requires OSXFuse 1.0 or above. +Please download the latest FUSE-T version from : +https://github.com/macos-fuse-t/fuse-t/releases</string> + </dict> + <dict> + <key>LANGUAGE</key> + <string>French</string> + <key>SECONDARY_VALUE</key> + <string></string> + <key>VALUE</key> + <string>FUSE-T semble ne pas être installé sur votre machine. VeraCrypt nécessite FUSE-T 1.0 ou supérieur. +Merci de télécharger la dernière version de OSXFuse à partir de : +https://github.com/macos-fuse-t/fuse-t/releases + +</string> + </dict> + </array> + <key>NAME</key> + <string>FUSE-T</string> + <key>STATE</key> + <true/> + </dict> + </array> + <key>RESOURCES</key> + <array/> + <key>ROOT_VOLUME_ONLY</key> + <false/> + </dict> + <key>PROJECT_SETTINGS</key> + <dict> + <key>ADVANCED_OPTIONS</key> + <dict> + <key>installer-script.options:hostArchitectures</key> + <array> + <string>x86_64,arm64</string> + </array> + </dict> + <key>BUILD_FORMAT</key> + <integer>0</integer> + <key>BUILD_PATH</key> + <dict> + <key>PATH</key> + <string>.</string> + <key>PATH_TYPE</key> + <integer>1</integer> + </dict> + <key>EXCLUDED_FILES</key> + <array> + <dict> + <key>PATTERNS_ARRAY</key> + <array> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.DS_Store</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + </array> + <key>PROTECTED</key> + <true/> + <key>PROXY_NAME</key> + <string>Remove .DS_Store files</string> + <key>PROXY_TOOLTIP</key> + <string>Remove ".DS_Store" files created by the Finder.</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>PATTERNS_ARRAY</key> + <array> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.pbdevelopment</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + </array> + <key>PROTECTED</key> + <true/> + <key>PROXY_NAME</key> + <string>Remove .pbdevelopment files</string> + <key>PROXY_TOOLTIP</key> + <string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>PATTERNS_ARRAY</key> + <array> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>CVS</string> + <key>TYPE</key> + <integer>1</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.cvsignore</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.cvspass</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.svn</string> + <key>TYPE</key> + <integer>1</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.git</string> + <key>TYPE</key> + <integer>1</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>.gitignore</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + </array> + <key>PROTECTED</key> + <true/> + <key>PROXY_NAME</key> + <string>Remove SCM metadata</string> + <key>PROXY_TOOLTIP</key> + <string>Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>PATTERNS_ARRAY</key> + <array> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>classes.nib</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>designable.db</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>info.nib</string> + <key>TYPE</key> + <integer>0</integer> + </dict> + </array> + <key>PROTECTED</key> + <true/> + <key>PROXY_NAME</key> + <string>Optimize nib files</string> + <key>PROXY_TOOLTIP</key> + <string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>PATTERNS_ARRAY</key> + <array> + <dict> + <key>REGULAR_EXPRESSION</key> + <false/> + <key>STRING</key> + <string>Resources Disabled</string> + <key>TYPE</key> + <integer>1</integer> + </dict> + </array> + <key>PROTECTED</key> + <true/> + <key>PROXY_NAME</key> + <string>Remove Resources Disabled folders</string> + <key>PROXY_TOOLTIP</key> + <string>Remove "Resources Disabled" folders.</string> + <key>STATE</key> + <true/> + </dict> + <dict> + <key>SEPARATOR</key> + <true/> + </dict> + </array> + <key>NAME</key> + <string>VeraCrypt 1.26.15</string> + <key>PAYLOAD_ONLY</key> + <false/> + <key>TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING</key> + <false/> + </dict> + </dict> + <key>SHARED_GLOBAL_DATA</key> + <dict> + <key>IC_REQUIREMENT_JAVASCRIPT_SHARED_SOURCE_CODE</key> + <string></string> + </dict> + <key>TYPE</key> + <integer>0</integer> + <key>VERSION</key> + <integer>2</integer> +</dict> +</plist> diff --git a/src/Setup/Portable.rc b/src/Setup/Portable.rc index eb198e9e..f62e9da0 100644 --- a/src/Setup/Portable.rc +++ b/src/Setup/Portable.rc @@ -26,8 +26,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -44,11 +44,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt Portable" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCrypt Portable.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" @@ -102,6 +102,7 @@ IDR_LANG_ID LANGUAGES "..\\..\\Translations\\Language. IDR_LANG_KA LANGUAGES "..\\..\\Translations\\Language.ka.xml" IDR_LANG_KO LANGUAGES "..\\..\\Translations\\Language.ko.xml" IDR_LANG_LV LANGUAGES "..\\..\\Translations\\Language.lv.xml" +IDR_LANG_NB LANGUAGES "..\\..\\Translations\\Language.nb.xml" IDR_LANG_NN LANGUAGES "..\\..\\Translations\\Language.nn.xml" IDR_LANG_PTBR LANGUAGES "..\\..\\Translations\\Language.pt-br.xml" IDR_LANG_SK LANGUAGES "..\\..\\Translations\\Language.sk.xml" diff --git a/src/Setup/Portable_vs2019.vcxproj b/src/Setup/Portable_vs2019.vcxproj new file mode 100644 index 00000000..8b2e4cf5 --- /dev/null +++ b/src/Setup/Portable_vs2019.vcxproj @@ -0,0 +1,328 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseCustomEFI|Win32"> + <Configuration>ReleaseCustomEFI</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release_SkipOsDriverReqCheck|Win32"> + <Configuration>Release_SkipOsDriverReqCheck</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{60698D56-DB83-4D19-9C87-9DFB6A6F8C87}</ProjectGuid> + <RootNamespace>Portable</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>Portable</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)PortableDebug\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)PortableDebug\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> + <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EmbedManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)PortableRelease\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">$(ProjectDir)PortableRelease\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)PortableRelease\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)PortableRelease\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">$(ProjectDir)PortableRelease\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)PortableRelease\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">true</GenerateManifest> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">VeraCryptPortable</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">VeraCryptPortable</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">VeraCryptPortable</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">VeraCryptPortable</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;PORTABLE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/NODEFAULTLIB:LIBCMTD %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>libcmtd.lib;atls.lib;mpr.lib;..\Common\Debug\Zip.lib;..\Crypto\Debug\crypto.lib;..\Common\Debug\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptPortable.exe</OutputFile> + <UACExecutionLevel>AsInvoker</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)Portable.pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> + </Link> + <Manifest> + <AdditionalManifestFiles>Portable.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>md "..\Debug\Setup Files" 2>NUL: +copy PortableDebug\VeraCryptPortable.exe "..\Debug\Setup Files\VeraCrypt Portable.exe" >NUL: +</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;PORTABLE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>atls.lib;mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptPortable.exe</OutputFile> + <UACExecutionLevel>AsInvoker</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Portable.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy PortableRelease\VeraCryptPortable.exe "..\Release\Setup Files\VeraCrypt Portable.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;PORTABLE;VC_SKIP_OS_DRIVER_REQ_CHECK;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptPortable.exe</OutputFile> + <UACExecutionLevel>AsInvoker</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Portable.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy PortableRelease\VeraCryptPortable.exe "..\Release\Setup Files\VeraCrypt Portable.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;PORTABLE;VC_EFI_CUSTOM_MODE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptPortable.exe</OutputFile> + <UACExecutionLevel>AsInvoker</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Portable.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy PortableRelease\VeraCryptPortable.exe "..\Release\Setup Files\VeraCrypt Portable.exe"</Command> + </PostBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>VC_EFI_CUSTOM_MODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="Dir.c" /> + <ClCompile Include="SelfExtract.c" /> + <ClCompile Include="Setup.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="Wizard.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Xml.c" /> + <ClCompile Include="..\Common\BootEncryption.cpp" /> + <ClCompile Include="..\Common\Crc.c" /> + <ClCompile Include="..\Common\Dictionary.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Endian.c" /> + <ClCompile Include="..\Common\Language.c" /> + <ClCompile Include="..\Common\Registry.c" /> + </ItemGroup> + <ItemGroup> + <None Include="Setup.ico" /> + <None Include="..\Common\VeraCrypt.ico" /> + <None Include="VeraCrypt_setup.bmp" /> + <None Include="VeraCrypt_setup_background.bmp" /> + <None Include="..\Common\VeraCrypt_Volume.ico" /> + <None Include="..\Common\Language.xml" /> + <None Include="..\Resources\Texts\License.rtf" /> + <None Include="..\Common\Textual_logo_288dpi.bmp" /> + <None Include="..\Common\Textual_logo_96dpi.bmp" /> + <None Include="..\Common\Textual_logo_background.bmp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h" /> + <ClInclude Include="..\Common\Combo.h" /> + <ClInclude Include="ComSetup.h" /> + <ClInclude Include="..\Common\Crc.h" /> + <ClInclude Include="Dir.h" /> + <ClInclude Include="..\Common\Dlgcode.h" /> + <ClInclude Include="..\Common\Exception.h" /> + <ClInclude Include="..\Common\Inflate.h" /> + <ClInclude Include="..\Common\Language.h" /> + <ClInclude Include="..\Common\Registry.h" /> + <ClInclude Include="..\Common\Resource.h" /> + <ClInclude Include="Resource.h" /> + <ClInclude Include="SelfExtract.h" /> + <ClInclude Include="Setup.h" /> + <ClInclude Include="..\Common\Tcdefs.h" /> + <ClInclude Include="Wizard.h" /> + </ItemGroup> + <ItemGroup> + <Manifest Include="Portable.manifest" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="..\Common\Common.rc"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</ExcludedFromBuild> + </ResourceCompile> + <ResourceCompile Include="Portable.rc" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/src/Setup/Portable_vs2019.vcxproj.filters b/src/Setup/Portable_vs2019.vcxproj.filters new file mode 100644 index 00000000..855ecc00 --- /dev/null +++ b/src/Setup/Portable_vs2019.vcxproj.filters @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Source Files\Common"> + <UniqueIdentifier>{876C2050-1694-4F32-AF5D-491C6A43A799}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> + </Filter> + <Filter Include="Resource Files\Common"> + <UniqueIdentifier>{17370B4B-2D76-41A9-9828-015FB30054F6}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="Dir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="SelfExtract.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Setup.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Wizard.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\Xml.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\BootEncryption.cpp"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Crc.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dictionary.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Language.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Registry.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Endian.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="Setup.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup_background.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt_Volume.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\Language.xml"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Resources\Texts\License.rtf"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_288dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_96dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_background.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Combo.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ComSetup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Crc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Dir.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Dlgcode.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Exception.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Inflate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Language.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Registry.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="SelfExtract.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Setup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Tcdefs.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Wizard.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Manifest Include="Portable.manifest" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="..\Common\Common.rc"> + <Filter>Resource Files\Common</Filter> + </ResourceCompile> + <ResourceCompile Include="Portable.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/Setup/Portable_vs2019.vcxproj.user b/src/Setup/Portable_vs2019.vcxproj.user new file mode 100644 index 00000000..ace9a86a --- /dev/null +++ b/src/Setup/Portable_vs2019.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project>
\ No newline at end of file diff --git a/src/Setup/Resource.h b/src/Setup/Resource.h index b5b7d466..62246068 100644 --- a/src/Setup/Resource.h +++ b/src/Setup/Resource.h @@ -43,6 +43,7 @@ #define IDR_LANG_UK 57 #define IDR_LANG_UZ 58 #define IDR_LANG_ZHTW 59 +#define IDR_LANG_NB 60 #define IDD_INSTALL 101 #define IDD_INSTALL_OPTIONS_PAGE_DLG 102 #define IDD_UNINSTALL 103 diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c index 6edc0ea9..43ea971b 100644 --- a/src/Setup/Setup.c +++ b/src/Setup/Setup.c @@ -2016,6 +2016,37 @@ error: return bOK; } +void RemoveLegacyFiles (wchar_t *szDestDir) +{ + const wchar_t* oldFileNames[] = { + L"docs\\html\\en\\BCH_Logo_48x30.png", + L"docs\\html\\en\\LinuxPrepAndBuild.sh", + L"docs\\html\\en\\LinuxPrepAndBuild.zip", + L"docs\\html\\en\\RIPEMD-160.html", + L"docs\\html\\en\\ru\\BCH_Logo_48x30.png", + L"Languages\\Language.ru - Copy.xml", + }; + wchar_t szDir[TC_MAX_PATH]; + wchar_t oldPath[TC_MAX_PATH]; + BOOL bSlash; + size_t x, i; + + StringCbCopyW (szDir, sizeof(szDir), szDestDir); + x = wcslen (szDestDir); + if (szDestDir[x - 1] == L'\\') + bSlash = TRUE; + else + bSlash = FALSE; + + if (bSlash == FALSE) + StringCbCatW (szDir, sizeof(szDir), L"\\"); + + for (i = 0; i < ARRAYSIZE(oldFileNames); i++) + { + StringCbPrintfW (oldPath, sizeof(oldPath), L"%s%s", szDestDir, oldFileNames[i]); + StatDeleteFile (oldPath, FALSE); + } +} void OutcomePrompt (HWND hwndDlg, BOOL bOK) { @@ -2199,7 +2230,6 @@ void DoInstall (void *arg) HWND hwndDlg = (HWND) arg; BOOL bOK = TRUE; wchar_t path[MAX_PATH]; - BootEncryption bootEnc (hwndDlg); // Refresh the main GUI (wizard thread) @@ -2343,6 +2373,12 @@ void DoInstall (void *arg) bRestartRequired = TRUE; // Restart is required to apply the new memory protection settings } + if (bOK && bUpgrade) + { + // delete legacy files + RemoveLegacyFiles (InstallationPath); + } + if (bOK) { UpdateProgressBarProc(100); @@ -2578,6 +2614,7 @@ static tLanguageEntry g_languagesEntries[] = { {L"ქართული", IDR_LANG_KA, LANG_GEORGIAN, "ka", NULL}, {L"한국어", IDR_LANG_KO, LANG_KOREAN, "ko", NULL}, {L"Latviešu", IDR_LANG_LV, LANG_LATVIAN, "lv", NULL}, + {L"Norsk Bokmål", IDR_LANG_NB, LANG_NORWEGIAN, "nb", NULL}, {L"Nederlands", IDR_LANG_NL, LANG_DUTCH, "nl", NULL}, {L"Norsk Nynorsk", IDR_LANG_NN, LANG_NORWEGIAN, "nn", NULL}, {L"Polski", IDR_LANG_PL, LANG_POLISH, "pl", NULL}, diff --git a/src/Setup/Setup.rc b/src/Setup/Setup.rc index 89457692..a0e59660 100644 --- a/src/Setup/Setup.rc +++ b/src/Setup/Setup.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -46,11 +46,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCrypt Setup" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCrypt Setup.exe" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" @@ -109,6 +109,7 @@ IDR_LANG_ID LANGUAGES "..\\..\\Translations\\Language. IDR_LANG_KA LANGUAGES "..\\..\\Translations\\Language.ka.xml" IDR_LANG_KO LANGUAGES "..\\..\\Translations\\Language.ko.xml" IDR_LANG_LV LANGUAGES "..\\..\\Translations\\Language.lv.xml" +IDR_LANG_NB LANGUAGES "..\\..\\Translations\\Language.nb.xml" IDR_LANG_NN LANGUAGES "..\\..\\Translations\\Language.nn.xml" IDR_LANG_PTBR LANGUAGES "..\\..\\Translations\\Language.pt-br.xml" IDR_LANG_SK LANGUAGES "..\\..\\Translations\\Language.sk.xml" diff --git a/src/Setup/Setup_vs2019.vcxproj b/src/Setup/Setup_vs2019.vcxproj new file mode 100644 index 00000000..0c329156 --- /dev/null +++ b/src/Setup/Setup_vs2019.vcxproj @@ -0,0 +1,331 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseCustomEFI|Win32"> + <Configuration>ReleaseCustomEFI</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release_SkipOsDriverReqCheck|Win32"> + <Configuration>Release_SkipOsDriverReqCheck</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{DF5F654D-BD44-4E31-B92E-B68074DC37A8}</ProjectGuid> + <RootNamespace>Setup</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>Setup</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)Debug\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)Debug\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> + <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EmbedManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)Release\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">$(ProjectDir)Release\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)Release\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)Release\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">$(ProjectDir)Release\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)Release\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">true</GenerateManifest> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">VeraCryptSetup</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">VeraCryptSetup</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">VeraCryptSetup</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">VeraCryptSetup</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/NODEFAULTLIB:LIBCMTD %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>libcmtd.lib;atls.lib;mpr.lib;..\Common\Debug\Zip.lib;..\Crypto\Debug\crypto.lib;..\Common\Debug\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)Setup.pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <GenerateMapFile>true</GenerateMapFile> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>md "..\Debug\Setup Files" 2>NUL: +copy Debug\VeraCryptSetup.exe "..\Debug\Setup Files\VeraCrypt Setup.exe" >NUL: + +</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>atls.lib;mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy Release\VeraCryptSetup.exe "..\Release\Setup Files\VeraCrypt Setup.exe" && copy Release\VeraCryptSetup.exe "..\Release\Setup Files\VeraCrypt COMReg.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;VC_SKIP_OS_DRIVER_REQ_CHECK;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy Release\VeraCryptSetup.exe "..\Release\Setup Files\VeraCrypt Setup.exe"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;VC_EFI_CUSTOM_MODE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy Release\VeraCryptSetup.exe "..\Release\Setup Files\VeraCrypt Setup.exe"</Command> + </PostBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>VC_EFI_CUSTOM_MODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="ComSetup.cpp" /> + <ClCompile Include="Dir.c" /> + <ClCompile Include="SelfExtract.c" /> + <ClCompile Include="Setup.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="Wizard.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Xml.c" /> + <ClCompile Include="..\Common\BootEncryption.cpp" /> + <ClCompile Include="..\Common\Crc.c" /> + <ClCompile Include="..\Common\Dictionary.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Endian.c" /> + <ClCompile Include="..\Common\Language.c" /> + <ClCompile Include="..\Common\Registry.c" /> + </ItemGroup> + <ItemGroup> + <None Include="ComSetup.rgs" /> + <None Include="Setup.ico" /> + <None Include="..\Common\VeraCrypt.ico" /> + <None Include="VeraCrypt_setup.bmp" /> + <None Include="VeraCrypt_setup_background.bmp" /> + <None Include="..\Common\VeraCrypt_Volume.ico" /> + <None Include="..\Common\Language.xml" /> + <None Include="..\Resources\Texts\License.rtf" /> + <None Include="..\Common\Textual_logo_288dpi.bmp" /> + <None Include="..\Common\Textual_logo_96dpi.bmp" /> + <None Include="..\Common\Textual_logo_background.bmp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h" /> + <ClInclude Include="..\Common\Combo.h" /> + <ClInclude Include="ComSetup.h" /> + <ClInclude Include="..\Common\Crc.h" /> + <ClInclude Include="Dir.h" /> + <ClInclude Include="..\Common\Dlgcode.h" /> + <ClInclude Include="..\Common\Exception.h" /> + <ClInclude Include="..\Common\Inflate.h" /> + <ClInclude Include="..\Common\Language.h" /> + <ClInclude Include="..\Common\Registry.h" /> + <ClInclude Include="..\Common\Resource.h" /> + <ClInclude Include="Resource.h" /> + <ClInclude Include="SelfExtract.h" /> + <ClInclude Include="Setup.h" /> + <ClInclude Include="..\Common\Tcdefs.h" /> + <ClInclude Include="Wizard.h" /> + </ItemGroup> + <ItemGroup> + <Manifest Include="Setup.manifest" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="Setup.rc" /> + <ResourceCompile Include="..\Common\Common.rc"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_SkipOsDriverReqCheck|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</ExcludedFromBuild> + </ResourceCompile> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/src/Setup/Setup_vs2019.vcxproj.filters b/src/Setup/Setup_vs2019.vcxproj.filters new file mode 100644 index 00000000..d747363f --- /dev/null +++ b/src/Setup/Setup_vs2019.vcxproj.filters @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Source Files\Common"> + <UniqueIdentifier>{6073052c-2d95-47a0-95d8-5960d4c1d1c0}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions> + </Filter> + <Filter Include="Resource Files\Common"> + <UniqueIdentifier>{a540fb0a-850b-4cb9-85f9-ade0112ebb50}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="ComSetup.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Dir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="SelfExtract.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Setup.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Wizard.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\Xml.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\BootEncryption.cpp"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Crc.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dictionary.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Language.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Registry.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Endian.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="ComSetup.rgs"> + <Filter>Source Files</Filter> + </None> + <None Include="Setup.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup_background.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt_Volume.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\Language.xml"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Resources\Texts\License.rtf"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_288dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_96dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_background.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Combo.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ComSetup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Crc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Dir.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Dlgcode.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Exception.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Inflate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Language.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Registry.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="SelfExtract.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Setup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Tcdefs.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Wizard.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Manifest Include="Setup.manifest"> + <Filter>Resource Files</Filter> + </Manifest> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="Setup.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + <ResourceCompile Include="..\Common\Common.rc"> + <Filter>Resource Files\Common</Filter> + </ResourceCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/Setup/Setup_vs2019.vcxproj.user b/src/Setup/Setup_vs2019.vcxproj.user new file mode 100644 index 00000000..ace9a86a --- /dev/null +++ b/src/Setup/Setup_vs2019.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project>
\ No newline at end of file diff --git a/src/SetupDLL/Dir.c b/src/SetupDLL/Dir.c index 3275567f..e6a5f153 100644 --- a/src/SetupDLL/Dir.c +++ b/src/SetupDLL/Dir.c @@ -65,58 +65,58 @@ mkfulldir (wchar_t *oriPath, BOOL bCheckonly) int -mkfulldir_internal (wchar_t *path) +mkfulldir_internal(wchar_t* path) { - wchar_t *token; - struct _stat st; - static wchar_t tokpath[_MAX_PATH]; - static wchar_t trail[_MAX_PATH]; - - if (wcslen(path) >= _MAX_PATH) - { - // directory name will be truncated so return failure to avoid unexepected behavior - return -1; - } - - StringCbCopyW (tokpath, _MAX_PATH, path); - trail[0] = L'\0'; - - token = wcstok (tokpath, L"\\/"); - - if (tokpath[0] == L'\\' && tokpath[1] == L'\\') - { /* unc */ - trail[0] = tokpath[0]; - trail[1] = tokpath[1]; - trail[2] = L'\0'; - if (token) - { - StringCbCatW (trail, _MAX_PATH, token); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - if (token) - { /* get share name */ - StringCbCatW (trail, _MAX_PATH, token); - StringCbCatW (trail, _MAX_PATH, L"\\"); - } - token = wcstok (NULL, L"\\/"); - } - } - - if (tokpath[1] == L':') - { /* drive letter */ - StringCbCatW (trail, _MAX_PATH, tokpath); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - } - - while (token != NULL) - { - int x; - StringCbCatW (trail, _MAX_PATH, token); - x = _wmkdir (trail); - StringCbCatW (trail, _MAX_PATH, L"\\"); - token = wcstok (NULL, L"\\/"); - } - - return _wstat (path, &st); + wchar_t* token; + wchar_t* next_token = NULL; + struct _stat st; + static wchar_t tokpath[_MAX_PATH]; + static wchar_t trail[_MAX_PATH]; + + if (wcslen(path) >= _MAX_PATH) + { + // directory name will be truncated so return failure to avoid unexpected behavior + return -1; + } + + StringCbCopyW(tokpath, _MAX_PATH, path); + trail[0] = L'\0'; + + token = wcstok_s(tokpath, L"\\/", &next_token); + if (tokpath[0] == L'\\' && tokpath[1] == L'\\') + { /* unc */ + trail[0] = tokpath[0]; + trail[1] = tokpath[1]; + trail[2] = L'\0'; + if (token) + { + StringCbCatW(trail, _MAX_PATH, token); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + if (token) + { /* get share name */ + StringCbCatW(trail, _MAX_PATH, token); + StringCbCatW(trail, _MAX_PATH, L"\\"); + } + token = wcstok_s(NULL, L"\\/", &next_token); + } + } + + if (tokpath[1] == L':') + { /* drive letter */ + StringCbCatW(trail, _MAX_PATH, tokpath); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + } + + while (token != NULL) + { + int x; + StringCbCatW(trail, _MAX_PATH, token); + x = _wmkdir(trail); + StringCbCatW(trail, _MAX_PATH, L"\\"); + token = wcstok_s(NULL, L"\\/", &next_token); + } + + return _wstat(path, &st); } diff --git a/src/SetupDLL/Resource.h b/src/SetupDLL/Resource.h index b5b7d466..62246068 100644 --- a/src/SetupDLL/Resource.h +++ b/src/SetupDLL/Resource.h @@ -43,6 +43,7 @@ #define IDR_LANG_UK 57 #define IDR_LANG_UZ 58 #define IDR_LANG_ZHTW 59 +#define IDR_LANG_NB 60 #define IDD_INSTALL 101 #define IDD_INSTALL_OPTIONS_PAGE_DLG 102 #define IDD_UNINSTALL 103 diff --git a/src/SetupDLL/Setup.c b/src/SetupDLL/Setup.c index 1c3782dd..d0300c7e 100644 --- a/src/SetupDLL/Setup.c +++ b/src/SetupDLL/Setup.c @@ -2336,6 +2336,38 @@ EXTERN_C UINT STDAPICALLTYPE VC_CustomAction_PostInstall(MSIHANDLE hInstaller) UINT uiRet = ERROR_INSTALL_FAILURE; BOOL bOK = TRUE; WCHAR szCurrentDir[MAX_PATH]; + const wchar_t* oldFileNames[] = { + L"docs\\html\\en\\AddNewSystemVar.jpg", + L"docs\\html\\en\\CertificateCannotBeVerified.jpg", + L"docs\\html\\en\\CertVerifyFails.jpg", + L"docs\\html\\en\\DistributionPackageDamaged.jpg", + L"docs\\html\\en\\DownloadVS2010.jpg", + L"docs\\html\\en\\DownloadVS2019.jpg", + L"docs\\html\\en\\DownloadVSBuildTools.jpg", + L"docs\\html\\en\\gzipCommandLine.jpg", + L"docs\\html\\en\\NasmCommandLine.jpg", + L"docs\\html\\en\\RegeditPermissions-1.jpg", + L"docs\\html\\en\\RegeditPermissions-2.jpg", + L"docs\\html\\en\\RegeditPermissions-3.jpg", + L"docs\\html\\en\\RegeditPermissions-4.jpg", + L"docs\\html\\en\\SelectAdvancedSystemSettings.jpg", + L"docs\\html\\en\\SelectEnvironmentVariables.jpg", + L"docs\\html\\en\\SelectPathVariable.jpg", + L"docs\\html\\en\\SelectThisPC.jpg", + L"docs\\html\\en\\upxCommandLine.jpg", + L"docs\\html\\en\\VS2010BuildSolution.jpg", + L"docs\\html\\en\\VS2010Win32Config.jpg", + L"docs\\html\\en\\VS2010X64Config.jpg", + L"docs\\html\\en\\VS2019ARM64Config.jpg", + L"docs\\html\\en\\VS2019BuildSolution.jpg", + L"docs\\html\\en\\YasmCommandLine.jpg", + L"docs\\html\\en\\BCH_Logo_48x30.png", + L"docs\\html\\en\\LinuxPrepAndBuild.sh", + L"docs\\html\\en\\LinuxPrepAndBuild.zip", + L"docs\\html\\en\\RIPEMD-160.html", + L"docs\\html\\en\\ru\\BCH_Logo_48x30.png", + L"Languages\\Language.ru - Copy.xml", + }; MSILog(hInstaller, MSI_INFO_LEVEL, L"Begin VC_CustomAction_PostInstall"); @@ -2446,6 +2478,7 @@ EXTERN_C UINT STDAPICALLTYPE VC_CustomAction_PostInstall(MSIHANDLE hInstaller) WIN32_FIND_DATA f; HANDLE h; wchar_t szTmp[TC_MAX_PATH]; + size_t i; // delete "VeraCrypt Setup.exe" if it exists StringCbPrintfW (szTmp, sizeof(szTmp), L"%s%s", szInstallDir.c_str(), L"VeraCrypt Setup.exe"); @@ -2454,6 +2487,16 @@ EXTERN_C UINT STDAPICALLTYPE VC_CustomAction_PostInstall(MSIHANDLE hInstaller) ForceDeleteFile(szTmp); } + // delete files wrongly installed by previous versions in installation folder + for (i = 0; i < ARRAYSIZE(oldFileNames); i++) + { + StringCbPrintfW (szTmp, sizeof(szTmp), L"%s%s", szInstallDir.c_str(), oldFileNames[i]); + if (FileExists(szTmp)) + { + ForceDeleteFile(szTmp); + } + } + StringCbPrintfW (szTmp, sizeof(szTmp), L"%s%s", szInstallDir.c_str(), L"VeraCrypt.exe"); if (Is64BitOs ()) @@ -2977,6 +3020,70 @@ end: return uiRet; } +static BOOL DirectoryExists (const wchar_t *dirName) +{ + DWORD attrib = GetFileAttributes (dirName); + return (attrib != INVALID_FILE_ATTRIBUTES && (attrib & FILE_ATTRIBUTE_DIRECTORY)); +} + +static BOOL DeleteContentsOnReboot(LPCTSTR pszDir) { + TCHAR szPath[MAX_PATH]; + TCHAR szSubPath[MAX_PATH]; + WIN32_FIND_DATA FindFileData; + HANDLE hFind; + BOOL bHasBackslash = FALSE; + // check if pszDir ends with a backslash + if (pszDir[_tcslen(pszDir) - 1] == '\\') + { + bHasBackslash = TRUE; + } + + // Prepare the path for FindFirstFile + if (bHasBackslash) + StringCchPrintf(szPath, MAX_PATH, TEXT("%s*"), pszDir); + else + StringCchPrintf(szPath, MAX_PATH, TEXT("%s\\*"), pszDir); + + hFind = FindFirstFile(szPath, &FindFileData); + if (hFind == INVALID_HANDLE_VALUE) { + return FALSE; + } + + BOOL result = TRUE; + + do { + if (_tcscmp(FindFileData.cFileName, TEXT(".")) != 0 && + _tcscmp(FindFileData.cFileName, TEXT("..")) != 0) { + + if (bHasBackslash) + StringCchPrintf(szSubPath, MAX_PATH, TEXT("%s%s"), pszDir, FindFileData.cFileName); + else + StringCchPrintf(szSubPath, MAX_PATH, TEXT("%s\\%s"), pszDir, FindFileData.cFileName); + + if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + // Recursive call to handle subdirectories + if (!DeleteContentsOnReboot(szSubPath)) { + result = FALSE; // Track failures but attempt to continue + } + } else { + // Schedule the file for deletion + if (!MoveFileEx(szSubPath, NULL, MOVEFILE_DELAY_UNTIL_REBOOT)) { + result = FALSE; // Track failures + } + } + } + } while (FindNextFile(hFind, &FindFileData) != 0); + + FindClose(hFind); + + // Schedule the root directory for deletion, only if not done already + if (!MoveFileEx(pszDir, NULL, MOVEFILE_DELAY_UNTIL_REBOOT)) { + result = FALSE; + } + + return result; +} + /* * Same as Setup.c, function DoUninstall(), but * without the actual installation, it only performs @@ -3153,6 +3260,33 @@ EXTERN_C UINT STDAPICALLTYPE VC_CustomAction_PostUninstall(MSIHANDLE hInstaller) EnableWow64FsRedirection (TRUE); } + + // remove the installation folder is case it remains after uninstall + if (DirectoryExists (szInstallDir.c_str())) + { + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: REMOVING %s", szInstallDir.c_str()); + if(DeleteDirectory (szInstallDir.c_str())) + { + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: %s removed", szInstallDir.c_str()); + } + else + { + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: %s could not be removed. Scheduling removal on reboot", szInstallDir.c_str()); + if (DeleteContentsOnReboot(szInstallDir.c_str())) + { + bRestartRequired = TRUE; + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: %s scheduled for removal on reboot", szInstallDir.c_str()); + } + else + { + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: %s could not be scheduled for removal on reboot", szInstallDir.c_str()); + } + } + } + else + { + MSILog(hInstaller, MSI_ERROR_LEVEL, L"VC_CustomAction_PostUninstall: %s does not exist", szInstallDir.c_str()); + } } if (bSystemRestore && !bTempSkipSysRestore) @@ -3356,6 +3490,7 @@ EXTERN_C UINT STDAPICALLTYPE VC_CustomAction_DoChecks(MSIHANDLE hInstaller) if (bDisableReboot) { MSILog(hInstaller, MSI_INFO_LEVEL, L"VC_CustomAction_DoChecks: reboot is required but it is disabled because \"REBOOT\" specifies ReallySuppress"); + uiRet = ERROR_SUCCESS; } else { diff --git a/src/SetupDLL/Setup.rc b/src/SetupDLL/Setup.rc index aab2f5c5..5d260186 100644 --- a/src/SetupDLL/Setup.rc +++ b/src/SetupDLL/Setup.rc @@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,26,10,0 - PRODUCTVERSION 1,26,10,0 + FILEVERSION 1,26,15,0 + PRODUCTVERSION 1,26,15,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -46,11 +46,11 @@ BEGIN BEGIN VALUE "CompanyName", "IDRIX" VALUE "FileDescription", "VeraCryptSetup" - VALUE "FileVersion", "1.26.10" + VALUE "FileVersion", "1.26.15" VALUE "LegalTrademarks", "VeraCrypt" VALUE "OriginalFilename", "VeraCryptSetup.dll" VALUE "ProductName", "VeraCrypt" - VALUE "ProductVersion", "1.26.10" + VALUE "ProductVersion", "1.26.15" END END BLOCK "VarFileInfo" @@ -109,6 +109,7 @@ IDR_LANG_ID LANGUAGES "..\\..\\Translations\\Language. IDR_LANG_KA LANGUAGES "..\\..\\Translations\\Language.ka.xml" IDR_LANG_KO LANGUAGES "..\\..\\Translations\\Language.ko.xml" IDR_LANG_LV LANGUAGES "..\\..\\Translations\\Language.lv.xml" +IDR_LANG_NB LANGUAGES "..\\..\\Translations\\Language.nb.xml" IDR_LANG_NN LANGUAGES "..\\..\\Translations\\Language.nn.xml" IDR_LANG_PTBR LANGUAGES "..\\..\\Translations\\Language.pt-br.xml" IDR_LANG_SK LANGUAGES "..\\..\\Translations\\Language.sk.xml" diff --git a/src/SetupDLL/SetupDLL_vs2019.vcxproj b/src/SetupDLL/SetupDLL_vs2019.vcxproj new file mode 100644 index 00000000..a7c2703c --- /dev/null +++ b/src/SetupDLL/SetupDLL_vs2019.vcxproj @@ -0,0 +1,264 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseCustomEFI|Win32"> + <Configuration>ReleaseCustomEFI</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{ADD324E2-ADC8-402E-87EB-03E4E26B1B49}</ProjectGuid> + <RootNamespace>Setup</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>SetupDLL</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)Debug\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)Debug\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest> + <EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EmbedManifest> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)Release\</OutDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)Release\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)Release\</IntDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">$(ProjectDir)Release\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">false</LinkIncremental> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest> + <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</GenerateManifest> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">VeraCryptSetup</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">VeraCryptSetup</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">VeraCryptSetup</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;SETUP_DLL;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/NODEFAULTLIB:LIBCMTD %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>version.lib;msi.lib;libcmtd.lib;atls.lib;mpr.lib;..\Common\Debug\Zip.lib;..\Crypto\Debug\crypto.lib;..\Common\Debug\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.dll</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)Setup.pdb</ProgramDatabaseFile> + <SubSystem>Windows</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ModuleDefinitionFile>SetupDLL.def</ModuleDefinitionFile> + <GenerateMapFile>true</GenerateMapFile> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>md "..\Debug\Setup Files" 2>NUL: +copy Debug\VeraCryptSetup.dll "..\Debug\Setup Files\VeraCryptSetup.dll" >NUL: +</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;SETUP_DLL;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4995;4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <ControlFlowGuard>Guard</ControlFlowGuard> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>version.lib;atls.lib;msi.lib;mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.dll</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ModuleDefinitionFile>SetupDLL.def</ModuleDefinitionFile> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy Release\VeraCryptSetup.dll "..\Release\Setup Files\VeraCryptSetup.dll"</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'"> + <ClCompile> + <AdditionalOptions>/w34189 %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;..\Common\lzma;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>SETUP;VC_EFI_CUSTOM_MODE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <BufferSecurityCheck>true</BufferSecurityCheck> + <PrecompiledHeader> + </PrecompiledHeader> + <AssemblerOutput>All</AssemblerOutput> + <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation> + <WarningLevel>Level4</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <Link> + <AdditionalOptions>/IGNORE:4089 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>version.lib;msi.lib;mpr.lib;..\Common\Release\Zip.lib;..\Crypto\Release\crypto.lib;..\Common\Release\lzma.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)VeraCryptSetup.exe</OutputFile> + <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> + <DelayLoadDLLs>mpr.dll;bcrypt.dll;user32.dll;gdi32.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;shlwapi.dll;setupapi.dll;wintrust.dll;comctl32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> + <GenerateDebugInformation>true</GenerateDebugInformation> + <GenerateMapFile>true</GenerateMapFile> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>true</RandomizedBaseAddress> + <DataExecutionPrevention>true</DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + <Manifest> + <AdditionalManifestFiles>Setup.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> + <PostBuildEvent> + <Command>copy Release\VeraCryptSetup.dll "..\Release\Setup Files\VeraCryptSetup.dll"</Command> + </PostBuildEvent> + <ResourceCompile> + <PreprocessorDefinitions>VC_EFI_CUSTOM_MODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="ComSetup.cpp" /> + <ClCompile Include="Dir.c" /> + <ClCompile Include="Setup.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Xml.c" /> + <ClCompile Include="..\Common\BootEncryption.cpp" /> + <ClCompile Include="..\Common\Crc.c" /> + <ClCompile Include="..\Common\Dictionary.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs> + <CompileAs Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">CompileAsCpp</CompileAs> + </ClCompile> + <ClCompile Include="..\Common\Endian.c" /> + <ClCompile Include="..\Common\Language.c" /> + <ClCompile Include="..\Common\Registry.c" /> + </ItemGroup> + <ItemGroup> + <None Include="ComSetup.rgs" /> + <None Include="Setup.ico" /> + <None Include="..\Common\VeraCrypt.ico" /> + <None Include="SetupDLL.def" /> + <None Include="VeraCrypt_setup.bmp" /> + <None Include="VeraCrypt_setup_background.bmp" /> + <None Include="..\Common\VeraCrypt_Volume.ico" /> + <None Include="..\Common\Language.xml" /> + <None Include="..\Resources\Texts\License.rtf" /> + <None Include="..\Common\Textual_logo_288dpi.bmp" /> + <None Include="..\Common\Textual_logo_96dpi.bmp" /> + <None Include="..\Common\Textual_logo_background.bmp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h" /> + <ClInclude Include="..\Common\Combo.h" /> + <ClInclude Include="ComSetup.h" /> + <ClInclude Include="..\Common\Crc.h" /> + <ClInclude Include="Dir.h" /> + <ClInclude Include="..\Common\Dlgcode.h" /> + <ClInclude Include="..\Common\Exception.h" /> + <ClInclude Include="..\Common\Inflate.h" /> + <ClInclude Include="..\Common\Language.h" /> + <ClInclude Include="..\Common\Registry.h" /> + <ClInclude Include="..\Common\Resource.h" /> + <ClInclude Include="Resource.h" /> + <ClInclude Include="Setup.h" /> + <ClInclude Include="..\Common\Tcdefs.h" /> + </ItemGroup> + <ItemGroup> + <Manifest Include="Setup.manifest" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="Setup.rc" /> + <ResourceCompile Include="..\Common\Common.rc"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseCustomEFI|Win32'">true</ExcludedFromBuild> + </ResourceCompile> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/src/SetupDLL/SetupDLL_vs2019.vcxproj.filters b/src/SetupDLL/SetupDLL_vs2019.vcxproj.filters new file mode 100644 index 00000000..e0429539 --- /dev/null +++ b/src/SetupDLL/SetupDLL_vs2019.vcxproj.filters @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\Common\Xml.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ComSetup.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Dir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\Endian.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Setup.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Common\BootEncryption.cpp"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dictionary.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Dlgcode.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Language.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Registry.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + <ClCompile Include="..\Common\Crc.c"> + <Filter>Source Files\Common</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\Common\Apidrvr.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Combo.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ComSetup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Crc.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Dir.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Dlgcode.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Exception.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Inflate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Language.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Registry.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Setup.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\Common\Tcdefs.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="Setup.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + <ResourceCompile Include="..\Common\Common.rc"> + <Filter>Resource Files\Common</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="Setup.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="VeraCrypt_setup_background.bmp"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\VeraCrypt_Volume.ico"> + <Filter>Resource Files</Filter> + </None> + <None Include="..\Common\Language.xml"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Resources\Texts\License.rtf"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_288dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_96dpi.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="..\Common\Textual_logo_background.bmp"> + <Filter>Resource Files\Common</Filter> + </None> + <None Include="ComSetup.rgs"> + <Filter>Source Files</Filter> + </None> + <None Include="SetupDLL.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{abfa03d7-3de7-4832-b36d-5b45cd0fc304}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{d912b4b9-7f5e-4063-8af7-4d544dde2233}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{5a0efac0-b028-4388-a278-1fe6dc479d79}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files\Common"> + <UniqueIdentifier>{3cb669f1-3949-43f4-a1e5-3b5d0fd75f76}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\Common"> + <UniqueIdentifier>{92f9499e-670d-464b-9edf-c1a2c56fb813}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <Manifest Include="Setup.manifest"> + <Filter>Resource Files</Filter> + </Manifest> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/src/SetupDLL/SetupDLL_vs2019.vcxproj.user b/src/SetupDLL/SetupDLL_vs2019.vcxproj.user new file mode 100644 index 00000000..ace9a86a --- /dev/null +++ b/src/SetupDLL/SetupDLL_vs2019.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +</Project>
\ No newline at end of file diff --git a/src/Signing/sign.bat b/src/Signing/sign.bat index f1df920a..7205849d 100644 --- a/src/Signing/sign.bat +++ b/src/Signing/sign.bat @@ -1,7 +1,7 @@ -PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip +PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86 -set VC_VERSION=1.26.10 -set VC_VERSION_NBRE=1.26.10 +set VC_VERSION=1.26.15 +set VC_VERSION_NBRE=1.26.15 set SIGNINGPATH=%~dp0 cd %SIGNINGPATH% @@ -25,7 +25,23 @@ copy ..\..\Setup\Setup.ico . del *.xml rmdir /S /Q Languages mkdir Languages -copy /V /Y ..\..\..\Translations\*.xml Languages\. + +@echo off +setlocal + +rem Define the source and target directories +set "SOURCE_DIR=..\..\..\Translations" +set "TARGET_DIR=Languages" + +rem Copy files matching Language.xx.xml where xx is any two characters +copy /V /Y "%SOURCE_DIR%\Language.??.xml" "%TARGET_DIR%\." + +rem Copy files matching Language.xx-yy.xml where xx and yy are any two characters +copy /V /Y "%SOURCE_DIR%\Language.??-??.xml" "%TARGET_DIR%\." + +endlocal +@echo on + del Languages.zip 7z a -y Languages.zip Languages rmdir /S /Q docs diff --git a/src/Signing/sign_TESTSIGNING.bat b/src/Signing/sign_TESTSIGNING.bat index bc75ff08..ac8d8390 100644 --- a/src/Signing/sign_TESTSIGNING.bat +++ b/src/Signing/sign_TESTSIGNING.bat @@ -1,7 +1,7 @@ PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip -set VC_VERSION=1.26.10 -set VC_VERSION_NBRE=1.26.10 +set VC_VERSION=1.26.15 +set VC_VERSION_NBRE=1.26.15 set SIGNINGPATH=%~dp0 cd %SIGNINGPATH% diff --git a/src/Signing/sign_test.bat b/src/Signing/sign_test.bat index 1dd2e4e2..c3e89a9f 100644 --- a/src/Signing/sign_test.bat +++ b/src/Signing/sign_test.bat @@ -1,6 +1,6 @@ PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip -set VC_VERSION=1.26.10 -set VC_VERSION_NBRE=1.26.10 +set VC_VERSION=1.26.15 +set VC_VERSION_NBRE=1.26.15 set PFXNAME=TestCertificate\idrix_codeSign.pfx set PFXPASSWORD=idrix set PFXCA=TestCertificate\idrix_TestRootCA.crt diff --git a/src/Signing/sign_test_debug.bat b/src/Signing/sign_test_debug.bat index 8e8d2d39..fa701681 100644 --- a/src/Signing/sign_test_debug.bat +++ b/src/Signing/sign_test_debug.bat @@ -1,6 +1,6 @@ PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip -set VC_VERSION=1.26.10 -set VC_VERSION_NBRE=1.26.10 +set VC_VERSION=1.26.15 +set VC_VERSION_NBRE=1.26.15 set PFXNAME=TestCertificate\idrix_codeSign.pfx set PFXPASSWORD=idrix set PFXCA=TestCertificate\idrix_TestRootCA.crt diff --git a/src/VeraCrypt_vs2019.sln b/src/VeraCrypt_vs2019.sln index 5c440480..e8d70246 100644 --- a/src/VeraCrypt_vs2019.sln +++ b/src/VeraCrypt_vs2019.sln @@ -28,6 +28,37 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driver", "Driver\veracrypt_ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Lzma", "Common\Lzma_vs2019.vcxproj", "{B896FE1F-6BF3-4F75-9148-F841829073D9}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup_vs2019.vcxproj", "{DF5F654D-BD44-4E31-B92E-B68074DC37A8}" + ProjectSection(ProjectDependencies) = postProject + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} = {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} + {B896FE1F-6BF3-4F75-9148-F841829073D9} = {B896FE1F-6BF3-4F75-9148-F841829073D9} + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} + {E4C40F94-E7F9-4981-86E4-186B46F993F3} = {E4C40F94-E7F9-4981-86E4-186B46F993F3} + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} = {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Portable", "Setup\Portable_vs2019.vcxproj", "{60698D56-DB83-4D19-9C87-9DFB6A6F8C87}" + ProjectSection(ProjectDependencies) = postProject + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} = {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} + {B896FE1F-6BF3-4F75-9148-F841829073D9} = {B896FE1F-6BF3-4F75-9148-F841829073D9} + {E4C40F94-E7F9-4981-86E4-186B46F993F3} = {E4C40F94-E7F9-4981-86E4-186B46F993F3} + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} = {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetupDLL", "SetupDLL\SetupDLL_vs2019.vcxproj", "{ADD324E2-ADC8-402E-87EB-03E4E26B1B49}" + ProjectSection(ProjectDependencies) = postProject + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} = {9715FF1D-599B-4BBC-AD96-BEF6E08FF827} + {B896FE1F-6BF3-4F75-9148-F841829073D9} = {B896FE1F-6BF3-4F75-9148-F841829073D9} + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} + {E4C40F94-E7F9-4981-86E4-186B46F993F3} = {E4C40F94-E7F9-4981-86E4-186B46F993F3} + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} = {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "COMReg", "COMReg\COMReg_vs2019.vcxproj", "{C8914211-32AC-4F48-ACD9-8212E8DE53F3}" + ProjectSection(ProjectDependencies) = postProject + {B896FE1F-6BF3-4F75-9148-F841829073D9} = {B896FE1F-6BF3-4F75-9148-F841829073D9} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All CustomEFI|ARM64 = All CustomEFI|ARM64 @@ -84,9 +115,15 @@ Global Portable|ARM64 = Portable|ARM64 Portable|Win32 = Portable|Win32 Portable|x64 = Portable|x64 + Release_SkipOsDriverReqCheck|ARM64 = Release_SkipOsDriverReqCheck|ARM64 + Release_SkipOsDriverReqCheck|Win32 = Release_SkipOsDriverReqCheck|Win32 + Release_SkipOsDriverReqCheck|x64 = Release_SkipOsDriverReqCheck|x64 Release|ARM64 = Release|ARM64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 + ReleaseCustomEFI|ARM64 = ReleaseCustomEFI|ARM64 + ReleaseCustomEFI|Win32 = ReleaseCustomEFI|Win32 + ReleaseCustomEFI|x64 = ReleaseCustomEFI|x64 Setup Debug|ARM64 = Setup Debug|ARM64 Setup Debug|Win32 = Setup Debug|Win32 Setup Debug|x64 = Setup Debug|x64 @@ -210,12 +247,24 @@ Global {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|Win32.ActiveCfg = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|x64.ActiveCfg = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|x64.Build.0 = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|ARM64.ActiveCfg = Release|ARM64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|ARM64.Build.0 = Release|ARM64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.ActiveCfg = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.Build.0 = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.ActiveCfg = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.Build.0 = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|ARM64.ActiveCfg = Release|ARM64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|ARM64.Build.0 = Release|ARM64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|Win32.ActiveCfg = Release|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|Win32.Build.0 = Release|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|x64.ActiveCfg = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.ReleaseCustomEFI|x64.Build.0 = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Setup Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -323,12 +372,24 @@ Global {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|Win32.ActiveCfg = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|x64.ActiveCfg = Release|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|x64.Build.0 = Release|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|ARM64.ActiveCfg = Release|ARM64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|ARM64.Build.0 = Release|ARM64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.ActiveCfg = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.Build.0 = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.ActiveCfg = Release|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.Build.0 = Release|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|ARM64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|ARM64.Build.0 = ReleaseCustomEFI|ARM64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.ReleaseCustomEFI|x64.Build.0 = ReleaseCustomEFI|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Setup Debug|Win32.ActiveCfg = Debug|Win32 @@ -434,12 +495,24 @@ Global {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|Win32.ActiveCfg = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|x64.ActiveCfg = Release|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|x64.Build.0 = Release|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|ARM64.ActiveCfg = Release|ARM64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|ARM64.Build.0 = Release|ARM64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.ActiveCfg = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.Build.0 = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.ActiveCfg = Release|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.Build.0 = Release|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|ARM64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|ARM64.Build.0 = ReleaseCustomEFI|ARM64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.ReleaseCustomEFI|x64.Build.0 = ReleaseCustomEFI|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Setup Debug|Win32.ActiveCfg = Debug|Win32 @@ -555,12 +628,24 @@ Global {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|Win32.ActiveCfg = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|x64.ActiveCfg = Release|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|x64.Build.0 = Release|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|ARM64.ActiveCfg = Release|ARM64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|ARM64.Build.0 = Release|ARM64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.ActiveCfg = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.Build.0 = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.ActiveCfg = Release|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.Build.0 = Release|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|ARM64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|ARM64.Build.0 = ReleaseCustomEFI|ARM64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.ReleaseCustomEFI|x64.Build.0 = ReleaseCustomEFI|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Setup Debug|Win32.ActiveCfg = Debug|Win32 @@ -664,11 +749,23 @@ Global {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|Win32.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|Win32.Build.0 = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|x64.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|ARM64.ActiveCfg = Release|ARM64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|ARM64.Build.0 = Release|ARM64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.Build.0 = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|x64.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|ARM64.ActiveCfg = Release|ARM64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|ARM64.Build.0 = Release|ARM64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|Win32.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|Win32.Build.0 = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|x64.ActiveCfg = Release|x64 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.ReleaseCustomEFI|x64.Build.0 = Release|x64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup Debug|Win32.ActiveCfg = Debug|Win32 @@ -764,11 +861,29 @@ Global {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Portable|ARM64.Deploy.0 = Debug|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Portable|Win32.ActiveCfg = Debug|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Portable|x64.ActiveCfg = Debug|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|ARM64.Deploy.0 = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|Win32.Deploy.0 = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release_SkipOsDriverReqCheck|x64.Deploy.0 = Release|x64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release|ARM64.ActiveCfg = Release|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release|ARM64.Build.0 = Release|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release|ARM64.Deploy.0 = Release|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release|Win32.ActiveCfg = Release|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Release|x64.ActiveCfg = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|ARM64.ActiveCfg = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|ARM64.Build.0 = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|ARM64.Deploy.0 = Release|ARM64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|Win32.ActiveCfg = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|Win32.Build.0 = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|Win32.Deploy.0 = Release|Win32 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|x64.ActiveCfg = Release|x64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|x64.Build.0 = Release|x64 + {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.ReleaseCustomEFI|x64.Deploy.0 = Release|x64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Setup Debug|ARM64.ActiveCfg = Debug|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Setup Debug|ARM64.Build.0 = Debug|ARM64 {4B41C7B5-75C6-40A2-AF4D-55BC1E012BCD}.Setup Debug|ARM64.Deploy.0 = Debug|ARM64 @@ -885,11 +1000,23 @@ Global {B896FE1F-6BF3-4F75-9148-F841829073D9}.Portable|Win32.Build.0 = Debug|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Portable|x64.ActiveCfg = Debug|x64 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Portable|x64.Build.0 = Debug|x64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release|ARM64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Release|ARM64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release|x64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release_SkipOsDriverReqCheck|x64.Build.0 = Release|x64 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release|ARM64.ActiveCfg = Release|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release|Win32.ActiveCfg = Release|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release|Win32.Build.0 = Release|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release|x64.ActiveCfg = Release|x64 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Release|x64.Build.0 = Release|x64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|ARM64.ActiveCfg = Release|ARM64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|ARM64.Build.0 = Release|ARM64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|Win32.ActiveCfg = Release|Win32 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|Win32.Build.0 = Release|Win32 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|x64.ActiveCfg = Release|x64 + {B896FE1F-6BF3-4F75-9148-F841829073D9}.ReleaseCustomEFI|x64.Build.0 = Release|x64 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup Debug|ARM64.ActiveCfg = Debug|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup Debug|ARM64.Build.0 = Debug|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup Debug|Win32.ActiveCfg = Debug|Win32 @@ -902,6 +1029,514 @@ Global {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup|Win32.Build.0 = Debug|Win32 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup|x64.ActiveCfg = Debug|x64 {B896FE1F-6BF3-4F75-9148-F841829073D9}.Setup|x64.Build.0 = Debug|x64 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All CustomEFI|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All CustomEFI|Win32.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All CustomEFI|Win32.Build.0 = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All CustomEFI|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|ARM64.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|Win32.Build.0 = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.All|x64.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot Loader|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Boot|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64 Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x64|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86 Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver x86|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|Win32.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|Win32.Build.0 = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Driver|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Format|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|ARM64.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.Build.0 = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|x64.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup Debug|x64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|ARM64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|ARM64.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Setup|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All CustomEFI|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All CustomEFI|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All CustomEFI|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All CustomEFI|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|ARM64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|Win32.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|Win32.Build.0 = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Release_SkipOsDriverReqCheck|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|ARM64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|x64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|ARM64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|ARM64.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All CustomEFI|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All CustomEFI|Win32.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All CustomEFI|Win32.Build.0 = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All CustomEFI|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All|ARM64.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All|Win32.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All|Win32.Build.0 = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.All|x64.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot Loader|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Boot|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64 Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x64|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86 Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver x86|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Driver|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Format|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Mount|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Portable|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|Win32.Build.0 = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release_SkipOsDriverReqCheck|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release|ARM64.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release|Win32.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release|Win32.Build.0 = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Release|x64.ActiveCfg = Release|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.ReleaseCustomEFI|ARM64.ActiveCfg = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.ReleaseCustomEFI|Win32.ActiveCfg = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.ReleaseCustomEFI|Win32.Build.0 = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.ReleaseCustomEFI|x64.ActiveCfg = ReleaseCustomEFI|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup Debug|x64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|ARM64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|ARM64.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|Win32.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|Win32.Build.0 = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|x64.ActiveCfg = Debug|Win32 + {ADD324E2-ADC8-402E-87EB-03E4E26B1B49}.Setup|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|Win32.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|Win32.Build.0 = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All CustomEFI|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|Win32.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|Win32.Build.0 = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.All|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot Loader|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Boot|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64 Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x64|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86 Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver x86|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Driver|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Format|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Mount|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Portable|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|Win32.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|Win32.Build.0 = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release_SkipOsDriverReqCheck|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release|ARM64.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release|Win32.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release|Win32.Build.0 = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Release|x64.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|Win32.ActiveCfg = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|Win32.Build.0 = Release|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.ReleaseCustomEFI|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup Debug|x64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|ARM64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|ARM64.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|Win32.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|Win32.Build.0 = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|x64.ActiveCfg = Debug|Win32 + {C8914211-32AC-4F48-ACD9-8212E8DE53F3}.Setup|x64.Build.0 = Debug|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Volume/Volume.h b/src/Volume/Volume.h index c816da58..4b91e435 100644 --- a/src/Volume/Volume.h +++ b/src/Volume/Volume.h @@ -114,6 +114,7 @@ namespace VeraCrypt void ReEncryptHeader (bool backupHeader, const ConstBufferPtr &newSalt, const ConstBufferPtr &newHeaderKey, shared_ptr <Pkcs5Kdf> newPkcs5Kdf); void WriteSectors (const ConstBufferPtr &buffer, uint64 byteOffset); bool IsEncryptionNotCompleted () const { return EncryptionNotCompleted; } + bool IsMasterKeyVulnerable() const { return Header && Header->IsMasterKeyVulnerable(); } protected: void CheckProtectedRange (uint64 writeHostOffset, uint64 writeLength); diff --git a/src/Volume/Volume.make b/src/Volume/Volume.make index c02bbdf1..708f28c5 100644 --- a/src/Volume/Volume.make +++ b/src/Volume/Volume.make @@ -52,6 +52,7 @@ ifneq "$(COMPILE_ASM)" "false" OBJSEX += ../Crypto/sha512_avx1.oo OBJSEX += ../Crypto/sha512_avx2.oo OBJSEX += ../Crypto/sha512_sse4.oo +endif else ifeq "$(CPU_ARCH)" "x86" OBJS += ../Crypto/Aes_x86.o ifeq "$(DISABLE_AESNI)" "0" @@ -77,7 +78,6 @@ else ifeq "$(CPU_ARCH)" "x64" else OBJS += ../Crypto/Aescrypt.o endif -endif ifeq "$(GCC_GTEQ_430)" "1" OBJSSSE41 += ../Crypto/blake2s_SSE41.osse41 diff --git a/src/Volume/VolumeHeader.cpp b/src/Volume/VolumeHeader.cpp index 57b63394..2b8699a3 100644 --- a/src/Volume/VolumeHeader.cpp +++ b/src/Volume/VolumeHeader.cpp @@ -47,6 +47,7 @@ namespace VeraCrypt EncryptedAreaLength = 0; Flags = 0; SectorSize = 0; + XtsKeyVulnerable = false; } void VolumeHeader::Create (const BufferPtr &headerBuffer, VolumeHeaderCreationOptions &options) @@ -62,6 +63,9 @@ namespace VeraCrypt DataAreaKey.Zero(); DataAreaKey.CopyFrom (options.DataKey); + // check if the XTS key is vulnerable by comparing the two parts of the key + XtsKeyVulnerable = (memcmp (options.DataKey.Get() + options.EA->GetKeySize(), options.DataKey.Get(), options.EA->GetKeySize()) == 0); + VolumeCreationTime = 0; HiddenVolumeDataSize = (options.Type == VolumeType::Hidden ? options.VolumeDataSize : 0); VolumeDataSize = options.VolumeDataSize; @@ -235,6 +239,9 @@ namespace VeraCrypt ea->SetKeyXTS (header.GetRange (offset + ea->GetKeySize(), ea->GetKeySize())); #endif mode->SetKey (header.GetRange (offset + ea->GetKeySize(), ea->GetKeySize())); + + // check if the XTS key is vulnerable by comparing the two parts of the key + XtsKeyVulnerable = (memcmp (DataAreaKey.Ptr() + ea->GetKeySize(), DataAreaKey.Ptr(), ea->GetKeySize()) == 0); } else { diff --git a/src/Volume/VolumeHeader.h b/src/Volume/VolumeHeader.h index 85908711..18a52950 100644 --- a/src/Volume/VolumeHeader.h +++ b/src/Volume/VolumeHeader.h @@ -76,6 +76,7 @@ namespace VeraCrypt uint64 GetVolumeDataSize () const { return VolumeDataSize; } VolumeTime GetVolumeCreationTime () const { return VolumeCreationTime; } void SetSize (uint32 headerSize); + bool IsMasterKeyVulnerable () const { return XtsKeyVulnerable; } protected: bool Deserialize (const ConstBufferPtr &header, shared_ptr <EncryptionAlgorithm> &ea, shared_ptr <EncryptionMode> &mode); @@ -120,6 +121,7 @@ namespace VeraCrypt uint32 SectorSize; SecureBuffer DataAreaKey; + bool XtsKeyVulnerable; private: VolumeHeader (const VolumeHeader &); diff --git a/src/Volume/VolumeInfo.cpp b/src/Volume/VolumeInfo.cpp index 699e203f..f3b044b7 100644 --- a/src/Volume/VolumeInfo.cpp +++ b/src/Volume/VolumeInfo.cpp @@ -55,6 +55,7 @@ namespace VeraCrypt VirtualDevice = sr.DeserializeWString ("VirtualDevice"); sr.Deserialize ("VolumeCreationTime", VolumeCreationTime); sr.Deserialize ("Pim", Pim); + sr.Deserialize ("MasterKeyVulnerable", MasterKeyVulnerable); } bool VolumeInfo::FirstVolumeMountedAfterSecond (shared_ptr <VolumeInfo> first, shared_ptr <VolumeInfo> second) @@ -95,6 +96,7 @@ namespace VeraCrypt sr.Serialize ("VirtualDevice", wstring (VirtualDevice)); sr.Serialize ("VolumeCreationTime", VolumeCreationTime); sr.Serialize ("Pim", Pim); + sr.Serialize ("MasterKeyVulnerable", MasterKeyVulnerable); } void VolumeInfo::Set (const Volume &volume) @@ -119,6 +121,7 @@ namespace VeraCrypt TotalDataRead = volume.GetTotalDataRead(); TotalDataWritten = volume.GetTotalDataWritten(); Pim = volume.GetPim (); + MasterKeyVulnerable = volume.IsMasterKeyVulnerable(); } TC_SERIALIZER_FACTORY_ADD_CLASS (VolumeInfo); diff --git a/src/Volume/VolumeInfo.h b/src/Volume/VolumeInfo.h index 1adc87e3..ad6c2ca4 100644 --- a/src/Volume/VolumeInfo.h +++ b/src/Volume/VolumeInfo.h @@ -61,7 +61,7 @@ namespace VeraCrypt DevicePath VirtualDevice; VolumeTime VolumeCreationTime; int Pim; - + bool MasterKeyVulnerable; private: VolumeInfo (const VolumeInfo &); VolumeInfo &operator= (const VolumeInfo &); |