VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Translations/Language.ar.xml4
-rw-r--r--Translations/Language.be.xml6
-rw-r--r--Translations/Language.bg.xml4
-rw-r--r--Translations/Language.ca.xml4
-rw-r--r--Translations/Language.cs.xml4
-rw-r--r--Translations/Language.da.xml4
-rw-r--r--Translations/Language.de.xml12
-rw-r--r--Translations/Language.el.xml4
-rw-r--r--Translations/Language.es.xml4
-rw-r--r--Translations/Language.et.xml4
-rw-r--r--Translations/Language.eu.xml4
-rw-r--r--Translations/Language.fa.xml4
-rw-r--r--Translations/Language.fi.xml4
-rw-r--r--Translations/Language.fr.xml32
-rw-r--r--Translations/Language.hu.xml4
-rw-r--r--Translations/Language.id.xml4
-rw-r--r--Translations/Language.it.xml4
-rw-r--r--Translations/Language.ja.xml4
-rw-r--r--Translations/Language.ka.xml4
-rw-r--r--Translations/Language.ko.xml4
-rw-r--r--Translations/Language.lv.xml4
-rw-r--r--Translations/Language.my.xml4
-rw-r--r--Translations/Language.nl.xml4
-rw-r--r--Translations/Language.nn.xml4
-rw-r--r--Translations/Language.pl.xml4
-rw-r--r--Translations/Language.pt-br.xml4
-rw-r--r--Translations/Language.ro.xml6
-rw-r--r--Translations/Language.ru.xml222
-rw-r--r--Translations/Language.sk.xml4
-rw-r--r--Translations/Language.sl.xml4
-rw-r--r--Translations/Language.sv.xml4
-rw-r--r--Translations/Language.th.xml4
-rw-r--r--Translations/Language.tr.xml4
-rw-r--r--Translations/Language.uk.xml4
-rw-r--r--Translations/Language.uz.xml4
-rw-r--r--Translations/Language.vi.xml4
-rw-r--r--Translations/Language.zh-cn.xml4
-rw-r--r--Translations/Language.zh-hk.xml4
-rw-r--r--Translations/Language.zh-tw.xml4
-rw-r--r--doc/chm/VeraCrypt User Guide.chmbin1955405 -> 1971049 bytes
-rw-r--r--doc/chm/VeraCrypt.hhp1
-rw-r--r--doc/html/Command Line Usage.html11
-rw-r--r--doc/html/Digital Signatures.html4
-rw-r--r--doc/html/Donation.html6
-rw-r--r--doc/html/Donation_Bank.html51
-rw-r--r--doc/html/Donation_donate.gifbin0 -> 1714 bytes
-rw-r--r--doc/html/Release Notes.html53
-rw-r--r--doc/html/VeraCrypt Rescue Disk.html70
-rw-r--r--doc/html/flag-nz-small.pngbin0 -> 783 bytes
-rw-r--r--doc/html/flag-nz.pngbin0 -> 1494 bytes
-rw-r--r--src/Boot/EFI/DcsBoot.efibin22840 -> 23928 bytes
-rw-r--r--src/Boot/EFI/DcsBoot32.efibin19672 -> 20440 bytes
-rw-r--r--src/Boot/EFI/DcsCfg.efibin952568 -> 953272 bytes
-rw-r--r--src/Boot/EFI/DcsCfg32.efibin815512 -> 815928 bytes
-rw-r--r--src/Boot/EFI/DcsInfo.efibin37144 -> 37144 bytes
-rw-r--r--src/Boot/EFI/DcsInfo32.efibin33880 -> 33880 bytes
-rw-r--r--src/Boot/EFI/DcsInt.efibin911032 -> 911672 bytes
-rw-r--r--src/Boot/EFI/DcsInt32.efibin794360 -> 794712 bytes
-rw-r--r--src/Boot/EFI/DcsRe.efibin28344 -> 28472 bytes
-rw-r--r--src/Boot/EFI/DcsRe32.efibin23960 -> 24056 bytes
-rw-r--r--src/Boot/EFI/LegacySpeaker.efibin9816 -> 9816 bytes
-rw-r--r--src/Boot/EFI/LegacySpeaker32.efibin9560 -> 9560 bytes
-rw-r--r--src/Build/CMakeLists.txt327
-rw-r--r--src/Build/Packaging/debian-control/prerm9
-rw-r--r--src/Build/Packaging/rpm-control/prerm.sh9
-rw-r--r--src/Build/Resources/MacOSX/Info.plist.legacy.xml106
-rw-r--r--src/Build/Resources/MacOSX/Info.plist.xml10
-rwxr-xr-xsrc/Build/build_cmake_deb.sh43
-rw-r--r--src/Build/build_cmake_rpm_gtk2.sh69
-rw-r--r--src/Build/build_cmake_rpm_gtk3.sh69
-rwxr-xr-xsrc/Build/build_veracrypt_macosx.sh20
-rwxr-xr-xsrc/Build/build_veracrypt_macosx_legacy.sh32
-rw-r--r--src/Common/BootEncryption.cpp322
-rw-r--r--src/Common/BootEncryption.h5
-rw-r--r--src/Common/Common.rc49
-rw-r--r--src/Common/Crypto.c2
-rw-r--r--src/Common/Crypto.h2
-rw-r--r--src/Common/Dlgcode.c146
-rw-r--r--src/Common/Dlgcode.h6
-rw-r--r--src/Common/Language.xml2
-rw-r--r--src/Common/Random.c27
-rw-r--r--src/Common/Random.h1
-rw-r--r--src/Common/Tcdefs.h10
-rw-r--r--src/Common/libzip/NEWS.md8
-rw-r--r--src/Common/libzip/compat.h2
-rw-r--r--src/Common/libzip/config.h2
-rw-r--r--src/Common/libzip/zip.h70
-rw-r--r--src/Common/libzip/zip_add.c2
-rw-r--r--src/Common/libzip/zip_add_dir.c2
-rw-r--r--src/Common/libzip/zip_add_entry.c2
-rw-r--r--src/Common/libzip/zip_algorithm_deflate.c2
-rw-r--r--src/Common/libzip/zip_buffer.c2
-rw-r--r--src/Common/libzip/zip_close.c27
-rw-r--r--src/Common/libzip/zip_delete.c2
-rw-r--r--src/Common/libzip/zip_dir_add.c2
-rw-r--r--src/Common/libzip/zip_dirent.c8
-rw-r--r--src/Common/libzip/zip_discard.c2
-rw-r--r--src/Common/libzip/zip_entry.c2
-rw-r--r--src/Common/libzip/zip_error.c2
-rw-r--r--src/Common/libzip/zip_error_clear.c2
-rw-r--r--src/Common/libzip/zip_error_get.c2
-rw-r--r--src/Common/libzip/zip_error_get_sys_type.c2
-rw-r--r--src/Common/libzip/zip_error_strerror.c2
-rw-r--r--src/Common/libzip/zip_error_to_str.c2
-rw-r--r--src/Common/libzip/zip_extra_field.c2
-rw-r--r--src/Common/libzip/zip_extra_field_api.c2
-rw-r--r--src/Common/libzip/zip_fclose.c2
-rw-r--r--src/Common/libzip/zip_fdopen.c4
-rw-r--r--src/Common/libzip/zip_file_add.c2
-rw-r--r--src/Common/libzip/zip_file_error_clear.c2
-rw-r--r--src/Common/libzip/zip_file_error_get.c2
-rw-r--r--src/Common/libzip/zip_file_get_comment.c2
-rw-r--r--src/Common/libzip/zip_file_get_external_attributes.c2
-rw-r--r--src/Common/libzip/zip_file_get_offset.c2
-rw-r--r--src/Common/libzip/zip_file_rename.c2
-rw-r--r--src/Common/libzip/zip_file_replace.c2
-rw-r--r--src/Common/libzip/zip_file_set_comment.c2
-rw-r--r--src/Common/libzip/zip_file_set_external_attributes.c2
-rw-r--r--src/Common/libzip/zip_file_set_mtime.c2
-rw-r--r--src/Common/libzip/zip_file_strerror.c2
-rw-r--r--src/Common/libzip/zip_filerange_crc.c14
-rw-r--r--src/Common/libzip/zip_fopen.c2
-rw-r--r--src/Common/libzip/zip_fopen_encrypted.c2
-rw-r--r--src/Common/libzip/zip_fopen_index.c2
-rw-r--r--src/Common/libzip/zip_fopen_index_encrypted.c2
-rw-r--r--src/Common/libzip/zip_fread.c2
-rw-r--r--src/Common/libzip/zip_get_archive_comment.c2
-rw-r--r--src/Common/libzip/zip_get_archive_flag.c2
-rw-r--r--src/Common/libzip/zip_get_encryption_implementation.c2
-rw-r--r--src/Common/libzip/zip_get_file_comment.c2
-rw-r--r--src/Common/libzip/zip_get_name.c2
-rw-r--r--src/Common/libzip/zip_get_num_entries.c2
-rw-r--r--src/Common/libzip/zip_get_num_files.c2
-rw-r--r--src/Common/libzip/zip_hash.c2
-rw-r--r--src/Common/libzip/zip_io_util.c2
-rw-r--r--src/Common/libzip/zip_memdup.c2
-rw-r--r--src/Common/libzip/zip_name_locate.c2
-rw-r--r--src/Common/libzip/zip_new.c2
-rw-r--r--src/Common/libzip/zip_open.c3
-rw-r--r--src/Common/libzip/zip_progress.c2
-rw-r--r--src/Common/libzip/zip_rename.c2
-rw-r--r--src/Common/libzip/zip_replace.c2
-rw-r--r--src/Common/libzip/zip_set_archive_comment.c2
-rw-r--r--src/Common/libzip/zip_set_archive_flag.c2
-rw-r--r--src/Common/libzip/zip_set_default_password.c2
-rw-r--r--src/Common/libzip/zip_set_file_comment.c2
-rw-r--r--src/Common/libzip/zip_set_file_compression.c2
-rw-r--r--src/Common/libzip/zip_set_name.c2
-rw-r--r--src/Common/libzip/zip_source_begin_write.c2
-rw-r--r--src/Common/libzip/zip_source_begin_write_cloning.c2
-rw-r--r--src/Common/libzip/zip_source_buffer.c6
-rw-r--r--src/Common/libzip/zip_source_call.c2
-rw-r--r--src/Common/libzip/zip_source_close.c2
-rw-r--r--src/Common/libzip/zip_source_commit_write.c2
-rw-r--r--src/Common/libzip/zip_source_compress.c2
-rw-r--r--src/Common/libzip/zip_source_crc.c3
-rw-r--r--src/Common/libzip/zip_source_error.c2
-rw-r--r--src/Common/libzip/zip_source_file.c2
-rw-r--r--src/Common/libzip/zip_source_filep.c17
-rw-r--r--src/Common/libzip/zip_source_free.c2
-rw-r--r--src/Common/libzip/zip_source_function.c2
-rw-r--r--src/Common/libzip/zip_source_get_compression_flags.c2
-rw-r--r--src/Common/libzip/zip_source_is_deleted.c2
-rw-r--r--src/Common/libzip/zip_source_layered.c2
-rw-r--r--src/Common/libzip/zip_source_open.c2
-rw-r--r--src/Common/libzip/zip_source_pkware.c2
-rw-r--r--src/Common/libzip/zip_source_read.c4
-rw-r--r--src/Common/libzip/zip_source_remove.c2
-rw-r--r--src/Common/libzip/zip_source_rollback_write.c2
-rw-r--r--src/Common/libzip/zip_source_seek.c9
-rw-r--r--src/Common/libzip/zip_source_seek_write.c2
-rw-r--r--src/Common/libzip/zip_source_stat.c2
-rw-r--r--src/Common/libzip/zip_source_supports.c2
-rw-r--r--src/Common/libzip/zip_source_tell.c2
-rw-r--r--src/Common/libzip/zip_source_tell_write.c2
-rw-r--r--src/Common/libzip/zip_source_win32a.c2
-rw-r--r--src/Common/libzip/zip_source_win32handle.c2
-rw-r--r--src/Common/libzip/zip_source_win32utf8.c2
-rw-r--r--src/Common/libzip/zip_source_win32w.c2
-rw-r--r--src/Common/libzip/zip_source_window.c17
-rw-r--r--src/Common/libzip/zip_source_write.c2
-rw-r--r--src/Common/libzip/zip_source_zip.c2
-rw-r--r--src/Common/libzip/zip_source_zip_new.c2
-rw-r--r--src/Common/libzip/zip_stat.c2
-rw-r--r--src/Common/libzip/zip_stat_index.c2
-rw-r--r--src/Common/libzip/zip_stat_init.c2
-rw-r--r--src/Common/libzip/zip_strerror.c2
-rw-r--r--src/Common/libzip/zip_string.c2
-rw-r--r--src/Common/libzip/zip_unchange.c2
-rw-r--r--src/Common/libzip/zip_unchange_all.c2
-rw-r--r--src/Common/libzip/zip_unchange_archive.c2
-rw-r--r--src/Common/libzip/zip_unchange_data.c2
-rw-r--r--src/Common/libzip/zip_utf-8.c4
-rw-r--r--src/Common/libzip/zipint.h23
-rw-r--r--src/Common/libzip/zipwin32.h2
-rw-r--r--src/Core/Unix/CoreService.cpp38
-rw-r--r--src/Core/VolumeCreator.h1
-rw-r--r--src/Crypto/Sha2.c2
-rw-r--r--src/Crypto/Whirlpool.c14
-rw-r--r--src/Crypto/cpu.h4
-rw-r--r--src/Driver/DriveFilter.c6
-rw-r--r--src/Driver/Driver.rc4
-rw-r--r--src/ExpandVolume/DlgExpandVolume.cpp72
-rw-r--r--src/ExpandVolume/ExpandVolume.c40
-rw-r--r--src/ExpandVolume/ExpandVolume.h2
-rw-r--r--src/ExpandVolume/ExpandVolume.rc17
-rw-r--r--src/ExpandVolume/resource.h5
-rw-r--r--src/Format/Format.rc550
-rw-r--r--src/Format/Tcformat.c5
-rw-r--r--src/Format/VeraCrypt_Wizard.bmpbin166518 -> 190998 bytes
-rw-r--r--src/Main/CommandLineInterface.cpp5
-rw-r--r--src/Main/CommandLineInterface.h1
-rw-r--r--src/Main/Forms/DeviceSelectionDialog.cpp40
-rw-r--r--src/Main/Forms/Forms.cpp21
-rw-r--r--src/Main/Forms/KeyfilesPanel.cpp2
-rw-r--r--src/Main/Forms/MainFrame.cpp2
-rw-r--r--src/Main/Forms/TrueCrypt.fbp24
-rw-r--r--src/Main/Forms/VolumeCreationWizard.cpp1
-rw-r--r--src/Main/Forms/VolumeFormatOptionsWizardPage.cpp4
-rw-r--r--src/Main/Forms/VolumePasswordPanel.cpp2
-rw-r--r--src/Main/Forms/VolumeSizeWizardPage.cpp10
-rw-r--r--src/Main/Forms/VolumeSizeWizardPage.h1
-rwxr-xr-xsrc/Main/GraphicUserInterface.cpp2
-rwxr-xr-xsrc/Main/Main.make132
-rw-r--r--src/Main/TextUserInterface.cpp21
-rw-r--r--src/Makefile61
-rw-r--r--src/Mount/Favorites.cpp132
-rw-r--r--src/Mount/Mount.c66
-rw-r--r--src/Mount/Mount.rc8
-rw-r--r--src/Mount/Mount.vcxproj.user4
-rw-r--r--src/Release/Setup Files/veracrypt-x64.catbin10793 -> 10615 bytes
-rw-r--r--src/Release/Setup Files/veracrypt-x64.sysbin827816 -> 828256 bytes
-rw-r--r--src/Release/Setup Files/veracrypt.Inf2
-rw-r--r--src/Release/Setup Files/veracrypt.catbin10740 -> 10768 bytes
-rw-r--r--src/Release/Setup Files/veracrypt.sysbin765992 -> 766640 bytes
-rw-r--r--src/Setup/FreeBSD/veracrypt-uninstall.sh1
-rw-r--r--src/Setup/Linux/veracrypt-uninstall.sh1
-rwxr-xr-xsrc/Setup/MacOSX/veracrypt.pkgproj4
-rw-r--r--src/Setup/Portable.rc8
-rw-r--r--src/Setup/Setup.rc8
-rw-r--r--src/Signing/DigiCert_High_Assurance_Code_Signing_CA.cerbin0 -> 1734 bytes
-rw-r--r--src/Signing/DigiCert_High_Assurance_MS_Cross_Cert.crt30
-rw-r--r--src/Signing/Thawt_CodeSigning_CA.crt27
-rw-r--r--src/Signing/sign.bat8
-rw-r--r--src/Signing/sign_test.bat2
-rw-r--r--src/Signing/sign_test_debug.bat2
-rw-r--r--src/Signing/thawte_Primary_MS_Cross_Cert.cer32
-rw-r--r--src/Volume/VolumePassword.cpp4
-rw-r--r--src/Volume/VolumePassword.h6
249 files changed, 2649 insertions, 1072 deletions
diff --git a/Translations/Language.ar.xml b/Translations/Language.ar.xml
index b0eac83..fc1d001 100644
--- a/Translations/Language.ar.xml
+++ b/Translations/Language.ar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="ar" name="العربية" en-name="Arabic" version="0.2.0" translators="Ahmad Gharbeia, Khaled Hosny, Ali Khojah" />
<font lang="ar" class="normal" size="11" face="default" />
<font lang="ar" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="ar" key="IDT_BENCHMARK">مقايسة الأداء:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.be.xml b/Translations/Language.be.xml
index 0ef381a..c0bf3da 100644
--- a/Translations/Language.be.xml
+++ b/Translations/Language.be.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="be" name="Беларуская" en-name="Belarusian" version="0.1.0" translators="Aleg Azarousky" />
<font lang="be" class="normal" size="11" face="default" />
<font lang="be" class="bold" size="13" face="Arial" />
@@ -25,7 +25,7 @@
<entry lang="be" key="IDT_INSTALL_DESTINATION">Абярыце або ўвядзіце месца на дыску, дзе Вы жадаеце ўсталяваць праграмныя файлы VeraCrypt. Калі азначанай тэчкі не існуе, яна будзе створана аўтаматычна.</entry>
<entry lang="be" key="IDT_UNINSTALL_DIR">Націсніце 'Дэўсталяваць' для выдалення VeraCrypt з сістэмы.</entry>
<entry lang="be" key="IDC_ABORT_BUTTON">Спыніць</entry>
- <entry lang="en" key="IDC_BENCHMARK">&amp;Benchmark</entry>
+ <entry lang="be" key="IDC_BENCHMARK">&amp;Тэст хуткасці</entry>
<entry lang="be" key="IDC_CIPHER_TEST">Тэст</entry>
<entry lang="en" key="IDC_DEVICE_TRANSFORM_MODE_FORMAT">Create encrypted volume and format it</entry>
<entry lang="en" key="IDC_DEVICE_TRANSFORM_MODE_INPLACE">Encrypt partition in place</entry>
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="be" key="IDT_BENCHMARK">Тэст хуткасці:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.bg.xml b/Translations/Language.bg.xml
index a89dbea..9310b1a 100644
--- a/Translations/Language.bg.xml
+++ b/Translations/Language.bg.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="bg" name="Български" en-name="Bulgarian" version="0.1.0" translators="Lachezar Gorchev" />
<font lang="bg" class="normal" size="11" face="default" />
<font lang="bg" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="bg" key="IDT_BENCHMARK">Тест:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ca.xml b/Translations/Language.ca.xml
index a4463e6..822cf2f 100644
--- a/Translations/Language.ca.xml
+++ b/Translations/Language.ca.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="ca" name="Català" en-name="Catalan" version="0.1.0" translators="CESICAT, Centre de Seguretat de la Informació de Catalunya" />
<font lang="ca" class="normal" size="11" face="default" />
<font lang="ca" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="ca" key="IDT_BENCHMARK">Prova de rendiment:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.cs.xml b/Translations/Language.cs.xml
index 245a6bb..7c124ea 100644
--- a/Translations/Language.cs.xml
+++ b/Translations/Language.cs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="cs" name="Čeština" en-name="Czech" version="1.1.0" translators="Vítek Moser, Lagardere" />
<font lang="cs" class="normal" size="11" face="default" />
<font lang="cs" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="cs" key="IDC_ENABLE_CPU_RNG">Použít náhodné hardwarové generování v CPU jako dodatečný zdroj entropie</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="cs" key="IDT_BENCHMARK">Test výkonu:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.da.xml b/Translations/Language.da.xml
index 4f37326..dcfd764 100644
--- a/Translations/Language.da.xml
+++ b/Translations/Language.da.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="da" name="Dansk" en-name="Danish" version="0.1.0" translators="Lasse Bond" />
<font lang="da" class="normal" size="11" face="default" />
<font lang="da" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.de.xml b/Translations/Language.de.xml
index 5811cc3..74196e5 100644
--- a/Translations/Language.de.xml
+++ b/Translations/Language.de.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<!-- Sprachen -->
- <language langid="de" name="Deutsch" en-name="German" version="1.1.8" translators="Harry Haller, Alexander Schorg, Simon Frankenberger, David Arndt, H. Sauer, Dulla, Ettore Atalan, Matthias Kolja Miehl" />
+ <language langid="de" name="Deutsch" en-name="German" version="1.1.8" translators="Harry Haller, Alexander Schorg, Simon Frankenberger, David Arndt, H. Sauer, Dulla, Ettore Atalan, Matthias Kolja Miehl, Felix Reichmann" />
<!-- Schriftarten -->
<font lang="de" class="normal" size="11" face="default" />
<font lang="de" class="bold" size="13" face="Arial" />
@@ -56,7 +56,7 @@
<entry lang="de" key="IDC_MORE_INFO_ON_SYS_ENCRYPTION">Mehr Informationen über die Systemverschlüsselung</entry>
<entry lang="de" key="IDC_MORE_INFO_SYS_ENCRYPTION">Mehr Informationen</entry>
<entry lang="de" key="IDC_MULTI_BOOT">Mehrere Betriebssysteme</entry>
- <entry lang="de" key="IDC_NONSYS_DEVICE">Verschlüsselt eine Partition/ein Laufwerk</entry>
+ <entry lang="de" key="IDC_NONSYS_DEVICE">Eine Partition/ein Laufwerk verschlüsseln</entry>
<entry lang="de" key="IDC_NO_HISTORY">Verlauf &amp;nicht speichern</entry>
<entry lang="de" key="IDC_OPEN_OUTER_VOLUME">Äußeres Volume öffnen</entry>
<entry lang="de" key="IDC_PAUSE">&amp;Pause</entry>
@@ -70,7 +70,7 @@
<entry lang="de" key="IDC_STD_VOL">Standard VeraCrypt-Volume</entry>
<entry lang="de" key="IDC_SYSENC_HIDDEN">V&amp;ersteckt</entry>
<entry lang="de" key="IDC_SYSENC_NORMAL">Normal</entry>
- <entry lang="de" key="IDC_SYS_DEVICE">System-Partition bzw. System-Laufwerk verschlüsseln</entry>
+ <entry lang="de" key="IDC_SYS_DEVICE">Eine System-Partition bzw. ein System-Laufwerk verschlüsseln</entry>
<entry lang="de" key="IDC_SYS_PARTITION">Die Windows System-Partition verschlüsseln</entry>
<entry lang="de" key="IDC_WHOLE_SYS_DRIVE">Gesamtes Laufwerk verschlüsseln</entry>
<entry lang="de" key="IDD_VOL_CREATION_WIZARD_DLG">Assistent zum Erstellen eines VeraCrypt-Volumes</entry>
@@ -88,7 +88,7 @@
<entry lang="de" key="IDT_LEFT">Rest</entry>
<entry lang="de" key="IDT_MASTER_KEY">Hauptschlüssel: </entry>
<entry lang="de" key="IDT_MULTI_BOOT">Diese Option wählen, falls zwei oder mehrere Betriebssysteme auf diesem System installiert sind.\n\nZum Beispiel:\n- Windows 8 und Windows 8\n- Windows 8 und Windows 10\n- Windows und Mac OS X\n- Windows und Linux\n- Windows, Linux und Mac OS X</entry>
- <entry lang="de" key="IDT_NON_SYS_DEVICE">Verschlüsselt eine Nicht-Systempartition auf internen oder externen Laufwerken (als normales oder verstecktes Volume).</entry>
+ <entry lang="de" key="IDT_NON_SYS_DEVICE">Verschlüsselt eine Nicht-Systempartition auf internen oder externen Laufwerken (als normales oder verstecktes Volumen).</entry>
<entry lang="de" key="IDT_PARTIAL_POOL_CONTENTS">Aktueller Inhalte-Pool (teilweise)</entry>
<entry lang="de" key="IDT_PASS">Durchgang</entry>
<entry lang="de" key="IDT_PASSWORD">&amp;Passwort:</entry>
@@ -1438,6 +1438,8 @@
<entry lang="de" key="IDC_ENABLE_CPU_RNG">CPU-Hardware-Zufallsgenerator als zusätzliche Entropiequelle verwenden</entry>
<entry lang="de" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Alte maximale Passwortlänge verwenden (64 Zeichen)</entry>
<entry lang="de" key="IDC_ENABLE_RAM_ENCRYPTION">Verschlüsselung der im Arbeitsspeicher gespeicherten Schlüssel und Passwörter aktivieren</entry>
+ <entry lang="de" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="de" key="IDC_DISABLE_MOUNT_MANAGER">Nur virtuelles Gerät erstellen ohne Einbinden auf dem ausgewählten Laufwerksbuchstaben</entry>
</localization>
<!-- XML-Schema -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
diff --git a/Translations/Language.el.xml b/Translations/Language.el.xml
index b1a0932..8cd10c0 100644
--- a/Translations/Language.el.xml
+++ b/Translations/Language.el.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="el" name="Ελληνικά" en-name="Greek" version="0.1.0" translators="Βασίλης Κοσμίδης" />
<font lang="el" class="normal" size="11" face="default" />
<font lang="el" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.es.xml b/Translations/Language.es.xml
index b3d49e8..3bafe3f 100644
--- a/Translations/Language.es.xml
+++ b/Translations/Language.es.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="es" name="Español" en-name="Spanish" version="1.0.0" translators="Juan Antonio Auñón Ochando" />
<font lang="es" class="normal" size="11" face="default" />
<font lang="es" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="es" key="IDT_BENCHMARK">Comparación:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.et.xml b/Translations/Language.et.xml
index c5d2550..7ba8c9f 100644
--- a/Translations/Language.et.xml
+++ b/Translations/Language.et.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="et" name="Eesti" en-name="Estonian" version="0.1.0" translators="Maiko Mõtsar" />
<font lang="et" class="normal" size="11" face="vaikimisi" />
<font lang="et" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="et" key="IDT_BENCHMARK">Jõudlustest:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.eu.xml b/Translations/Language.eu.xml
index e93212c..2ea11ff 100644
--- a/Translations/Language.eu.xml
+++ b/Translations/Language.eu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="eu" name="Euskara" en-name="Basque" version="1.0.0" translators="Ander Genua" />
<font lang="eu" class="normal" size="11" face="default" />
<font lang="eu" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="eu" key="IDT_BENCHMARK">Proba-Bankua:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.fa.xml b/Translations/Language.fa.xml
index 2f91fce..f9b5280 100644
--- a/Translations/Language.fa.xml
+++ b/Translations/Language.fa.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="fa" name="فارسي" en-name="Persian" version="0.1.0" translators="Ali Bitazar, Rodabeh Sarmadi" />
<font lang="fa" class="normal" size="11" face="default" />
<font lang="fa" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.fi.xml b/Translations/Language.fi.xml
index 4ed6dd8..a12da8a 100644
--- a/Translations/Language.fi.xml
+++ b/Translations/Language.fi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="fi" name="Suomi" en-name="Finnish" version="0.2.0" translators="Matti Ruhanen" />
<font lang="fi" class="normal" size="11" face="default" />
<font lang="fi" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="fi" key="IDT_BENCHMARK">Nopeustesti:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.fr.xml b/Translations/Language.fr.xml
index f6f6661..daf7b7a 100644
--- a/Translations/Language.fr.xml
+++ b/Translations/Language.fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="fr" name="Français" en-name="French" version="0.3.0" translators="Stéphane S., Olivier M., Thierry T" />
<font lang="fr" class="normal" size="11" face="default" />
<font lang="fr" class="bold" size="13" face="Arial" />
@@ -426,8 +426,8 @@
<entry lang="fr" key="DEVICE_IN_USE_INFO">AVERTISSEMENT : Certains périphériques/partitions étaient déjà en cours d’utilisation !\n\nL’ignorer peut causer des résultats indésirables.\n\nNous vous recommandons de fermer toutes les applications pouvant utiliser les périphériques/les partitions.</entry>
<entry lang="fr" key="DEVICE_PARTITIONS_ERR">Le périphérique contient des partitions.\n\nFormater le périphérique peut conduire à l’instabilité du système ou la corruption des données. Sélectionnez une partition sur le périphérique ou enlevez toutes les partitions du périphérique pour permettre à VeraCrypt de formater en toute sécurité.</entry>
<entry lang="fr" key="DEVICE_PARTITIONS_ERR_W_INPLACE_ENC_NOTE">Le lecteur sélectionné contient des partitions non-systèmes.\n\nLes volumes VeraCrypt peuvent être créés sur un lecteur ne contenant pas de partitions (cela inclut les disques durs et les SSD). Un lecteur contenant des partitions peut être entièrement chiffré (en utilisant une clé maître) seulement si c’est le lecteur où est installé Windows et qu’il est bootable.\n\nSi vous voulez chiffrer le lecteur non-système sélectionné en utlisant une clé maître, vous devrez préalablement retirer toutes les partitions situées sur le lecteur pour permettre à VeraCrypt de le formater de manière sécurisé (formater un lecteur contenant des partitions pourrait causer une instabilité système ou une corruption de données). Sinon, vous pouvez chiffrer individuellement chaque partition du lecteur (chaque partition sera chiffrée en utilisant une clé maître différente).\n\nRemarque : Si vous souhaitez supprimer toutes les partitions d’un disque GPT, il faudra le convertir en disque MBR (en utilisant par exemple les outils de gestion de l’ordinateur) afin de supprimer des partitions cachées.</entry>
- <entry lang="fr" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">AVERTISSEMENT : Si vous chiffrez complètement un lecteur (par opposition au chiffrage d’une partition sur celui-ci), le système d’exploitation considérera le lecteur comme nouveau, vide, et non formatté (comme s’il ne contenait pas de table de partition) et pourrait spontanément l’initialiser (ou vous demander si vous voulez le faire), ce qui pourrait endommager le volume. En outre, il ne sera pas toujours possible de monter le volume en tant que favori (ex : quand le numéro de lecteur change) ou attribuer un label au volume.\n\nPour empêcher cela, vous pouvez envisager de créer une partition sur le lecteur et la chiffrer.\n\nÊtes-vous sûr de vouloir chiffrer complètement le lecteur ?</entry>
- <entry lang="fr" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT : Gardez à l’esprit que ce volume ne peut pas être monté ou accessible en utilisant l’unité logique %c: qui lui est actuellement assigné !\n\nPour monter ce volume, cliquez sur ’Montage automatique des lecteurs’ dans la fenêtre principale de VeraCrypt (sinon, dans la fenêtre principale de VeraCrypt, cliquez ’Selectionner un lecteur’, choisissez le lecteur/partition, et cliquez sur ’Monter’). Ce volume sera monté sur une unité logique différente, que vous pouvez sélectionner dans la fenêtre principale de Veracrypt.\n\nL’unité logique %c ne devrait être utilisée que dans le cas où vous avez besoin de retirer le chiffrage du lecteur ou de la partition (par exemple, si vous n’avez pas besoin de chiffrage). Dans ce cas, faites un clic droit sur la lettre %c: du lecteur et sélectionnez ’Formater’. Par ailleurs, l’unité logique %c: ne devrait jamais être utilisée (sauf si vous la retirez et l’assignez à un autre lecteur/partition, comme décrit par exemple dans la FAQ de VeraCrypt).</entry>
+ <entry lang="fr" key="WHOLE_NONSYS_DEVICE_ENC_CONFIRM">AVERTISSEMENT : Si vous chiffrez complètement un lecteur (par opposition au chiffrement d’une partition sur celui-ci), le système d’exploitation considérera le lecteur comme nouveau, vide, et non formatté (comme s’il ne contenait pas de table de partition) et pourrait spontanément l’initialiser (ou vous demander si vous voulez le faire), ce qui pourrait endommager le volume. En outre, il ne sera pas toujours possible de monter le volume en tant que favori (ex : quand le numéro de lecteur change) ou attribuer un label au volume.\n\nPour empêcher cela, vous pouvez envisager de créer une partition sur le lecteur et la chiffrer.\n\nÊtes-vous sûr de vouloir chiffrer complètement le lecteur ?</entry>
+ <entry lang="fr" key="AFTER_FORMAT_DRIVE_LETTER_WARN">IMPORTANT : Gardez à l’esprit que ce volume ne peut pas être monté ou accessible en utilisant l’unité logique %c: qui lui est actuellement assigné !\n\nPour monter ce volume, cliquez sur ’Montage automatique des lecteurs’ dans la fenêtre principale de VeraCrypt (sinon, dans la fenêtre principale de VeraCrypt, cliquez ’Selectionner un lecteur’, choisissez le lecteur/partition, et cliquez sur ’Monter’). Ce volume sera monté sur une unité logique différente, que vous pouvez sélectionner dans la fenêtre principale de Veracrypt.\n\nL’unité logique %c ne devrait être utilisée que dans le cas où vous avez besoin de retirer le chiffrement du lecteur ou de la partition (par exemple, si vous n’avez pas besoin de chiffrement). Dans ce cas, faites un clic droit sur la lettre %c: du lecteur et sélectionnez ’Formater’. Par ailleurs, l’unité logique %c: ne devrait jamais être utilisée (sauf si vous la retirez et l’assignez à un autre lecteur/partition, comme décrit par exemple dans la FAQ de VeraCrypt).</entry>
<entry lang="fr" key="OS_NOT_SUPPORTED_FOR_NONSYS_INPLACE_ENC">Le chiffrement sur place des volumes non-système n’est pas supporté par la version du système d’exploitation que vous utilisez (il est pris en charge uniquement sur Windows Vista et les versions ultérieures de Windows).\n\nLa raison est que cette version de Windows ne supporte pas la réduction du système de fichiers (le système de fichiers doit être réduit pour faire place à l’en-tête de volume et l’en-tête de sauvegarde).</entry>
<entry lang="fr" key="ONLY_NTFS_SUPPORTED_FOR_NONSYS_INPLACE_ENC">La partition sélectionnée ne semble pas contenir un système de fichiers NTFS. Seules les partitions qui contiennent un système de fichiers NTFS peuvent être cryptées sur place.\n\nRemarque : la raison est que Windows ne supporte pas la réduction des autres types de systèmes de fichiers (le système de fichiers doit être rétréci pour faire place à l’en-tête de volume et l’en-tête de sauvegarde).</entry>
<entry lang="fr" key="ONLY_MOUNTED_VOL_SUPPORTED_FOR_NONSYS_INPLACE_ENC">La partition sélectionnée ne semble pas contenir un système de fichiers NTFS. Seules les partitions qui contiennent un système de fichiers NTFS peuvent être chiffrées sur place.\n\nSi vous souhaitez créer un volume chiffré de VeraCrypt dans cette partition, choisissez l’option « Créer le volume chiffré et formatez-le » (au lieu de l’option "Chiffrer la partition en place").</entry>
@@ -484,7 +484,7 @@
<entry lang="fr" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Comme vous créez un volume externe, vous devriez choisir ’Non’. Si vous choisissez ’Oui’, le système de fichiers par défaut sera NTFS, qui ne convient pas aussi bien que FAT/exFAT pour les volumes externes (par exemple la taille maxi pour le volume caché sera plus grande de façon significative si le volume externe est formaté en FAT/exFAT). Normalement FAT est le choix par défaut pour les deux types de volume (caché, et normal - ainsi les volumes FAT ne sont pas suspicieux). Cependant, si l’utilisateur indique son intention de stocker des fichiers plus grands que 4Go (que le système FAT ne supporte pas) alors FAT n’est pas le choix par défaut.</entry>
<entry lang="fr" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Êtes-vous sûr de vouloir choisir ’Oui’ ?</entry>
<entry lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Mode création de volume</entry>
- <entry lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">C’est le moyen le plus rapide pour créer un volume VeraCrypt hébergé sur une partition ou sur un périphérique (le chiffrage sur place, qui est l’autre option, est plus lent parce que le contenu de chaque secteur doit être d’abord lu, chiffré puis écrit). Toutes les données actuellement stockées sur la partition/périphérique sélectionné seront perdues (les données ne seront pas chiffrées ; elles seront remplacées par des données aléatoires). Si vous souhaitez chiffrer les données existantes sur une partition, choisissez l’autre option.</entry>
+ <entry lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_FORMAT_HELP">C’est le moyen le plus rapide pour créer un volume VeraCrypt hébergé sur une partition ou sur un périphérique (le chiffrement sur place, qui est l’autre option, est plus lent parce que le contenu de chaque secteur doit être d’abord lu, chiffré puis écrit). Toutes les données actuellement stockées sur la partition/périphérique sélectionné seront perdues (les données ne seront pas chiffrées ; elles seront remplacées par des données aléatoires). Si vous souhaitez chiffrer les données existantes sur une partition, choisissez l’autre option.</entry>
<entry lang="fr" key="DEVICE_TRANSFORM_MODE_PAGE_INPLACE_HELP">La partition sélectionnée et toutes les données stockées dessus seront chiffrées sur place. Si la partition est vide, vous deriez choisir l’autre option (le volume sera créé beaucoup plus vite).</entry>
<entry lang="fr" key="NOTE_BEGINNING">Remarque : </entry>
<entry lang="fr" key="RESUME">&amp;Reprendre</entry>
@@ -530,7 +530,7 @@
<entry lang="fr" key="HIDVOL_HOST_PRE_CIPHER_HELP_SYSENC">\n\nDans les étapes suivantes, vous allez créer un pseudo volume externe VeraCrypt dans la première partition après la partition système (comme cela a été expliqué précédemment).</entry>
<entry lang="fr" key="HIDVOL_HOST_PRE_CIPHER_TITLE">Volume externe</entry>
<entry lang="fr" key="HIDDEN_OS_PRE_CIPHER_HELP">Dans les étapes suivantes, vous allez définir les options et mot de passe pour le volume caché, qui contiendra le système d’exploitation caché.\n\nRemarque : Le volume externe a été scanné afin de déterminer la taille de la zone ininterrompue d’espace libre dont l’extrémité est alignée avec l’extrémité extérieure du volume. Cette zone pourra accueillir le volume caché et elel limite sa taille maximale possible. La taille maximale possible du volume caché a été déterminée et confirmée pour être supérieure à la taille de la partition système (ce qui est nécessaire, car la totalité du contenu de la partition système doit être copiée dans le volume caché). Cela garantit qu’aucune donnée actuellement stockée sur le volume extérieur sera remplacée par les données écrites sur la zone du volume caché.</entry>
- <entry lang="fr" key="HIDDEN_OS_PRE_CIPHER_WARNING">Important : Mémorisez les algorithmes que vous sélectionnez à cette étape. Vous devrez sélectionner les mêmes algorithmes pour le système de leurre, sinon le système caché sera inaccessible! (Le système de leurre doit être chiffré avec le même algorithme de cryptage que le système caché).\n\nRemarque : La raison en est que le système de leurre et le système caché partageront le même chargeur d’amorçage, qui ne supporte qu’un seul algorithme sélectionné par l’utilisateur (pour chaque algorithme, il y a une version spéciale du chargeur d’amorçage de VeraCrypt) .</entry>
+ <entry lang="fr" key="HIDDEN_OS_PRE_CIPHER_WARNING">Important : Mémorisez les algorithmes que vous sélectionnez à cette étape. Vous devrez sélectionner les mêmes algorithmes pour le système de leurre, sinon le système caché sera inaccessible! (Le système de leurre doit être chiffré avec le même algorithme de chiffrement que le système caché).\n\nRemarque : La raison en est que le système de leurre et le système caché partageront le même chargeur d’amorçage, qui ne supporte qu’un seul algorithme sélectionné par l’utilisateur (pour chaque algorithme, il y a une version spéciale du chargeur d’amorçage de VeraCrypt) .</entry>
<entry lang="fr" key="HIDVOL_PRE_CIPHER_HELP">\n\nLe plan de configuration du volume a été scanné et la taille maximale possible du volume caché a été déterminée. Dans les étapes qui suivent vous paramétrerez les options, la taille et le mot de passe du volume caché.</entry>
<entry lang="fr" key="HIDVOL_PRE_CIPHER_TITLE">Volume caché</entry>
<entry lang="fr" key="HIDVOL_PROT_WARN_AFTER_MOUNT">Le volume caché est maintenant protégé contre les dommages jusqu’au démontage du volume externe.\n\nAVERTISSEMENT : Si vous tentez de sauvegarder des données dans la zone du volume caché, VeraCrypt lancera la protection en écriture sur l’intégralité du volume (partie externe et cachée) jusqu’au démontage. Cela peut provoquer la corruption du système de fichiers sur le volume externe ce qui (si répétition) pourrait affecter le déni plausible du volume caché. Aussi faites tout votre possible pour éviter d’écrire dans la zone du volume caché. Toute tentative de sauvegarde sur le volume caché échouera et les données seront perdues ! Windows considérera cela comme une erreur d’écriture ("L’écriture décalée a échoué" ou "Le paramètre est incorrect").</entry>
@@ -757,7 +757,7 @@
<entry lang="fr" key="FOR_MORE_INFO_ON_PARTITIONS">Pour plus d’infos sur la façon de créer et gérer des partitions, consultez la documentation de votre système d’exploitation ou contactez le technicien du SAV de votre ordinateur.</entry>
<entry lang="fr" key="SYSTEM_PARTITION_NOT_ACTIVE">Erreur : Le système d’exploitation actuellement utilisé n’est pas installé sur la partition d’amorçage (la 1ère partition active). Ce n’est pas supporté.</entry>
<entry lang="fr" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Vous avez indiqué que vous avez l’intention de stocker des fichiers de plus de 4 Go dans ce volume VeraCrypt. Cependant, vous avez choisi le système de fichiers FAT, sur lequel des fichiers de plus de 4 Go ne peuvent pas être stockés.\n\nEtes-vous sûr que vous voulez formater le volume en FAT?</entry>
- <entry lang="fr" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Erreur: VeraCrypt ne supporte pas le décryptage sur place des volumes non-système existants créés par VeraCrypt 1.0b ou antérieur.\n\nREMARQUE: Vous pouvez toujours déchiffrer les fichiers stockés sur le volume en les copiant/déplaçant vers un volume non chiffré.</entry>
+ <entry lang="fr" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Erreur: VeraCrypt ne supporte pas le déchiffrement sur place des volumes non-système existants créés par VeraCrypt 1.0b ou antérieur.\n\nREMARQUE: Vous pouvez toujours déchiffrer les fichiers stockés sur le volume en les copiant/déplaçant vers un volume non chiffré.</entry>
<entry lang="fr" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Erreur: VeraCrypt ne peut pas déchiffrer sur place un volume VeraCrypt caché.\n\nREMARQUE: Vous pouvez toujours déchiffrer les fichiers stockés sur le volume en les copiant/déplaçant vers un volume non chiffré.</entry>
<entry lang="fr" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Attention: Notez que VeraCrypt ne peut pas déchiffrer sur place un volume qui contient un volume caché VeraCrypt (le volume caché serait alors écrasé avec les données pseudo-aléatoires).\n\nVeuillez confirmer que le volume que vous êtes sur le point de déchiffrer ne contient pas de volume caché.\n\nREMARQUE: Si le volume contient un volume caché mais cela ne vous dérange pas de perdre le volume caché, alors vous pouvez sélectionner Continuer (le volume extérieur sera déchifré en toute sécurité).</entry>
<entry lang="fr" key="VOL_CONTAINS_NO_HIDDEN_VOL">Le volume ne contient aucun volume caché. Continuer.</entry>
@@ -827,7 +827,7 @@
<entry lang="fr" key="SETUP_MODE_TITLE">Mode assistant</entry>
<entry lang="fr" key="SETUP_MODE_INFO">Sélectionnez l’un des modes. Si vous ne savez pas lequel, utilisez celui par défaut.</entry>
<entry lang="fr" key="SETUP_MODE_HELP_INSTALL">Sélectionnez cette option si vous voulez installer VeraCrypt sur ce système.</entry>
- <entry lang="fr" key="SETUP_MODE_HELP_UPGRADE">Remarque : Vous pouvez mettre à niveau sans déchiffrage même si le système partition/disque est chiffré ou si vous utilisez un système d’exploitation caché.</entry>
+ <entry lang="fr" key="SETUP_MODE_HELP_UPGRADE">Remarque : Vous pouvez mettre à niveau sans déchiffrer même si la partition/disque système est chiffré ou si vous utilisez un système d’exploitation caché.</entry>
<entry lang="fr" key="SETUP_MODE_HELP_EXTRACT">Si vous sélectionnez cette option, tous les fichiers seront extraits de ce paquet, mais rien ne sera installé sur le système. Ne la sélectionnez pas si vous voulez chiffrer la partition système ou le lecteur système. Cette option peut être utile, par exemple, si vous souhaitez exécuter VeraCrypt en mode portable. VeraCrypt n’a pas besoin d’être installé sur le système d’exploitation sous lequel il est exécuté. Une fois que tous les fichiers sont extraits, vous pouvez exécuter directement le fichier « VeraCrypt.exe » (VeraCrypt s’exécute alors en mode portable).</entry>
<entry lang="fr" key="SETUP_OPTIONS_TITLE">Options d’installation</entry>
<entry lang="fr" key="SETUP_OPTIONS_INFO">Ici vous pouvez paramétrer diverses options pour contrôler l’installation.</entry>
@@ -891,7 +891,7 @@
<entry lang="fr" key="REMOVING_DRIVER">Désinstallation du pilote de périphérique VeraCrypt</entry>
<entry lang="fr" key="COM_REG_FAILED">L’enregistrement de la bibliothèque de support du Contrôle de Compte Utilisateur (UAC) a échoué.</entry>
<entry lang="fr" key="COM_DEREG_FAILED">Le désenregistrement de la bibliothèque de support du Contrôle de Compte Utilisateur (UAC) a échoué.</entry>
- <entry lang="fr" key="TRAVELER_LIMITATIONS_NOTE">Remarque sur le mode portable :\n\nLe système d’exploitation nécessite des pilotes enregistrés avant qu’ils puissent être démarrés. Par conséquent, le pilote VeraCrypt n’est pas (et ne peut pas l’être) entièrement portable (alors que les applications de VeraCrypt sont entièrement portables, c’est-à-dire qu’elles n’ont pas à être installées ou enregistrées avec le système d’exploitation). Notez également que VeraCrypt a besoin d’un pilote pour fournir le chiffrage/déchiffrage à la volée de manière transparente.</entry>
+ <entry lang="fr" key="TRAVELER_LIMITATIONS_NOTE">Remarque sur le mode portable :\n\nLe système d’exploitation nécessite des pilotes enregistrés avant qu’ils puissent être démarrés. Par conséquent, le pilote VeraCrypt n’est pas (et ne peut pas l’être) entièrement portable (alors que les applications de VeraCrypt sont entièrement portables, c’est-à-dire qu’elles n’ont pas à être installées ou enregistrées avec le système d’exploitation). Notez également que VeraCrypt a besoin d’un pilote pour fournir le chiffrement/déchiffrement à la volée de manière transparente.</entry>
<entry lang="fr" key="TRAVELER_UAC_NOTE">Notez que si vous décidez d’exécuter VeraCrypt en mode portable (par opposition à l’utilisation d’une copie installée de VeraCrypt), le système vous demandera l’autorisation d’exécuter VeraCrypt (invite UAC) chaque fois que vous essayez de l’exécuter.\n\nLa raison est que, lorsque vous exécutez VeraCrypt en mode portable, VeraCrypt doit charger et démarrer le pilote de périphérique VeraCrypt. VeraCrypt a besoin d’un pilote de périphérique pour fournir le chiffrement/déchiffrement à la volée de manière transparente, et les utilisateurs sans privilèges d’administrateur ne peuvent pas démarrer les pilotes de périphériques dans Windows. Par conséquent, le système demandera votre autorisation d’exécuter VeraCrypt avec des privilèges d’administrateur (UAC prompt).\n\nSi vous installez VeraCrypt sur le système (par opposition à l’exécution de VeraCrypt en mode portable), le système ne demandera pas votre autorisation pour exécuter VeraCrypt (invite UAC) chaque fois que vous le lancez.\n\nÊtes-vous sûr que vous souhaitez extraire les fichiers ?</entry>
<entry lang="fr" key="CONTAINER_ADMIN_WARNING">AVERTISSEMENT : Cette instance de l’Assistant de création de Volume a des privilèges administrateur.\n\nVotre nouveau volume peut être créé avec des autorisations qui ne vous permettent pas d’écrire sur le volume quand il est monté. Si vous voulez éviter cela, fermez cette instance de l’Assistant de création de Volume et lancez-en une nouvelle sans privilèges administrateur.\n\nVoulez-vous fermer cette instance de l’Assistant de création de Volume ?</entry>
<entry lang="fr" key="CANNOT_DISPLAY_LICENSE">Erreur : Impossible d’afficher la licence.</entry>
@@ -914,8 +914,8 @@
<entry lang="fr" key="PROGRESS_STATUS_WAITING">En attente</entry>
<entry lang="fr" key="PROGRESS_STATUS_PREPARING">Préparation</entry>
<entry lang="fr" key="PROGRESS_STATUS_RESIZING">Redimensionnement</entry>
- <entry lang="fr" key="PROGRESS_STATUS_ENCRYPTING">Cryptage</entry>
- <entry lang="fr" key="PROGRESS_STATUS_DECRYPTING">Décryptage</entry>
+ <entry lang="fr" key="PROGRESS_STATUS_ENCRYPTING">Chiffrement</entry>
+ <entry lang="fr" key="PROGRESS_STATUS_DECRYPTING">Déchiffrement</entry>
<entry lang="fr" key="PROGRESS_STATUS_FINALIZING">Finalisation</entry>
<entry lang="fr" key="PROGRESS_STATUS_PAUSED">En pause</entry>
<entry lang="fr" key="PROGRESS_STATUS_FINISHED">Terminé</entry>
@@ -1184,7 +1184,7 @@
<entry lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_3">- Si les étapes précédentes ne résolvent pas le problème ou si l’écran du chargeur de démarrage de VeraCrypt n’apparaît pas (avant le démarrage de Windows), insérez le disque de secours VeraCrypt dans votre lecteur de CD/DVD et redémarrez votre ordinateur. Si l’écran VeraCrypt du disque de secours n’apparaît pas (ou si vous ne voyez pas l’élément "Options de réparation" dans la section "Contrôles clavier" de l’écran VeraCrypt du disque de secours), il est possible que votre BIOS soit configuré pour tenter de démarrer à partir des disques durs avant de lecteurs CD/DVD. Si tel est le cas, redémarrez votre ordinateur, appuyez sur F2 ou SUPPR (dès que vous voyez l’écran de démarrage du BIOS) et attendez que l’écran de configuration du BIOS s’affiche. Si aucun écran de configuration du BIOS s’affiche, redémarrez l’ordinateur à nouveau et en appuyant sur F2 ou Suppr à plusieurs reprises lors de la séquence de redémarrage de l’ordinateur. Lorsque l’écran de configuration du BIOS s’affiche, configurez votre BIOS pour démarrer en premier lieu depuis le lecteur de CD/DVD (pour plus d’informations sur la façon de le faire, référez-vous à la documentation de votre BIOS/carte mère ou contactez l’équipe de support technique du fournisseur de votre ordinateur). Puis redémarrez votre ordinateur. L’écran VeraCrypt du disque de secours doit apparaître maintenant. Dans l’écran VeraCrypt du disque de secours, sélectionnez « Options de réparation » en appuyant sur la touche F8 du clavier. Dans le menu "Options de réparation", sélectionnez « Restaurer le chargeur du système original ». Ensuite, retirez la disquette de secours de votre lecteur CD/DVD et redémarrez votre ordinateur. Windows devrait démarrer normalement (à condition qu’il ne soit pas chiffré).\n\n</entry>
<entry lang="fr" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Notez que les étapes précédentes ne fonctionnent pas si le système partition/disque est chiffré (personne ne peut démarrer Windows ou accéder à des données chiffrées sur le disque sans le mot de passe même si les étapes précédentes ont été suivies).\n\n\nNotez que même si vous perdez votre disque de secours VeraCrypt et qu’une personne le trouve, elle ne sera pas en mesure de déchiffrer le lecteur/partition sans le bon mot de passe.</entry>
<entry lang="fr" key="SYS_ENCRYPTION_PRETEST_RESULT_TITLE">Pré-test terminé</entry>
- <entry lang="fr" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Le pré-test a été terminé avec succès.\n\nAVERTISSEMENT : Si l’alimentation est interrompue soudainement alors que les données existantes en place sont entrain d’être chiffrées, ou lorsque le système d’exploitation plante pendant que VeraCrypt chiffre les données existantes en place, certaines parties des données seront endommagées ou perdues. Par conséquent, avant de commencer à chiffrer, veuillez vous assurer que vous disposez de copies de sauvegarde des fichiers que vous souhaitez chiffrer. Si vous n’en avez pas, veuillez sauvegarder les fichiers maintenant (vous pouvez cliquer sur Reporter, sauvegardez les fichiers, puis exécutez à nouveau VeraCrypt et sélectionnez « Système » &gt; « Reprendre le processus interrompu » pour lancer le chiffrage).\n\nCliquez alors sur chiffrer pour démarrer le chiffrement.</entry>
+ <entry lang="fr" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Le pré-test a été terminé avec succès.\n\nAVERTISSEMENT : Si l’alimentation est interrompue soudainement alors que les données existantes en place sont entrain d’être chiffrées, ou lorsque le système d’exploitation plante pendant que VeraCrypt chiffre les données existantes en place, certaines parties des données seront endommagées ou perdues. Par conséquent, avant de commencer à chiffrer, veuillez vous assurer que vous disposez de copies de sauvegarde des fichiers que vous souhaitez chiffrer. Si vous n’en avez pas, veuillez sauvegarder les fichiers maintenant (vous pouvez cliquer sur Reporter, sauvegardez les fichiers, puis exécutez à nouveau VeraCrypt et sélectionnez « Système » &gt; « Reprendre le processus interrompu » pour lancer le chiffrement).\n\nCliquez alors sur chiffrer pour démarrer le chiffrement.</entry>
<entry lang="fr" key="SYSENC_ENCRYPTION_PAGE_INFO">Pour interrompre le processus de chiffrement ou de déchiffrement, vous pouvez cliquez sur Pause ou Reporter à tout moment, quitter cet Assistant, redémarrer ou éteindre votre ordinateur et ensuite reprendre le processus, qui se poursuivra à partir du point où il a été arrêté. Pour éviter les ralentissements lorsque le système ou les applications écrivent ou lisent des données depuis le lecteur système, VeraCrypt attend automatiquement que les données soient écrites ou lues (voir conditions ci-dessus) et continue ensuite automatiquement le chiffrement ou déchiffrement.</entry>
<entry lang="fr" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nPour interrompre le processus de chiffrement ou de déchiffrement, vous pouvez cliquez sur Pause ou Reporter à tout moment, quitter cet Assistant, redémarrer ou éteindre votre ordinateur et ensuite reprendre le processus, qui se poursuivra à partir du point où il a été arrêté. Notez que le volume ne pourra pas être monté jusqu’à ce que le chiffrement soit entièrement terminé.</entry>
<entry lang="fr" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nVous pouvez cliquez sur Suspendre ou Différer à tout moment pour interrompre le processus de déchiffrement, quitter cet assistant, redémarrer ou éteindre l’ordinateur, puis reprendre le processus, qui se poursuivra à partir du point où il s’est arrêté. Notez que le volume ne peut pas être monté avant d’avoir été entièrement déchiffré.</entry>
@@ -1202,7 +1202,7 @@
<entry lang="fr" key="RESCUE_DISK_HELP_PORTION_4">1) Si l’écran du chargeur de démarrage VeraCrypt n’apparaît pas lorsque vous démarrez votre ordinateur (ou si Windows ne démarre pas), le chargeur de démarrage VeraCrypt peut être endommagé. Le disque de secours de VeraCrypt permet de le restaurer et donc de rétablir l’accès à votre système chiffré et aux données (Cependant, notez que vous devrez toujours entrer le mot de passe). Dans l’écran du disque de secours, sélectionnez "Options de réparation" &gt; « Restaurer le chargeur de démarrage VeraCrypt ». Appuyez sur « O » pour confirmer l’action, retirez le disque de secours de votre lecteur de CD/DVD et redémarrez votre ordinateur.\n\n</entry>
<entry lang="fr" key="RESCUE_DISK_HELP_PORTION_5">2) Si vous entrez plusieurs fois le bon mot de passe mais que VeraCrypt dit que le mot de passe est incorrect, la clé principale ou d’autres données critiques peuvent être endommagées. Le disque de secours VeraCrypt vous permet de les restaurer et donc de rétablir l’accès à votre système chiffré et aux données (Cependant, notez que vous devrez toujours entrer le mot de passe). Dans l’écran du disque de secours, sélectionnez "Options de réparation" &gt; « Restaurer les données-clés ». Puis entrez votre mot de passe, appuyez sur « O » pour confirmer l’action, retirez le disque de secours de votre lecteur de CD/DVD et redémarrez votre ordinateur.\n\n</entry>
<entry lang="fr" key="RESCUE_DISK_HELP_PORTION_6">3) Si le chargeur de démarrage VeraCrypt est endommagé, vous pouvez son exécution en démarrant directement à partir du disque de secours VeraCrypt. Insérez le disque de secours dans le lecteur de CD/DVD et entrez le mot de passe dans l’écran du disque de secours.\n\n</entry>
- <entry lang="fr" key="RESCUE_DISK_HELP_PORTION_7">4) Si Windows est endommagé et ne peut pas démarrer, le disque de secours VeraCrypt vous permet en permanence de déchiffrer la partition/disque avant le démarrage de Windows. Dans l’écran du disque de secours, sélectionnez ’Options de réparation’ &gt; « Déchiffrer de manière permanente la partition/lecteur système ». Entrez le mot de passe et attendez que le déchiffrage soit terminé. Ensuite, vous pourrez par exemple démarrer sur le CD/DVD de MS Windows pour réparer votre installation de Windows.\n\n</entry>
+ <entry lang="fr" key="RESCUE_DISK_HELP_PORTION_7">4) Si Windows est endommagé et ne peut pas démarrer, le disque de secours VeraCrypt vous permet en permanence de déchiffrer la partition/disque avant le démarrage de Windows. Dans l’écran du disque de secours, sélectionnez ’Options de réparation’ &gt; « Déchiffrer de manière permanente la partition/lecteur système ». Entrez le mot de passe et attendez que le déchiffrement soit terminé. Ensuite, vous pourrez par exemple démarrer sur le CD/DVD de MS Windows pour réparer votre installation de Windows.\n\n</entry>
<entry lang="fr" key="RESCUE_DISK_HELP_PORTION_8">Remarque : Si Windows est endommagé (il ne démarre plus) et que vous devez le réparer (ou accéder aux fichiers), vous pouvez éviter de déchiffrer la partition/disque système en procédant comme suit : Si vous avez plusieurs systèmes d’exploitation installés sur votre ordinateur, démarrez celui qui ne nécessite pas d’authentification lors du préamorçage. Si vous n’avez pas plusieurs systèmes d’exploitation installés sur votre ordinateur, vous pouvez démarrer sur un CD/DVD WinPE ou BartPE, ou vous pouvez connecter votre lecteur système comme disque secondaire ou externe sur un autre ordinateur, puis démarrez le système d’exploitation installé sur l’ordinateur. Après avoir démarré un système, exécutez VeraCrypt, cliquez sur « Sélectionner le périphérique », sélectionnez la partition système affectée, cliquez sur « OK », sélectionnez « Système » &gt; « Monter sans authentification de dpréamorçage », entrez votre mot de passe d’authentificatione préamorçage et cliquez sur ’OK’. La partition sera montée comme un volume VeraCrypt régulier (les données seront déchifré/cryptée à la volée en RAM lors de l’accès, comme d’habitude).\n\n\n</entry>
<entry lang="fr" key="RESCUE_DISK_HELP_PORTION_9">Notez que même si vous perdez le disque de secours VeraCrypt et qu’une personne le trouve, elle ne sera pas en mesure de déchiffrer la partition système ou le disque sans le mot de passe.</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_1">\n\nI M P O R T A N T -- VEUILLEZ IMPRIMER CE TEXTE SI POSSIBLE (cliquez sur « Imprimer » ci-dessous).\n\n\nRemarque : Ce texte s’affiche automatiquement chaque fois que vous démarrez le système caché jusqu’à ce que vous commenciez à créer le système de leurre.\n\n\n</entry>
@@ -1214,7 +1214,7 @@
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_7">5) Dans l’assistant de création de volume VeraCrypt, ne sélectionnez pas l’option « Caché ». Laissez l’option « Normale » sélectionnée, puis cliquez sur « Suivant ».\n\n</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_8">6) Sélectionnez l’option « Chiffrer la partition système Windows » et cliquez ensuite sur « Suivant ».\n\n</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_9">7) S’il y a seulement le système caché et le système leurre installés sur l’ordinateur, sélectionnez l’option « Amorçage unique » (s’il y a plus que ces deux systèmes installés sur l’ordinateur, sélectionnez « Multi amorçage »). Puis cliquez sur « Suivant ».\n\n</entry>
- <entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) IMPORTANT : dans cette étape, POUR LE SYSTÈME LEURRE, VOUS DEVEZ SÉLECTIONNER LE MÊME ALGORITHME DE CHIFFRAGE ET DE HACHAGE QUE VOUS AVEZ SÉLECTIONNÉ POUR LE SYSTÈME CACHÉ! DANS LE CAS CONTRAIRE, LE SYSTÈME CACHÉ NE SERA PLUS ACCESSIBLES ! En d’autres termes, le système leurre doit être chiffré avec le même algorithme de chiffrement que le système caché. Note : La raison est que le système leurre et le système caché partageront un chargeur de démarrage unique, qui prend uniquement en charge un seul algorithme, sélectionné par l’utilisateur (pour chaque algorithme, il y a une version spéciale du chargeur d’amorçage VeraCrypt).\n\n</entry>
+ <entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_10">8) IMPORTANT : dans cette étape, POUR LE SYSTÈME LEURRE, VOUS DEVEZ SÉLECTIONNER LE MÊME ALGORITHME DE CHIFFREMENT ET DE HACHAGE QUE VOUS AVEZ SÉLECTIONNÉ POUR LE SYSTÈME CACHÉ! DANS LE CAS CONTRAIRE, LE SYSTÈME CACHÉ NE SERA PLUS ACCESSIBLES ! En d’autres termes, le système leurre doit être chiffré avec le même algorithme de chiffrement que le système caché. Note : La raison est que le système leurre et le système caché partageront un chargeur de démarrage unique, qui prend uniquement en charge un seul algorithme, sélectionné par l’utilisateur (pour chaque algorithme, il y a une version spéciale du chargeur d’amorçage VeraCrypt).\n\n</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_11">9) Dans cette étape, choisissez un mot de passe pour le système d’exploitation leurre. Ce sera le mot de passe d’authentification de préamorçage que vous serez en mesure de révéler si quelqu’un le demande ou que vous êtes forcé de le divulguer (l’autre mot de passe que vous pouvez révéler est celui du volume externe). L’existence du troisième mot de passe (c’est-à-dire du mot de passe d’authentification de préamorçage pour le système d’exploitation caché) restera secret.\n\nImportant : Le mot de passe que vous choisissez pour le système leurre doit être sensiblement différent de celui que vous avez choisi pour le volume caché (c’est-à-dire pour le système d’exploitation caché).\n\n</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_12">10) Suivez les instructions restantes de l’assistant afin de chiffrer le système d’exploitation leurre.\n\n\n\n</entry>
<entry lang="fr" key="DECOY_OS_INSTRUCTIONS_PORTION_13">Après que le système leurre est créé\n------------------------------------------------\n\nAprès avoir chiffrer le système leurre, le processus de création du système d’exploitation caché s’achèvera et vous serez en mesure d’utiliser ces trois mots de passe : \n\n1) Mot de passe d’authentification de préamorçage pour le système d’exploitation cachés.\n\n2 Mot de passe d’authentification de préamorçage pour le système d’exploitation leurre .\n\n3) Mot de passe pour le volume extérieur.\n\n</entry>
@@ -1245,8 +1245,8 @@
<entry lang="fr" key="CONFIRM_DECRYPT_SYS_DEVICE">Êtes-vous sûr de vouloir déchiffrer définitivement la partition/le disque système ?</entry>
<entry lang="fr" key="CONFIRM_DECRYPT_SYS_DEVICE_CAUTION">ATTENTION : Si vous déchiffrez définitivement la partition/le disque système, des données non chiffrées y seront écritent.\n\nÊtes-vous vraiment sûr de vouloir déchiffrer définitivement la partition/le disque système ?</entry>
<entry lang="fr" key="CONFIRM_DECRYPT_NON_SYS_DEVICE">Êtes-vous sûr de vouloir déchiffrer de façon permanente le volume suivant?</entry>
- <entry lang="fr" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">ATTENTION: Si vous décryptez de manière permanente le volume VeraCrypt, les données non chiffrées seront écrites sur le disque.\n\nÊtes vous vraiment sûr que vous voulez déchiffrer de manière permanente le volume sélectionné.?</entry>
- <entry lang="fr" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">AVERTISSEMENT : Si vous utilisez une cascade d’algorithmes de chiffrement pour le chiffrement du système, vous pouvez rencontrer les problèmes suivants :\n\n1) La taille du chargeur de démarrage de VeraCrypt est supérieur à la normale et il n’y a donc pas assez d’espace dans la première plage du disque pour une sauvegarde du chargeur de démarrage VeraCrypt. Par conséquent, chaque fois qu’il est endommagé (ce qui arrive souvent, par exemple au cours de procédures d’activation de lutte contre la piraterie de certains programmes mal conçus), vous devrez utiliser le disque de secours VeraCrypt pour démarrer ou réparer le chargeur de démarrage VeraCrypt.\n\n2) Sur certains ordinateurs, la reprise depuis l’hibernation prend plus de temps.\n\nCes problèmes potentiels peuvent être évités en choisissant un algorithme de cryptage non-cascadé (par exemple AES).\n\nÊtes-vous certain de vouloir utiliser une cascade d’algorithmes de chiffrement ?</entry>
+ <entry lang="fr" key="CONFIRM_DECRYPT_NON_SYS_DEVICE_CAUTION">ATTENTION: Si vous déchiffrez de manière permanente le volume VeraCrypt, les données non chiffrées seront écrites sur le disque.\n\nÊtes vous vraiment sûr que vous voulez déchiffrer de manière permanente le volume sélectionné.?</entry>
+ <entry lang="fr" key="CONFIRM_CASCADE_FOR_SYS_ENCRYPTION">AVERTISSEMENT : Si vous utilisez une cascade d’algorithmes de chiffrement pour le chiffrement du système, vous pouvez rencontrer les problèmes suivants :\n\n1) La taille du chargeur de démarrage de VeraCrypt est supérieur à la normale et il n’y a donc pas assez d’espace dans la première plage du disque pour une sauvegarde du chargeur de démarrage VeraCrypt. Par conséquent, chaque fois qu’il est endommagé (ce qui arrive souvent, par exemple au cours de procédures d’activation de lutte contre la piraterie de certains programmes mal conçus), vous devrez utiliser le disque de secours VeraCrypt pour démarrer ou réparer le chargeur de démarrage VeraCrypt.\n\n2) Sur certains ordinateurs, la reprise depuis l’hibernation prend plus de temps.\n\nCes problèmes potentiels peuvent être évités en choisissant un algorithme de chiffrement non-cascadé (par exemple AES).\n\nÊtes-vous certain de vouloir utiliser une cascade d’algorithmes de chiffrement ?</entry>
<entry lang="fr" key="NOTE_CASCADE_FOR_SYS_ENCRYPTION">Si vous rencontrez un des problèmes décrits précédemment, déchiffrez la partition/le disque (s’il est chiffré) puis essayez de le chiffrer à nouveau en utilisant un algorithme sans cascade (ex : AES).</entry>
<entry lang="fr" key="UPDATE_TC_IN_DECOY_OS_FIRST">AVERTISSEMENT : Pour des raisons de sécurité, vous devez mettre à jour VeraCrypt sur le système d’exploitation leurre avant de le mettre à jour sur le système d’exploitation caché.\n\nPour ce faire, démarrer le système leurre et lancez l’installation de VeraCrypt dessus. Puis démarrer le système caché et exécutez aussi l’installation dessus.\n\nRemarque : Le système leurre et le système caché partagent un chargeur de démarrage unique. Si vous êtes mis à jour VeraCrypt seulement sur le système caché (mais pas sur le système leurre), le système leurre contiendra un pilote VeraCrypt et une application VeraCrypt dont les numéros de version sont différents de celui du chargeur de démarrage VeraCrypt. Une telle différence peut indiquer qu’il y a un système d’exploitation caché sur cet ordinateur.\n\n\nVoulez-vous continuer ?</entry>
<entry lang="fr" key="UPDATE_TC_IN_HIDDEN_OS_TOO">Le numéro de version du chargeur d’amorçage de VeraCrypt qui a démarré ce système d’exploitation est différent de celui du pilote de VeraCrypt (et de ses applications) installé sur ce système.\n\nVous devriez lancer l’installeur VeraCrypt (dont le numéro de version est le même que celui du chargeur d’amorçage de VeraCrypt) pour mettre à jour la version de VeraCrypt installé dans ce système d’exploitation.</entry>
@@ -1435,6 +1435,8 @@
<entry lang="fr" key="IDC_ENABLE_CPU_RNG">Utiliser le générateur de nombres aléatoires du processeur comme source additionnelle d'entropie</entry>
<entry lang="fr" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Utiliser l'ancienne valeur pour la longueur maximale de mots de passe (64 caractères)</entry>
<entry lang="fr" key="IDC_ENABLE_RAM_ENCRYPTION">Activer le chiffrement des clefs et des mots de passe stockés en RAM</entry>
+ <entry lang="fr" key="IDT_BENCHMARK">Banc de test:</entry>
+ <entry lang="fr" key="IDC_DISABLE_MOUNT_MANAGER">Créer seulement le périphérique virtuel sans montage à la lettre de lecteur</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.hu.xml b/Translations/Language.hu.xml
index f6e7781..bb64c07 100644
--- a/Translations/Language.hu.xml
+++ b/Translations/Language.hu.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="hu" name="Magyar" en-name="Hungarian" version="2018.03.06" translators="Nyul Balazs > Szaki" />
<font lang="hu" class="normal" size="11" face="default" />
<font lang="hu" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="hu" key="IDT_BENCHMARK">Sebességteszt:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.id.xml b/Translations/Language.id.xml
index 6660606..c791552 100644
--- a/Translations/Language.id.xml
+++ b/Translations/Language.id.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="id" name="Bahasa Indonesia" en-name="Indonesian" version="0.1.0" translators="Tajuddin N. F." />
<font lang="id" class="normal" size="11" face="default" />
<font lang="id" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="id" key="IDT_BENCHMARK">Penguji:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.it.xml b/Translations/Language.it.xml
index 8db720f..6119944 100644
--- a/Translations/Language.it.xml
+++ b/Translations/Language.it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="it" name="Italiano" en-name="Italian" version="1.0.1" translators="Maurizio Ballo, Consiglio Gaetano" />
<font lang="it" class="normal" size="11" face="default" />
<font lang="it" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="it" key="IDT_BENCHMARK">Riferimenti:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ja.xml b/Translations/Language.ja.xml
index aeb6406..8a76fd1 100644
--- a/Translations/Language.ja.xml
+++ b/Translations/Language.ja.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="ja" name="日本語" en-name="Japanese" version="1.0.0" translators="OGOSHI Masayuki" />
<font lang="ja" class="normal" size="12" face="MS UI Gothic" />
<font lang="ja" class="bold" size="16" face="MS UI Gothic" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="ja" key="IDT_BENCHMARK">ベンチマーク:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ka.xml b/Translations/Language.ka.xml
index ac992ab..96d69a0 100644
--- a/Translations/Language.ka.xml
+++ b/Translations/Language.ka.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="ka" name="ქართული" en-name="Georgian" version="0.1.0" translators="Kakha Lomiashvili" />
<font lang="ka" class="normal" size="12" face="Arial" />
<font lang="ka" class="bold" size="12" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="ko" key="IDT_BENCHMARK">სიჩქარის ტესტი:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ko.xml b/Translations/Language.ko.xml
index 873fb7a..e655875 100644
--- a/Translations/Language.ko.xml
+++ b/Translations/Language.ko.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="ko" name="한국어" en-name="Korean" version="0.1.1" translators="Kieaer, Herbert Shin" />
<font lang="ko" class="normal" size="11" face="돋움" />
<font lang="ko" class="bold" size="13" face="맑은 고딕" />
@@ -1435,6 +1435,8 @@
<entry lang="ko" key="IDC_ENABLE_CPU_RNG">CPU 하드웨어 랜덤 생성기를 엔트로피의 추가 소스로 사용합니다.</entry>
<entry lang="ko" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">기존 최대 암호 길이(64자)를 사용합니다.</entry>
<entry lang="ko" key="IDC_ENABLE_RAM_ENCRYPTION">RAM에 저장된 키 및 암호의 암호화를 활성화합니다.</entry>
+ <entry lang="ko" key="IDT_BENCHMARK">벤치마크:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.lv.xml b/Translations/Language.lv.xml
index e8a2445..13a511a 100644
--- a/Translations/Language.lv.xml
+++ b/Translations/Language.lv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="lv" name="Latviešu" en-name="Latvian" version="0.1.0" translators="Edmunds Melkers" />
<font lang="lv" class="normal" size="11" face="default" />
<font lang="lv" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="lv" key="IDT_BENCHMARK">Etalons:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.my.xml b/Translations/Language.my.xml
index 249fc75..ed793a1 100644
--- a/Translations/Language.my.xml
+++ b/Translations/Language.my.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="my" name="မြန်မာ" en-name="Burmese" version="1.0.0" translators="Zaw Myo Htet" />
<font lang="my" class="normal" size="11" face="Myanmar3" />
<font lang="my" class="bold" size="13" face="Myanmar3" />
@@ -1437,6 +1437,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.nl.xml b/Translations/Language.nl.xml
index c51b424..b99142d 100644
--- a/Translations/Language.nl.xml
+++ b/Translations/Language.nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="nl" name="Nederlands" en-name="Dutch" version="0.2.3" translators="Jan van der Wal, Peter Tak" />
<font lang="nl" class="normal" size="11" face="default" />
@@ -1436,6 +1436,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.nn.xml b/Translations/Language.nn.xml
index 6282ee7..186b500 100644
--- a/Translations/Language.nn.xml
+++ b/Translations/Language.nn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="nn" name="Norsk Nynorsk" en-name="Norwegian (Nynorsk)" version="0.1.0" translators="Kjell Rune Helland" />
<font lang="nn" class="normal" size="11" face="default" />
<font lang="nn" class="bold" size="13" face="Arial " />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="nn" key="IDT_BENCHMARK">Ytingsprøve:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.pl.xml b/Translations/Language.pl.xml
index 49f764c..f1c7996 100644
--- a/Translations/Language.pl.xml
+++ b/Translations/Language.pl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="pl" name="Polski" en-name="Polish" version="1.0.0" translators="Mirek Druchowicz, Janusz Zamecki, Sobiesław Antolak, Begina Felicysym" />
<font lang="pl" class="normal" size="11" face="default" />
<font lang="pl" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="pl" key="IDC_ENABLE_CPU_RNG">Użyj sprzętowego (CPU) generatora liczb losowych jako dodatkowego źródła entropii</entry>
<entry lang="pl" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Użyj starszej maksymalnej długości hasła (64 znaki)</entry>
<entry lang="pl" key="IDC_ENABLE_RAM_ENCRYPTION">Aktywuj szyfrowanie kluczy i haseł przechowywanych w RAM</entry>
+ <entry lang="pl" key="IDT_BENCHMARK">Testowanie:</entry>
+ <entry lang="pl" key="IDC_DISABLE_MOUNT_MANAGER">Utwórz tylko urządzenie wirtualne bez montowania na wybranej literze dysku</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.pt-br.xml b/Translations/Language.pt-br.xml
index 51faa7b..b3db3c4 100644
--- a/Translations/Language.pt-br.xml
+++ b/Translations/Language.pt-br.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="pt-br" name="Português-Brasil" en-name="Portuguese (Brazil)" version="0.1.0" translators="Thiago C. L. Mendes, Lecidio S. Alencar , Lucas C. Ferreira" />
<font lang="pt-br" class="normal" size="11" face="padrão" />
<font lang="pt-br" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ro.xml b/Translations/Language.ro.xml
index a271e37..42757b9 100644
--- a/Translations/Language.ro.xml
+++ b/Translations/Language.ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version="1.24-Beta5">
+ <localization prog-version="1.24-Hotfix1-Preview">
<language langid="ro" name="Română" en-name="Romanian" version="1.0.0" translators="Barna Cosmin Marian" />
<font lang="ro" class="normal" size="11" face="default" />
<font lang="ro" class="bold" size="13" face="Arial" />
@@ -168,7 +168,7 @@
<entry lang="ro" key="IDC_PREF_MOUNT_REMOVABLE">Montare volume ca unități detașabile</entry>
<entry lang="ro" key="IDC_PREF_OPEN_EXPLORER">Deschidere fereastră Explorer pentru volumele montate cu succes</entry>
<entry lang="ro" key="IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT">Păstrare temporară parole în timpul operațiilor de "Montare volume favorite"</entry>
- <entry lang="ro" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Folosire pictogramă diferită în zona de sistem când există volume montate</entry>
+ <entry lang="ro" key="IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED">Folosire pictogramă diferită în zona de sistem când există volume montate</entry>
<entry lang="ro" key="IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT">Eliminare parole păstrate după autodemontare</entry>
<entry lang="ro" key="IDC_PREF_WIPE_CACHE_ON_EXIT">Eliminare parole păstrate la ieșire</entry>
<entry lang="ro" key="IDC_PRESERVE_TIMESTAMPS">Păstrare dată modificare fișiere container</entry>
@@ -1435,6 +1435,8 @@
<entry lang="ro" key="IDC_ENABLE_CPU_RNG">Folosire generator hardware aleator al procesorului ca sursă adițională de entropie</entry>
<entry lang="ro" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Folosire lungime maximă parolă clasică (64 de caractere)</entry>
<entry lang="ro" key="IDC_ENABLE_RAM_ENCRYPTION">Activare criptare chei și parole stocate în RAM</entry>
+ <entry lang="ro" key="IDT_BENCHMARK">Evaluare:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.ru.xml b/Translations/Language.ru.xml
index ad0932e..4a79c63 100644
--- a/Translations/Language.ru.xml
+++ b/Translations/Language.ru.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
- <language langid="ru" name="Русский" en-name="Russian" version="1.0.3" translators="Dmitry Yerokhin" />
+ <localization prog-version= "1.24-Hotfix1-Preview">
+ <language langid="ru" name="Русский" en-name="Russian" version="1.0.5" translators="Dmitry Yerokhin" />
<font lang="ru" class="normal" size="11" face="default" />
<font lang="ru" class="bold" size="13" face="Arial" />
<font lang="ru" class="fixed" size="12" face="Lucida Console" />
@@ -12,7 +12,7 @@
<entry lang="ru" key="IDC_DESKTOP_ICON">&amp;Значок VeraCrypt на рабочем столе</entry>
<entry lang="ru" key="IDC_DONATE">Помочь...</entry>
<entry lang="ru" key="IDC_FILE_TYPE">Ассоциировать рас&amp;ширение .hc с VeraCrypt</entry>
- <entry lang="ru" key="IDC_OPEN_CONTAINING_FOLDER">По окончании откр&amp;ыть место назначения</entry>
+ <entry lang="ru" key="IDC_OPEN_CONTAINING_FOLDER">По окончании откр&amp;ыть целевую папку</entry>
<entry lang="ru" key="IDC_PROG_GROUP">&amp;Добавить VeraCrypt в меню 'Пуск'</entry>
<entry lang="ru" key="IDC_SYSTEM_RESTORE">Создать то&amp;чку восстановления системы</entry>
<entry lang="ru" key="IDC_UNINSTALL">Уда&amp;ление</entry>
@@ -21,7 +21,7 @@
<entry lang="ru" key="IDD_INSTL_DLG">Мастер установки VeraCrypt</entry>
<entry lang="ru" key="IDD_UNINSTALL">Удаление VeraCrypt</entry>
<entry lang="ru" key="IDHELP">&amp;Справка</entry>
- <entry lang="ru" key="IDT_EXTRACT_DESTINATION">Укажите место назначения для извлекаемых файлов:</entry>
+ <entry lang="ru" key="IDT_EXTRACT_DESTINATION">Укажите целевую папку для извлечения файлов:</entry>
<entry lang="ru" key="IDT_INSTALL_DESTINATION">Выберите место, куда вы хотите установить программные файлы VeraCrypt.\nЕсли указанной папки не существует, она будет создана автоматически.</entry>
<entry lang="ru" key="IDT_UNINSTALL_DIR">Нажмите 'Удаление', чтобы удалить VeraCrypt из этой системы.</entry>
<entry lang="ru" key="IDC_ABORT_BUTTON">Стоп</entry>
@@ -43,7 +43,7 @@
<entry lang="ru" key="IDC_KB">&amp;КБ</entry>
<entry lang="ru" key="IDC_KEYFILES_ENABLE">Кл&amp;юч. файлы</entry>
<entry lang="ru" key="IDC_KEYFILES_TRY_EMPTY_PASSWORD">Сначала пытаться смонтировать без пароля</entry>
- <entry lang="ru" key="IDC_KEYFILES_RANDOM_SIZE">Случайный размер ( 64 &lt;-&gt; 1048576 )</entry>
+ <entry lang="ru" key="IDC_KEYFILES_RANDOM_SIZE">Случайный размер (64 &lt;-&gt; 1 048 576)</entry>
<entry lang="ru" key="IDC_KEY_FILES">Клю&amp;ч. файлы...</entry>
<entry lang="ru" key="IDC_LINK_HASH_INFO">О хеш-алгоритмах</entry>
<entry lang="ru" key="IDC_LINK_MORE_INFO_ABOUT_CIPHER">Подробнее</entry>
@@ -72,7 +72,7 @@
<entry lang="ru" key="IDC_WHOLE_SYS_DRIVE">Зашифровать весь диск</entry>
<entry lang="ru" key="IDD_VOL_CREATION_WIZARD_DLG">Мастер создания томов VeraCrypt</entry>
<entry lang="ru" key="IDT_CLUSTER">Кластер </entry>
- <entry lang="ru" key="IDT_COLLECTING_RANDOM_DATA_NOTE">ВАЖНО: Хаотично перемещайте мышь внутри этого окна (чем дольше, тем лучше) - это значительно увеличит криптостойкость ключей шифрования. Затем нажмите 'Далее' для продолжения.</entry>
+ <entry lang="ru" key="IDT_COLLECTING_RANDOM_DATA_NOTE">ВАЖНО: Хаотично перемещайте мышь внутри этого окна (чем дольше, тем лучше) - это значительно увеличит криптостойкость ключей шифрования. Затем нажмите 'Далее'.</entry>
<entry lang="ru" key="IDT_CONFIRM">&amp;Подтвердите:</entry>
<entry lang="ru" key="IDT_DONE">Уже</entry>
<entry lang="ru" key="IDT_DRIVE_LETTER">Буква диска:</entry>
@@ -84,7 +84,7 @@
<entry lang="ru" key="IDT_HEADER_KEY">Ключ заг-ка: </entry>
<entry lang="ru" key="IDT_LEFT">Ещё</entry>
<entry lang="ru" key="IDT_MASTER_KEY">Мастер-ключ: </entry>
- <entry lang="ru" key="IDT_MULTI_BOOT">Выберите эту опцию, если в ПК установлено две или более ОС.\n\nНапример:\n- Windows XP и Windows XP\n- Windows XP и Windows Vista\n- Windows и Mac OS X\n- Windows и Linux\n- Windows, Linux и Mac OS X</entry>
+ <entry lang="ru" key="IDT_MULTI_BOOT">Выберите эту опцию, если в ПК установлено две или более ОС.\n\nНапример:\n- Windows XP и Windows XP\n- Windows XP и Windows Vista\n- Windows и macOS\n- Windows и Linux\n- Windows, Linux и macOS</entry>
<entry lang="ru" key="IDT_NON_SYS_DEVICE">Зашифровать раздел без ОС на внутреннем/внешнем диске (на флэшке и др.). Дополнительно - создать скрытый том.</entry>
<entry lang="ru" key="IDT_PARTIAL_POOL_CONTENTS">Текущее содержимое пула (часть)</entry>
<entry lang="ru" key="IDT_PASS">Пароль</entry>
@@ -204,9 +204,9 @@
<entry lang="ru" key="IDM_ANALYZE_SYSTEM_CRASH">Проанализировать сбой системы...</entry>
<entry lang="ru" key="IDM_BACKUP_VOL_HEADER">Создать резервную копию заголовка тома...</entry>
<entry lang="ru" key="IDM_BENCHMARK">Тест скорости...</entry>
- <entry lang="ru" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Установить алгоритм деривации ключа заголовка...</entry>
+ <entry lang="ru" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Установить алгоритм формирования ключа заголовка...</entry>
<entry lang="ru" key="IDM_CHANGE_PASSWORD">Изменить пароль тома...</entry>
- <entry lang="ru" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Установить алгоритм деривации ключа заголовка...</entry>
+ <entry lang="ru" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Установить алгоритм формирования ключа заголовка...</entry>
<entry lang="ru" key="IDM_CHANGE_SYS_PASSWORD">Изменить пароль...</entry>
<entry lang="ru" key="IDM_CLEAR_HISTORY">Очистить историю томов</entry>
<entry lang="ru" key="IDM_CLOSE_ALL_TOKEN_SESSIONS">Закрыть все токен-сессии</entry>
@@ -480,7 +480,7 @@
<entry lang="ru" key="FILE_TITLE">Размещение тома</entry>
<entry lang="ru" key="FILESYS_PAGE_TITLE">Большие файлы</entry>
<entry lang="ru" key="FILESYS_PAGE_HELP_QUESTION">Собираетесь ли вы хранить в этом томе VeraCrypt файлы размером более 4 ГБ?</entry>
- <entry lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION">В зависимости от вашего ответа VeraCrypt выберет для тома подходящую файловую систему (её выбор будет вам предложен на следующем этапе).</entry>
+ <entry lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION">В зависимости от вашего ответа VeraCrypt выберет для тома подходящую файловую систему (её выбор будет предложен на следующем этапе).</entry>
<entry lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL">Так как вы создаёте внешний том, следует ответить 'Нет'. Иначе ФС по умолчанию будет NTFS, что для внешних томов хуже, чем FAT/exFAT (так, максимально возможный размер скрытого тома будет существенно больше, если внешний том - FAT/exFAT). Обычно FAT это ФС по умолчанию как для скрытых, так и для обычных томов (тома FAT не вызывают подозрений). Однако если нужно хранить файлы размером более 4 ГБ (что в FAT недопустимо), то FAT не будет ФС по умолчанию.</entry>
<entry lang="ru" key="FILESYS_PAGE_HELP_EXPLANATION_HIDVOL_CONFIRM">Вы действительно хотите ответить 'Да'?</entry>
<entry lang="ru" key="DEVICE_TRANSFORM_MODE_PAGE_TITLE">Режим создания тома</entry>
@@ -544,15 +544,15 @@
<entry lang="ru" key="DECOY_TO_HIDDEN_OS_DATA_TRANSFER_HOWTO">Примечание: если нужно безопасно перенести файлы из обманной системы в скрытую, выполните следующее: 1) Загрузите обманную систему. 2) Сохраните нужные вам файлы на незашифрованном томе или на внешнем/обычном томе VeraCrypt. 3) Загрузите скрытую систему. 4) Если вы сохранили файлы на томе VeraCrypt, смонтируйте его (он будет автоматически смонтирован как 'только для чтения'). 5) Скопируйте файлы в скрытый системный раздел или в другой скрытый том.</entry>
<entry lang="ru" key="CONFIRM_RESTART">Требуется перезагрузка компьютера.\n\nВыполнить её сейчас?</entry>
<entry lang="ru" key="ERR_GETTING_SYSTEM_ENCRYPTION_STATUS">Ошибка получения состояния системного шифрования.</entry>
- <entry lang="ru" key="ERR_PASSWORD_MISSING">Не указан пароль в командной строке. Том создать невозможно.</entry>
- <entry lang="ru" key="ERR_SIZE_MISSING">Не указан размер тома в командной строке. Том создать невозможно.</entry>
- <entry lang="ru" key="ERR_NTFS_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома несовместим с выбранной файловой системой NTFS.</entry>
- <entry lang="ru" key="ERR_FAT_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома несовместим с выбранной файловой системой FAT32.</entry>
+ <entry lang="ru" key="ERR_PASSWORD_MISSING">Не указан пароль в командной строке. Создать том невозможно.</entry>
+ <entry lang="ru" key="ERR_SIZE_MISSING">Не указан размер тома в командной строке. Создать том невозможно.</entry>
+ <entry lang="ru" key="ERR_NTFS_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома не совместим с выбранной файловой системой NTFS.</entry>
+ <entry lang="ru" key="ERR_FAT_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома не совместим с выбранной файловой системой FAT32.</entry>
<entry lang="ru" key="ERR_DYNAMIC_NOT_SUPPORTED">Файловая система на целевом диске не поддерживает создание разрежённых файлов, что необходимо для динамических томов.</entry>
<entry lang="ru" key="ERR_DEVICE_CLI_CREATE_NOT_SUPPORTED">Из командной строки можно создавать только файлы-контейнеры.</entry>
- <entry lang="ru" key="ERR_CONTAINER_SIZE_TOO_BIG">Указанный в командной строке размер файла-контейнера больше, чем объём свободного места на диске. Том создать невозможно.</entry>
- <entry lang="ru" key="ERR_VOLUME_SIZE_TOO_SMALL">Указанный в командной строке размер тома слишком мал. Том создать невозможно.</entry>
- <entry lang="ru" key="ERR_VOLUME_SIZE_TOO_BIG">Указанный в командной строке размер тома слишком велик. Том создать невозможно.</entry>
+ <entry lang="ru" key="ERR_CONTAINER_SIZE_TOO_BIG">Указанный в командной строке размер файла-контейнера больше, чем объём свободного места на диске. Создать том невозможно.</entry>
+ <entry lang="ru" key="ERR_VOLUME_SIZE_TOO_SMALL">Указанный в командной строке размер тома слишком мал. Создать том невозможно.</entry>
+ <entry lang="ru" key="ERR_VOLUME_SIZE_TOO_BIG">Указанный в командной строке размер тома слишком велик. Создать том невозможно.</entry>
<entry lang="ru" key="INIT_SYS_ENC">Невозможно инициализировать компоненты приложения для системного шифрования.</entry>
<entry lang="ru" key="INIT_RAND">Ошибка инициализации генератора случайных чисел.\n\n\n(Если вы хотите сообщить о связанной с этим ошибке, включите в отчёт следующую техническую информацию:\n%hs, Последняя ошибка = 0x%.8X)</entry>
<entry lang="ru" key="CAPI_RAND">Сбой интерфейса CryptoAPI Windows!\n\n\n(Если вы хотите сообщить о связанной с этим ошибке, включите в отчёт следующую техническую информацию:\nh%s, Последняя ошибка = 0x%.8X)</entry>
@@ -565,7 +565,7 @@
<entry lang="ru" key="MAX_HIDVOL_SIZE_GB">Максимальный размер скрытого тома для этого тома: %.2f ГБ.</entry>
<entry lang="ru" key="MAX_HIDVOL_SIZE_TB">Максимальный размер скрытого тома для этого тома: %.2f ТБ.</entry>
<entry lang="ru" key="MOUNTED_NOPWCHANGE">Пока том смонтирован, изменять пароль/ключевые файлы этого тома невозможно. Сначала размонтируйте том.</entry>
- <entry lang="ru" key="MOUNTED_NO_PKCS5_PRF_CHANGE">Пока том смонтирован, изменять алгоритм деривации ключа заголовка этого тома невозможно. Сначала размонтируйте том.</entry>
+ <entry lang="ru" key="MOUNTED_NO_PKCS5_PRF_CHANGE">Пока том смонтирован, изменять алгоритм формирования ключа заголовка этого тома невозможно. Сначала размонтируйте том.</entry>
<entry lang="ru" key="MOUNT_BUTTON">С&amp;монтировать</entry>
<entry lang="ru" key="NEW_VERSION_REQUIRED">Для монтирования этого тома требуется более новая версия VeraCrypt.</entry>
<entry lang="ru" key="VOL_CREATION_WIZARD_NOT_FOUND">ОШИБКА: Не найден мастер создания томов.\n\nУбедитесь в наличии файла 'VeraCrypt Format.exe' в папке, откуда был запущен 'VeraCrypt.exe'. Если его там нет, переустановите VeraCrypt или найдите 'VeraCrypt Format.exe' у себя на диске и запустите его.</entry>
@@ -604,7 +604,7 @@
<entry lang="ru" key="ERASE_FILES_BY_CREATING_VOLUME">Стереть файлы в разделе при создании внутри него тома VeraCrypt</entry>
<entry lang="ru" key="PASSWORD">Пароль</entry>
<entry lang="ru" key="PIM">PIM</entry>
- <entry lang="ru" key="IDD_PCDM_CHANGE_PKCS5_PRF">Алгоритм деривации ключа заголовка</entry>
+ <entry lang="ru" key="IDD_PCDM_CHANGE_PKCS5_PRF">Алгоритм формирования ключа заголовка</entry>
<entry lang="ru" key="IDD_PCDM_ADD_REMOVE_VOL_KEYFILES">Добавление/удаление ключевых файлов в/из том(а)</entry>
<entry lang="ru" key="IDD_PCDM_REMOVE_ALL_KEYFILES_FROM_VOL">Удаление всех ключевых файлов из тома</entry>
<entry lang="ru" key="PASSWORD_CHANGED">Пароль, PIM и/или ключевые файлы успешно изменен(ы).\n\nВАЖНО: Обязательно прочтите параграф 'Изменение паролей и ключевых файлов'\nв главе 'Требования безопасности и меры предосторожности'\nв Руководстве пользователя VeraCrypt.</entry>
@@ -614,7 +614,7 @@
<entry lang="ru" key="KEYFILES_NOTE">В качестве ключевого можно использовать файл любого типа (например .mp3, .jpg, .zip, .avi). Содержимое ключевого файла при этом не изменяется. Можно выбирать несколько ключевых файлов (порядок неважен). Если добавить папку, то ключевыми будут все не скрытые файлы внутри неё. Нажмите 'Токен-файлы', чтобы выбрать ключевые файлы на токенах безопасности или смарт-картах (или для импорта ключевых файлов с токена/смарт-карты).</entry>
<entry lang="ru" key="KEYFILE_CHANGED">Ключевые файлы успешно добавлены/удалены.</entry>
<entry lang="ru" key="KEYFILE_EXPORTED">Ключевой файл экспортирован.</entry>
- <entry lang="ru" key="PKCS5_PRF_CHANGED">Алгоритм деривации ключа заголовка успешно задан.</entry>
+ <entry lang="ru" key="PKCS5_PRF_CHANGED">Алгоритм формирования ключа заголовка успешно задан.</entry>
<entry lang="ru" key="NONSYS_INPLACE_ENC_RESUME_PASSWORD_PAGE_HELP">Введите пароль и/или ключевые файлы для несистемного тома, где вы хотите возобновить шифрование 'на месте'.\n\n\nПримечание: после нажатия 'Далее' VeraCrypt попытается найти все несистемные тома, на которых был прерван процесс шифрования, и где можно расшифровать заголовок тома VeraCrypt с помощью указанного пароля и/или ключевых файлов. Если таких томов окажется несколько, на следующем этапе вам будет нужно выбрать один из них.</entry>
<entry lang="ru" key="NONSYS_INPLACE_ENC_RESUME_VOL_SELECT_HELP">Выберите один из перечисленных томов. Это несистемные тома с прерванным процессом шифрования/дешифрования, заголовок которых удалось расшифровать с помощью указанного пароля и/или ключевых файлов.</entry>
<entry lang="ru" key="NONSYS_INPLACE_DEC_PASSWORD_PAGE_HELP">Введите пароль и/или ключевые файлы для несистемного тома VeraCrypt, который вы хотите расшифровать.</entry>
@@ -641,8 +641,8 @@
<entry lang="ru" key="PIM_HIDVOL_HOST_TITLE">PIM внешнего тома</entry>
<entry lang="ru" key="PIM_HIDVOL_TITLE">PIM скрытого тома</entry>
<entry lang="ru" key="PIM_HIDDEN_OS_TITLE">PIM скрытой ОС</entry>
- <entry lang="ru" key="PIM_HELP">PIM (персональный умножитель итераций) - это значение, управляющее количеством итераций для деривации ключа заголовка.\n Итерации = 15000 + (PIM x 1000).\n\nЕсли пусто или равно нулю, будет использоваться стандартное значение (485), обеспечивающее высокую надёжность.\n\nЕсли пароль короче 20 символов, PIM не может быть меньше 485, чтобы гарантировать минимальный уровень защиты.\nЕсли пароль состоит из 20 и более символов, PIM может быть любым.\n\nPIM более 485 ведёт к замедлению монтирования. При меньшем значении PIM (до 485) монтирование ускоряется, но снижается надёжность, если пароль недостаточно сложный.</entry>
- <entry lang="ru" key="PIM_SYSENC_HELP">PIM (персональный умножитель итераций) - это значение, управляющее количеством итераций для деривации ключа заголовка.\n Итерации = PIM x 2048.\n\nЕсли пусто или равно нулю, будет использоваться стандартное значение, обеспечивающее высокую надёжность.\n\nЕсли пароль короче 20 символов, PIM не может быть меньше 98, чтобы гарантировать минимальный уровень защиты.\nЕсли пароль состоит из 20 и более символов, PIM может быть любым.\n\nPIM более 98 ведёт к замедлению загрузки. При меньшем значении PIM (до 98) загрузка ускоряется, но снижается надёжность, если пароль недостаточно сложный.</entry>
+ <entry lang="ru" key="PIM_HELP">PIM (персональный умножитель итераций) - это значение, управляющее количеством итераций для формирования ключа заголовка.\n Итерации = 15000 + (PIM x 1000).\n\nЕсли пусто или равно нулю, будет использоваться стандартное значение (485), обеспечивающее высокую надёжность.\n\nЕсли пароль короче 20 символов, PIM не может быть меньше 485, чтобы гарантировать минимальный уровень защиты.\nЕсли пароль состоит из 20 и более символов, PIM может быть любым.\n\nPIM более 485 ведёт к замедлению монтирования. При меньшем значении PIM (до 485) монтирование ускоряется, но снижается надёжность, если пароль недостаточно сложный.</entry>
+ <entry lang="ru" key="PIM_SYSENC_HELP">PIM (персональный умножитель итераций) - это значение, управляющее количеством итераций для формирования ключа заголовка.\n Итерации = PIM x 2048.\n\nЕсли пусто или равно нулю, будет использоваться стандартное значение, обеспечивающее высокую надёжность.\n\nЕсли пароль короче 20 символов, PIM не может быть меньше 98, чтобы гарантировать минимальный уровень защиты.\nЕсли пароль состоит из 20 и более символов, PIM может быть любым.\n\nPIM более 98 ведёт к замедлению загрузки. При меньшем значении PIM (до 98) загрузка ускоряется, но снижается надёжность, если пароль недостаточно сложный.</entry>
<entry lang="ru" key="PIM_SYSENC_CHANGE_WARNING">Запомните число для загрузки системы</entry>
<entry lang="ru" key="PIM_LARGE_WARNING">Выбранное значение PIM больше, чем стандартное в VeraCrypt.\nЭто приведёт к значительному замедлению монтирования/загрузки.</entry>
<entry lang="ru" key="PIM_SMALL_WARNING">Выбранное значение PIM меньше, чем стандартное в VeraCrypt. Учтите, что если ваш пароль недостаточно надёжен, это может привести к ослаблению защиты.\n\nПодтверждаете, что вы используете надёжный пароль?</entry>
@@ -662,18 +662,18 @@
<entry lang="ru" key="READONLYPROMPT">Том '%s' существует и предназначен только для чтения. Вы действительно хотите его заменить?</entry>
<entry lang="ru" key="SELECT_DEST_DIR">Выберите целевую папку</entry>
<entry lang="ru" key="SELECT_KEYFILE">Выберите ключевой файл</entry>
- <entry lang="ru" key="SELECT_KEYFILE_PATH">Выберите путь поиска ключевых файлов. ВНИМАНИЕ: Запоминается только путь, но не имена файлов.</entry>
+ <entry lang="ru" key="SELECT_KEYFILE_PATH">Выберите путь поиска ключевых файлов.\n(Запоминается только путь, но не имена файлов.)</entry>
<entry lang="ru" key="SELECT_KEYFILE_GENERATION_DIRECTORY">Выбрать папку хранения ключевых файлов.</entry>
<entry lang="ru" key="SELECTED_KEYFILE_IS_CONTAINER_FILE">В качестве ключевого файла выбран текущий файл-контейнер. Он будет пропущен.</entry>
<entry lang="ru" key="SERPENT_HELP">Авторы: Ross Anderson, Eli Biham и Lars Knudsen. Опубликован в 1998 г. Ключ: 256 бит, блок: 128 бит. Режим работы: XTS. Алгоритм Serpent - один из финалистов конкурса AES.</entry>
<entry lang="ru" key="SIZE_HELP">Укажите размер создаваемого контейнера.\n\nПри создании динамического (увеличивающегося по мере заполнения) контейнера, этот параметр определяет его максимальный размер.\n\nМинимальные размеры тома: FAT - 292 КБ, exFAT - 424 КБ, NTFS - 3792 КБ.</entry>
<entry lang="ru" key="SIZE_HELP_HIDDEN_HOST_VOL">Укажите размер нового внешнего тома (сначала создаётся внешний том, а затем внутри него - скрытый). Минимально возможный размер тома, предназначенного для создания скрытого тома, составляет 340 КБ.</entry>
- <entry lang="ru" key="SIZE_HELP_HIDDEN_VOL">Укажите размер создаваемого скрытого тома. Минимальный объём скрытого тома равен 40 КБ (или 3664 КБ, если он отформатирован как NTFS). Максимально возможный для выбора размер скрытого тома показан выше.</entry>
+ <entry lang="ru" key="SIZE_HELP_HIDDEN_VOL">Укажите размер создаваемого скрытого тома. Минимальный объём скрытого тома - 40 КБ (или 3664 КБ, если он отформатирован как NTFS). Максимально возможный для выбора размер скрытого тома показан выше.</entry>
<entry lang="ru" key="SIZE_HIDVOL_HOST_TITLE">Размер внешнего тома</entry>
<entry lang="ru" key="SIZE_HIDVOL_TITLE">Размер скрытого тома</entry>
<entry lang="ru" key="SIZE_PARTITION_HELP">Проверьте правильность размера выбранного устройства или раздела и нажмите 'Далее'.</entry>
- <entry lang="ru" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Внутри этого раздела будут находиться внешний том и скрытый том (содержащий скрытую ОС). Это должен быть первый раздел за системным.\n\nПроверьте правильность показанных выше размера и номера раздела, и если всё верно, то нажмите 'Далее'.</entry>
- <entry lang="ru" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nУчтите, что том, внутри которого будет создаваться скрытый том, не может быть меньше 340 КБ.</entry>
+ <entry lang="ru" key="SIZE_PARTITION_HIDDEN_SYSENC_HELP">Внутри этого раздела будут находиться внешний том и скрытый том (со скрытой ОС). Это должен быть первый раздел за системным.\n\nПроверьте правильность показанных выше размера и номера раздела, и если всё верно, то нажмите 'Далее'.</entry>
+ <entry lang="ru" key="SIZE_PARTITION_HIDDEN_VOL_HELP">\n\nТом, внутри которого будет создаваться скрытый том, не может быть меньше 340 КБ.</entry>
<entry lang="ru" key="SIZE_TITLE">Размер тома</entry>
<entry lang="ru" key="SPARSE_FILE">Динами- ческий</entry>
<entry lang="ru" key="TESTS_FAILED">Внимание! ОШИБКА теста.</entry>
@@ -683,8 +683,8 @@
<entry lang="ru" key="TEST_CIPHERTEXT_SIZE">Неверная длина тестового зашифрованного текста.</entry>
<entry lang="ru" key="TEST_KEY_SIZE">Неверная длина тестового ключа.</entry>
<entry lang="ru" key="TEST_PLAINTEXT_SIZE">Неверная длина тестового незашифрованного текста.</entry>
- <entry lang="ru" key="TWO_LAYER_CASCADE_HELP">Каскадное (последовательное) шифрование двумя алгоритмами в режиме XTS. Каждый блок сначала шифруется %s (%d-бит ключ), а затем %s (%d-бит ключ). Каждый шифр применяет свой собственный ключ. Все ключи взаимно независимы.</entry>
- <entry lang="ru" key="THREE_LAYER_CASCADE_HELP">Каскадное (последовательное) шифрование тремя алгоритмами в режиме XTS. Каждый блок сначала шифруется %s (%d-бит ключ), затем %s (%d-бит ключ), и наконец %s (%d-бит ключ). Каждый шифр применяет свой собственный ключ. Все ключи взаимно независимы.</entry>
+ <entry lang="ru" key="TWO_LAYER_CASCADE_HELP">Каскадное (последовательное) шифрование двумя алгоритмами в режиме XTS. Каждый блок сначала шифруется %s (%d-бит ключ), а затем %s (%d-бит ключ). Каждый шифр применяет свой собственный ключ. Все ключи взаимонезависимы.</entry>
+ <entry lang="ru" key="THREE_LAYER_CASCADE_HELP">Каскадное (последовательное) шифрование тремя алгоритмами в режиме XTS. Каждый блок сначала шифруется %s (%d-бит ключ), затем %s (%d-бит ключ), и наконец %s (%d-бит ключ). Каждый шифр применяет свой собственный ключ. Все ключи взаимонезависимы.</entry>
<entry lang="ru" key="AUTORUN_MAY_NOT_ALWAYS_WORK">Обратите внимание, что в зависимости от конфигурации ОС, функции автозапуска и автомонтирования могут работать, только если файлы переносного диска находятся на недоступном для записи носителе (CD/DVD и т.п.). Это не ошибка VeraCrypt, а ограничение Windows.</entry>
<entry lang="ru" key="TRAVELER_DISK_CREATED">Переносной диск VeraCrypt успешно создан.\n\nПомните, что для запуска VeraCrypt в переносном режиме необходимы права администратора ПК. Также учтите, что исследуя реестр, можно узнать, что в Windows запускали VeraCrypt, даже если только в переносном режиме.</entry>
<entry lang="ru" key="TC_TRAVELER_DISK">Переносной диск VeraCrypt</entry>
@@ -700,7 +700,7 @@
<entry lang="ru" key="VOL_ALREADY_MOUNTED">Этот том уже смонтирован. </entry>
<entry lang="ru" key="VOL_MOUNT_FAILED">Ошибка при попытке монтирования тома.</entry>
<entry lang="ru" key="VOL_SEEKING">Ошибка поиска местоположения внутри тома.</entry>
- <entry lang="ru" key="VOL_SIZE_WRONG">Ошибка: неверный размер тома.</entry>
+ <entry lang="ru" key="VOL_SIZE_WRONG">Ошибка! Неверный размер тома.</entry>
<entry lang="ru" key="WARN_QUICK_FORMAT">Внимание! Быстрое форматирование следует использовать, только если:\n\n1) на устройстве нет конфиденциальных данных и вам не требуется правдоподобное отрицание\n2) устройство уже полностью и надёжно зашифровано\n\nВы действительно хотите использовать быстрое форматирование?</entry>
<entry lang="ru" key="CONFIRM_SPARSE_FILE">Динамический контейнер - это предраспределённый разрежённый файл NTFS, физический размер которого (место на диске) увеличивается по мере добавления в него данных.\n\nВНИМАНИЕ: У томов на основе разрежённых файлов значительно ниже быстродействие, чем у обычных томов. Такие тома менее надёжны, поскольку можно определить, какие из секторов тома не используются. Такие тома не позволяют правдоподобно отрицать наличие скрытого тома. Если данные записываются в контейнер на основе разрежённого файла при недостатке свободного места на файловой хост-системе, то зашифрованная файловая система может оказаться повреждённой.\n\nВы действительно хотите создать том на основе разрежённого файла?</entry>
<entry lang="ru" key="SPARSE_FILE_SIZE_NOTE">Учтите, что размер динамического контейнера, сообщаемый Windows и VeraCrypt, будет всегда равен его максимальному размеру. Чтобы выяснить текущий физический размер контейнера (действительно занимаемое им место на диске), щёлкните правой кнопкой мыши на файле-контейнере (в окне Проводника, не в VeraCrypt!), выберите пункт 'Свойства' и см. значение 'На диске'.\n\nТакже учтите, что при перемещении динамического контейнера на другой том или диск, физический размер контейнера будет увеличен до максимума. (Этого можно избежать, создав новый динамический контейнер в целевом месте, смонтировав его и затем перенеся в него файлы из старого контейнера.)</entry>
@@ -718,7 +718,7 @@
<entry lang="ru" key="UNSUPPORTED_BETA_OS">Ошибка! VeraCrypt поддерживает только стабильные (не бета) версии этой операционной системы (версии beta/RC не поддерживаются).</entry>
<entry lang="ru" key="ERR_MEM_ALLOC">Ошибка! Невозможно распределить память.</entry>
<entry lang="ru" key="ERR_PERF_COUNTER">Ошибка! Невозможно восстановить значение счётчика производительности.</entry>
- <entry lang="ru" key="ERR_VOL_FORMAT_BAD">Ошибка! Плохой формат тома.</entry>
+ <entry lang="ru" key="ERR_VOL_FORMAT_BAD">Ошибка! Некорректный формат тома.</entry>
<entry lang="ru" key="ERR_HIDDEN_NOT_NORMAL_VOLUME">Ошибка! Вы указали пароль для скрытого тома (а не для обычного).</entry>
<entry lang="ru" key="ERR_HIDDEN_VOL_HOST_ENCRYPTED_INPLACE">В целях безопасности, скрытый том нельзя создать внутри тома VeraCrypt, содержащего файловую систему, зашифрованную 'на месте' (поскольку свободное место такого тома не было заполнено случайными данными).</entry>
<entry lang="ru" key="LEGAL_NOTICES_DLG_TITLE">VeraCrypt: юридические примечания</entry>
@@ -742,7 +742,7 @@
<entry lang="ru" key="LABEL">Метка</entry>
<entry lang="ru" key="CLUSTER_TOO_SMALL">Для этого тома выбран слишком маленький размер кластеров. Будут использованы кластеры большего размера.</entry>
<entry lang="ru" key="CANT_GET_VOLSIZE">Ошибка! Невозможно получить размер тома.\n\nПроверьте, не используется ли выбранный том системой или какой-либо программой.</entry>
- <entry lang="ru" key="HIDDEN_VOL_HOST_SPARSE">Скрытые тома нельзя создавать внутри динамических контейнеров (разрежённых файлов). Чтобы можно было правдоподобно отрицать наличие секретной информации, скрытый том нужно создавать внутри нединамического контейнера.</entry>
+ <entry lang="ru" key="HIDDEN_VOL_HOST_SPARSE">Скрытые тома нельзя создавать внутри динамических контейнеров (разрежённых файлов). Чтобы можно было правдоподобно отрицать наличие секретной информации, скрытый том нужно создавать внутри не-динамического контейнера.</entry>
<entry lang="ru" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS">Мастер создания томов VeraCrypt способен создавать скрытый том только внутри тома FAT/exFAT или NTFS.</entry>
<entry lang="ru" key="HIDDEN_VOL_HOST_UNSUPPORTED_FILESYS_WIN2000">В среде Windows 2000 мастер создания томов VeraCrypt способен создавать скрытый том только внутри тома FAT.</entry>
<entry lang="ru" key="HIDDEN_VOL_HOST_NTFS">Примечание: для внешних томов больше подходит система FAT/exFAT, нежели NTFS (например, максимальный размер скрытого тома почти наверняка будет существенно больше, если внешний том отформатирован как FAT/exFAT).</entry>
@@ -753,13 +753,13 @@
<entry lang="ru" key="PARTITION_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! Раздел для скрытой операционной системы (т.е. для первого идущего за системным раздела) должен быть по крайней мере на 110% (в 2,1 раза) больше системного раздела (системный раздел - тот, где установлена работающая сейчас ОС). Причина в том, что файловая система NTFS всегда хранит внутренние данные точно в центре тома, и потому скрытый том (в котором должен содержаться клон системного раздела) может располагаться только во второй половине внешнего тома.</entry>
<entry lang="ru" key="OUTER_VOLUME_TOO_SMALL_FOR_HIDDEN_OS_NTFS">Ошибка! Если внешний том отформатирован как NTFS, он должен быть по крайней мере на 110% (в 2,1 раза) больше системного раздела. Причина в том, что файловая система NTFS всегда хранит внутренние данные точно в центре тома, и потому скрытый том (в котором должен содержаться клон системного раздела) может располагаться только во второй половине внешнего тома.\n\nПримечание: внешний том должен находиться в том же разделе, что и скрытая операционная система (т.е. в первом разделе, идущим за системным).</entry>
<entry lang="ru" key="NO_PARTITION_FOLLOWS_BOOT_PARTITION">Ошибка! Нет раздела, расположенного за системным разделом.\n\nПрежде чем можно будет создать скрытую операционную систему, нужно создать для неё раздел на системном диске. Этот раздел должен быть первым за системным, и он должен быть по крайней мере на 5% больше системного раздела (т.е. того, где установлена работающая сейчас ОС). Однако если внешний том (не путайте с системным разделом) отформатирован как NTFS, раздел для скрытой операционной системы должен быть не менее чем на 110% (в 2,1 раза) больше системного (причина в том, что файловая система NTFS всегда хранит внутренние данные точно в центре тома, поэтому скрытый том, который должен содержать клон системного раздела, может располагаться только во второй половине раздела).</entry>
- <entry lang="ru" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Замечание: непрактично (и потому это не поддерживается) устанавливать операционные системы в два тома VeraCrypt, встроенных в один раздел, поскольку при использовании внешней ОС часто требуется записывать данные в область внутренней ОС (а если такие операции записи предотвращать с помощью функции защиты скрытых томов, то это может привести к краху системы, т.е. к 'синему экрану смерти').</entry>
+ <entry lang="ru" key="TWO_SYSTEMS_IN_ONE_PARTITION_REMARK">Замечание: непрактично (и потому это не поддерживается) устанавливать операционные системы в два тома VeraCrypt, встроенных в один раздел, поскольку при использовании внешней ОС часто требуется записывать данные в область внутренней ОС (а если такие операции записи предотвращать с помощью функции защиты скрытых томов, то это может привести к краху системы - к 'синему экрану смерти').</entry>
<entry lang="ru" key="FOR_MORE_INFO_ON_PARTITIONS">Информацию о создании и управлении разделами см. в документации к вашей операционной системе, либо проконсультируйтесь в службе техподдержки поставщика своего компьютера.</entry>
- <entry lang="ru" key="SYSTEM_PARTITION_NOT_ACTIVE">Ошибка! Работающая в данный момент операционная система установлена не в загрузочном разделе (первом разделе с пометкой 'Активный'). Это не поддерживается.</entry>
- <entry lang="ru" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Вы указали, что собираетесь хранить в этом томе VeraCrypt файлы размером более 4 ГБ, но выбрали файловую систему FAT, в которой сохранение файлов объёмом свыше 4 ГБ не поддерживается.\n\nВы действительно хотите отформатировать том как FAT?</entry>
+ <entry lang="ru" key="SYSTEM_PARTITION_NOT_ACTIVE">Ошибка! Работающая сейчас операционная система установлена не в загрузочном разделе (первом разделе с пометкой 'Активный'). Это не поддерживается.</entry>
+ <entry lang="ru" key="CONFIRM_FAT_FOR_FILES_OVER_4GB">Вы указали, что собираетесь хранить в этом томе VeraCrypt файлы размером более 4 ГБ, но выбрали файловую систему FAT, в которой нельзя сохранять файлы объёмом свыше 4 ГБ.\n\nВы действительно хотите отформатировать том как FAT?</entry>
<entry lang="ru" key="NONSYS_INPLACE_DECRYPTION_BAD_VOL_FORMAT">Ошибка! VeraCrypt не поддерживает дешифрование 'на месте' несистемных томов, созданных VeraCrypt устаревших версий (1.0b и ранее).\n\nЧтобы расшифровать файлы, хранящиеся в этом томе, просто скопируйте или переместите их на любой незашифрованный том.</entry>
<entry lang="ru" key="NONSYS_INPLACE_DECRYPTION_CANT_DECRYPT_HID_VOL">Ошибка! VeraCrypt не может 'на месте' расшифровать скрытый том VeraCrypt.\n\nЧтобы расшифровать файлы, хранящиеся в этом томе, просто скопируйте или переместите их на любой незашифрованный том.</entry>
- <entry lang="ru" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Внимание! VeraCrypt не может 'на месте' расшифровать том, в котором содержится скрытый том VeraCrypt (скрытый том перезапишется псевдослучайными данными).\n\nПодтвердите, что в томе, который вы собираетесь расшифровать, нет скрытого тома.\n\n* Если в томе есть скрытый том, но вы не против его потери, то можете продолжить (внешний том будет безопасно расшифрован).</entry>
+ <entry lang="ru" key="CONFIRM_VOL_CONTAINS_NO_HIDDEN_VOL">Внимание! VeraCrypt не может 'на месте' расшифровать том, в котором содержится скрытый том VeraCrypt (скрытый том перезапишется псевдослучайными данными).\n\nПодтвердите, что в томе, который вы собираетесь расшифровать, нет скрытого тома.\n\nЕсли в томе есть скрытый том, но вы не против его потери, то можете продолжить (внешний том будет безопасно расшифрован).</entry>
<entry lang="ru" key="VOL_CONTAINS_NO_HIDDEN_VOL">В этом томе нет скрытого тома. Продолжаем.</entry>
<entry lang="ru" key="VOL_CONTAINS_A_HIDDEN_VOL">В этом томе есть скрытый том. Отмена.</entry>
<entry lang="ru" key="CANT_ACCESS_VOL">ОШИБКА: Нет доступа к тому.\n\nПроверьте, существует ли этот том, не смонтирован ли он, не используется ли системой или какой-либо программой, которой вы дали права чтения/записи этого тома, и не защищён ли он от записи.</entry>
@@ -825,19 +825,19 @@
<entry lang="ru" key="UNCHANGED">Не изменять</entry>
<entry lang="ru" key="AUTODETECTION">Автоопределение</entry>
<entry lang="ru" key="SETUP_MODE_TITLE">Режим мастера</entry>
- <entry lang="ru" key="SETUP_MODE_INFO">Выберите режим. Если не знаете, какой выбрать, используйте предложенный.</entry>
+ <entry lang="ru" key="SETUP_MODE_INFO">Выберите режим. Если не уверены, используйте предложенный.</entry>
<entry lang="ru" key="SETUP_MODE_HELP_INSTALL">Выберите эту опцию, чтобы установить VeraCrypt в данной системе.</entry>
- <entry lang="ru" key="SETUP_MODE_HELP_UPGRADE">Примечание: обновление можно выполнить без расшифровки данных, даже если зашифрован системный раздел/диск или используется скрытая операционная система.</entry>
- <entry lang="ru" key="SETUP_MODE_HELP_EXTRACT">При выборе этой опции все файлы будут извлечены из дистрибутива, но не установлены в систему. Не выбирайте этот вариант, если вы намерены шифровать системный раздел или системный диск. Этот вариант может пригодиться, например, для запуска VeraCrypt в так называемом 'переносном' (portable) режиме. VeraCrypt не обязательно должен быть установлен в ОС, в которой он работает. После извлечения всех файлов просто запустите файл VeraCrypt.exe (программа будет работать в 'переносном' режиме).</entry>
+ <entry lang="ru" key="SETUP_MODE_HELP_UPGRADE">Обновление можно выполнить без расшифровки данных, даже если зашифрован системный раздел/диск или используется скрытая операционная система.</entry>
+ <entry lang="ru" key="SETUP_MODE_HELP_EXTRACT">При выборе этой опции все файлы будут извлечены из дистрибутива, но не установлены в систему. Не выбирайте этот вариант, если вы намерены шифровать системный раздел/диск. Этот вариант - для запуска VeraCrypt в так называемом 'переносном' (portable) режиме. VeraCrypt не обязательно устанавливать в ОС. После извлечения всех файлов просто запустите файл VeraCrypt.exe (программа будет работать в 'переносном' режиме).</entry>
<entry lang="ru" key="SETUP_OPTIONS_TITLE">Параметры установки</entry>
- <entry lang="ru" key="SETUP_OPTIONS_INFO">Здесь можно выбрать различные параметры, влияющие на установку программы.</entry>
+ <entry lang="ru" key="SETUP_OPTIONS_INFO">Параметры, влияющие на установку программы.</entry>
<entry lang="ru" key="SETUP_PROGRESS_TITLE">Установка</entry>
<entry lang="ru" key="SETUP_PROGRESS_INFO">Подождите, идёт установка VeraCrypt.</entry>
<entry lang="ru" key="SETUP_FINISHED_TITLE_DON">Установка VeraCrypt успешно выполнена</entry>
<entry lang="ru" key="SETUP_FINISHED_UPGRADE_TITLE_DON">Обновление VeraCrypt успешно выполнено</entry>
<entry lang="ru" key="SETUP_FINISHED_INFO_DON">Помогите материально развитию программы. Кнопка 'Готово' - закрыть установщик.</entry>
<entry lang="ru" key="EXTRACTION_OPTIONS_TITLE">Параметры извлечения</entry>
- <entry lang="ru" key="EXTRACTION_OPTIONS_INFO">Здесь можно выбрать различные параметры, влияющие на извлечение файлов.</entry>
+ <entry lang="ru" key="EXTRACTION_OPTIONS_INFO">Параметры, влияющие на извлечение файлов.</entry>
<entry lang="ru" key="EXTRACTION_PROGRESS_INFO">Подождите, идёт извлечение файлов.</entry>
<entry lang="ru" key="EXTRACTION_FINISHED_TITLE_DON">Файлы успешно извлечены</entry>
<entry lang="ru" key="EXTRACTION_FINISHED_INFO">Все файлы успешно извлечены в указанное целевое место.</entry>
@@ -850,7 +850,7 @@
<entry lang="ru" key="UPGRADE">Обновить</entry>
<entry lang="ru" key="UNINSTALL">Удалить</entry>
<entry lang="ru" key="SETUP_ADMIN">Для установки/удаления VeraCrypt необходимо иметь права администратора. Продолжить?</entry>
- <entry lang="ru" key="TC_INSTALLER_IS_RUNNING">В системе сейчас запущен установщик VeraCrypt. Он выполняет/готовит установку или обновление VeraCrypt. Дождитесь завершения его работы или закройте его. Если закрыть установщик не получается, перезагрузите компьютер и лишь потом продолжите.</entry>
+ <entry lang="ru" key="TC_INSTALLER_IS_RUNNING">В системе сейчас запущен установщик VeraCrypt. Он выполняет/готовит установку или обновление VeraCrypt. Дождитесь завершения работы или закройте его. Если закрыть установщик не получается, перезагрузите компьютер и лишь потом продолжайте.</entry>
<entry lang="ru" key="INSTALL_FAILED">Установка не выполнена.</entry>
<entry lang="ru" key="UNINSTALL_FAILED">Удаление не выполнено.</entry>
<entry lang="ru" key="DIST_PACKAGE_CORRUPTED">Этот дистрибутивный пакет повреждён. Загрузите его снова (желательно с официального сайта VeraCrypt - https://www.veracrypt.fr).</entry>
@@ -862,8 +862,8 @@
<entry lang="ru" key="ROLLBACK">Установка возвращена назад.</entry>
<entry lang="ru" key="INSTALL_OK">Программа VeraCrypt успешно установлена.</entry>
<entry lang="ru" key="SETUP_UPDATE_OK">Программа VeraCrypt успешно обновлена.</entry>
- <entry lang="ru" key="UPGRADE_OK_REBOOT_REQUIRED">Версия VeraCrypt успешно обновлена. Однако прежде чем её использовать, нужно перезагрузить компьютер.\n\nВыполнить перезагрузку сейчас?</entry>
- <entry lang="ru" key="SYS_ENC_UPGRADE_FAILED">Ошибка обновления VeraCrypt!\n\nВАЖНО: Настоятельно рекомендуется до завершения работы или перезагрузки ОС воспользоваться функцией восстановления системы ('Пуск &gt; Программы &gt; Стандартные &gt; Служебные &gt; Восстановление системы') и вернуть систему в точку 'VeraCrypt installation'. Если функция 'Восстановление системы' недоступна, попробуйте снова установить исходную или новую версию версию VeraCrypt до завершения или перезагрузки системы.</entry>
+ <entry lang="ru" key="UPGRADE_OK_REBOOT_REQUIRED">Версия VeraCrypt успешно обновлена, но прежде чем её использовать, нужно перезагрузить компьютер.\n\nВыполнить перезагрузку сейчас?</entry>
+ <entry lang="ru" key="SYS_ENC_UPGRADE_FAILED">Ошибка обновления VeraCrypt!\n\nВАЖНО: Настоятельно рекомендуется до завершения работы или перезагрузки ОС воспользоваться восстановлением системы ('Пуск &gt; Программы &gt; Стандартные &gt; Служебные &gt; Восстановление системы') и вернуть систему в точку 'VeraCrypt installation'. Если функция 'Восстановление системы' недоступна, попробуйте снова установить исходную или новую версию версию VeraCrypt до завершения или перезагрузки системы.</entry>
<entry lang="ru" key="UNINSTALL_OK">Программа VeraCrypt успешно удалена.\n\nНажмите 'Готово', чтобы удалить установщик VeraCrypt и папку %s. Папка не будет удалена, если в ней содержатся какие-либо файлы, созданные не установщиком и не самой программой VeraCrypt.</entry>
<entry lang="ru" key="REMOVING_REG">Удаление записей VeraCrypt в реестре</entry>
<entry lang="ru" key="ADDING_REG">Добавление элемента в реестр</entry>
@@ -880,8 +880,8 @@
<entry lang="ru" key="INSTALL_COMPLETED">Установка завершена.</entry>
<entry lang="ru" key="CANT_CREATE_FOLDER">Не удалось создать папку '%s'</entry>
<entry lang="ru" key="CLOSE_TC_FIRST">Невозможно выгрузить драйвер VeraCrypt.\n\nСначала закройте все открытые окна VeraCrypt. Если это не поможет, перезагрузите Windows и попробуйте ещё раз.</entry>
- <entry lang="ru" key="DISMOUNT_ALL_FIRST">Прежде чем продолжить установку или удаление VeraCrypt, нужно размонтировать все VeraCrypt-тома.</entry>
- <entry lang="ru" key="UNINSTALL_OLD_VERSION_FIRST">В этой системе уже установлена устаревшая версия VeraCrypt. Её необходимо удалить, прежде чем можно будет установить новую версию VeraCrypt.\n\nПри закрытии этого окна будет запущена программа удаления старой версии. Никакие тома при удалении VeraCrypt не расшифровываются. После удаления старой версии VeraCrypt запустите установщик новой версии VeraCrypt снова.</entry>
+ <entry lang="ru" key="DISMOUNT_ALL_FIRST">Прежде чем продолжить установку или удаление программы, нужно размонтировать все тома VeraCrypt.</entry>
+ <entry lang="ru" key="UNINSTALL_OLD_VERSION_FIRST">В этой системе уже установлена устаревшая версия VeraCrypt. Её необходимо удалить, прежде чем можно будет установить новую версию.\n\nПри закрытии этого окна будет запущена программа удаления старой версии. Никакие тома при удалении VeraCrypt не расшифровываются. После удаления старой версии запустите установщик новой версии VeraCrypt снова.</entry>
<entry lang="ru" key="REG_INSTALL_FAILED">Ошибка установки элементов в реестре</entry>
<entry lang="ru" key="DRIVER_INSTALL_FAILED">Ошибка установки драйвера. Перезагрузите Windows и попробуйте установить VeraCrypt ещё раз.</entry>
<entry lang="ru" key="STARTING_DRIVER">Запуск драйвера VeraCrypt</entry>
@@ -892,8 +892,8 @@
<entry lang="ru" key="COM_REG_FAILED">Ошибка регистрации библиотеки поддержки управления учётными записями пользователей (User Account Control).</entry>
<entry lang="ru" key="COM_DEREG_FAILED">Ошибка отмены регистрации библиотеки поддержки управления учётными записями пользователей (User Account Control).</entry>
<entry lang="ru" key="TRAVELER_LIMITATIONS_NOTE">О переносном режиме\n\nПрежде чем драйверы могут быть запущены, они должны быть зарегистрированы в операционной системе. Поэтому драйвер VeraCrypt - не полностью переносной (и не может таковым быть, тогда как приложения VeraCrypt - полностью переносные, т.е. не требуют установки или регистрации в ОС). Обратите внимание, что для шифрования/дешифрования 'на лету' VeraCrypt требуется драйвер.</entry>
- <entry lang="ru" key="TRAVELER_UAC_NOTE">!!! Если вы решили запустить VeraCrypt в переносном режиме (а не как установленную в ПК программу), система будет спрашивать вашего разрешения на выполнение (контроль учётных записей, UAC) при каждом запуске.\n\nПричина в том, что в переносном режиме требуется загружать и запускать драйвер VeraCrypt, необходимый для прозрачного, выполняемого 'на лету' шифрования/дешифрования, а пользователи без прав администратора не могут запускать драйверы в Windows. Поэтому система будет спрашивать разрешения на запуск VeraCrypt с привилегиями администратора (UAC).\n\nОбратите внимание, что при установке (инсталляции) VeraCrypt в систему (в отличие от запуска в переносном режиме), система НЕ будет запрашивать разрешения при каждом запуске программы.\n\nВы действительно хотите только извлечь файлы?</entry>
- <entry lang="ru" key="CONTAINER_ADMIN_WARNING">ВНИМАНИЕ: Эта копия мастера создания томов имеет административные привилегии.\n\nНовый том может быть создан с правами, которые не позволят вам записывать в него данные, когда он будет смонтирован. Если вы хотите этого избежать, закройте эту копию мастера создания томов и запустите другую, без административных привилегий.\n\nЗакрыть эту копию мастера создания томов?</entry>
+ <entry lang="ru" key="TRAVELER_UAC_NOTE">!!! Если вы решили запустить VeraCrypt в переносном режиме (а не как установленную в ПК программу), система будет запрашивать разрешение на выполнение (контроль учётных записей, UAC) при каждом запуске.\n\nПричина в том, что в переносном режиме требуется загружать и запускать драйвер VeraCrypt, необходимый для прозрачного, выполняемого 'на лету' шифрования/дешифрования, а пользователи без прав администратора не могут запускать драйверы в Windows. Поэтому система будет запрашивать разрешение на запуск VeraCrypt с привилегиями администратора (UAC).\n\nОбратите внимание, что при установке (инсталляции) VeraCrypt в систему (в отличие от запуска в переносном режиме), система НЕ будет запрашивать разрешение при каждом запуске программы.\n\nВы действительно хотите только извлечь файлы?</entry>
+ <entry lang="ru" key="CONTAINER_ADMIN_WARNING">ВНИМАНИЕ: Эта копия мастера создания томов имеет административные привилегии.\n\nНовый том может быть создан с правами, которые не позволят записывать в него данные, когда он будет смонтирован. Чтобы этого избежать, закройте данную копию мастера создания томов и запустите другую, без административных привилегий.\n\nЗакрыть эту копию мастера создания томов?</entry>
<entry lang="ru" key="CANNOT_DISPLAY_LICENSE">Ошибка вывода лицензии.</entry>
<entry lang="ru" key="OUTER_VOL_WRITE_PREVENTED">Внешний(!)</entry>
<entry lang="ru" key="DAYS">дн.</entry>
@@ -938,7 +938,7 @@
<entry lang="ru" key="ENTER_HEADER_BACKUP_PASSWORD">Введите пароль для заголовка в файле резервной копии</entry>
<entry lang="ru" key="KEYFILE_CREATED">Ключевой файл успешно создан.</entry>
<entry lang="ru" key="KEYFILE_INCORRECT_NUMBER">Недопустимое количество ключевых файлов.</entry>
- <entry lang="ru" key="KEYFILE_INCORRECT_SIZE">Размер ключевого файла должен быть между 64 и 1048576 байтами.</entry>
+ <entry lang="ru" key="KEYFILE_INCORRECT_SIZE">Размер ключевого файла должен быть между 64 и 1 048 576 байтами.</entry>
<entry lang="ru" key="KEYFILE_EMPTY_BASE_NAME">Введите имя создаваемого ключевого файла</entry>
<entry lang="ru" key="KEYFILE_INVALID_BASE_NAME">Недопустимое базовое имя ключевых файлов</entry>
<entry lang="ru" key="KEYFILE_ALREADY_EXISTS">Ключевой файл '%s' уже существует.\nПерезаписать его? При ответе 'Нет' процесс генерирования будет остановлен.</entry>
@@ -959,13 +959,13 @@
<entry lang="ru" key="BACKUP_HEADER_NOT_FOR_SYS_DEVICE">Вы пытаетесь создать резервную копию заголовка системного раздела/диска. Это не разрешено. Операции резервного копирования/восстановления, относящиеся к системному разделу/диску, можно выполнять только с помощью диска восстановления VeraCrypt (Rescue Disk).\n\nСоздать диск восстановления VeraCrypt?</entry>
<entry lang="ru" key="RESTORE_HEADER_NOT_FOR_SYS_DEVICE">Вы пытаетесь восстановить из резервной копии заголовок виртуального тома VeraCrypt, но выбрали системный раздел/диск. Это не разрешено. Операции резервного копирования/восстановления, относящиеся к системному разделу/диску, можно выполнять только с помощью диска восстановления VeraCrypt (Rescue Disk).\n\nСоздать диск восстановления VeraCrypt?</entry>
<entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_SELECT_PATH">После нажатия OK выберите имя файла для образа нового диска восстановления VeraCrypt (Rescue Disk) и место, где его нужно сохранить.</entry>
- <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас вам нужно записать этот образ на CD или DVD.\n\nВАЖНО: Этот файл должен быть записан на CD/DVD как ISO-образ диска (а не как отдельный файл). Сведения об этом вы можете найти в документации к своему ПО для записи CD/DVD.\n\nЗаписав диск восстановления на CD/DVD, выберите 'Система' &gt; 'Проверить диск восстановления', чтобы убедиться в корректности записи созданного диска.</entry>
- <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас вам нужно записать этот образ на CD или DVD.\n\nЗапустить программу записи оптических дисков Windows?\n\nЗаписав диск восстановления на CD/DVD, выберите 'Система' &gt; 'Проверить диск восстановления', чтобы убедиться в корректности записи созданного диска.</entry>
+ <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_BURN">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас нужно записать этот образ на CD или DVD.\n\nВАЖНО: Этот файл должен быть записан на CD/DVD как ISO-образ диска (а не как отдельный файл). Сведения об этом см. в документации к своему ПО для записи CD/DVD.\n\nЗаписав диск восстановления на CD/DVD, выберите 'Система' &gt; 'Проверить диск восстановления', чтобы убедиться в корректности записи созданного диска.</entry>
+ <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CREATION_WIN_ISOBURN">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас нужно записать этот образ на CD или DVD.\n\nЗапустить программу записи оптических дисков Windows?\n\nЗаписав диск восстановления на CD/DVD, выберите 'Система' &gt; 'Проверить диск восстановления', чтобы убедиться в корректности записи созданного диска.</entry>
<entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_INSERT">Чтобы проверить диск восстановления VeraCrypt, вставьте его в накопитель и нажмите OK.</entry>
<entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_PASSED">Диск восстановления VeraCrypt проверен. Всё в порядке.</entry>
- <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Невозможно проверить правильность записи диска восстановления.\n\nЕсли запись завершена, выньте CD/DVD и вставьте снова, а затем повторите попытку. Не помогло? Воспользуйтесь другим ПО для записи CD/DVD и/или другим CD/DVD.\n\nЕсли вы пытались проверить диск восстановления, созданный с другим мастер-ключом, паролем, солью и т.д., то учтите, что проверка такого диска будет всегда давать ошибку. Чтобы создать новый диск, полностью совместимый с текущей конфигурацией, выберите меню 'Система' &gt; 'Создать диск восстановления'.</entry>
- <entry lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Образ диска восстановления VeraCrypt успешно прошёл проверку.</entry>
- <entry lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">Образ диска восстановления VeraCrypt не прошёл проверку.\n\nЕсли вы пытались проверить образ, созданный с другим мастер-ключом, паролем, солью и т.д., то учтите, что проверка такого образа будет всегда давать ошибку. Чтобы создать новый образ диска восстановления, полностью совместимый с текущей конфигурацией, выберите 'Система' > 'Создать диск восстановления'.</entry>
+ <entry lang="ru" key="RESCUE_DISK_NON_WIZARD_CHECK_FAILED">Невозможно проверить правильность записи диска восстановления.\n\nЕсли запись завершена, выньте CD/DVD и вставьте снова, а затем повторите попытку. Не помогло? Воспользуйтесь другим ПО для записи дисков и/или другим CD/DVD.\n\nЕсли вы пытались проверить диск восстановления, созданный с другим мастер-ключом, паролем, солью и т.д., то учтите, что проверка такого диска будет всегда давать ошибку. Чтобы создать новый диск, полностью совместимый с текущей конфигурацией, выберите меню 'Система' &gt; 'Создать диск восстановления'.</entry>
+ <entry lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_PASSED">Проверка образа диска восстановления VeraCrypt успешно пройдена.</entry>
+ <entry lang="ru" key="RESCUE_DISK_ISO_IMAGE_CHECK_FAILED">Проверка образа диска восстановления VeraCrypt не пройдена.\n\nЕсли вы пытались проверить образ, созданный с другим мастер-ключом, паролем, солью и т.д., то учтите, что проверка такого образа будет всегда давать ошибку. Чтобы создать новый образ диска восстановления, полностью совместимый с текущей конфигурацией, выберите 'Система' > 'Создать диск восстановления'.</entry>
<entry lang="ru" key="ERROR_CREATING_RESCUE_DISK">Ошибка создания диска восстановления VeraCrypt.</entry>
<entry lang="ru" key="CANNOT_CREATE_RESCUE_DISK_ON_HIDDEN_OS">Диск восстановления VeraCrypt нельзя создавать, когда работает скрытая операционная система.\n\nЧтобы создать диск восстановления, загрузите обманную ОС и выберите 'Система' > 'Создать диск восстановления'.</entry>
<entry lang="ru" key="RESCUE_DISK_CHECK_FAILED">Невозможно проверить правильность записи диска восстановления.\n\nЕсли запись завершена, выньте CD/DVD и вставьте снова; затем нажмите 'Далее', чтобы повторить попытку. Если это не поможет, попробуйте воспользоваться другим носителем%s.\n\nЕсли вы пока ещё не записали диск восстановления, сделайте это и нажмите 'Далее'.\n\nЕсли вы пытались проверить диск восстановления VeraCrypt, созданный ДО запуска этого мастера, знайте, что такой диск использовать нельзя, поскольку он был создан с другим мастер-ключом. Нужно записать на CD/DVD заново созданный диск восстановления.</entry>
@@ -994,14 +994,14 @@
<entry lang="ru" key="DRIVE_LETTER_ITEM">Буква диска: </entry>
<entry lang="ru" key="UNSUPPORTED_CHARS_IN_PWD">Ошибка! Пароль должен содержать только символы стандартного набора ASCII.\n\nСимволы не из набора ASCII могут привести к невозможности монтирования тома при смене настроек в конфигурации системы.\n\nРазрешается использовать следующие символы:\n\n ! " # $ % &amp; ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</entry>
<entry lang="ru" key="UNSUPPORTED_CHARS_IN_PWD_RECOM">ВНИМАНИЕ: Пароль содержит символы не из набора ASCII. Это может привести к невозможности монтирования тома при смене конфигурации системы.\n\nВам следует заменить все не относящиеся к ASCII символы в пароле на символы ASCII. Для этого в меню 'Тома' выберите 'Изменить пароль тома'.\n\nК символам ASCII относятся:\n\n ! " # $ % &amp; ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</entry>
- <entry lang="ru" key="EXE_FILE_EXTENSION_CONFIRM">ВНИМАНИЕ: Настоятельно рекомендуется избегать расширений, используемых для исполняемых файлов (.exe, .sys, .dll) или других, которые могут быть источником потенциальных проблем. Использование таких расширений часто приводит к влиянию на контейнер со стороны Windows и антивирусных программ, что снижает производительность тома и также может привести к другим серьёзным проблемам.\n\nНастоятельно рекомендуем удалить это расширение или изменить его (например на '.hc').\n\nВы настаиваете на использовании этого проблематичного расширения файла?</entry>
- <entry lang="ru" key="EXE_FILE_EXTENSION_MOUNT_WARNING">ВНИМАНИЕ: Этот контейнер имеет расширение, используемое для исполняемых файлов (.exe, .sys, .dll) или других, которые могут быть источником потенциальных проблем. Вероятнее всего это приведёт к влиянию на данный контейнер со стороны Windows и антивирусного ПО, что снизит производительность тома и может вызвать другие серьёзные проблемы.\n\nНастоятельно рекомендуем удалить это расширение у файла-контейнера или изменить его (например на '.hc') после размонтирования тома.</entry>
+ <entry lang="ru" key="EXE_FILE_EXTENSION_CONFIRM">ВНИМАНИЕ: Настоятельно не рекомендуется использовать расширения как у исполняемых файлов (.exe, .sys, .dll) или других, которые могут быть источником потенциальных проблем. Такие расширения часто приводят к влиянию на контейнер со стороны Windows и антивирусных программ, что снижает производительность тома и может привести к другим серьёзным проблемам.\n\nНастоятельно советуем удалить это расширение или изменить его (например на '.hc').\n\nВы настаиваете на использовании этого проблематичного расширения файла?</entry>
+ <entry lang="ru" key="EXE_FILE_EXTENSION_MOUNT_WARNING">ВНИМАНИЕ: У этого контейнера расширение как у исполняемых файлов (.exe, .sys, .dll) или других, которые могут быть источником потенциальных проблем. Вероятнее всего это приведёт к влиянию на данный контейнер со стороны Windows и антивирусного ПО, что снизит производительность тома и может вызвать другие серьёзные проблемы.\n\nНастоятельно рекомендуем удалить это расширение у файла-контейнера или изменить его (например на '.hc') после размонтирования тома.</entry>
<entry lang="ru" key="HOMEPAGE">Домашняя страница</entry>
<entry lang="ru" key="LARGE_IDE_WARNING_XP">ВНИМАНИЕ: В системе не установлено ни одного пакета обновлений (Service Pack) Windows. Если в Windows XP не установлен Service Pack 1 (или новее), не следует выполнять запись на диски IDE объёмом более 128 ГБ, иначе возможно повреждение данных (неважно, относятся они к тому VeraCrypt или нет). Это ограничение Windows, а не ошибка в VeraCrypt.</entry>
<entry lang="ru" key="LARGE_IDE_WARNING_2K">ВНИМАНИЕ: В системе не установлен пакет обновлений Windows Service Pack 3 (или новее). Если в Windows 2000 не установлен Service Pack 3 (или новее), не следует выполнять запись на диски IDE объёмом более 128 ГБ, иначе возможно повреждение данных (неважно, относятся они к тому VeraCrypt или нет). Это ограничение Windows, а не ошибка в VeraCrypt. Кроме того, может потребоваться включить в реестре поддержку 48-бит адресации LBA; подробности см. на http://support.microsoft.com/kb/305098/EN-US</entry>
<entry lang="ru" key="LARGE_IDE_WARNING_2K_REGISTRY">ВНИМАНИЕ: В системе отключена поддержка 48-бит LBA ATAPI. Поэтому не следует выполнять запись на IDE-диски объёмом более 128 ГБ! В противном случае это может привести к повреждению данных на диске (будь это том VeraCrypt или обычный раздел). Это ограничение Windows, а не VeraCrypt.\n\nЧтобы включить поддержку 48-бит режима LBA, добавьте в реестр в ключ HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\atapi\\Parameters значение 'EnableBigLba' и установите его значение в 1.\n\nСм. подробности тут: http://support.microsoft.com/kb/305098</entry>
<entry lang="ru" key="VOLUME_TOO_LARGE_FOR_FAT32">ОШИБКА: В файловой системе FAT32 нельзя сохранять файлы размером более 4 ГБ. Поэтому тома VeraCrypt на основе файлов (контейнеры), хранящиеся в файловой системе FAT32, не могут быть больше 4 ГБ.\n\nЕсли нужен том большего объёма, создайте его в системе NTFS (или, при использовании Windows Vista SP1 или новее, в файловой системе exFAT), либо вместо создания тома на основе файла зашифруйте весь раздел диска.</entry>
- <entry lang="ru" key="VOLUME_TOO_LARGE_FOR_WINXP">ВНИМАНИЕ: Windows XP не поддерживает файлы больше 2048 ГБ (сообщая о недостатке свободного места). Поэтому в Windows XP нельзя создавать тома VeraCrypt на основе файлов (контейнеры) объёмом свыше 2048 ГБ.\n\nТем не менее, в Windows XP можно зашифровать диск целиком или создать том VeraCrypt на основе раздела размером более 2048 ГБ.</entry>
+ <entry lang="ru" key="VOLUME_TOO_LARGE_FOR_WINXP">ВНИМАНИЕ: Windows XP не поддерживает файлы больше 2048 ГБ (сообщая о недостатке свободного места). Поэтому в Windows XP нельзя создавать тома VeraCrypt на основе файлов (контейнеры) объёмом свыше 2048 ГБ.\n\nТем не менее в Windows XP можно зашифровать диск целиком или создать том VeraCrypt на основе раздела размером более 2048 ГБ.</entry>
<entry lang="ru" key="FREE_SPACE_FOR_WRITING_TO_OUTER_VOLUME">ВНИМАНИЕ: Если вам нужно впоследствии добавлять во внешний том ещё данные/файлы, имеет смысл уменьшить размер скрытого тома.\n\nХотите продолжить и использовать указанный вами размер?</entry>
<entry lang="ru" key="NO_VOLUME_SELECTED">Не выбран том.\n\nНажмите кнопку 'Устройство' или 'Файл' и выберите том VeraCrypt.</entry>
<entry lang="ru" key="NO_SYSENC_PARTITION_SELECTED">Не выбран раздел.\n\nНажмите кнопку 'Устройство' и выберите несмонтированный раздел, который требует дозагрузочной аутентификации (например раздел на зашифрованном системном диске с другой, не выполняемой сейчас ОС, или зашифрованный системный раздел другой ОС).\n\nПримечание: выбранный раздел будет смонтирован как обычный том VeraCrypt без дозагрузочной аутентификации. Это может понадобиться, например, для резервного копирования или починки.</entry>
@@ -1037,7 +1037,7 @@
<entry lang="ru" key="KEEP_PROMPTING_ME">Да, спрашивать</entry>
<entry lang="ru" key="DO_NOT_PROMPT_ME">Нет, не спрашивать</entry>
<entry lang="ru" key="NONSYS_INPLACE_ENC_NOTIFICATION_REMOVAL_NOTE">ВАЖНО: Не забывайте, что вы можете продолжить (де)шифрование любого несистемного раздела/тома, выбрав в меню главного окна VeraCrypt пункт 'Тома' &gt; 'Продолжить прерванный процесс'.</entry>
- <entry lang="ru" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">Вы запланировали шифрование или дешифрование системного раздела/диска, но не пройдена (или была пропущена) дозагрузочная аутентификация.\n\nПримечание: при дешифровании системного раздела/диска в дозагрузочном окружении может потребоваться финализация процесса путём выбора команды 'Система' &gt; 'Перманентно расшифровать системный раздел/диск' в меню главного окна VeraCrypt.</entry>
+ <entry lang="ru" key="SYSTEM_ENCRYPTION_SCHEDULED_BUT_PBA_FAILED">Вы запланировали шифрование или дешифрование системного раздела/диска, но не пройдена (или была пропущена) дозагрузочная аутентификация.\n\nПримечание: при дешифровании системного раздела/диска в дозагрузочном окружении может потребоваться финализация процесса командой 'Система' &gt; 'Перманентно расшифровать системный раздел/диск' в меню главного окна VeraCrypt.</entry>
<entry lang="ru" key="CONFIRM_EXIT">ВНИМАНИЕ: Если закрыть VeraCrypt сейчас, будут отключены следующие функции:\n\n1) Горячие клавиши\n2) Авторазмонтирование (при завершении сеанса, нечаянном удалении хост-устройства, истечении времени ожидания и т.д.)\n3) Автомонтирование избранных томов\n4) Оповещения (например о предотвращении повреждения скрытого тома)\n\nПримечание: если вы не хотите, чтобы после закрытия окна VeraCrypt программа продолжала работать в фоновом режиме, выключите соответствующий параметр в её настройках (а также, при необходимости, автозапуск VeraCrypt).\n\nВы действительно хотите закрыть VeraCrypt?</entry>
<entry lang="ru" key="CONFIRM_EXIT_UNIVERSAL">Выход?</entry>
<entry lang="ru" key="CHOOSE_ENCRYPT_OR_DECRYPT">Недостаточно информации, чтобы определить, какую операцию выполнить - шифрование или дешифрование.</entry>
@@ -1057,34 +1057,34 @@
<entry lang="ru" key="LANG_PACK_VERSION">Версия языкового модуля: %s</entry>
<entry lang="ru" key="CHECKING_FS">Проверка файловой системы тома VeraCrypt, смонтированного как %s...</entry>
<entry lang="ru" key="REPAIRING_FS">Попытка исправить файловую систему тома VeraCrypt, смонтированного как %s...</entry>
- <entry lang="ru" key="WARN_64_BIT_BLOCK_CIPHER">ВНИМАНИЕ: Этот том зашифрован с помощью устаревшего алгоритма.\n\nВсе алгоритмы шифрования с 64-бит блоками (например Blowfish, CAST-128, Triple DES) вышли из употребления. В последующих версиях VeraCrypt монтирование этого тома будет возможно, однако никаких улучшений в реализации этих устаревших алгоритмов не предвидится. Рекомендуем создать новый том VeraCrypt с шифрованием по алгоритму со 128-бит блоками (например AES, Serpent, Twofish и др.) и перенести все файлы из этого тома в новый.</entry>
+ <entry lang="ru" key="WARN_64_BIT_BLOCK_CIPHER">ВНИМАНИЕ: Этот том зашифрован с помощью устаревшего алгоритма.\n\nВсе алгоритмы шифрования с 64-бит блоками (например Blowfish, CAST-128, Triple DES) вышли из употребления. В последующих версиях VeraCrypt монтирование этого тома будет возможно, но никаких улучшений в реализации этих устаревших алгоритмов не предвидится. Рекомендуем создать новый том VeraCrypt с шифрованием по алгоритму со 128-бит блоками (например AES, Serpent, Twofish и др.) и перенести все файлы из этого тома в новый.</entry>
<entry lang="ru" key="SYS_AUTOMOUNT_DISABLED">Ваша система не настроена на автомонтирование новых томов. Монтирование томов VeraCrypt на основе устройств может оказаться невозможным. Чтобы включить автомонтирование, выполните следующую команду и перезагрузите систему:\n\nmountvol.exe /E</entry>
- <entry lang="ru" key="SYS_ASSIGN_DRIVE_LETTER">Прежде чем продолжить, присвойте разделу/устройству букву диска ('Панель управления' &gt; 'Администрирование' &gt; 'Управление компьютером' - 'Управление дисками').\n\nПримечание: это требование операционной системы.</entry>
+ <entry lang="ru" key="SYS_ASSIGN_DRIVE_LETTER">Прежде чем продолжить, присвойте разделу/устройству букву диска ('Панель управления' &gt; 'Администрирование' &gt; 'Управление компьютером' - 'Управление дисками').\n\n(Это требование операционной системы.)</entry>
<entry lang="ru" key="MOUNT_TC_VOLUME">Смонтировать том VeraCrypt</entry>
<entry lang="ru" key="DISMOUNT_ALL_TC_VOLUMES">Размонтировать все тома VeraCrypt</entry>
<entry lang="ru" key="UAC_INIT_ERROR">VeraCrypt не может получить права администратора.</entry>
<entry lang="ru" key="ERR_ACCESS_DENIED">Доступ запрещён операционной системой.\n\nВозможная причина: для чтения/записи данных в некоторых папках, файлах и устройствах операционная система требует наличия прав чтения/записи (привилегий администратора). По умолчанию пользователю без прав администратора разрешается создавать читать и изменять файлы лишь в папке с его документами ('Мои документы').</entry>
<entry lang="ru" key="SECTOR_SIZE_UNSUPPORTED">ОШИБКА: Выбранное устройство использует сектора неподдерживаемого размера.\n\nВ настоящее время невозможно создавать разделы/тома на основе устройств на дисках с секторами более 4096 байт. Однако на таких дисках можно создавать тома (контейнеры) на основе файлов.</entry>
<entry lang="ru" key="SYSENC_UNSUPPORTED_SECTOR_SIZE_BIOS">В настоящее время не поддерживается шифрование системы, установленной на диске с секторами не по 512 байт.</entry>
- <entry lang="ru" key="NO_SPACE_FOR_BOOT_LOADER">Для загрузчика VeraCrypt необходимо не менее 32 КБ свободного места в начале системного диска (загрузчик должен располагаться в этой области). Ваш диск этому условию не удовлетворяет.\n\nПожалуйста, НЕ сообщайте нам об этом как об ошибке/проблеме в работе VeraCrypt. Чтобы решить эту проблему, нужно переразметить диск, оставив свободными первые 32 КБ (в большинстве случаев достаточно удалить и вновь создать первый раздел). Рекомендуем использовать для этого диспетчер разделов Microsoft, устанавливаемый вместе с Windows.</entry>
+ <entry lang="ru" key="NO_SPACE_FOR_BOOT_LOADER">Для загрузчика VeraCrypt необходимо не менее 32 КБ свободного места в начале системного диска (загрузчик должен располагаться в этой области). Ваш диск этому условию не удовлетворяет.\n\nПожалуйста, НЕ сообщайте нам об этом как об ошибке/проблеме в работе VeraCrypt. Чтобы решить данную проблему, нужно переразметить диск, оставив свободными первые 32 КБ (в большинстве случаев достаточно удалить и вновь создать первый раздел). Рекомендуем использовать для этого диспетчер разделов Microsoft, устанавливаемый вместе с Windows.</entry>
<entry lang="ru" key="FEATURE_UNSUPPORTED_ON_CURRENT_OS">Эта функция не поддерживается операционной системой той версии, которую вы сейчас используете.</entry>
<entry lang="ru" key="SYS_ENCRYPTION_UNSUPPORTED_ON_CURRENT_OS">В этой версии операционной системы VeraCrypt не поддерживает шифрование системного раздела/диска.</entry>
<entry lang="ru" key="SYS_ENCRYPTION_UNSUPPORTED_ON_VISTA_SP0">Чтобы зашифровать системный раздел/диск в Windows Vista, сначала нужно установить пакет обновления Service Pack 1 для Windows Vista или более новый (в вашей системе он пока не установлен).\n\nПримечание: Service Pack 1 для Windows Vista устраняет проблему с нехваткой основной памяти при загрузке системы.</entry>
<entry lang="ru" key="SYS_ENCRYPTION_UPGRADE_UNSUPPORTED_ON_VISTA_SP0">VeraCrypt больше не поддерживает шифрование системного раздела/диска в Windows Vista без установленного пакета обновления (Service Pack). Прежде чем обновить VeraCrypt, установите Service Pack 1 (или новее) для Windows Vista.</entry>
- <entry lang="ru" key="FEATURE_REQUIRES_INSTALLATION">ОШИБКА: Чтобы воспользоваться этой функцией, нужно, чтобы программа VeraCrypt была УСТАНОВЛЕНА в компьютере (сейчас она работает в 'переносном' режиме).\n\nУстановите (инсталлируйте) VeraCrypt и повторите попытку.</entry>
+ <entry lang="ru" key="FEATURE_REQUIRES_INSTALLATION">ОШИБКА: Для этой функции нужно, чтобы программа VeraCrypt была УСТАНОВЛЕНА в компьютере (сейчас она работает в 'переносном' режиме).\n\nУстановите (инсталлируйте) VeraCrypt и повторите попытку.</entry>
<entry lang="ru" key="WINDOWS_NOT_ON_BOOT_DRIVE_ERROR">ВНИМАНИЕ: Похоже, Windows не установлена на диске, с которого она загружается. Такая конфигурация не поддерживается.\n\nПродолжать следует лишь в случае, если вы уверены, что Windows установлена на том же диске, с которого она загружается.\n\nПродолжить?</entry>
<entry lang="ru" key="TC_BOOT_LOADER_ALREADY_INSTALLED">ОСТОРОЖНО: На системном диске уже установлен загрузчик VeraCrypt!\n\nВозможно, в компьютере имеется другая уже зашифрованная система.\n\nВНИМАНИЕ: ЕСЛИ ПРИСТУПИТЬ К ШИФРОВАНИЮ ТЕКУЩЕЙ СИСТЕМЫ, ЕСТЬ ВЕРОЯТНОСТЬ, ЧТО ДРУГИЕ СИСТЕМЫ НЕ СМОГУТ ЗАГРУЖАТЬСЯ, А ОТНОСЯЩИЕСЯ К НИМ ДАННЫЕ СТАНУТ НЕДОСТУПНЫМИ.\n\nВы действительно хотите продолжить?</entry>
<entry lang="ru" key="SYS_LOADER_RESTORE_FAILED">Ошибка восстановления исходного загрузчика системы.\n\nИспользуйте диск восстановления VeraCrypt ('Repair Options' &gt; 'Restore original system loader') или установочный диск Windows, чтобы заменить загрузчик VeraCrypt системным загрузчиком Windows.</entry>
<entry lang="ru" key="SYS_LOADER_UNAVAILABLE_FOR_RESCUE_DISK">Исходный системный загрузчик не будет сохранён на диске восстановления (возможно, нет файла с резервной копией).</entry>
- <entry lang="ru" key="ERROR_MBR_PROTECTED">Ошибка записи сектора MBR.\n\nВозможно, в BIOS компьютера включена защита сектора MBR. Проверьте в настройках BIOS (нажмите клавишу F2, Delete или Esc сразу после включения компьютера), не включена ли антивирусная/MBR защита.</entry>
+ <entry lang="ru" key="ERROR_MBR_PROTECTED">Ошибка записи сектора MBR.\n\nВозможно, в BIOS компьютера включена защита сектора MBR. Проверьте в настройках BIOS (нажмите клавишу F2, Delete или Esc сразу после включения компьютера), не активирована ли антивирусная/MBR защита.</entry>
<entry lang="ru" key="BOOT_LOADER_FINGERPRINT_CHECK_FAILED">ВНИМАНИЕ: Ошибка контрольной суммы загрузчика VeraCrypt!\nВозможно, была попытка подделки информации на диске (атака 'Evil Maid').\n\nЭто предупреждение также может появиться, если вы восстановили загрузчик VeraCrypt с помощью диска восстановления, созданного другой версией VeraCrypt.\n\nРекомендуем немедленно изменить пароль - это восстановит нормальный загрузчик VeraCrypt. Также стоит переустановить VeraCrypt и ограничить нежелательным лицам доступ к этому ПК.</entry>
<entry lang="ru" key="BOOT_LOADER_VERSION_INCORRECT_PREFERENCES">Не установлен загрузчик VeraCrypt (Boot Loader) нужной версии. Это может препятствовать сохранению ряда параметров.</entry>
<entry lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_HELP">Примечание: иногда нужно, чтобы посторонний (неприятель), наблюдающий за включением ПК, не знал, что вы пользуетесь VeraCrypt. Эти параметры позволяют изменить экран загрузки VeraCrypt. Если включить первую опцию, экран загрузчика будет пустым (даже при вводе неправильного пароля). При вводе пароля ПК будет выглядеть 'зависшим'. Кроме того, чтобы ввести неприятеля в заблуждение, можно включить показ своего сообщения. Например, отображать ложные сообщения об ошибках вроде 'Missing operating system' (обычно это показывает загрузчик Windows, когда не может найти загрузочный раздел Windows). Учитите, однако, что если у неприятеля будет возможность проанализировать содержимое жёсткого диска, то он сумеет найти на нём загрузчик VeraCrypt.</entry>
- <entry lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">ВНИМАНИЕ: Если включить эту опцию, загрузчик VeraCrypt не будет выводить на экран никаких сообщений (даже если указать неправильный пароль). При вводе пароля компьютер будет выглядеть 'зависшим' (не реагирующим), курсор НЕ будет перемещаться, а нажатия клавиш НЕ будут сопровождаться показом звёздочек.\n\nВы действительно хотите включить эту опцию?</entry>
+ <entry lang="ru" key="CUSTOM_BOOT_LOADER_MESSAGE_PROMPT">ВНИМАНИЕ: Если включить эту опцию, загрузчик VeraCrypt не будет выводить на экран никаких сообщений (даже при неправильном пароле). При вводе пароля компьютер будет выглядеть 'зависшим' (не реагирующим), курсор НЕ будет перемещаться, а нажатия клавиш НЕ будут сопровождаться показом звёздочек.\n\nВы действительно хотите включить эту опцию?</entry>
<entry lang="ru" key="SYS_PARTITION_OR_DRIVE_APPEARS_FULLY_ENCRYPTED">Судя по всему, системный раздел/диск полностью зашифрован.</entry>
<entry lang="ru" key="SYSENC_UNSUPPORTED_FOR_DYNAMIC_DISK">VeraCrypt не поддерживает шифрование системного диска, который был преобразован в динамический диск.</entry>
- <entry lang="ru" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">Системный диск содержит расширенные (логические) разделы.\n\nШифрование всего системного диска, содержащего расширенные (логические) разделы, доступно только в Windows Vista и более новых версиях Windows. В Windows XP зашифровать весь системный диск можно при условии, что он содержит только первичные разделы.\n\nТем не менее, вместо всего системного диска вы можете зашифровать системный раздел (а также создавать тома VeraCrypt на основе разделов внутри любых несистемных разделов на диске).</entry>
- <entry lang="ru" key="WDE_EXTENDED_PARTITIONS_WARNING">ВНИМАНИЕ: Так как вы работаете в Windows XP/2003, после запуска шифрования диска на нём НЕЛЬЗЯ создавать расширенные (логические) разделы (разрешается создавать только первичные разделы). Любой расширенный (логический) раздел на диске после начала шифрования станет недоступным (сейчас на диске нет таких разделов).\n\nПримечание: если это ограничение неприемлемо, вернитесь и выберите шифрование только системного раздела, а не всего диска (также можно создать тома VeraCrypt на основе разделов внутри любых несистемных разделов на диске).\n\nЕсли данное ограничение вам не подходит, перейдите на Windows Vista или более новую версию Windows (шифрование всего системного диска, содержащего расширенные/логические разделы, доступно только в Vista и более новых версиях Windows).</entry>
+ <entry lang="ru" key="WDE_UNSUPPORTED_FOR_EXTENDED_PARTITIONS">Системный диск содержит расширенные (логические) разделы.\n\nШифрование всего системного диска, содержащего расширенные (логические) разделы, доступно только в Windows Vista и более новых версиях Windows. В Windows XP зашифровать весь системный диск можно при условии, что он содержит только первичные разделы.\n\nТем не менее вместо всего системного диска можно зашифровать системный раздел (а также создать тома VeraCrypt на основе разделов внутри любых несистемных разделов на диске).</entry>
+ <entry lang="ru" key="WDE_EXTENDED_PARTITIONS_WARNING">ВНИМАНИЕ: Так как вы работаете в Windows XP/2003, после запуска шифрования диска на нём НЕЛЬЗЯ создавать расширенные (логические) разделы (разрешается создавать только первичные разделы). Любой расширенный (логический) раздел на диске после начала шифрования станет недоступным (сейчас на диске нет таких разделов).\n\nПримечание: если это ограничение неприемлемо, вернитесь и выберите шифрование только системного раздела, а не всего диска (также можно создать тома VeraCrypt на основе разделов внутри любых несистемных разделов на диске).\n\nЕсли данное ограничение неприемлемо, перейдите на Vista или более новую версию Windows (шифрование всего системного диска, содержащего расширенные/логические разделы, доступно только в Vista и более новых версиях Windows).</entry>
<entry lang="ru" key="SYSDRIVE_NON_STANDARD_PARTITIONS">Системный диск содержит нестандартный раздел.\n\nЕсли вы используете ноутбук, вероятно, на системном диске находится особый раздел для восстановления. После шифрования всего системного диска (включая любой раздел для восстановления) компьютер может перестать загружаться, если в нём не вполне корректная BIOS. Также, пока не будет расшифрован системный диск, нельзя использовать раздел для восстановления. Поэтому рекомендуем шифровать только системный раздел.</entry>
<entry lang="ru" key="ASK_ENCRYPT_PARTITION_INSTEAD_OF_DRIVE">Хотите зашифровать только системный раздел, а не весь диск?\n\nОбратите внимание, что можно создавать тома VeraCrypt на основе разделов внутри любых несистемных разделов на диске (вдобавок к шифрованию системного раздела).</entry>
<entry lang="ru" key="WHOLE_SYC_DEVICE_RECOM">Поскольку системный диск содержит только один раздел, занимающий его целиком, предпочтительнее (безопаснее) зашифровать весь диск, включая свободное 'резервное' место, которое обычно окружает такой раздел.\n\nХотите зашифровать весь системный диск?</entry>
@@ -1092,28 +1092,28 @@
<entry lang="ru" key="USER_PROFILE_NOT_ON_SYS_PARTITION">Файлы вашего профиля пользователя не хранятся на системном разделе.\n\nЭти файлы должны храниться только на системном разделе.</entry>
<entry lang="ru" key="PAGING_FILE_NOT_ON_SYS_PARTITION">На несистемных разделах имеются файлы подкачки.\n\nЭти файлы должны находиться только на системном разделе.</entry>
<entry lang="ru" key="RESTRICT_PAGING_FILES_TO_SYS_PARTITION">Настроить систему так, чтобы файлы подкачки создавались только на разделе с Windows?\n\nПри нажатии 'Да' компьютер будет перезагружен. После этого запустите VeraCrypt и снова попробуйте создать скрытую ОС.</entry>
- <entry lang="ru" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> В противном случае это неблагоприятно скажется на правдоподобности отрицания наличия скрытой ОС.\n\nУчтите, что если неприятель проанализирует содержимое таких файлов (на несистемном разделе), то сможет узнать, что вы пользовались этим мастером в режиме создания скрытой системы (что натолкнёт на мысль о наличии в ПК скрытой ОС). Также имейте в виду, что такие файлы, хранящиеся на системном разделе, будут надёжно удалены VeraCrypt при создании скрытой ОС.</entry>
+ <entry lang="ru" key="LEAKS_OUTSIDE_SYSPART_UNIVERSAL_EXPLANATION"> В противном случае это неблагоприятно скажется на правдоподобности отрицания скрытой ОС.\n\nУчтите, что если неприятель проанализирует содержимое таких файлов (на несистемном разделе), то сможет узнать, что вы пользовались этим мастером в режиме создания скрытой системы (что натолкнёт на мысль о наличии в ПК скрытой ОС). Также имейте в виду, что такие файлы на системном разделе будут надёжно удалены VeraCrypt при создании скрытой ОС.</entry>
<entry lang="ru" key="DECOY_OS_REINSTALL_WARNING">ВНИМАНИЕ: Во время создания скрытой ОС потребуется полностью переустановить текущую ОС (чтобы безопасно создать обманную систему).\n\nПримечание: работающая сейчас ОС и всё содержимое системного раздела будут скопированы в скрытый том (чтобы создать скрытую систему).\n\n\nВы уверены, что сможете установить Windows с носителя с дистрибутивом (или со служебного раздела)?</entry>
<entry lang="ru" key="DECOY_OS_REQUIREMENTS">В целях безопасности, если работающая сейчас ОС требует активации, то перед продолжением её нужно активировать. Скрытая ОС будет создана копированием содержимого системного раздела в скрытый том (поэтому если эта ОС не активирована, то не будет активирована и скрытая).\n\nВАЖНО: Прежде чем продолжить, обязательно ознакомьтесь с главой 'Требования безопасности и меры предосторожности касательно скрытых томов' в Руководстве пользователя VeraCrypt.\n\n\nУдовлетворяет ли работающая сейчас ОС указанному выше условию?</entry>
<entry lang="ru" key="CONFIRM_HIDDEN_OS_EXTRA_BOOT_PARTITION">Ваша система использует дополнительный загрузочный раздел. VeraCrypt не поддерживает гибернацию скрытых операционных систем с дополнительным загрузочным разделом (гибернация обманных систем никаких проблем не вызывает).\n\nУчтите, что загрузочный раздел используется как обманной, так и скрытой системами. Поэтому чтобы предотвратить утечки данных и проблемы с выходом из гибернации, скрытой системе запрещены запись в общий загрузочный раздел и гибернация.\n\n\nПродолжить? При ответе 'Нет' будут даны инструкции, как удалить дополнительный загрузочный раздел.</entry>
<entry lang="ru" key="EXTRA_BOOT_PARTITION_REMOVAL_INSTRUCTIONS">\nДополнительный загрузочный раздел можно удалить до установки Windows. Для этого выполните следующее:\n\n1) Загрузите Windows с установочного носителя.\n\n2) На экране установки Windows нажмите 'Install now' &gt; 'Custom (advanced)'.\n\n3) Нажмите 'Drive Options'.\n\n4) Выберите основной системный раздел и удалите его, нажав 'Delete' и OK.\n\n5) Выберите раздел 'System Reserved', нажмите 'Extend' и увеличьте его размер в соответствии с устанавливаемой ОС.\n\n6) Нажмите 'Apply' и OK.\n\n7) Установите Windows в раздел 'System Reserved'.\n\n\nЕсли неприятель спросит вас, зачем вы удалили дополнительный загрузочный раздел, вы можете ответить, что хотели предотвратить возможность утечки данных в незашифрованный загрузочный раздел.\n\nЧтобы распечатать этот текст, нажмите кнопку 'Печать'. Если вы сохраните или распечатаете этот текст (настоятельно рекомендуем это сделать, если только ваш принтер не хранит копии заданий на своём внутреннем накопителе), то после удаления дополнительного загрузочного раздела все копии текста следует уничтожить (иначе если такую копию обнаружат, это может навести на мысль о наличии в ПК скрытой ОС).</entry>
<entry lang="ru" key="GAP_BETWEEN_SYS_AND_HIDDEN_OS_PARTITION">ВНИМАНИЕ: Между системным разделом и первым идущим за ним разделом имеется нераспределённое место. После создания скрытой ОС вы не должны создавать в этой нераспределённой области никаких новых разделов. В противном случае скрытая ОС не сможет загрузиться (пока не будут удалены такие вновь созданные разделы).</entry>
- <entry lang="ru" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В настоящее время этот алгоритм для шифрования системы не поддерживается.</entry>
+ <entry lang="ru" key="ALGO_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Сейчас этот алгоритм для шифрования системы не поддерживается.</entry>
<entry lang="ru" key="ALGO_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">Этот алгоритм не поддерживается в режиме TrueCrypt.</entry>
<entry lang="ru" key="PIM_NOT_SUPPORTED_FOR_TRUECRYPT_MODE">PIM (персональный умножитель итераций) не поддерживается в режиме TrueCrypt.</entry>
<entry lang="ru" key="PIM_REQUIRE_LONG_PASSWORD">Для использования указанного PIM пароль должен быть не короче 20 символов.\nБолее короткие пароли можно применять только с PIM не менее 485.</entry>
<entry lang="ru" key="BOOT_PIM_REQUIRE_LONG_PASSWORD">Для использования указанного PIM пароль дозагрузочной аутентификации должен быть не короче 20 символов.\nБолее короткие пароли можно использовать только с PIM не менее 98.</entry>
- <entry lang="ru" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">В настоящее время ключевые файлы для шифрования системы не поддерживаются.</entry>
+ <entry lang="ru" key="KEYFILES_NOT_SUPPORTED_FOR_SYS_ENCRYPTION">Сейчас ключевые файлы для шифрования системы не поддерживаются.</entry>
<entry lang="ru" key="CANNOT_RESTORE_KEYBOARD_LAYOUT">ВНИМАНИЕ: VeraCrypt не удалось восстановить первоначальную раскладку клавиатуры. Это может привести к неправильному вводу пароля.</entry>
<entry lang="ru" key="CANT_CHANGE_KEYB_LAYOUT_FOR_SYS_ENCRYPTION">ОШИБКА: Невозможно установить раскладку клавиатуры для VeraCrypt в стандартную американскую (US).\n\nПоскольку пароль требуется указывать ДО загрузки Windows, когда любые раскладки клавиатуры, отличные от американской, ещё недоступны, его нужно всегда вводить в стандартной американской раскладке.</entry>
- <entry lang="ru" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Поскольку раскладка клавиатуры временно изменена на стандартную американскую, ввод символов при нажатой правой клавише Alt невозможен. Тем не менее, большинство таких символов можно ввести соответствующими клавишами при нажатой клавише Shift.</entry>
+ <entry lang="ru" key="ALT_KEY_CHARS_NOT_FOR_SYS_ENCRYPTION">Поскольку раскладка клавиатуры временно изменена на стандартную американскую, ввод символов при нажатой правой клавише Alt невозможен. Тем не менее большинство таких символов можно ввести соответствующими клавишами при нажатой клавише Shift.</entry>
<entry lang="ru" key="KEYB_LAYOUT_CHANGE_PREVENTED">Изменение раскладки клавиатуры заблокировано VeraCrypt.</entry>
<entry lang="ru" key="KEYB_LAYOUT_SYS_ENC_EXPLANATION">Примечание: поскольку пароль требуется указывать ДО загрузки Windows, когда любые раскладки клавиатуры, отличные от американской, ещё недоступны, его нужно всегда вводить в стандартной американской раскладке. Важно учесть, что настоящая американская клавиатура НЕ нужна. VeraCrypt автоматически обеспечивает безопасный ввод пароля (прямо сейчас и на стадии перед загрузкой ОС), даже если у вас НЕ настоящая американская клавиатура.</entry>
<entry lang="ru" key="RESCUE_DISK_INFO">Прежде чем приступить к шифрованию раздела/диска, нужно создать диск восстановления VeraCrypt Rescue Disk (VRD), обеспечивающий следующее:\n\n- При повреждении загрузчика VeraCrypt, мастер-ключа или других критических данных, VRD позволяет их восстановить (при этом всё равно надо будет ввести правильный пароль).\n- При повреждении и невозможности загрузки Windows, VRD позволяет перманентно расшифровать раздел/диск перед запуском Windows.\n- VRD содержит резервную копию текущего содержимого первого цилиндра диска (в котором обычно находится системный загрузчик или менеджер загрузки) и позволяет восстановить его.\n\nISO-образ диска восстановления VeraCrypt будет создан тут:</entry>
<entry lang="ru" key="RESCUE_DISK_WIN_ISOBURN_PRELAUNCH_NOTE">После нажатия OK будет запущено средство записи образов дисков Windows. Запишите с его помощью ISO-образ диска восстановления на CD/DVD.\n\nЗатем вернитесь в окно мастера создания томов VeraCrypt и следуйте инструкциям.</entry>
<entry lang="ru" key="RESCUE_DISK_BURN_INFO">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас нужно записать (прожечь) этот образ на CD/DVD.\n\n%lsПосле записи диска нажмите 'Далее', чтобы проверить, корректно ли он был записан.</entry>
<entry lang="ru" key="RESCUE_DISK_BURN_INFO_NO_CHECK">Образ диска восстановления создан и сохранён в файле\n%s\n\nСейчас следует либо записать (прожечь) этот образ на CD/DVD, либо переместить его в безопасное место для использования в дальнейшем.\n\n%lsНажмите 'Далее' для продолжения.</entry>
- <entry lang="ru" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">ВАЖНО: Файл-образ должен быть записан на CD/DVD как ISO-образ диска (а не как отдельный файл). О том, как это сделать, см. документацию на ваше ПО для записи CD/DVD. Если у вас нет программы записи ISO-образов на CD/DVD, щёлкните по ссылке ниже, чтобы загрузить такое бесплатное ПО.\n\n</entry>
+ <entry lang="ru" key="RESCUE_DISK_BURN_INFO_NONWIN_ISO_BURNER">ВАЖНО: Файл-образ должен быть записан на CD/DVD как ISO-образ диска (а не как отдельный файл). О том, как это сделать, см. документацию на ПО для записи CD/DVD. Если у вас нет программы записи ISO-образов на CD/DVD, щёлкните по ссылке ниже, чтобы загрузить такое бесплатное ПО.\n\n</entry>
<entry lang="ru" key="LAUNCH_WIN_ISOBURN">Запустить средство записи образов дисков Windows</entry>
<entry lang="ru" key="RESCUE_DISK_BURN_NO_CHECK_WARN">ВНИМАНИЕ: Если ранее вы уже создавали диск восстановления VeraCrypt, то не сможете им воспользоваться снова для этого системного раздела/диска, так как он был создан для другого мастер-ключа! При каждом шифровании системного раздела/диска нужно создавать новый диск восстановления VeraCrypt, даже если используется тот же пароль.</entry>
<entry lang="ru" key="CANNOT_SAVE_SYS_ENCRYPTION_SETTINGS">ОШИБКА: Невозможно сохранить параметры системного шифрования.</entry>
@@ -1127,7 +1127,7 @@
<entry lang="ru" key="DEVICE_WIPE_PAGE_INFO">\n\nПримечание: если прервать очистку, то затем при возобновлении её придётся выполнить с самого начала.</entry>
<entry lang="ru" key="CONFIRM_WIPE_ABORT">Отменить очистку (затирание данных)?</entry>
<entry lang="ru" key="CONFIRM_WIPE_START">ВНИМАНИЕ: Содержимое всего выбранного раздела/устройства будет уничтожено.</entry>
- <entry lang="ru" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">Всё содержимое раздела, где находится исходная система, будет уничтожено.\n\nПримечание: всё содержимое раздела, подлежащего стиранию, было скопировано в этот скрытый системный раздел.</entry>
+ <entry lang="ru" key="CONFIRM_WIPE_START_DECOY_SYS_PARTITION">Всё содержимое раздела, где находится исходная система, будет уничтожено.\n\n(Всё содержимое стираемого раздела было скопировано в этот скрытый системный раздел.)</entry>
<entry lang="ru" key="WIPE_MODE_WARN">ВНИМАНИЕ: Если выбрать, например, трёхпроходную очистку, время шифрования диска/раздела увеличится в четыре раза. Аналогично, при выборе 35-проходного режима время увеличится в 36 раз (и может составить несколько недель).\n\nУчтите, однако, что очистка НЕ выполняется после того, как раздел/диск зашифрован. Когда раздел/диск полностью зашифрован, никакие незашифрованные данные на него не записываются. Любые записываемые на него данные сначала шифруются на лету в памяти и только затем сохраняются (в зашифрованном виде) на диске (т.е. на производительности это НЕ отражается).\n\nВы действительно хотите использовать режим очистки?</entry>
<entry lang="ru" key="WIPE_MODE_NONE">Нет (самый быстрый)</entry>
<entry lang="ru" key="WIPE_MODE_1_RAND">1 проход (случайные данные)</entry>
@@ -1140,18 +1140,18 @@
<entry lang="ru" key="HIDDEN_OS_MULTI_BOOT">При создании/использовании скрытой операционной системы VeraCrypt поддерживает мультизагрузочные конфигурации только при следующих условиях:\n\n- работающая сейчас ОС должна быть установлена на загрузочном диске, на котором не должно быть других операционных систем;\n\n- операционные системы, установленные на других дисках, не должны использовать загрузчик, находящийся на диске, где установлена текущая ОС.\n\nЭти условия соблюдены?</entry>
<entry lang="ru" key="UNSUPPORTED_HIDDEN_OS_MULTI_BOOT_CFG">VeraCrypt не поддерживает эту мультизагрузочную конфигурацию при создании/использовании скрытой операционной системы.</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_TITLE">Загрузочный диск</entry>
- <entry lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Работающая сейчас операционная система установлена на загрузочном диске?\n\nПримечание: иногда Windows бывает установлена не на том диске, с которого она грузится (где находится загрузочный раздел). Если это ваш случай, то выберите 'Нет'.</entry>
+ <entry lang="ru" key="SYSENC_MULTI_BOOT_SYS_EQ_BOOT_HELP">Работающая сейчас операционная система установлена на загрузочном диске?\n\nПримечание: иногда Windows бывает установлена не на том диске, с которого она загружается (где находится загрузочный раздел). Если это ваш случай, то выберите 'Нет'.</entry>
<entry lang="ru" key="SYS_PARTITION_MUST_BE_ON_BOOT_DRIVE">В настоящее время VeraCrypt не поддерживает шифрование операционной системы, которая загружается не с того же диска, на котором она установлена.</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_TITLE">Число системных дисков</entry>
- <entry lang="ru" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_HELP">Сколько дисков содержит операционная система?\n\nПримечание: например, если одна операционная система (скажем, Windows, Mac OS X, Linux и т.д.) установлена у вас на первичном диске, а другая на вторичном, выберите '2 или более'.</entry>
+ <entry lang="ru" key="SYSENC_MULTI_BOOT_NBR_SYS_DRIVES_HELP">Сколько дисков содержит операционная система?\n\nНапример, если одна операционная система (скажем, Windows, macOS, Linux и т.д.) установлена на первичном диске, а другая на вторичном, выберите '2 или более'.</entry>
<entry lang="ru" key="WDE_UNSUPPORTED_FOR_MULTIPLE_SYSTEMS_ON_ONE_DRIVE">В настоящее время VeraCrypt не поддерживает шифрование всего диска, который содержит несколько операционных систем.\n\nВозможные варианты:\n\n- Можно зашифровать одну из систем, если вернуться назад и выбрать шифрование только одного системного раздела (а не всего системного диска).\n\n- Можно зашифровать весь диск, если переместить некоторые системы на другие диски, оставив только одну ОС на диске, который хотите зашифровать.</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_TITLE">Несколько систем на одном диске</entry>
- <entry lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">На диске, где установлена текущая ОС, есть другие операционные системы?\n\nПримечание: например, если текущая ОС установлена на диске #0, содержащем несколько разделов, и если на одном из разделов находится Windows, а на другом - ещё одна ОС (Windows, Mac OS X, Linux и т.д.), то выберите 'Да'.</entry>
+ <entry lang="ru" key="SYSENC_MULTI_BOOT_ADJACENT_SYS_HELP">На диске, где установлена текущая ОС, есть другие операционные системы?\n\nНапример, если текущая ОС установлена на диске #0, содержащем несколько разделов, и если на одном из разделов находится Windows, а на другом - ещё одна ОС (Windows, macOS, Linux и т.д.), то выберите 'Да'.</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_TITLE">Не-Windows загрузчик</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_NONWIN_BOOT_LOADER_HELP">В главной загрузочной записи (MBR) установлен не относящийся к Windows загрузчик (или загрузочный менеджер)?\n\nНапример, если в первом цилиндре загрузочного диска содержится GRUB, LILO, XOSL или какой-то другой не относящийся к Windows загрузочный менеджер, выберите 'Да'.</entry>
<entry lang="ru" key="SYSENC_MULTI_BOOT_OUTCOME_TITLE">Мультизагрузка</entry>
<entry lang="ru" key="CUSTOM_BOOT_MANAGERS_IN_MBR_UNSUPPORTED">В настоящее время VeraCrypt не поддерживает мультизагрузочные конфигурации, где в главной загрузочной записи (MBR) установлен не относящийся к Windows загрузчик.\n\nВозможные варианты:\n\n- Если вы используете загрузочный менеджер для загрузки Windows и Linux, перенесите его (обычно это GRUB) из MBR в раздел. Затем запустите снова этот мастер и зашифруйте системный раздел/диск. Обратите внимание, что загрузчик VeraCrypt станет основным загрузочным менеджером и позволит запускать исходный загрузочный менеджер (скажем, GRUB) как вторичный (нажатием Esc при выводе экрана загрузчика VeraCrypt) и, таким образом, запускать Linux.</entry>
- <entry lang="ru" key="WINDOWS_BOOT_LOADER_HINTS">Если текущая ОС установлена на загрузочном разделе, то после его шифрования потребуется ввести правильный пароль, даже для запуска незашифрованных Windows-систем (так как они будут совместно использовать один и тот же зашифрованный загрузчик Windows).\n\nНапротив, если текущая ОС не установлена на загрузочном разделе (или загрузчик Windows не используется никакими иными системами), тогда после шифрования этой системы не надо вводить пароль для запуска других незашифрованных систем, достаточно будет просто нажать Esc (в случае нескольких незашифрованных систем также потребуется выбрать нужную ОС в меню загрузчика VeraCrypt).\n\nПримечание: как правило, в загрузочном разделе бывает установлена наиболее ранняя версия Windows.</entry>
+ <entry lang="ru" key="WINDOWS_BOOT_LOADER_HINTS">Если текущая ОС установлена на загрузочном разделе, то после его шифрования потребуется ввести правильный пароль, даже для запуска незашифрованных Windows-систем (так как они будут совместно использовать один и тот же зашифрованный загрузчик Windows).\n\nНапротив, если текущая ОС не установлена на загрузочном разделе (или загрузчик Windows не используется никакими иными системами), тогда после шифрования этой системы не надо вводить пароль для запуска других незашифрованных систем, достаточно будет просто нажать Esc (в случае нескольких незашифрованных систем также потребуется выбрать нужную ОС в меню загрузчика VeraCrypt).\n\n(Как правило, в загрузочном разделе бывает установлена наиболее ранняя версия Windows.)</entry>
<entry lang="ru" key="SYSENC_PRE_DRIVE_ANALYSIS_TITLE">Шифрование защищённой области пользователя (HPA)</entry>
<entry lang="ru" key="SYSENC_PRE_DRIVE_ANALYSIS_HELP">В конце многих дисков имеется область, в обычных условиях скрытая от операционной системы (её обычно называют защищённой областью пользователя - Host Protected Area). Однако некоторые программы способны читать и записывать данные в таких областях.\n\nВНИМАНИЕ: Производители компьютеров (в частности, ноутбуков) могут использовать области HPA для хранения в них утилит и данных для RAID, восстановления системы, её настройки, диагностики и пр. Если такие утилиты или данные должны быть доступны перед загрузкой системы, скрытую область НЕ следует шифровать (выберите 'Нет').\n\nХотите, чтобы VeraCrypt обнаружила и зашифровала скрытую область (если таковая имеется) в конце системного диска?</entry>
<entry lang="ru" key="SYSENC_TYPE_PAGE_TITLE">Тип шифрования системы</entry>
@@ -1161,9 +1161,9 @@
<entry lang="ru" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_TITLE">Скрытая операционная система</entry>
<entry lang="ru" key="SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_HELP">Сейчас вы создадите два тома (внешний и скрытый) в разделе, следующим за системным. Скрытый том будет содержать скрытую ОС, создаваемую копированием в него содержимого системного раздела (где установлена работающая сейчас ОС). Во внешний том нужно скопировать осмысленно выглядящие файлы, которые на самом деле вам прятать НЕ требуется, чтобы обмануть того, кто вынудит вас сообщить пароль от скрытого системного раздела (вы сообщите пароль для внешнего тома внутри скрытого системного раздела, наличие же скрытой ОС останется в тайне).\n\nА на системный раздел с работающей сейчас ОС вы установите новую, так называемую 'обманную' ОС и зашифруете её. В ней не должно быть конфиденциальных файлов, она нужна, если вас вынудят сообщить дозагрузочный пароль. В итоге будет три пароля. Два из них (для обманной ОС и внешнего тома) можно сообщать неприятелю. Третий пароль - для запуска скрытой ОС.</entry>
<entry lang="ru" key="SYSENC_DRIVE_ANALYSIS_TITLE">Поиск скрытых секторов</entry>
- <entry lang="ru" key="SYSENC_DRIVE_ANALYSIS_INFO">Подождите, идёт поиск скрытых секторов в конце системного диска. Это может занять продолжительное время.\n\nПримечание: в очень редких случаях на некоторых ПК во время этой операции система может перестать реагировать. Если это произошло, перезагрузите ПК, запустите VeraCrypt, повторите предыдущие этапы, но пропустите данный этап поиска. Примечание: эта проблема вызвана не ошибкой в VeraCrypt.</entry>
+ <entry lang="ru" key="SYSENC_DRIVE_ANALYSIS_INFO">Подождите, идёт поиск скрытых секторов в конце системного диска. Это может занять продолжительное время.\n\nПримечание: в очень редких случаях на некоторых ПК во время этой операции система может перестать реагировать. Если это произошло, перезагрузите ПК, запустите VeraCrypt, повторите предыдущие этапы, но пропустите данный этап поиска. Эта проблема вызвана не ошибкой в VeraCrypt.</entry>
<entry lang="ru" key="SYS_ENCRYPTION_SPAN_TITLE">Область шифрования</entry>
- <entry lang="ru" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Выберите эту опцию, если хотите зашифровать весь диск, где установлена работающая сейчас Windows. Будет зашифрован весь диск, включая все его разделы, кроме первой дорожки, где находится загрузчик VeraCrypt. Для доступа к установленной на этом диске ОС или файлам на нём потребуется вводить пароль перед каждой загрузкой системы. Эту опцию нельзя применять для шифрования второго или внешнего диска, если Windows на нём не установлена или загружается не с него.</entry>
+ <entry lang="ru" key="SYS_ENCRYPTION_SPAN_WHOLE_SYS_DRIVE_HELP">Выберите эту опцию, чтобы зашифровать весь диск, где установлена работающая сейчас Windows. Будет зашифрован весь диск, включая все его разделы, кроме первой дорожки, где находится загрузчик VeraCrypt. Для доступа к установленной на этом диске ОС или файлам на нём потребуется вводить пароль перед каждой загрузкой системы. Эту опцию нельзя применять для шифрования второго или внешнего диска, если Windows на нём не установлена или загружается не с него.</entry>
<entry lang="ru" key="COLLECTING_RANDOM_DATA_TITLE">Сбор случайных данных</entry>
<entry lang="ru" key="KEYS_GEN_TITLE">Сгенерированные ключи</entry>
<entry lang="ru" key="CD_BURNER_NOT_PRESENT">Не удалось найти подключённый к ПК пишущий CD/DVD-накопитель, необходимый для записи загрузочного диска восстановления (VeraCrypt Rescue Disk) с копией ключей шифрования, загрузчика VeraCrypt, исходного системного загрузчика и др.\n\nНастоятельно рекомендуется записать диск восстановления VeraCrypt.</entry>
@@ -1185,7 +1185,7 @@
<entry lang="ru" key="SYS_ENCRYPTION_PRETEST_INFO2_PORTION_4">Внимание: предыдущие шаги НЕ работают, если системный раздел/диск зашифрован (без правильного пароля никто не может запустить Windows или получить доступ к зашифрованным данным, даже если выполнит предыдущие этапы).\n\n\nЕсли вы потеряете диск восстановления, а его найдёт неприятель, то он НЕ сможет с помощью этого диска расшифровать системный раздел или диск, если не знает правильного пароля.</entry>
<entry lang="ru" key="SYS_ENCRYPTION_PRETEST_RESULT_TITLE">Пре-тест выполнен</entry>
<entry lang="ru" key="SYS_ENCRYPTION_PRETEST_RESULT_INFO">Пре-тест успешно завершён.\n\nВНИМАНИЕ: Если во время шифрования произойдёт сбой питания или из-за программной/аппаратной ошибки зависнет операционная система в то время, как VeraCrypt шифрует имеющиеся данные 'на месте', некоторые из них окажутся повреждёнными или утерянными. Поэтому прежде чем начать шифрование, убедитесь, что сделали резервную копию файлов, которые собираетесь зашифровать. Если нет, то сделайте это сейчас (нажмите 'Отложить', скопируйте файлы, затем в любое время снова запустите VeraCrypt, выберите 'Система' &gt; 'Возобновить прерванный процесс', чтобы начать шифрование).\n\nКогда будете готовы, нажмите 'Шифрация', чтобы приступить к шифрованию.</entry>
- <entry lang="ru" key="SYSENC_ENCRYPTION_PAGE_INFO">Вы можете в любой момент нажать 'Пауза' или 'Отложить', прервав (де)шифрование, выйти из этого мастера, перезагрузить или выключить ПК, а затем продолжить процесс (он возобновится с той точки, где был приостановлен). Для предотвращения замедления, когда система или приложения выполняют чтение или запись на системном диске, VeraCrypt ждёт, пока данные будут записаны или прочтены (см. Статус выше), а затем продолжает (де)шифрование.</entry>
+ <entry lang="ru" key="SYSENC_ENCRYPTION_PAGE_INFO">Вы можете в любой момент нажать 'Пауза' или 'Отложить', прервав (де)шифрование, выйти из этого мастера, перезагрузить или выключить ПК, а затем продолжить процесс (он возобновится с той точки, где был приостановлен). Для предотвращения замедления, когда система или приложения выполняют чтение или запись на системном диске, VeraCrypt ждёт, пока данные будут записаны или прочтены (см. статус выше), а затем продолжает (де)шифрование.</entry>
<entry lang="ru" key="NONSYS_INPLACE_ENC_ENCRYPTION_PAGE_INFO">\n\nВы можете в любой момент нажать 'Пауза' или 'Отложить', прервав шифрование, выйти из этого мастера, перезагрузить или выключить ПК, а затем продолжить процесс (он возобновится с той точки, где был приостановлен). Учтите, что том нельзя смонтировать, пока он не будет полностью зашифрован.</entry>
<entry lang="ru" key="NONSYS_INPLACE_DEC_DECRYPTION_PAGE_INFO">\n\nВы можете в любой момент нажать 'Пауза' или 'Отложить', прервав дешифрование, выйти из этого мастера, перезагрузить или выключить ПК, а затем продолжить процесс (он возобновится с той точки, где был приостановлен). Учтите, что том нельзя смонтировать, пока он не будет полностью расшифрован.</entry>
<entry lang="ru" key="SYSENC_HIDDEN_OS_INITIAL_INFO_TITLE">Скрытая система запущена</entry>
@@ -1199,7 +1199,7 @@
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_1">\nПО ВОЗМОЖНОСТИ РАСПЕЧАТАЙТЕ ЭТОТ ТЕКСТ (нажмите 'Печать' ниже).\n\n\nКак и когда использовать диск восстановления VeraCrypt (после шифрования) -----------------------------------------------------------------------------------\n\n</entry>
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_2">I. Как загрузиться с диска восстановления VeraCrypt\n\nЧтобы воспользоваться диском восстановления VeraCrypt (Rescue Disk), вставьте его в CD/DVD-накопитель и перезагрузите ПК. Если экран загрузочного диска VeraCrypt не появляется (или если на экране нет пункта 'Repair Options' в группе 'Keyboard Controls'), вероятно, в BIOS компьютера настроена загрузка сначала с жёстких дисков, и лишь затем с CD/DVD-накопителей. Если это так, перезагрузите ПК, нажмите F2 или Delete (как только увидите начальный экран BIOS) и дождитесь появления экрана настроек BIOS. Если он не появился, снова перезагрузите ПК (нажмите кнопку Reset) и сразу же начинайте постоянно нажимать F2 или Delete. Когда появится экран настроек BIOS, сконфигурируйте ПК так, чтобы он сначала загружался с CD/DVD-накопителя (о том, как это сделать, см. в документации на вашу системную плату или BIOS). Затем перезагрузите компьютер. Теперь экран диска восстановления VeraCrypt должен появиться. Примечание: на экране диска восстановления VeraCrypt можно выбрать 'Repair Options', нажав F8 на клавиатуре.\n\n\n</entry>
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_3">II. Когда и как использовать диск восстановления VeraCrypt (после шифрования)\n\n</entry>
- <entry lang="ru" key="RESCUE_DISK_HELP_PORTION_4">1) Если после старта ПК экран загрузчика VeraCrypt не появляется (или не загружается Windows), возможно, повреждён загрузчик VeraCrypt. Диск восстановления VeraCrypt позволяет восстановить его и, таким образом, вновь получить доступ к зашифрованной системе и данным (учтите, что всё равно нужно будет ввести правильный пароль). На экране Rescue Disk выберите 'Repair Options' &gt; 'Restore VeraCrypt Boot Loader'. Затем нажмите 'Y', чтобы подтвердить действие, выньте диск восстановления из CD/DVD-накопителя и перезагрузите компьютер.\n\n</entry>
+ <entry lang="ru" key="RESCUE_DISK_HELP_PORTION_4">1) Если после старта ПК экран загрузчика VeraCrypt не появляется (или не загружается Windows), возможно, повреждён загрузчик VeraCrypt. Диск восстановления VeraCrypt позволяет восстановить его и, таким образом, вновь получить доступ к зашифрованной системе и данным (однако всё равно нужно будет ввести правильный пароль). На экране Rescue Disk выберите 'Repair Options' &gt; 'Restore VeraCrypt Boot Loader'. Затем нажмите 'Y', чтобы подтвердить действие, выньте диск восстановления из CD/DVD-накопителя и перезагрузите компьютер.\n\n</entry>
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_5">2) Если вы вводите правильный пароль, а VeraCrypt говорит, что он неверный, возможно, повреждены мастер-ключ или другие важные данные. Диск восстановления VeraCrypt позволяет восстановить их и, таким образом, вновь получить доступ к зашифрованной системе и данным (однако всё равно нужно будет ввести правильный пароль). На экране Rescue Disk выберите 'Repair Options' &gt; 'Restore key data'. Затем введите свой пароль, нажмите 'Y' для подтверждения действия, выньте диск восстановления из CD/DVD-накопителя и перезагрузите компьютер.\n\n</entry>
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_6">3) Если загрузчик VeraCrypt повреждён или инфицирован вирусом, вы можете избежать его выполнения, загрузившись непосредственно с диска восстановления VeraCrypt. Вставьте диск восстановления в CD/DVD-накопитель и затем введите свой пароль на экране Rescue Disk.\n\n</entry>
<entry lang="ru" key="RESCUE_DISK_HELP_PORTION_7">4) Если Windows повреждена и не запускается, то с помощью диска восстановления VeraCrypt можно перманентно расшифровать раздел/диск до запуска Windows. На экране Rescue Disk выберите 'Repair Options' &gt; 'Permanently decrypt system partition/drive'. Затем введите правильный пароль и дождитесь завершения дешифрования. После этого вы можете, например, загрузиться с установочного CD/DVD-диска Windows и восстановить Windows.\n\n</entry>
@@ -1225,18 +1225,18 @@
<entry lang="ru" key="DECOY_OS_INSTRUCTIONS_PORTION_18">ВНИМАНИЕ: ЕСЛИ ВЫ НЕ ЗАЩИТИЛИ СКРЫТЫЙ ТОМ (см. главу 'Защита скрытых томов от повреждений' в Руководстве пользователя VeraCrypt), НЕ ВЫПОЛНЯЙТЕ ЗАПИСЬ ВО ВНЕШНИЙ ТОМ (обратите внимание, что обманная ОС установлена НЕ во внешнем томе). ИНАЧЕ ВЫ МОЖЕТЕ ПЕРЕЗАПИСАТЬ И ПОВРЕДИТЬ СКРЫТЫЙ ТОМ (И СКРЫТУЮ ОС ВНУТРИ НЕГО)!</entry>
<entry lang="ru" key="HIDDEN_OS_CREATION_PREINFO_TITLE">Клонирование ОС</entry>
<entry lang="ru" key="HIDDEN_OS_CREATION_PREINFO_HELP">На следующих этапах VeraCrypt создаст скрытую ОС, скопировав содержимое системного раздела в скрытый том (копируемые данные шифруются 'на лету' с ключом, отличным от используемого для обманной ОС).\n\nУчтите, что процесс выполняется на дозагрузочной стадии (до запуска Windows) и может занять много времени (несколько часов или даже дней, в зависимости от размера системного раздела и быстродействия ПК).\n\nВы сможете прервать этот процесс, выключить ПК, запустить ОС и затем возобновить его. Однако в случае прерывания, копирование системы придётся начать сначала (так как при клонировании содержимое системного раздела не должно изменяться).</entry>
- <entry lang="ru" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Вы хотите отменить весь процесс создания скрытой операционной системы?\n\nПри отмене вы НЕ сможете затем продолжить процесс.</entry>
- <entry lang="ru" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Вы хотите отменить пре-тест шифрования системы?</entry>
+ <entry lang="ru" key="CONFIRM_CANCEL_HIDDEN_OS_CREATION">Отменить весь процесс создания скрытой операционной системы?\n\nПри отмене вы НЕ сможете затем продолжить процесс.</entry>
+ <entry lang="ru" key="CONFIRM_CANCEL_SYS_ENC_PRETEST">Отменить пре-тест шифрования системы?</entry>
<entry lang="ru" key="BOOT_PRETEST_FAILED_RETRY">Пре-тест шифрования системы не пройден. Повторить попытку?\n\nПри выборе 'Нет' компонент дозагрузочной аутентификации будет удалён.\n\nПримечания:\n\n- Если загрузчик VeraCrypt не просил ввести пароль перед стартом Windows, возможно, ОС загружается не с того диска, на котором она установлена. Такая конфигурация не поддерживается.\n\n- Если используется отличный от AES алгоритм шифрования, и пре-тест выдаёт ошибку (и вы ввели пароль), причина может быть в некорректном драйвере. Выберите 'Нет' и попробуйте снова зашифровать системный раздел/диск, но используя AES (у этого алгоритма наименьшие требования к памяти).\n\n- Другие причины и решения см. здесь: https://www.veracrypt.fr/en/Troubleshooting.html</entry>
<entry lang="ru" key="SYS_DRIVE_NOT_ENCRYPTED">Похоже, системный раздел/диск не зашифрован (ни частично, ни полностью).</entry>
<entry lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED">Системный раздел/диск зашифрован (частично или полностью).\n\nПрежде чем продолжить, полностью расшифруйте системный раздел/диск. Чтобы это сделать, выберите в главном окне VeraCrypt меню 'Система' &gt; 'Перманентно расшифровать системный раздел/диск'.</entry>
<entry lang="ru" key="SETUP_FAILED_BOOT_DRIVE_ENCRYPTED_DOWNGRADE">Если системный раздел/диск зашифрован (частично или полностью), нельзя устанавливать VeraCrypt более старой версии (но можно более новую или ту же версию).</entry>
- <entry lang="ru" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Сейчас выполняется (де)шифрование или иная модификация системного раздела/диска. Прежде чем продолжить, прервите процесс шифрования/дешифрования/модификации (или дождитесь его окончания).</entry>
+ <entry lang="ru" key="SYS_ENCRYPTION_OR_DECRYPTION_IN_PROGRESS">Сейчас выполняется (де)шифрование или другая модификация системного раздела/диска. Прежде чем продолжить, прервите процесс шифрования/дешифрования/модификации (или дождитесь его окончания).</entry>
<entry lang="ru" key="SYSTEM_ENCRYPTION_IN_PROGRESS_ELSEWHERE">В системе уже запущена копия мастера создания томов VeraCrypt, она выполняет или подготавливает (де)шифрование системного раздела/диска. Прежде чем продолжить, дождитесь завершения работы мастера или закройте его. Если закрыть окно мастера не удаётся, перезагрузите ПК и продолжите.</entry>
<entry lang="ru" key="SYSTEM_ENCRYPTION_NOT_COMPLETED">(Де)шифрование системного раздела/диска не завершено. Прежде чем продолжить, дождитесь завершения этого процесса.</entry>
<entry lang="ru" key="ERR_ENCRYPTION_NOT_COMPLETED">ОШИБКА: Шифрование раздела/диска не было завершено. Сначала его нужно завершить.</entry>
<entry lang="ru" key="ERR_NONSYS_INPLACE_ENC_INCOMPLETE">ОШИБКА: Шифрование раздела/тома не было завершено. Сначала его нужно завершить.\n\nПримечание: чтобы возобновить процесс, выберите команду 'Тома' &gt; 'Продолжить прерванный процесс' в меню главного окна VeraCrypt.</entry>
- <entry lang="ru" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Пароль правильный. Программа VeraCrypt успешно расшифровала заголовок тома и обнаружила, что это скрытый системный том. Однако изменить заголовок скрытого системного тома таким способом нельзя.\n\nЧтобы изменить пароль скрытого системного тома, загрузите ОС, расположенную в скрытом томе, после чего в главном окне VeraCrypt выберите в меню 'Система' &gt; 'Изменить пароль'.\n\nЧтобы установить алгоритм деривации ключа заголовка, загрузите скрытую ОС и выберите 'Система' &gt; 'Установить алгоритм деривации ключа заголовка'.</entry>
+ <entry lang="ru" key="ERR_SYS_HIDVOL_HEAD_REENC_MODE_WRONG">Пароль правильный. Программа VeraCrypt успешно расшифровала заголовок тома и обнаружила, что это скрытый системный том. Однако изменить заголовок скрытого системного тома таким способом нельзя.\n\nЧтобы изменить пароль скрытого системного тома, загрузите ОС, расположенную в скрытом томе, после чего в главном окне VeraCrypt выберите в меню 'Система' &gt; 'Изменить пароль'.\n\nЧтобы установить алгоритм формирования ключа заголовка, загрузите скрытую ОС и выберите 'Система' &gt; 'Установить алгоритм формирования ключа заголовка'.</entry>
<entry lang="ru" key="CANNOT_DECRYPT_HIDDEN_OS">VeraCrypt не поддерживает дешифрование скрытого системного раздела 'на месте'.\n\nПримечание: если вы хотите расшифровать обманный системный раздел, загрузите обманную ОС, после чего выберите в главном окне VeraCrypt меню 'Система' &gt; 'Перманентно расшифровать системный раздел/диск'.</entry>
<entry lang="ru" key="ERR_PARAMETER_INCORRECT">ОШИБКА: Неверный/недопустимый параметр.</entry>
<entry lang="ru" key="DEVICE_SELECTED_IN_NON_DEVICE_MODE">Вы выбрали раздел или устройство, но выбранный режим мастера подходит только для файловых контейнеров.\n\nХотите изменить режим мастера?</entry>
@@ -1258,44 +1258,44 @@
<entry lang="ru" key="HIDDEN_SECTOR_DETECTION_FAILED_PREVIOUSLY">ВНИМАНИЕ: Похоже, программа VeraCrypt уже пыталась обнаружить скрытые сектора на этом системном диске. Если во время предыдущей попытки обнаружения вы столкнулись с какими-то проблемами, то можете сейчас их избежать, пропустив поиск скрытых секторов. Обратите внимание, что в этом случае VeraCrypt будет использовать размер, сообщаемый операционной системой (он может быть меньше действительного размера диска).\n\nЭто происходит не из-за какой-либо ошибки в VeraCrypt.</entry>
<entry lang="ru" key="SKIP_HIDDEN_SECTOR_DETECTION">Не выполнять поиск скрытых секторов (использовать размер, сообщённый ОС)</entry>
<entry lang="ru" key="RETRY_HIDDEN_SECTOR_DETECTION">Попробовать найти скрытые сектора ещё раз</entry>
- <entry lang="ru" key="ENABLE_BAD_SECTOR_ZEROING">ОШИБКА: Не удаётся прочитать сектора на диске (вероятно, из-за физического дефекта).\n\nШифрование 'на месте' может быть продолжено, только когда секторы снова будут доступны для чтения. VeraCrypt может попытаться сделать эти сектора читабельными, записав в них нули (впоследствии такие содержащие нули блоки будут зашифрованы). Данные в нечитаемых секторах при этом будут утеряны. Если вы хотите этого избежать, попробуйте хотя бы частично восстановить повреждённые данные с помощью соответствующих программ сторонних фирм.\n\nПримечание: если секторы повреждены физически (в отличие от простой порчи данных и ошибок контрольных сумм), большинство устройств хранения информации внутренне перераспределяют секторы при попытке записать в них данные (поэтому имеющиеся данные в повреждённых секторах могут оставаться на диске незашифрованными).\n\nЗаполнить нулями нечитаемые секторы?</entry>
+ <entry lang="ru" key="ENABLE_BAD_SECTOR_ZEROING">ОШИБКА: Не удаётся прочитать сектора на диске (вероятно, из-за физического дефекта).\n\nШифрование 'на месте' может быть продолжено, только когда сектора снова будут доступны для чтения. VeraCrypt может попытаться сделать эти сектора читабельными, записав в них нули (впоследствии такие содержащие нули блоки будут зашифрованы). Данные в нечитаемых секторах при этом будут утеряны. Если вы хотите этого избежать, попробуйте хотя бы частично восстановить повреждённые данные с помощью соответствующих программ сторонних фирм.\n\nПримечание: если сектора повреждены физически (в отличие от простой порчи данных и ошибок контрольных сумм), большинство устройств хранения информации внутренне перераспределяют сектора при попытке записать в них данные (поэтому имеющиеся данные в повреждённых секторах могут оставаться на диске незашифрованными).\n\nЗаполнить нулями нечитаемые сектора?</entry>
<entry lang="ru" key="DISCARD_UNREADABLE_ENCRYPTED_SECTORS">ОШИБКА: Невозможно прочитать содержимое одного или нескольких секторов диска (вероятно, из-за физического дефекта).\n\nЧтобы продолжить шифрование, VeraCrypt отбросит содержимое нечитаемых секторов (оно будет заменено псевдослучайными данными). Прежде чем продолжить, вы можете попытаться хотя бы частично восстановить повреждённые данные с помощью соответствующих программ сторонних фирм.\n\nОтбросить данные в нечитаемых секторах?</entry>
<entry lang="ru" key="ZEROED_BAD_SECTOR_COUNT">Примечание: содержимое %I64d нечитаемых секторов (%s) заменено зашифрованными блоками с обычным заполненным нулями текстом.</entry>
<entry lang="ru" key="SKIPPED_BAD_SECTOR_COUNT">Примечание: содержимое %I64d нечитаемых секторов (%s) заменено псевдослучайными данными.</entry>
<entry lang="ru" key="ENTER_TOKEN_PASSWORD">Введите пароль/PIN для токена '%s':</entry>
- <entry lang="ru" key="PKCS11_LIB_LOCATION_HELP">Чтобы обеспечить VeraCrypt доступ к токену безопасности или смарт-карте,\nсначала нужно установить программную библиотеку PKCS #11 для токена\nили смарт-карты. Эта библиотека может поставляться вместе с устройством,\nлибо она имеется на сайте поставщика или сторонней фирмы.\nУстановив библиотеку, вы можете выбрать её вручную, нажав 'Библиотека',\nлибо позволить VeraCrypt найти её автоматически, нажав 'Автоопределение библиотеки' (поиск выполняется только в системной папке Windows).</entry>
+ <entry lang="ru" key="PKCS11_LIB_LOCATION_HELP">Чтобы обеспечить VeraCrypt доступ к токену безопасности\nили смарт-карте, сначала нужно установить программную библиотеку PKCS #11 для токена\nили смарт-карты. Эта библиотека может поставляться вместе с устройством,\nлибо она имеется на сайте поставщика или сторонней фирмы.\nУстановив библиотеку, вы можете выбрать её вручную, нажав 'Библиотека',\nлибо позволить VeraCrypt найти её автоматически, нажав 'Автоопределение библиотеки' (поиск выполняется только в системной папке Windows).</entry>
<entry lang="ru" key="SELECT_PKCS11_MODULE_HELP">ПРИМЕЧАНИЕ: Имя и расположение файла библиотеки PKCS #11\nдля токена или смарт-карты см. в документации к токену,\nсмарт-карте или ПО сторонних фирм.\n\nНажмите OK, чтобы выбрать путь и имя файла.</entry>
- <entry lang="ru" key="NO_PKCS11_MODULE_SPECIFIED">Чтобы обеспечить VeraCrypt доступ к токену безопасности или\nсмарт-карте, сначала нужно выбрать программную библиотеку\nPKCS #11 для токена/карты.\nДля этого выберите в меню 'Настройки' &gt; 'Токены безопасности'.</entry>
+ <entry lang="ru" key="NO_PKCS11_MODULE_SPECIFIED">Чтобы обеспечить VeraCrypt доступ к токену безопасности\nили смарт-карте, сначала нужно выбрать программную библиотеку\nPKCS #11 для токена/карты.\nДля этого выберите в меню 'Настройки' &gt; 'Токены безопасности'.</entry>
<entry lang="ru" key="PKCS11_MODULE_INIT_FAILED">Ошибка инициализации библиотеки PKCS #11 для токена безопасности.\n\nУбедитесь, что указанные путь и имя файла действительно ссылаются на библиотеку PKCS #11. Чтобы указать путь и имя библиотеки PKCS #11, выберите в меню 'Настройки' &gt; 'Токены безопасности'.</entry>
<entry lang="ru" key="PKCS11_MODULE_AUTO_DETECTION_FAILED">В системной папке Windows библиотека PKCS #11 не обнаружена.\n\nПроверьте, установлена ли библиотека PKCS #11 для вашего токена безопасности (или смарт-карты).\nЭта библиотека может поставляться вместе с токеном/картой или же доступна на сайте производителя/сторонней фирмы.\nЕсли библиотека установлена в папке, отличной от системной папки Windows, нажмите кнопку 'Библиотека' и выберите её\n(например, это может быть папка, где установлено ПО для токена/карты).</entry>
<entry lang="ru" key="NO_TOKENS_FOUND">Токен безопасности не обнаружен.\n\nУбедитесь, что токен подключён к ПК, и для него установлен корректный драйвер.</entry>
<entry lang="ru" key="TOKEN_KEYFILE_NOT_FOUND">Ключевой файл токена безопасности не обнаружен.</entry>
<entry lang="ru" key="TOKEN_KEYFILE_ALREADY_EXISTS">Ключевой файл токена безопасности с таким именем уже существует.</entry>
<entry lang="ru" key="CONFIRM_SEL_FILES_DELETE">Удалить выбранные файлы?</entry>
- <entry lang="ru" key="INVALID_TOKEN_KEYFILE_PATH">Путь к ключевому файлу токена безопасности неверен.</entry>
+ <entry lang="ru" key="INVALID_TOKEN_KEYFILE_PATH">Неверный путь к ключевому файлу токена безопасности.</entry>
<entry lang="ru" key="SECURITY_TOKEN_ERROR">Ошибка токена безопасности</entry>
<entry lang="ru" key="CKR_PIN_INCORRECT">Неверный пароль для токена безопасности.</entry>
- <entry lang="ru" key="CKR_DEVICE_MEMORY">В токене безопасности недостаточно памяти для выполнения запрошенной операции.\n\nЕсли вы пытаетесь импортировать ключевой файл, выберите файл меньшего объёма или используйте ключевой файл, сгенерированный VeraCrypt (выберите 'Сервис' &gt; 'Генератор ключевых файлов').</entry>
+ <entry lang="ru" key="CKR_DEVICE_MEMORY">В токене безопасности недостаточно памяти для выполнения запрошенной операции.\n\nЕсли вы пытаетесь импортировать ключевой файл, выберите файл меньшего размера или используйте ключевой файл, сгенерированный VeraCrypt (выберите 'Сервис' &gt; 'Генератор ключевых файлов').</entry>
<entry lang="ru" key="ALL_TOKEN_SESSIONS_CLOSED">Все открытые токен-сессии были закрыты.</entry>
<entry lang="ru" key="SELECT_TOKEN_KEYFILES">Выберите ключевые файлы токена безопасности</entry>
<entry lang="ru" key="TOKEN_SLOT_ID">Слот</entry>
<entry lang="ru" key="TOKEN_NAME">Токен</entry>
<entry lang="ru" key="TOKEN_DATA_OBJECT_LABEL">Имя файла</entry>
- <entry lang="ru" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">ВАЖНО: Учтите, что пароли дозагрузочной аутентификации всегда вводятся при стандартной раскладке американской клавиатуры. Поэтому том, пароль которого набран в любой другой раскладке, может оказаться невозможно смонтировать с помощью кэшированного пароля дозагрузочной аутентификации (это не ошибка VeraCrypt). Чтобы смонтировать такой том с паролем дозагрузочной аутентификации, выполните следующее:\n\n1) Нажмите кнопку 'Файл' или 'Устройство' и выберите том.\n2) В меню 'Тома' выберите 'Изменить пароль тома'.\n3) Введите текущий пароль для этого тома.\n4) Измените раскладку клавиатуры на английскую (США), щёлкнув по значку языка в панели задач Windows.\n5) В окне VeraCrypt в поле для нового пароля введите пароль для дозагрузочной аутентификации.\n6) Введите этот же пароль ещё раз в поле для проверки и нажмите OK.\nВНИМАНИЕ: Помните, что в результате этих действий пароль тома нужно будет всегда вводить в американской раскладке клавиатуры (которая гарантированно включена только на этапе дозагрузочной аутентификации).</entry>
+ <entry lang="ru" key="BOOT_PASSWORD_CACHE_KEYBOARD_WARNING">ВАЖНО: Учтите, что пароли дозагрузочной аутентификации всегда вводятся при стандартной раскладке американской клавиатуры. Поэтому том, пароль которого набран в любой другой раскладке, может оказаться невозможно смонтировать с помощью кэшированного пароля дозагрузочной аутентификации (это не ошибка VeraCrypt). Чтобы смонтировать такой том с паролем дозагрузочной аутентификации, выполните следующее:\n\n1) Нажмите кнопку 'Файл' или 'Устройство' и выберите том.\n2) В меню 'Тома' выберите 'Изменить пароль тома'.\n3) Введите текущий пароль для этого тома.\n4) Измените раскладку клавиатуры на английскую (США), щёлкнув по значку языка в панели задач Windows.\n5) В окне VeraCrypt в поле для нового пароля введите пароль для дозагрузочной аутентификации.\n6) Введите этот же пароль ещё раз в поле для проверки и нажмите OK.\nВНИМАНИЕ: Помните, что в результате пароль тома нужно будет всегда вводить в американской раскладке клавиатуры (которая гарантированно включена только на этапе дозагрузочной аутентификации).</entry>
<entry lang="ru" key="SYS_FAVORITES_KEYBOARD_WARNING">Системные избранные тома будут монтироваться с использованием пароля дозагрузочной аутентификации. Если у какого-то из таких томов другой пароль, этот том смонтирован не будет.</entry>
- <entry lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_INFO">Если вы хотите запретить функции VeraCrypt с обычными томами ('Размонтировать все', авторазмонтирование и др.) для избранных системных томов, нужно включить параметр 'Просматривать/размонтировать системные избранные тома могут лишь администраторы'. Кроме того, при запуске VeraCrypt без прав администратора (что стандартно для Vista и более новых версий Windows) избранные системные тома не будут отображаться в списке букв дисков в главном окне VeraCrypt.</entry>
+ <entry lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_INFO">Чтобы запретить функции VeraCrypt с обычными томами ('Размонтировать все', авторазмонтирование и др.) для избранных системных томов, нужно включить параметр 'Просматривать/размонтировать системные избранные тома могут лишь администраторы'. Кроме того, при запуске VeraCrypt без прав администратора (что стандартно для Vista и более новых версий Windows) избранные системные тома не будут отображаться в списке букв дисков в главном окне VeraCrypt.</entry>
<entry lang="ru" key="SYS_FAVORITES_ADMIN_ONLY_WARNING">ВАЖНО: Если выбрана эта опция, а VeraCrypt не имеет административных привилегий, то смонтированные системные избранные тома НЕ отображаются в окне VeraCrypt и их нельзя размонтировать. Поэтому если, например, нужно размонтировать системный избранный том, сначала щёлкните ПКМ по значку VeraCrypt (в меню 'Пуск') и выберите запуск от имени администратора. То же самое относится к функции 'Размонтировать все', функциям авторазмонтирования, горячим клавишам 'Размонтировать все' и т.д.</entry>
<entry lang="ru" key="SETTING_REQUIRES_REBOOT">ВНИМАНИЕ: Эта установка вступит в силу после перезагрузки операционной системы.</entry>
<entry lang="ru" key="COMMAND_LINE_ERROR">Ошибка обработки командной строки.</entry>
<entry lang="ru" key="RESCUE_DISK">Диск восстановления</entry>
- <entry lang="ru" key="SELECT_FILE_AND_MOUNT">Выбрать &amp;файл и смонтировать...</entry>
- <entry lang="ru" key="SELECT_DEVICE_AND_MOUNT">Выбрать &amp;устройство и смонтировать...</entry>
+ <entry lang="ru" key="SELECT_FILE_AND_MOUNT">Выбрать и смонтировать &amp;файл...</entry>
+ <entry lang="ru" key="SELECT_DEVICE_AND_MOUNT">Выбрать и смонтировать &amp;устройство...</entry>
<entry lang="ru" key="DISABLE_NONADMIN_SYS_FAVORITES_ACCESS">Просматривать/размонтировать системные избранные тома могут лишь администраторы</entry>
<entry lang="ru" key="MOUNT_SYSTEM_FAVORITES_ON_BOOT">Монтировать системные избранные тома при старте Windows (в начальной фазе загрузки)</entry>
<entry lang="ru" key="MOUNTED_VOLUME_DIRTY">ВНИМАНИЕ: Файловая система тома, смонтированного как '%s', не была аккуратно размонтирована и потому может содержать ошибки. Использование повреждённой файловой системы может привести к потере или порче данных.\n\nПримечание: прежде чем физически удалять или выключать устройство (например флэш-накопитель USB или внешний жёсткий диск), на котором находится смонтированный том VeraCrypt, сначала всегда следует размонтировать этот том.\n\n\nХотите, чтобы Windows попыталась найти и исправить ошибки (если они есть) файловой системы?</entry>
- <entry lang="ru" key="SYS_FAVORITE_VOLUME_DIRTY">ВНИМАНИЕ: Один или несколько системных избранных томов не были аккуратно размонтированы и потому могут содержать ошибки файловой системы. См. подробности в системном отчёте о событиях.\n\nИспользование повреждённой файловой системы может привести к потере или порче данных. Проверьте такие тома на ошибки (щёлкните ПКМ на томе и выберите команду починки файловой системы).</entry>
+ <entry lang="ru" key="SYS_FAVORITE_VOLUME_DIRTY">ВНИМАНИЕ: Один или несколько системных избранных томов не были аккуратно размонтированы и потому могут содержать ошибки файловой системы. См. подробности в журнале системных событий.\n\nИспользование повреждённой файловой системы может привести к потере или порче данных. Проверьте такие тома на ошибки (щёлкните ПКМ на томе и выберите команду починки файловой системы).</entry>
<entry lang="ru" key="FILESYS_REPAIR_CONFIRM_BACKUP">ВНИМАНИЕ: Исправление повреждённой файловой системы с помощью утилиты\nMicrosoft 'chkdsk' может привести к потере файлов в повреждённых участках.\nПоэтому рекомендуется сначала скопировать файлы с тома VeraCrypt на другой,\nнеповреждённый том VeraCrypt.\n\nИсправить файловую систему сейчас?</entry>
- <entry lang="ru" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Том '%s' смонтирован как 'только для чтения', поскольку была отвергнута попытка записи.\n\nПроверьте, достаточно ли у вас прав для записи в файловый контейнер (щёлкните ПКМ на контейнере и выберите 'Свойства' &gt; 'Безопасность').\n\nОбратите внимание, что из-за ошибки в Windows это предупреждение может появляться даже при правильной установке прав доступа. Это не ошибка VeraCrypt. Возможное решение - перенос контейнера, например, в вашу папку 'Документы'.\n\nЕсли вы намереваетесь сохранить у этого тома доступ только для чтения, установите на контейнер атрибут 'Только чтение' (щёлкните по контейнеру ПКМ и выберите 'Свойства' &gt; 'Только чтение'), чтобы избежать вывода данного предупреждения.</entry>
+ <entry lang="ru" key="MOUNTED_CONTAINER_FORCED_READ_ONLY">Том '%s' смонтирован как 'только для чтения', поскольку была отвергнута попытка записи.\n\nПроверьте, достаточно ли у вас прав для записи в файловый контейнер (щёлкните ПКМ на контейнере и выберите 'Свойства' &gt; 'Безопасность').\n\nОбратите внимание, что из-за ошибки в Windows это предупреждение может появляться даже при правильной установке прав доступа. Это не ошибка VeraCrypt. Возможное решение - перенос контейнера, например, в вашу папку 'Документы'.\n\nЕсли вы намереваетесь сохранить у этого тома доступ только для чтения, установите на контейнер атрибут 'Только чтение' (щёлкните по контейнеру ПКМ и выберите 'Свойства' &gt; 'Только чтение'), чтобы не было данного предупреждения.</entry>
<entry lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY">Том '%s' смонтирован как 'только для чтения', поскольку была отвергнута попытка записи.\n\nПроверьте, не обращаются ли к разделу/устройству, на котором расположен том, другие приложения (например антивирусное ПО).</entry>
<entry lang="ru" key="MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION">Том '%s' смонтирован как 'только для чтения' - ОС запретила запись на хост-устройство.\n\nОбратите внимание, что некоторые драйверы чипсета (НМС) ошибочно представляют доступные для записи носители как устройства только для чтения. Эта проблема - не по вине VeraCrypt. Её можно решить обновлением или удалением имеющихся в системе драйверов чипсета сторонних производителей (не Microsoft).</entry>
<entry lang="ru" key="LIMIT_ENC_THREAD_POOL_NOTE">Hyper-Threading - это несколько логических ядер на одном физическом ядре. Если Hyper-Threading включена, число выше показывает количество логических процессоров/ядер.</entry>
@@ -1305,8 +1305,8 @@
<entry lang="ru" key="ASK_REMOVE_DEVICE_WRITE_PROTECTION">Хотите попробовать отключить защиту от записи у раздела/диска?</entry>
<entry lang="ru" key="CONFIRM_SETTING_DEGRADES_PERFORMANCE">ВНИМАНИЕ: Этот параметр может ухудшить производительность.\n\nВы действительно хотите его включить?</entry>
<entry lang="ru" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN_TITLE">ВНИМАНИЕ: Том VeraCrypt автоматически размонтирован</entry>
- <entry lang="ru" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Прежде чем физически удалить или отключить устройство, содержащее смонтированный том, сначала следует всегда размонтировать этот том в VeraCrypt.\n\nНеожиданное самопроизвольное размонтирование бывает обычно вызвано периодическими сбоями в кабеле, диске (корпусе) и т.д.</entry>
- <entry lang="ru" key="UNSUPPORTED_TRUECRYPT_FORMAT">Этот том создан с помощью TrueCrypt %x.%x. VeraCrypt поддерживает только тома TrueCrypt, созданные с помощью TrueCrypt версий 6.x/7.x.</entry>
+ <entry lang="ru" key="HOST_DEVICE_REMOVAL_DISMOUNT_WARN">Прежде чем физически удалить или отключить устройство со смонтированным томом, сначала следует всегда размонтировать этот том в VeraCrypt.\n\nНеожиданное самопроизвольное размонтирование обычно бывает вызвано периодическими сбоями в кабеле, диске (корпусе) и т.д.</entry>
+ <entry lang="ru" key="UNSUPPORTED_TRUECRYPT_FORMAT">Этот том создан с помощью TrueCrypt %x.%x. VeraCrypt поддерживает только тома TrueCrypt, созданные с помощью версий 6.x/7.x.</entry>
<entry lang="ru" key="TEST">Тест</entry>
<entry lang="ru" key="KEYFILE">Ключевой файл</entry>
<entry lang="ru" key="VKEY_08">Backspace</entry>
@@ -1378,7 +1378,7 @@
<entry lang="ru" key="IDC_BOOT_LOADER_CACHE_PIM">Кэшировать &amp;PIM вместе с паролем дозагрузочной аутентификации</entry>
<entry lang="ru" key="IDC_PREF_CACHE_PIM">Кэшировать PIM вместе с паролем</entry>
<entry lang="ru" key="IDC_SHOW_DISCONNECTED_NETWORK_DRIVES">Отключённые сетевые диски доступны для монтирования</entry>
- <entry lang="ru" key="PASSWORD_UTF8_TOO_LONG">Слишком длинный пароль: в UTF-8 он превышает 128 байта.</entry>
+ <entry lang="ru" key="PASSWORD_UTF8_TOO_LONG">Слишком длинный пароль: в UTF-8 он превышает 128 байт.</entry>
<entry lang="ru" key="PASSWORD_UTF8_INVALID">Введённый пароль содержит символы Юникода, которые не удалось преобразовать в UTF-8.</entry>
<entry lang="ru" key="INIT_DLL">ОШИБКА: Не удалось загрузить системную библиотеку.</entry>
<entry lang="ru" key="ERR_EXFAT_INVALID_VOLUME_SIZE">Указанный в командной строке размер файла тома несовместим с выбранной файловой системой exFAT.</entry>
@@ -1389,9 +1389,9 @@
<entry lang="ru" key="VOLUME_ID_INVALID">Неверное значение ID тома</entry>
<entry lang="ru" key="VOLUME_ID_NOT_FOUND">В системе нет тома с указанным идентификатором (ID)</entry>
<entry lang="ru" key="IDPM_COPY_VALUE_TO_CLIPBOARD">Скопировать значение в буфер обмена...</entry>
- <entry lang="ru" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Без запроса PIM при дозагрузочной аутентификации (PIM на диске незашифрован)</entry>
+ <entry lang="ru" key="IDC_DISABLE_BOOT_LOADER_PIM_PROMPT">Без запроса PIM при дозагрузочной аутентификации (PIM на диске не зашифрован)</entry>
<entry lang="ru" key="DISABLE_BOOT_LOADER_PIM_PROMPT">ВНИМАНИЕ: Если включить эту опцию, то значение PIM будет храниться на диске в незашифрованном виде.\n\nВы действительно хотите включить эту опцию?</entry>
- <entry lang="ru" key="PIM_TOO_BIG">Максимальное значение PIM (персонального умножителя итераций) равно 2147468.</entry>
+ <entry lang="ru" key="PIM_TOO_BIG">Максимальное значение PIM (персонального умножителя итераций) - 2 147 468.</entry>
<entry lang="ru" key="IDC_SKIP_RESCUE_VERIFICATION">Не проверять VRD</entry>
<entry lang="ru" key="IDC_HIDE_WAITING_DIALOG">Не показывать окно ожидания во время операций</entry>
<entry lang="ru" key="IDC_DISABLE_BOOT_LOADER_HASH_PROMPT">Не спрашивать алгоритм хеширования на экране дозагрузочной аутентификации</entry>
@@ -1421,20 +1421,22 @@
<entry lang="ru" key="IDC_BLOCK_SYSENC_TRIM">Блокировать команду TRIM на системном разделе/диске</entry>
<entry lang="ru" key="WINDOWS_EFI_BOOT_LOADER_MISSING">ОШИБКА: Не удалось обнаружить на диске системный EFI-загрузчик Windows. Операция будет прервана.</entry>
<entry lang="ru" key="SYSENC_EFI_UNSUPPORTED_SECUREBOOT">В настоящий момент невозможно зашифровать систему, если включена безопасная загрузка (Secure Boot) и если свои ключи VeraCrypt не загружены в прошивку машины. Чтобы зашифровать систему, отключите Secure Boot в настройках BIOS.</entry>
- <entry lang="ru" key="PASSWORD_PASTED_TRUNCATED">Скопированный текст усечён до предельно допустимой длины пароля в 128 символа</entry>
- <entry lang="ru" key="PASSWORD_MAXLENGTH_REACHED">Достигнута максимальная длина пароля (128 символа).\nБольше ничего вводить нельзя.</entry>
+ <entry lang="ru" key="PASSWORD_PASTED_TRUNCATED">Скопированный текст усечён до предельно допустимой длины пароля в 128 символов</entry>
+ <entry lang="ru" key="PASSWORD_MAXLENGTH_REACHED">Достигнута максимальная длина пароля (128 символов).\nБольше ничего вводить нельзя.</entry>
<entry lang="ru" key="IDC_SELECT_LANGUAGE_LABEL">Выберите язык, который будет использован при установке:</entry>
<entry lang="ru" key="VOLUME_TOO_LARGE_FOR_HOST">ОШИБКА: Размер файлового контейнера больше, чем свободно места на диске.</entry>
<entry lang="ru" key="IDC_ALLOW_WINDOWS_DEFRAG">Разрешить дефрагментатору Windows обрабатывать несистемный раздел/диск</entry>
- <entry lang="ru" key="CONFIRM_ALLOW_WINDOWS_DEFRAG">ВНИМАНИЕ: Дефрагментация несистемных разделов/дисков может способствовать утечке метаданных об их содержимом или вызывать проблемы со скрытыми томами, которые могут в них находиться.\n\nПродолжить?</entry>
- <entry lang="en" key="VIRTUAL_DEVICE">Virtual Device</entry>
- <entry lang="en" key="MOUNTED_VOLUME_NOT_ASSOCIATED">The selected mounted volume is not associated with its drive letter in Windows and so it can not be opened in Windows Explorer.</entry>
- <entry lang="en" key="IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION">Clear encryption keys from memory if a new device is inserted</entry>
- <entry lang="en" key="CLEAR_KEYS_ON_DEVICE_INSERTION_WARNING">IMPORTANT NOTES:\n - Please keep in mind that this option will not persist after a shutdown/reboot so you will need to select it again next time the machine is started.\n\n - With this option enabled and after a new device is connected, the machine will freeze and it will eventually crash with a BSOD since Windows can not access the encrypted disk after its keys are cleared from memory.\n</entry>
- <entry lang="en" key="STARTING">Starting</entry>
- <entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
- <entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
- <entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="ru" key="CONFIRM_ALLOW_WINDOWS_DEFRAG">ВНИМАНИЕ: Дефрагментация несистемных разделов/дисков может способствовать утечке метаданных об их содержимом или вызывать проблемы со скрытыми томами, которые могут в них находиться.\n\nПродолжить?</entry>
+ <entry lang="ru" key="VIRTUAL_DEVICE">Виртуальное устройство</entry>
+ <entry lang="ru" key="MOUNTED_VOLUME_NOT_ASSOCIATED">Выбранный смонтированный том не ассоциирован с буквой диска в Windows, его нельзя открыть в Проводнике Windows.</entry>
+ <entry lang="ru" key="IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION">Удалять ключи шифрования из ОЗУ при подключении нового устройства</entry>
+ <entry lang="ru" key="CLEAR_KEYS_ON_DEVICE_INSERTION_WARNING">ВАЖНО:\n - Состояние этой опции не сохраняется после выключения/перезагрузки - при следующем запуске ПК её нужно выбрать снова.\n\n - Если эта опция включена, то после подключения нового устройства компьютер перестанет реагировать и в итоге произойдёт сбой с BSOD, так как у Windows нет доступа к зашифрованному диску после удаления из памяти его ключей.\n</entry>
+ <entry lang="ru" key="STARTING">Запуск</entry>
+ <entry lang="ru" key="IDC_ENABLE_CPU_RNG">Аппаратный генератор случайных чисел как дополнительный источник энтропии</entry>
+ <entry lang="ru" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Устаревшая предельная длина пароля (64 символа)</entry>
+ <entry lang="ru" key="IDC_ENABLE_RAM_ENCRYPTION">Шифровать ключи и пароли в ОЗУ</entry>
+ <entry lang="ru" key="IDT_BENCHMARK">Тест:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Только создать виртуальное устройство, не монтируя на букву диска</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.sk.xml b/Translations/Language.sk.xml
index 57e0999..2b505f3 100644
--- a/Translations/Language.sk.xml
+++ b/Translations/Language.sk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="sk" name="Slovenčina" en-name="Slovak" version="0.1.0" translators="Kamil David" />
<font lang="sk" class="normal" size="11" face="default" />
<font lang="sk" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.sl.xml b/Translations/Language.sl.xml
index 5397ca5..fb45dd2 100644
--- a/Translations/Language.sl.xml
+++ b/Translations/Language.sl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="sl" name="Slovenščina" en-name="Slovenian" version="0.1.0" translators="Erik David Salam" />
<font lang="sl" class="normal" size="11" face="default" />
<font lang="sl" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.sv.xml b/Translations/Language.sv.xml
index e4a6b7a..6337112 100644
--- a/Translations/Language.sv.xml
+++ b/Translations/Language.sv.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="sv" name="Svenska" en-name="Swedish" version="1.0.0" translators="Peter Runesson" />
<font lang="sv" class="normal" size="11" face="default" />
<font lang="sv" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="sv" key="IDT_BENCHMARK">Prestandamätning:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.th.xml b/Translations/Language.th.xml
index 9ff3e0b..397fdf2 100644
--- a/Translations/Language.th.xml
+++ b/Translations/Language.th.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="th" name="ภาษาไทย" en-name="Thai" version="0.0.0" translators=""/>
<font lang="th" class="normal" size="11" face="default" />
<font lang="th" class="bold" size="13" face="Arial" />
@@ -1436,6 +1436,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.tr.xml b/Translations/Language.tr.xml
index 999107e..4cf6d47 100644
--- a/Translations/Language.tr.xml
+++ b/Translations/Language.tr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="tr" name="Türkçe" en-name="Turkish" version="0.1.0" translators="Ali İskender Turan, Zeynel Abidin Öztürk" />
<font lang="tr" class="normal" size="11" face="default" />
<font lang="tr" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="tr" key="IDT_BENCHMARK">Hız Testi:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.uk.xml b/Translations/Language.uk.xml
index d62c129..e5ca7be 100644
--- a/Translations/Language.uk.xml
+++ b/Translations/Language.uk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="uk" name="Українська" en-name="Ukrainian" version="1.0.0" translators="Kravchuk Olexandr, Babchuk Volodymyr" />
<font lang="uk" class="normal" size="11" face="default" />
<font lang="uk" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="uk" key="IDT_BENCHMARK">Тест швидкості:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.uz.xml b/Translations/Language.uz.xml
index 7682e5a..38a666d 100644
--- a/Translations/Language.uz.xml
+++ b/Translations/Language.uz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="uz" name="Ўзбекча" en-name="Uzbek (Cyrillic)" version="0.1.0" translators="Abdurauf Azizov, Dmitry Yerokhin" />
<font lang="uz" class="normal" size="11" face="default" />
<font lang="uz" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="uz" key="IDT_BENCHMARK">Тест скорости:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.vi.xml b/Translations/Language.vi.xml
index 45e661d..3f54582 100644
--- a/Translations/Language.vi.xml
+++ b/Translations/Language.vi.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="vi" name="Tiếng Việt" en-name="Vietnamese" version="0.1.0" translators="Nguyễn Kim Huy" />
<font lang="vi" class="normal" size="11" face="default" />
<font lang="vi" class="bold" size="13" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="vi" key="IDT_BENCHMARK">Tiêu chuẩn:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.zh-cn.xml b/Translations/Language.zh-cn.xml
index 9b85b9e..6ae730d 100644
--- a/Translations/Language.zh-cn.xml
+++ b/Translations/Language.zh-cn.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="zh-cn" name="简体中文" en-name="Chinese (Simplified)" version="1.0.0" translators="Barney Li and Zhangjintao" />
<font lang="zh-cn" class="normal" size="11" face="Tahoma" />
<font lang="zh-cn" class="bold" size="14" face="Tahoma" />
@@ -1435,6 +1435,8 @@
<entry lang="zh-cn" key="IDC_ENABLE_CPU_RNG">使用CPU硬件随机数生成器作为额外的熵源</entry>
<entry lang="zh-cn" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">使用旧密码长度 (64个字符)</entry>
<entry lang="zh-cn" key="IDC_ENABLE_RAM_ENCRYPTION">激活存储在RAM中的密钥和密码加密</entry>
+ <entry lang="zh-cn" key="IDT_BENCHMARK">基准测试:</entry>
+ <entry lang="zh-cn" key="IDC_DISABLE_MOUNT_MANAGER">仅创建虚拟设备而不加载在选定的盘符上</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.zh-hk.xml b/Translations/Language.zh-hk.xml
index f0a1305..7d2a203 100644
--- a/Translations/Language.zh-hk.xml
+++ b/Translations/Language.zh-hk.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="zh-hk" name="繁體中文" en-name="Chinese (Hong Kong)" version="0.1.0" translators="PUN Chi Ho" />
<font lang="zh-hk" class="normal" size="11" face="Arial" />
<font lang="zh-hk" class="bold" size="14" face="Arial" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="zh-hk" key="IDT_BENCHMARK">基準測試:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/Translations/Language.zh-tw.xml b/Translations/Language.zh-tw.xml
index 8a93694..3f6fdde 100644
--- a/Translations/Language.zh-tw.xml
+++ b/Translations/Language.zh-tw.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<VeraCrypt>
- <localization prog-version= "1.24-Beta5">
+ <localization prog-version= "1.24-Hotfix1-Preview">
<language langid="zh-tw" name="繁體中文" en-name="Chinese (Taiwan)" version="0.1.0" translators="Barney Li, Simon Ma, ChangMing Hsu" />
<font lang="zh-tw" class="normal" size="12" face="MingLiU" />
<font lang="zh-tw" class="bold" size="15" face="MingLiU" />
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</entry>
</localization>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="VeraCrypt">
diff --git a/doc/chm/VeraCrypt User Guide.chm b/doc/chm/VeraCrypt User Guide.chm
index 5d28aa8..0559053 100644
--- a/doc/chm/VeraCrypt User Guide.chm
+++ b/doc/chm/VeraCrypt User Guide.chm
Binary files differ
diff --git a/doc/chm/VeraCrypt.hhp b/doc/chm/VeraCrypt.hhp
index 1d8985f..c6c7f5d 100644
--- a/doc/chm/VeraCrypt.hhp
+++ b/doc/chm/VeraCrypt.hhp
@@ -62,6 +62,7 @@ Digital Signatures.html
Disclaimers.html
Documentation.html
Donation.html
+Donation_donate.gif
Donation_donate_CHF.gif
Donation_donate_Dollars.gif
Donation_donate_Euros.gif
diff --git a/doc/html/Command Line Usage.html b/doc/html/Command Line Usage.html
index 29964e6..8c86460 100644
--- a/doc/html/Command Line Usage.html
+++ b/doc/html/Command Line Usage.html
@@ -37,7 +37,7 @@
<h1>Command Line Usage</h1>
<p>Note that this section applies to the Windows version of VeraCrypt. For information on command line usage applying to the
<strong>Linux and Mac OS X versions</strong>, please run: veracrypt &ndash;h</p>
-<table border="1" cellspacing="0" cellpadding="0">
+<table border="1" cellspacing="0" cellpadding="1">
<tbody>
<tr>
<td><em>/help</em> or <em>/?</em></td>
@@ -123,6 +123,7 @@ If it is followed by <strong>n</strong> or <strong>no</strong>: the password dia
<td><em>/cache</em> or <em>/c</em></td>
<td>If it is followed by <strong>y</strong> or <strong>yes</strong> or if no parameter is specified: enable password cache;
<br>
+If it is followed by <strong>p </strong>or<strong> pim</strong>: enable both password and PIM cache (e.g., /c p).<br>
If it is followed by <strong>n </strong>or<strong> no</strong>: disable password cache (e.g., /c n).<br>
If it is followed by <strong>f </strong>or<strong> favorites</strong>: temporary cache password when mounting multiple favorites&nbsp; (e.g., /c f).<br>
Note that turning the password cache off will not clear it (use /w to clear the password cache).</td>
@@ -175,6 +176,10 @@ Note that turning the password cache off will not clear it (use /w to clear the
<p>Please note that this switch may be present several times in the command line in order to specify multiple mount options (e.g.: /m rm /m ts)</p>
</td>
</tr>
+<tr>
+<td><em>/DisableDeviceUpdate</em>&nbsp;</td>
+<td>Disables periodic internel check on devices connected to the system that is used for handling favorites identified with VolumeID and replace it with on-demande checks.</td>
+</tr>
</tbody>
</table>
<h4>VeraCrypt Format.exe (VeraCrypt Volume Creation Wizard):</h4>
@@ -250,6 +255,10 @@ It has no parameters and it indicates that no message box or dialog will be disp
<td>Do not verify that VeraCrypt Rescue Disks are correctly burned. <strong>WARNING</strong>: Never attempt to use this option to facilitate the reuse of a previously created VeraCrypt Rescue Disk. Note that every time you encrypt a system partition/drive,
you must create a new VeraCrypt Rescue Disk even if you use the same password. A previously created VeraCrypt Rescue Disk cannot be reused as it was created for a different master key.</td>
</tr>
+<tr>
+<td>/nosizecheck</td>
+<td>Don't check that the given size of the file container is smaller than the available disk free. This applies to both UI and command line.</td>
+</tr>
</tbody>
</table>
<h4>Syntax</h4>
diff --git a/doc/html/Digital Signatures.html b/doc/html/Digital Signatures.html
index 4494fbd..32d93ee 100644
--- a/doc/html/Digital Signatures.html
+++ b/doc/html/Digital Signatures.html
@@ -98,8 +98,8 @@ Note: If you skip this step and attempt to verify any of our PGP signatures, you
</ol>
<p>Under Linux, these steps can be achieved using the following commands:</p>
<ul>
-<li>Check that the fingerprint of the public key is <strong>5069A233D55A0EEB174A5FC3821ACD02680D16DE</strong>:
-<strong>gpg --with-fingerprint VeraCrypt_PGP_public_key.asc</strong> </li><li>If the fingerprint is the expected one, import the public key: <strong>gpg --import VeraCrypt_PGP_public_key.asc</strong>
+<li>Check that the fingerprint of the public key is <strong>5069A233D55A0EEB174A5FC3821ACD02680D16DE</strong>:<strong>gpg --import --import-options show-only VeraCrypt_PGP_public_key.asc</strong> (for older gpg versions, type instead:
+<strong>gpg --with-fingerprint VeraCrypt_PGP_public_key.asc</strong>)</li><li>If the fingerprint is the expected one, import the public key: <strong>gpg --import VeraCrypt_PGP_public_key.asc</strong>
</li><li>Verify the signature of the Linux setup archive (here for version 1.23): <strong>
gpg --verify veracrypt-1.23-setup.tar.bz2.sig veracrypt-1.23-setup.tar.bz2</strong>
</li></ul>
diff --git a/doc/html/Donation.html b/doc/html/Donation.html
index b88ae0f..9932f25 100644
--- a/doc/html/Donation.html
+++ b/doc/html/Donation.html
@@ -56,6 +56,10 @@
</tbody>
</table>
+<p>For other currencies, click on the button below and then select your currency using the drop-down list under the amount.</p>
+<a title="VeraCrypt Donation in any currency" href="https://www.paypal.me/idrix" target="_blank"><img src="Donation_donate.gif" alt="" width="92" height="26"></a>
+
+
<hr>
<h3><a href="Donation_Bank.html"><img src="bank_30x30.png" style="margin-right: 5px"></a>Bank Transfer</h3>
<p>You can use <a href="Donation_Bank.html">IDRIX bank details available here</a> to send your donations using bank transfers.
@@ -64,7 +68,7 @@
<h3>Donation Platforms:</h3>
<ul>
<li><strong>Liberapay: <a href="https://liberapay.com/VeraCrypt/donate" target="_blank"><img alt="Donate using Liberapay" src="liberapay_donate.svg" style="vertical-align: middle; margin-bottom: 5px"></a></strong></li>
-<li><strong>Flattr: <a title="Donate using Flattr" href="https://flattr.com/submit/auto?user_id=idrix&url=https://www.veracrypt.fr&title=VeraCrypt" target="_blank"><img title="Flattr VeraCrypt" src="flattr-badge-large.png" alt="Flattr VeraCrypt" width="93" height="20" border="0" style="vertical-align: middle; margin-bottom: 5px"></a></strong></li>
+<li><strong>Flattr: <a title="Donate using Flattr" href="https://flattr.com/domain/veracrypt.fr" target="_blank"><img title="Flattr VeraCrypt" src="flattr-badge-large.png" alt="Flattr VeraCrypt" width="93" height="20" border="0" style="vertical-align: middle; margin-bottom: 5px"></a></strong></li>
</ul>
<hr>
diff --git a/doc/html/Donation_Bank.html b/doc/html/Donation_Bank.html
index 26b70e1..c033f38 100644
--- a/doc/html/Donation_Bank.html
+++ b/doc/html/Donation_Bank.html
@@ -28,7 +28,7 @@
<div class="wikidoc">
<h1>Donation to VeraCrypt using bank transfer</h1>
<p>You can support VeraCrypt development through donations using bank transfers to one of IDRIX bank accounts below, depending on the currency used.<br>
-The supported currencies are <a href="#Euro">Euro<img src="flag-eu-small.png" style="vertical-align: top; margin-left: 5px"></a>, <a href="#GBP">British Pound<img src="flag-gb-small.png" style="vertical-align: top; margin-left: 5px"></a> and <a href="#AUD">Australian Dollars<img src="flag-au-small.png" style="vertical-align: top; margin-left: 5px"></a>.<br>
+The supported currencies are <a href="#Euro">Euro<img src="flag-eu-small.png" style="vertical-align: top; margin-left: 5px"></a>, <a href="#USD">US Dollar<img src="flag-us-small.png" style="vertical-align: top; margin-left: 5px"></a>, <a href="#GBP">British Pound<img src="flag-gb-small.png" style="vertical-align: top; margin-left: 5px"></a>, <a href="#AUD">Australian Dollar<img src="flag-au-small.png" style="vertical-align: top; margin-left: 5px"></a> and <a href="#NZD">New Zealand Dollar<img src="flag-nz-small.png" style="vertical-align: top; margin-left: 5px"></a>.<br>
Please <a href="Contact.html" target="_blank.html">contact us</a> if you need an official invoice for your donation.</p>
<hr>
<h3 id="Euro"><img src="flag-eu.png" style="vertical-align: middle; margin-right: 5px">Euro SEPA Bank Details</h3>
@@ -37,7 +37,18 @@ Account Holder: IDRIX SARL<br>
IBAN: DE54 7001 1110 6051 5480 84<br>
Bank code (SWIFT / BIC): DEKTDE7GXXX<br>
Address: Handelsbank, Elsenheimer Str. 41, München 80687, Germany<br>
-Reference: VeraCrypt Donation<br>
+Reference: Open Source Donation<br>
+<hr>
+
+<h3 id="USD"><img src="flag-us.png" style="vertical-align: middle; margin-right: 5px">US Dollar Bank Details</h3>
+<p>Accepted payment types are Wire, ACH and SWIFT/International Wire.</p>
+Account Holder: IDRIX SARL<br>
+Account number: 8310085792<br>
+Routing number (ACH or ABA): 026073150<br>
+Wire transfer number: 026073008<br>
+Bank code (SWIFT/BIC): CMFGUS33<br>
+Address: TransferWise, 19 W 24th Street, New York, NY, 10010, United States<br>
+Reference: Open Source Donation<br>
<hr>
<h3 id="GBP"><img src="flag-gb.png" style="vertical-align: middle; margin-right: 5px">British Pound Bank Details</h3>
@@ -46,18 +57,42 @@ Reference: VeraCrypt Donation<br>
Account Holder: IDRIX SARL<br>
Account number: 56385007<br>
UK Sort Code: 23-14-70<br>
+IBAN (to receive GBP from UK only): GB18 TRWI 2314 7056 3850 07<br>
Address: TransferWise, 56 Shoreditch High Street, London, E1 6JJ, United Kingdom<br>
-Reference: VeraCrypt Donation<br>
+Reference: Open Source Donation<br>
<hr>
-<h3 id="AUD"><img src="flag-au.png" style="vertical-align: middle; margin-right: 5px">Australian Dollars Bank Details</h3>
+<h3 id="AUD"><img src="flag-au.png" style="vertical-align: middle; margin-right: 5px">Australian Dollar Bank Details</h3>
<p>Accepted payment types to this account are local AUD bank transfers only.</p>
Account Holder: IDRIX SARL<br>
-Account number: 811079213<br>
-BSB Code: 082-182<br>
-Address: TransferWise, 800 Bourke Street, Melbourne VIC 3008, Autralia.<br>
-Reference: VeraCrypt Donation<br>
+Account number: 711714051<br>
+BSB Code: 802-985<br>
+Address: TransferWise, 36-38 Gipps Street, Collingwood VIC 3066, Autralia.<br>
+Reference: Open Source Donation<br>
<hr>
+
+<h3 id="NZD"><img src="flag-nz.png" style="vertical-align: middle; margin-right: 5px">New Zealand Dollar Bank Details</h3>
+<p>Accepted payment types to this account are local NZD bank transfers only.</p>
+Account Holder: IDRIX SARL<br>
+Account number: 02-1291-0218919-000<br>
+Address: TransferWise, 56 Shoreditch High Street, London, E1 6JJ, United Kingdom<br>
+Reference: Open Source Donation<br>
+<hr>
+
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
diff --git a/doc/html/Donation_donate.gif b/doc/html/Donation_donate.gif
new file mode 100644
index 0000000..43cef69
--- /dev/null
+++ b/doc/html/Donation_donate.gif
Binary files differ
diff --git a/doc/html/Release Notes.html b/doc/html/Release Notes.html
index 176a0b6..54f5f7b 100644
--- a/doc/html/Release Notes.html
+++ b/doc/html/Release Notes.html
@@ -39,7 +39,36 @@
<strong>Note to users who created volumes with 1.17 version of VeraCrypt or earlier: </strong><br/>
<span style="color:#ff0000;">To avoid hinting whether your volumes contain a hidden volume or not, or if you depend on plausible deniability when using hidden volumes/OS, then you must recreate both the outer and hidden volumes including system encryption and hidden OS, discarding existing volumes created prior to 1.18a version of VeraCrypt.</span></li>
</p>
-<p><strong style="text-align:left">1.24-Beta5 </strong>(March 8<sup>th</sup>, 2019):</p>
+
+<p><strong style="text-align:left">1.24-Hotfix1-Preview </strong>(October 20<sup>th</sup>, 2019):</p>
+<ul>
+<li><strong>Windows:</strong>
+<ul>
+<li>Fix 1.24 regression that caused system favorites not to mount at boot if VeraCrypt freshly installed.</li>
+<li>Make VeraCrypt Expander able to resume expansion of volumes whose previous expansion was aborted before it finishes.</li>
+<li>Add several robustness checks and validation in case of system encryption to better handle some corner cases.</li>
+<li>Minor UI and documentation changes.</li>
+</ul>
+</li>
+<li><strong>Linux:</strong>
+<ul>
+<li>Workaround gcc 4.4.7 bug under CentOS 6 that caused VeraCrypt built under CentOS 6 to crash when Whirlpool hash is used.</li>
+<li>Fix "incorrect password attempt" written to /var/log/auth.log when mounting volumes.</li>
+<li>Fix dropping file in UI not showing its correct path , specifically under GTK-3.</li>
+</ul>
+</li>
+<li><strong>MacOSX:</strong>
+<ul>
+<li>Fix some devices and partitions not showing in the device selection dialog under OSX 10.13 and newer.</li>
+<li>Fix keyboard tab navigation between password fields in "Volume Password" page of volume creation wizard.</li>
+<li>Support APFS filesystem for creation volumes.</li>
+<li>Support Dark Mode.</li>
+</ul>
+</li>
+</ul>
+
+
+<p><strong style="text-align:left">1.24 </strong>(October 6<sup>th</sup>, 2019):</p>
<ul>
<li><strong>All OSs:</strong>
<ul>
@@ -59,6 +88,7 @@
<li>Available only on 64-bit machines.</li>
<li>Disabled by default. Can be enabled using option in UI.</li>
<li>Less than 10% overhead on modern CPUs.</li>
+<li>Side effect: Windows Hibernate is not possible if VeraCrypt System Encryption is also being used.</li>
</ul>
<li>Mitigate some memory attacks by making VeraCrypt applications memory inaccessible to non-admin users (based on KeePassXC implementation)</li>
<li>New security features:</li>
@@ -77,18 +107,37 @@
<li>Enhance Rescue Disk implementation of restoring VeraCrypt loader.</li>
<li>Fix ESC on password prompt during Pre-Test not starting Windows.</li>
<li>Add menu entry in Rescue Disk that enables starting original Windows loader.</li>
+<li>Fix issue that was preventing Streebog hash from being selected manually during Pre-Boot authentication.</li>
+<li>If "VeraCrypt" folder is missing from Rescue Disk, it will boot PC directly from bootloader stored on hard drive</li>
+<ul>
+<li>This makes it easy to create a bootable disk for VeraCrypt from Rescue Disk just by removing/renaming its "VeraCrypt" folder.</li>
+</ul>
</ul>
<li>Add option (disabled by default) to use CPU RDRAND or RDSEED as an additional entropy source for our random generator when available.</li>
<li>Add mount option (both UI and command line) that allows mounting a volume without attaching it to the specified drive letter.</li>
-<li>Update libzip to version 1.5.1</li>
+<li>Update libzip to version 1.5.2</li>
<li>Do not create uninstall shortcut in startmenu when installing VeraCrypt. (by Sven Strickroth)</li>
<li>Enable selection of Quick Format for file containers creation. Separate Quick Format and Dynamic Volume options in the wizard UI.</li>
<li>Fix editor of EFI system encryption configuration file not accepting ENTER key to add new lines.</li>
<li>Avoid simultaneous calls of favorites mounting, for example if corresponding hotkey is pressed multiple times.</li>
<li>Ensure that only one thread at a time can create a secure desktop.</li>
+<li>Resize some dialogs in Format and Mount Options to to fix some text truncation issues with non-English languages.</li>
+<li>Fix high CPU usage when using favorites and add switch to disable periodic check on devices to reduce CPU load.</li>
+<li>Minor UI changes.</li>
<li>Updates and corrections to translations and documentation.</li>
</ul>
</li>
+<li><strong>MacOSX:</strong>
+<ul>
+<li>Add check on size of file container during creation to ensure it's smaller than available free disk space. Add CLI switch --no-size-check to disable this check.</li>
+</ul>
+</li>
+<li><strong>Linux:</strong>
+<ul>
+<li>Make CLI switch --import-token-keyfiles compatible with Non-Interactive mode.</li>
+<li>Add check on size of file container during creation to ensure it's smaller than available free disk space. Add CLI switch --no-size-check to disable this check.</li>
+</ul>
+</li>
</ul>
<p><strong style="text-align:left">1.23-Hotfix-2 </strong>(October 8<sup>th</sup>, 2018):</p>
diff --git a/doc/html/VeraCrypt Rescue Disk.html b/doc/html/VeraCrypt Rescue Disk.html
index b4ab54d..b7710d5 100644
--- a/doc/html/VeraCrypt Rescue Disk.html
+++ b/doc/html/VeraCrypt Rescue Disk.html
@@ -97,4 +97,72 @@ To boot a VeraCrypt Rescue Disk, insert it into your CD/DVD drive and restart yo
<p>If your VeraCrypt Rescue Disk is damaged, you can create a new one by selecting
<em style="text-align:left">System</em> &gt; <em style="text-align:left">Create Rescue Disk</em>. To find out whether your VeraCrypt Rescue Disk is damaged, insert it into your CD/DVD drive and select
<em style="text-align:left">System</em> &gt; <em style="text-align:left">Verify Rescue Disk</em>.</p>
-</div><div class="ClearBoth"></div></body></html>
+</div><div class="ClearBoth"></div>
+
+
+<h2>VeraCrypt Rescue Disk on USB Stick</h2>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+It is also possible to create a VeraCrypt Rescue Disk on a USB drive, in case your machine does not have a CD/DVD drive. <strong style="text-align:left">Please note that you must ensure that the data on the USB stick is not overwritten! If you lose the USB drive or your data is damaged, you will not be able to recover your system in case of a problem!</strong>
+</div>
+<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+To create a bootable VeraCrypt Rescue USB drive you have to create a bootable USB drive which bootloader runs up the iso image. Solutions like Unetbootin, which try to copy the data inside the iso image to the usb drive do not work yet. On Windows please follow the steps below:
+</div>
+<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Download the required files from the official SourceForge repository of VeraCrypt: <a href="https://sourceforge.net/projects/veracrypt/files/Contributions/VeraCryptUsbRescueDisk.zip" style="text-align:left; color:#0080c0; text-decoration:none.html">
+ https://sourceforge.net/projects/veracrypt/files/Contributions/VeraCryptUsbRescueDisk.zip</a>
+ </li>
+
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Insert a USB drive.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Format the USB drive with FAT16 oder FAT32:
+ <ul style="text-align:left; margin-top:6px; margin-bottom:6px; padding-top:0px; padding-bottom:0px">
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Launch usb_format.exe as an administrator (right click "Run as Administrator").
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Select your USB drive in the Device list.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Choose FAT as filesystem and check "Quick Format". Click Start.
+ </li>
+ </ul>
+
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Create a bootloader which can start up an iso image:
+ <ul style="text-align:left; margin-top:6px; margin-bottom:6px; padding-top:0px; padding-bottom:0px">
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Launch grubinst_gui.exe.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Check "Disk" and then select your USB drive in the list.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Click the "Refresh" button in front of "Part List" and then choose "Whole disk (MBR)".
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Leave all other options unchanged and then click "Install".
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ You should see an console window that reads "The MBR/BS has been successfully installed. Press &ltENTER&gt; to continue ..."
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Close the tool.
+ </li>
+ </ul>
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Copy the file "grldr" to your USB drive at the root (e.g. if the drive letter is I:, you should have I:\grldr). This file loads Grub4Dos.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Copy the file "menu.lst" to your USB drive at the root (e.g. if the drive letter is I:, you should have I:\menu.lst). This file configures the shown menu and its options.
+ </li>
+ <li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
+ Copy the rescue disk file "VeraCrypt Rescue Disk.iso" to the USB drive at the root and rename it "veracrypt.iso". Another possibility is to change the link in the "menu.lst" file.
+ </li>
+
+</ul>
+</body></html>
diff --git a/doc/html/flag-nz-small.png b/doc/html/flag-nz-small.png
new file mode 100644
index 0000000..80ac648
--- /dev/null
+++ b/doc/html/flag-nz-small.png
Binary files differ
diff --git a/doc/html/flag-nz.png b/doc/html/flag-nz.png
new file mode 100644
index 0000000..df23c2a
--- /dev/null
+++ b/doc/html/flag-nz.png
Binary files differ
diff --git a/src/Boot/EFI/DcsBoot.efi b/src/Boot/EFI/DcsBoot.efi
index f66be23..45155ec 100644
--- a/src/Boot/EFI/DcsBoot.efi
+++ b/src/Boot/EFI/DcsBoot.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsBoot32.efi b/src/Boot/EFI/DcsBoot32.efi
index cdf37a8..5145976 100644
--- a/src/Boot/EFI/DcsBoot32.efi
+++ b/src/Boot/EFI/DcsBoot32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsCfg.efi b/src/Boot/EFI/DcsCfg.efi
index 0885b7e..cae8622 100644
--- a/src/Boot/EFI/DcsCfg.efi
+++ b/src/Boot/EFI/DcsCfg.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsCfg32.efi b/src/Boot/EFI/DcsCfg32.efi
index 9486f4e..a23e62d 100644
--- a/src/Boot/EFI/DcsCfg32.efi
+++ b/src/Boot/EFI/DcsCfg32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInfo.efi b/src/Boot/EFI/DcsInfo.efi
index 6da62b8..2ba215b 100644
--- a/src/Boot/EFI/DcsInfo.efi
+++ b/src/Boot/EFI/DcsInfo.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInfo32.efi b/src/Boot/EFI/DcsInfo32.efi
index b0f0d48..8b7c921 100644
--- a/src/Boot/EFI/DcsInfo32.efi
+++ b/src/Boot/EFI/DcsInfo32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInt.efi b/src/Boot/EFI/DcsInt.efi
index 56f574a..9732abe 100644
--- a/src/Boot/EFI/DcsInt.efi
+++ b/src/Boot/EFI/DcsInt.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsInt32.efi b/src/Boot/EFI/DcsInt32.efi
index 09fb32e..b5e6709 100644
--- a/src/Boot/EFI/DcsInt32.efi
+++ b/src/Boot/EFI/DcsInt32.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsRe.efi b/src/Boot/EFI/DcsRe.efi
index 69afe14..2f77228 100644
--- a/src/Boot/EFI/DcsRe.efi
+++ b/src/Boot/EFI/DcsRe.efi
Binary files differ
diff --git a/src/Boot/EFI/DcsRe32.efi b/src/Boot/EFI/DcsRe32.efi
index 0dc3e9c..ad9e12f 100644
--- a/src/Boot/EFI/DcsRe32.efi
+++ b/src/Boot/EFI/DcsRe32.efi
Binary files differ
diff --git a/src/Boot/EFI/LegacySpeaker.efi b/src/Boot/EFI/LegacySpeaker.efi
index 13f0c51..f09ea57 100644
--- a/src/Boot/EFI/LegacySpeaker.efi
+++ b/src/Boot/EFI/LegacySpeaker.efi
Binary files differ
diff --git a/src/Boot/EFI/LegacySpeaker32.efi b/src/Boot/EFI/LegacySpeaker32.efi
index 45d4200..4786b47 100644
--- a/src/Boot/EFI/LegacySpeaker32.efi
+++ b/src/Boot/EFI/LegacySpeaker32.efi
Binary files differ
diff --git a/src/Build/CMakeLists.txt b/src/Build/CMakeLists.txt
new file mode 100644
index 0000000..1a34e3f
--- /dev/null
+++ b/src/Build/CMakeLists.txt
@@ -0,0 +1,327 @@
+# - Minimum CMake version
+cmake_minimum_required(VERSION 2.8.0)
+
+# - Obligatory parameters
+# -DVERACRYPT_BUILD_DIR : folder that contains 'usr' folder
+# -DNOGUI : TRUE if building 'Console' version, 'FALSE' if building 'GUI' version
+if ( NOT DEFINED VERACRYPT_BUILD_DIR )
+ MESSAGE(FATAL_ERROR "VERACRYPT_BUILD_DIR variable MUST BE set to the path of the folder which contains 'usr' folder")
+elseif ( NOT DEFINED NOGUI )
+ MESSAGE(FATAL_ERROR "NOGUI variable MUST BE set to TRUE if building 'Console' version, 'FALSE' otherwise")
+endif()
+
+# - Set PROJECT_NAME and CONFLICT_PACKAGE values
+if (NOGUI)
+ set( PROJECT_NAME "veracrypt-console" )
+ set( CONFLICT_PACKAGE "veracrypt" )
+else()
+ set( PROJECT_NAME "veracrypt" )
+ set( CONFLICT_PACKAGE "veracrypt-console" )
+endif()
+project(${PROJECT_NAME})
+
+# - Check whether 'Tcdefs.h' and 'License.txt' exist
+if(NOT EXISTS "$ENV{SOURCEPATH}/Common/Tcdefs.h")
+ MESSAGE(FATAL_ERROR "Tcdefs.h does not exist.")
+elseif(NOT EXISTS "$ENV{SOURCEPATH}/License.txt")
+ MESSAGE(FATAL_ERROR "License.txt does not exist.")
+endif()
+
+# - Detect build system bitness
+# The following variable will be set
+# $SUFFIX 32 64
+# $CMAKE_SYSTEM_NAME Windows Linux Darwin
+# N.B :
+# To build for 32-bit under 64-bit, set 'CMAKE_SIZEOF_VOID_P' to '4'
+if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
+
+ # Build System is under 64-bit arch
+ set (SUFFIX "64")
+ MESSAGE(STATUS "Build System = ${CMAKE_SYSTEM_NAME} - Bitness : 64-bit - Compiler : ${CMAKE_CXX_COMPILER_ID}")
+
+elseif( CMAKE_SIZEOF_VOID_P EQUAL 4 )
+
+ # Build System is under 32-bit arch
+ set (SUFFIX "32")
+ MESSAGE(STATUS "Build System = ${CMAKE_SYSTEM_NAME} - Bitness : 32-bit - Compiler : ${CMAKE_CXX_COMPILER_ID}")
+
+else( )
+
+ MESSAGE(FATAL_ERROR "Could not detect system bitness")
+
+endif( )
+
+# - Detect OSX, CentOS, Debian, Ubuntu or openSUSE platform of the build system
+# The following variable(s) will be set
+# $PLATFORM Debian Ubuntu CentOS openSUSE (TODO)
+# $PLATFORM_VERSION
+# 9.x 16.04 7.X 42.3
+# 10.X 18.04 8.X 15.0
+# ... ... ... ...
+# $DISTRO_NAME ${PLATFORM}-${PLATFORM_VERSION}
+if ( UNIX )
+
+ # /etc/debian_version exists for both Debian and Ubuntu
+ if(EXISTS "/etc/debian_version")
+
+ set ( PLATFORM "Debian" )
+
+ # Read lsb-release to get flavour name and flavour release version (only supported one for now is Ubuntu)
+ if(EXISTS "/etc/lsb-release")
+
+ file(READ "/etc/lsb-release" LSB_RELEASE_ID)
+ string(REGEX MATCH "DISTRIB_ID=([a-zA-Z0-9 /\\.]+)" _ ${LSB_RELEASE_ID})
+ set(FULL_FLAVOUR ${CMAKE_MATCH_1})
+
+ if (FULL_FLAVOUR MATCHES "^.*Ubuntu.*$")
+
+ set ( PLATFORM "Ubuntu" )
+
+ file(READ "/etc/lsb-release" UBUNTU_RELEASE)
+ string(REGEX MATCH "DISTRIB_RELEASE=([0-9 /\\.]+)" _ ${UBUNTU_RELEASE})
+ set(PLATFORM_VERSION ${CMAKE_MATCH_1})
+
+ else()
+
+ file(READ "/etc/debian_version" DEBIAN_RELEASE)
+ string(REGEX MATCH "([0-9]+\\.[0-9]+)" _ ${DEBIAN_RELEASE})
+ set(PLATFORM_VERSION ${CMAKE_MATCH_1})
+
+ endif()
+
+ # Get debian release version
+ elseif(EXISTS "/etc/debian_version")
+
+ file(READ "/etc/debian_version" DEBIAN_RELEASE)
+ string(REGEX MATCH "([0-9]+\\.[0-9]+)" _ ${DEBIAN_RELEASE})
+ set(PLATFORM_VERSION ${CMAKE_MATCH_1})
+
+ endif()
+
+ # Get centos release version
+ elseif(EXISTS "/etc/centos-release")
+
+ set ( PLATFORM "CentOS" )
+
+ file(READ "/etc/centos-release" CENTOS_RELEASE)
+ string(REGEX MATCH "release ([0-9 /\\.]+)" _ ${CENTOS_RELEASE})
+ set(PLATFORM_VERSION ${CMAKE_MATCH_1})
+
+ # Only if distribution uses systemd and if all previous files didn't exist
+ # i.e OpenSUSE
+ elseif(EXISTS "/etc/os-release")
+
+ file(READ "/etc/os-release" OS_RELEASE_NAME)
+ string(REGEX MATCH "NAME=\"([a-zA-Z0-9 /\\.]+)\"" _ ${OS_RELEASE_NAME})
+ set(FULL_PLATFORM ${CMAKE_MATCH_1})
+
+ if (FULL_PLATFORM MATCHES "^.*openSUSE.*$")
+ set ( PLATFORM "openSUSE" )
+ elseif ( FULL_PLATFORM MATCHES "^.*Ubuntu.*$")
+ set ( PLATFORM "Ubuntu" )
+ elseif ( FULL_PLATFORM MATCHES "^.*Debian.*$")
+ set ( PLATFORM "Debian" )
+ elseif ( FULL_PLATFORM MATCHES "^.*CentOS.*$" )
+ set ( PLATFORM "CentOS" )
+ endif ( )
+
+ # Get ditribution release version
+ file(READ "/etc/os-release" OS_RELEASE)
+ string(REGEX MATCH "VERSION=\"([a-zA-Z0-9 /\\.]+)\"" _ ${OS_RELEASE})
+ set(PLATFORM_VERSION ${CMAKE_MATCH_1})
+
+ endif()
+
+endif ( )
+string(REGEX REPLACE " $" "" PLATFORM_VERSION "${PLATFORM_VERSION}") # Trim the last trailing whitespace
+set ( DISTRO_NAME ${PLATFORM}-${PLATFORM_VERSION} )
+MESSAGE ( STATUS "Platform = ${PLATFORM}" )
+MESSAGE ( STATUS "Platform Version = ${PLATFORM_VERSION}" )
+MESSAGE ( STATUS "Distribution name = ${DISTRO_NAME}" )
+
+# - Detect the architecture under OSX, Debian, CentOS and OpenSUSE platforms
+# The following variable will be set
+# $ARCHITECTURE
+if ( PLATFORM STREQUAL "Debian" OR PLATFORM STREQUAL "Ubuntu" )
+
+ # There is no such thing as i686 architecture on debian, i386 is to be used instead
+ # dpkg --print-architecture
+ find_program(DPKG_CMD dpkg)
+ if(NOT DPKG_CMD)
+ # Cannot find dpkg in path
+ # Try best guess following SUFFIX value calculated from CMAKE_SIZEOF_VOID_P
+ if (SUFFIX STREQUAL "32")
+ SET(ARCHITECTURE i386)
+ elseif (SUFFIX STREQUAL "64")
+ SET(ARCHITECTURE amd64)
+ endif()
+ else( )
+ execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif( )
+
+elseif ( ( PLATFORM STREQUAL "CentOS" ) OR ( PLATFORM STREQUAL "openSUSE" ) )
+
+ execute_process(COMMAND arch OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+else ()
+
+ MESSAGE(FATAL_ERROR "Unrecognized / unsupported distribution")
+
+endif ( )
+MESSAGE ( STATUS "Architecture = ${ARCHITECTURE}" )
+
+# - Create installation folder directory at install time
+# This won't lead to the files being actually installed (in CMAKE_INSTALL_PREFIX)
+# unless "cmake --build . --target install" is executed, which is not the case here.
+#
+# Doing things like the following
+# - install(DIRECTORY ${VERACRYPT_BUILD_DIR}/usr DESTINATION /)
+# - install(DIRECTORY ${VERACRYPT_BUILD_DIR}/usr/bin DESTINATION /usr)
+# lead to conflicts despite the usage of CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
+# because install() forces CpackRPM to create the DESTINATION folders.
+#
+# We fix this by installing ALL directories inside '/usr' in '.', and setting
+# CPACK_PACKAGING_INSTALL_PREFIX to '/usr'.
+# This way, during the packaging, 'bin' and 'share' folders will be installed
+# inside '${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/<system_name>/DEB,RPM/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGING_INSTALL_PREFIX}'.
+#
+# Also, we use USE_SOURCE_PERMISSIONS to save the permissions
+install(DIRECTORY ${VERACRYPT_BUILD_DIR}/usr/bin
+ DESTINATION .
+ USE_SOURCE_PERMISSIONS)
+install(DIRECTORY ${VERACRYPT_BUILD_DIR}/usr/share
+ DESTINATION .
+ USE_SOURCE_PERMISSIONS)
+set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
+
+# For packaging
+# CPack will first install into ${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/<system_name>/DEB,RPM/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGING_INSTALL_PREFIX}
+# See https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators
+# See https://cmake.org/cmake/help/latest/cpack_gen/deb.html
+# See https://cmake.org/cmake/help/latest/cpack_gen/rpm.html
+#
+
+# Installation scripts should be provided in this order
+# PREINST;POSTINST;PRERM;POSTRM
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging) # creates the Packaging directory under build directory when CMake generates the build system
+
+# - We excute 'grep VERSION_STRING ../../Common/Tcdefs.h | head -n 1' to get the line which include 'VERSION_STRING'
+# Then we delete all first characters from the beginning of the line until the first '"' to get the version in the format : "X.YYY..."
+# Then, we remove the leading and trailing '"' characters
+# Then, we retrieve the 'version' and the 'release'
+# Finally, we replace '-' in the release if it exists with a '.' because CPack does not like '-' in the release
+execute_process(COMMAND grep VERSION_STRING "$ENV{SOURCEPATH}/Common/Tcdefs.h"
+ COMMAND head -n 1
+ OUTPUT_VARIABLE FULL_VERSION_LINE OUTPUT_STRIP_TRAILING_WHITESPACE)
+string(REGEX REPLACE "^[^\"]+" "" FULL_VERSION ${FULL_VERSION_LINE})
+string(REGEX REPLACE "\"" "" FULL_VERSION ${FULL_VERSION})
+string(REPLACE "." ";" FULL_VERSION_LIST ${FULL_VERSION})
+list(GET FULL_VERSION_LIST 0 VERSION)
+list(GET FULL_VERSION_LIST 1 RELEASE)
+string(REPLACE "-" "." RELEASE ${RELEASE})
+
+set( VENDOR "IDRIX" )
+set( LICENSE "VeraCrypt License" )
+set( CONTACT "VeraCrypt Team <veracrypt@idrix.fr>" )
+set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Disk encryption with strong security based on TrueCrypt." )
+set( CPACK_PACKAGE_DESCRIPTION "This package contains binaries for VeraCrypt, a disk encryption with strong security based on TrueCrypt." )
+set( CPACK_PACKAGE_NAME ${PROJECT_NAME} )
+set( CPACK_PACKAGE_VERSION ${VERSION} )
+set( CPACK_PACKAGE_RELEASE ${RELEASE} )
+set( CPACK_PACKAGE_VENDOR ${VENDOR} )
+set( CPACK_PACKAGE_LICENSE ${LICENSE} )
+set( CPACK_RESOURCE_FILE_LICENSE "$ENV{SOURCEPATH}/License.txt")
+set( CPACK_PACKAGE_CONTACT ${CONTACT} )
+set( CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${FULL_VERSION}-${DISTRO_NAME}-${ARCHITECTURE} )
+set( CPACK_PACKAGE_CHECKSUM SHA256 )
+set( CPACK_PACKAGE_RELOCATABLE "OFF") # Disable package relocation (especially for rpm)
+set( CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging )
+
+if ( ( PLATFORM STREQUAL "Debian" ) OR ( PLATFORM STREQUAL "Ubuntu" ) )
+
+ # Debian control script(s)
+ file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging/debian-control)
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Packaging/debian-control/prerm ${CMAKE_CURRENT_BINARY_DIR}/Packaging/debian-control/prerm)
+ set( DEBIAN_PRERM ${CMAKE_CURRENT_BINARY_DIR}/Packaging/debian-control/prerm)
+
+ set( CPACK_GENERATOR "DEB" ) # mandatory
+ set( CPACK_DEBIAN_PACKAGE_NAME ${CPACK_PACKAGE_NAME} ) # mandatory
+ set( CPACK_DEBIAN_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}.deb ) # mandatory
+ set( CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION} ) # mandatory
+ set( CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} )
+ set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${ARCHITECTURE} ) # mandatory
+
+ # Link against gtk3 version of wxWidgets if >= Debian 10 or >= Ubuntu 18.04
+ # Otherwise, link against gtk2 version of wxWidgets
+ if ( ( ( PLATFORM STREQUAL "Debian" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "10" ) )
+ OR ( ( PLATFORM STREQUAL "Ubuntu" ) AND ( PLATFORM_VERSION VERSION_GREATER_EQUAL "18.04" ) ) )
+
+ set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-gtk3-0v5, libfuse2, dmsetup" )
+
+ else ()
+
+ set( CPACK_DEBIAN_PACKAGE_DEPENDS "libwxgtk3.0-0v5, libfuse2, dmsetup" )
+
+ endif()
+
+ set( CPACK_DEBIAN_PACKAGE_MAINTAINER ${CONTACT} ) # mandatory
+ set( CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} ) # mandatory
+ set( CPACK_DEBIAN_ARCHIVE_TYPE "gnutar") # mandatory
+ set( CPACK_DEBIAN_COMPRESSION_TYPE "gzip") # mandatory
+ set( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" ) # mandatory
+ set( CPACK_DEBIAN_PACKAGE_SECTION "libs" ) # recommended, Section relative to Debian sections (https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections)
+ 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" ) )
+
+ # RPM control script(s)
+ file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Packaging/rpm-control)
+ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Packaging/rpm-control/prerm.sh ${CMAKE_CURRENT_BINARY_DIR}/Packaging/rpm-control/prerm.sh)
+ set( RPM_PRERM ${CMAKE_CURRENT_BINARY_DIR}/Packaging/rpm-control/prerm.sh)
+
+ set( CPACK_GENERATOR "RPM" ) # mandatory
+ set( CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_SUMMARY} ) # mandatory
+ set( CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION} ) # mandatory
+ set( CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME} ) # mandatory
+ set( CPACK_RPM_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}.rpm ) # mandatory
+ set( CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION} ) # mandatory
+ set( CPACK_RPM_PACKAGE_ARCHITECTURE ${ARCHITECTURE} ) # mandatory
+ set( CPACK_RPM_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} ) # mandatory
+ set( CPACK_RPM_PACKAGE_LICENSE ${CPACK_PACKAGE_LICENSE} ) # mandatory
+ set( CPACK_RPM_PACKAGE_GROUP "Applications/System" ) # mandatory, https://fedoraproject.org/wiki/RPMGroups
+ set( CPACK_RPM_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR} ) # mandatory
+ set( CPACK_RPM_PACKAGE_AUTOREQ "no" ) # disable automatic shared libraries dependency detection (most of the time buggy)
+
+ if ( PLATFORM STREQUAL "CentOS" )
+
+ if ( DEFINED WITHGTK3 AND WITHGTK3 )
+ set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk3" )
+ else ()
+ set( CPACK_RPM_PACKAGE_REQUIRES "fuse, device-mapper, gtk2" )
+ endif()
+
+ elseif ( PLATFORM STREQUAL "openSUSE" )
+
+ # TODO
+
+ endif()
+
+ set( CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE ${RPM_PRERM}) # optional
+
+ # Prevents CPack from generating file conflicts
+ # This is to avoid having %dir of these directories in the .spec file
+ set( CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr" )
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/bin" )
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share" )
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share/applications" )
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share/doc" )
+ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/share/pixmaps" )
+
+ set( CPACK_RPM_PACKAGE_RELOCATABLE "OFF" )
+ set( CPACK_RPM_PACKAGE_CONFLICTS "${CONFLICT_PACKAGE}")
+
+endif()
+
+include(CPack)
diff --git a/src/Build/Packaging/debian-control/prerm b/src/Build/Packaging/debian-control/prerm
new file mode 100644
index 0000000..e9deafc
--- /dev/null
+++ b/src/Build/Packaging/debian-control/prerm
@@ -0,0 +1,9 @@
+#!/bin/sh
+V="$(mount | grep veracrypt_aux_mnt)"
+if [ ! -z "$V" ]
+then
+ echo "Error: All VeraCrypt volumes must be dismounted first."
+ exit 1
+else
+ exit 0
+fi \ No newline at end of file
diff --git a/src/Build/Packaging/rpm-control/prerm.sh b/src/Build/Packaging/rpm-control/prerm.sh
new file mode 100644
index 0000000..e9deafc
--- /dev/null
+++ b/src/Build/Packaging/rpm-control/prerm.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+V="$(mount | grep veracrypt_aux_mnt)"
+if [ ! -z "$V" ]
+then
+ echo "Error: All VeraCrypt volumes must be dismounted first."
+ exit 1
+else
+ exit 0
+fi \ No newline at end of file
diff --git a/src/Build/Resources/MacOSX/Info.plist.legacy.xml b/src/Build/Resources/MacOSX/Info.plist.legacy.xml
new file mode 100644
index 0000000..4874768
--- /dev/null
+++ b/src/Build/Resources/MacOSX/Info.plist.legacy.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+
+ <key>CFBundleIdentifier</key>
+ <string>org.idrix.VeraCrypt</string>
+
+ <key>UTExportedTypeDeclarations</key>
+ <array>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>org.idrix.veracrypt.hc</string>
+
+ <key>UTTypeDescription</key>
+ <string>VeraCrypt Container File</string>
+
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>public.data</string>
+ </array>
+
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>public.filename-extension</key>
+ <array>
+ <string>hc</string>
+ <string>tc</string>
+ </array>
+
+ <key>public.mime-type</key>
+ <string>application/veracrypt</string>
+ </dict>
+ </dict>
+ </array>
+
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeIconFile</key>
+ <string>VeraCrypt_Volume.icns</string>
+ <key>CFBundleTypeName</key>
+ <string>VeraCrypt Container File</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSHandlerRank</key>
+ <string>Owner</string>
+ <key>LSItemContentTypes</key>
+ <array>
+ <!-- my app supports files with my custom extension (see UTExportedTypeDeclarations) -->
+ <string>org.idrix.veracrypt.hc</string>
+ </array>
+ </dict>
+ </array>
+
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+
+ <key>CFBundleExecutable</key>
+ <string>VeraCrypt</string>
+
+ <key>CFBundleIconFile</key>
+ <string>VeraCrypt.icns</string>
+
+ <key>CFBundleName</key>
+ <string>VeraCrypt</string>
+
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+
+ <key>CFBundleSignature</key>
+ <string>TRUE</string>
+
+ <key>CFBundleVersion</key>
+ <string>1.24.7</string>
+
+ <key>CFBundleShortVersionString</key>
+ <string>_VERSION_</string>
+
+ <key>CFBundleLongVersionString</key>
+ <string>VeraCrypt _VERSION_</string>
+
+ <key>LSArchitecturePriority</key>
+ <array>
+ <string>x86_64</string>
+ <string>i386</string>
+ </array>
+
+ <key>LSMinimumSystemVersion</key>
+ <string>10.7.0</string>
+
+ <key>LSRequiresCarbon</key>
+ <false/>
+
+ <key>CSResourcesFileMapped</key>
+ <true/>
+
+ <key>NSHighResolutionCapable</key>
+ <true/>
+
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/src/Build/Resources/MacOSX/Info.plist.xml b/src/Build/Resources/MacOSX/Info.plist.xml
index b5b5a85..47f70f6 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.24.5</string>
+ <string>1.24.7</string>
<key>CFBundleShortVersionString</key>
<string>_VERSION_</string>
@@ -82,14 +82,8 @@
<key>CFBundleLongVersionString</key>
<string>VeraCrypt _VERSION_</string>
- <key>LSArchitecturePriority</key>
- <array>
- <string>x86_64</string>
- <string>i386</string>
- </array>
-
<key>LSMinimumSystemVersion</key>
- <string>10.7.0</string>
+ <string>10.9.0</string>
<key>LSRequiresCarbon</key>
<false/>
diff --git a/src/Build/build_cmake_deb.sh b/src/Build/build_cmake_deb.sh
new file mode 100755
index 0000000..3be23dd
--- /dev/null
+++ b/src/Build/build_cmake_deb.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# 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/../../..")
+
+cd $SOURCEPATH
+
+echo "Building GUI version of VeraCrypt for DEB using system wxWidgets"
+make clean || exit 1
+make || exit 1
+make install DESTDIR="$PARENTDIR/VeraCrypt_Setup/GUI" || exit 1
+
+echo "Building console version of VeraCrypt for DEB using system wxWidgets"
+
+# This is to avoid " Error: Unable to initialize GTK+, is DISPLAY set properly?"
+# when building over SSH without X11 Forwarding
+# export DISPLAY=:0.0
+
+make NOGUI=1 clean || exit 1
+make NOGUI=1 || exit 1
+make NOGUI=1 install DESTDIR="$PARENTDIR/VeraCrypt_Setup/Console" || exit 1
+
+echo "Creating VeraCrypt DEB packages"
+
+# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack DEB
+# -DCPACK_RPM_PACKAGE_DEBUG=TRUE for debugging cpack DEB
+
+mkdir -p $PARENTDIR/VeraCrypt_Packaging/GUI
+mkdir -p $PARENTDIR/VeraCrypt_Packaging/Console
+
+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" -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_gtk2.sh
new file mode 100644
index 0000000..38c66a9
--- /dev/null
+++ b/src/Build/build_cmake_rpm_gtk2.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# 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.0.4 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
+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-2
+make WXSTATIC=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-2
+make WXSTATIC=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-2
+cmake -H$SCRIPTPATH -B$PARENTDIR/VeraCrypt_Packaging/GUI -DVERACRYPT_BUILD_DIR="$PARENTDIR/VeraCrypt_Setup/GUI" -DWITHGTK3=FALSE -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
+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
new file mode 100644
index 0000000..97091ce
--- /dev/null
+++ b/src/Build/build_cmake_rpm_gtk3.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# 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.0.4 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
+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_macosx.sh b/src/Build/build_veracrypt_macosx.sh
index 233afb2..70a94c4 100755
--- a/src/Build/build_veracrypt_macosx.sh
+++ b/src/Build/build_veracrypt_macosx.sh
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2017 IDRIX
+# Copyright (c) 2013-2019 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.
@@ -12,22 +12,22 @@ SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd)
# directory where the VeraCrypt project has been checked out
PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd)
-# the sources of wxWidgets 3.0.3 must be extracted to the parent directory
-export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
+# the sources of wxWidgets 3.1.2 must be extracted to the parent directory (for night mode)
+export WX_ROOT=$PARENTDIR/wxWidgets-3.1.2
echo "Using wxWidgets sources in $WX_ROOT"
# this will be the temporary wxWidgets directory
-export WX_BUILD_DIR=$PARENTDIR/wxBuild
-
-# define the SDK version to use. We use 10.7 by default
-export VC_OSX_TARGET=10.7
-echo "Using MacOSX SDK $VC_OSX_TARGET"
+export WX_BUILD_DIR=$PARENTDIR/wxBuild-3.1.2
+# define the SDK version to use and OSX minimum target. We target 10.9 by default
+export VC_OSX_TARGET=10.9
+export VC_OSX_SDK=10.14
+echo "Using MacOSX SDK $VC_OSX_SDK"
cd $SOURCEPATH
echo "Building VeraCrypt"
-make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package
+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=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package \ No newline at end of file
+# make WXSTATIC=FULL clean && make WXSTATIC=FULL && make WXSTATIC=FULL package \ No newline at end of file
diff --git a/src/Build/build_veracrypt_macosx_legacy.sh b/src/Build/build_veracrypt_macosx_legacy.sh
new file mode 100755
index 0000000..6c86a7f
--- /dev/null
+++ b/src/Build/build_veracrypt_macosx_legacy.sh
@@ -0,0 +1,32 @@
+#
+# Copyright (c) 2013-2017 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 this script is in
+SCRIPTPATH=$(cd "$(dirname "$0")"; pwd)
+# source directory which contains the Makefile
+SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd)
+# directory where the VeraCrypt project has been checked out
+PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd)
+
+# the sources of wxWidgets 3.0.4 must be extracted to the parent directory
+export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4
+echo "Using wxWidgets sources in $WX_ROOT"
+0# this will be the temporary wxWidgets directory
+export WX_BUILD_DIR=$PARENTDIR/wxBuild
+
+# define the SDK version to use. We use 10.7 by default
+export VC_OSX_TARGET=10.7
+echo "Using MacOSX SDK $VC_OSX_TARGET"
+
+
+cd $SOURCEPATH
+
+echo "Building VeraCrypt"
+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 \ No newline at end of file
diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp
index 4061bde..6131ede 100644
--- a/src/Common/BootEncryption.cpp
+++ b/src/Common/BootEncryption.cpp
@@ -2364,6 +2364,35 @@ namespace VeraCrypt
WriteConfigInteger (configFile, configContent, "AuthorizeRetry", authorizeRetry);
WriteConfigInteger (configFile, configContent, "DcsBmlLockFlags", bmlLockFlags);
WriteConfigInteger (configFile, configContent, "DcsBmlDriver", bmlDriverEnabled);
+
+ string fieldValue;
+ if (IsPostExecFileField(actionSuccessValue, fieldValue) && (0 == _stricmp(fieldValue.c_str(), "\\EFI\\Microsoft\\Boot\\bootmgfw.efi")))
+ {
+ // fix wrong configuration file since bootmgfw.efi is now a copy of VeraCrypt and if we don't fix the DcsProp
+ // file, veraCrypt bootloader will call itself
+ // We first check if bootmgfw.efi is original Microsoft one. If yes, we don't do anything, otherwise we set the field to bootmgfw_ms.vc
+ unsigned __int64 loaderSize = 0;
+ bool bModifiedMsBoot = true;
+ EfiBootInst.GetFileSize(L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi", loaderSize);
+
+ if (loaderSize > 32768)
+ {
+ std::vector<byte> bootLoaderBuf ((size_t) loaderSize);
+
+ EfiBootInst.ReadFile(L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi", &bootLoaderBuf[0], (DWORD) loaderSize);
+
+ // look for bootmgfw.efi identifiant string
+ const char* g_szMsBootString = "bootmgfw.pdb";
+ if (BufferHasPattern (bootLoaderBuf.data (), (size_t) loaderSize, g_szMsBootString, strlen (g_szMsBootString)))
+ {
+ bModifiedMsBoot = false;
+ }
+ }
+
+ if (bModifiedMsBoot)
+ actionSuccessValue = "postexec file(EFI\\Microsoft\\Boot\\bootmgfw_ms.vc)";
+ }
+
WriteConfigString (configFile, configContent, "ActionSuccess", actionSuccessValue.c_str());
// Write unmodified values
@@ -2396,6 +2425,55 @@ namespace VeraCrypt
return bRet;
}
+ BOOL EfiBootConf::IsPostExecFileField (const string& fieldValue, string& filePath)
+ {
+ BOOL bRet = FALSE;
+ filePath = "";
+
+ if (!fieldValue.empty() && strlen (fieldValue.c_str()))
+ {
+ string copieValue = fieldValue;
+ std::transform(copieValue.begin(), copieValue.end(), copieValue.begin(), ::tolower);
+
+ if (strstr (copieValue.c_str(), "postexec") && strstr (copieValue.c_str(), "file("))
+ {
+ char c;
+ const char* ptr = strstr (copieValue.c_str(), "file(");
+
+ filePath = "\\";
+ ptr += 5;
+ while ((c = *ptr))
+ {
+ if (c == ')')
+ break;
+ if (c == '/')
+ c = '\\';
+ filePath += c;
+ ptr++;
+ }
+
+ if (c == ')')
+ bRet = TRUE;
+ else
+ filePath = "";
+ }
+ }
+
+ return bRet;
+ }
+
+ BOOL EfiBootConf::IsPostExecFileField (const string& fieldValue, wstring& filePath)
+ {
+ string aPath;
+ BOOL bRet = IsPostExecFileField (fieldValue, aPath);
+ if (bRet)
+ filePath = wstring(aPath.begin(), aPath.end());
+ else
+ filePath = L"";
+
+ return bRet;
+ }
+
static const wchar_t* EfiVarGuid = L"{8BE4DF61-93CA-11D2-AA0D-00E098032B8C}";
void
@@ -2751,14 +2829,120 @@ namespace VeraCrypt
}
+ bool EfiBoot::CompareFiles (const wchar_t* fileName1, const wchar_t* fileName2)
+ {
+ bool bRet = false;
+ File f1 (fileName1, true);
+ File f2 (fileName2, true);
+
+ if (f1.IsOpened() && f2.IsOpened())
+ {
+ try
+ {
+ DWORD size1, size2;
+ f1.GetFileSize (size1);
+ f2.GetFileSize (size2);
+
+ if (size1 == size2)
+ {
+ // same size, so now we compare content
+ std::vector<byte> file1Buf (8096);
+ std::vector<byte> file2Buf (8096);
+ DWORD remainingBytes = size1, dataToRead;
+
+ while (remainingBytes)
+ {
+ dataToRead = VC_MIN (remainingBytes, (DWORD) file1Buf.size());
+ DWORD f1Bytes = f1.Read (file1Buf.data(), dataToRead);
+ DWORD f2Bytes = f2.Read (file2Buf.data(), dataToRead);
+
+ if ((f1Bytes != f2Bytes) || memcmp (file1Buf.data(), file2Buf.data(), (size_t) f1Bytes))
+ {
+ break;
+ }
+ else
+ {
+ remainingBytes -= f1Bytes;
+ }
+ }
+
+ if (0 == remainingBytes)
+ {
+ // content is the same
+ bRet = true;
+ }
+ }
+ }
+ catch (...) {}
+ }
+
+ f1.Close();
+ f2.Close();
+
+ return bRet;
+ }
+
+ bool EfiBoot::CompareFileData (const wchar_t* fileName, const byte* data, DWORD size)
+ {
+ bool bRet = false;
+
+ File f(fileName, true);
+ if (f.IsOpened ())
+ {
+ try
+ {
+ // check if the file has the same content
+ // if yes, don't perform any write operation to avoid changing its timestamp
+ DWORD existingSize = 0;
+
+ f.GetFileSize(existingSize);
+
+ if (existingSize == size)
+ {
+ std::vector<byte> fileBuf (8096);
+ DWORD remainingBytes = size, dataOffset = 0, dataToRead;
+
+ while (remainingBytes)
+ {
+ dataToRead = VC_MIN (remainingBytes, (DWORD) fileBuf.size());
+ dataToRead = f.Read (fileBuf.data(), dataToRead);
+
+ if (memcmp (data + dataOffset, fileBuf.data(), (size_t) dataToRead))
+ {
+ break;
+ }
+ else
+ {
+ dataOffset += dataToRead;
+ remainingBytes -= dataToRead;
+ }
+ }
+
+ if (0 == remainingBytes)
+ {
+ // content is the same
+ bRet = true;
+ }
+ }
+ }
+ catch (...){}
+ }
+
+ f.Close();
+
+ return bRet;
+ }
+
void EfiBoot::SaveFile(const wchar_t* name, byte* data, DWORD size) {
wstring path = EfiBootPartPath;
path += name;
- File f(path, false, true);
- f.Write(data, size);
- f.Close();
-
+ if (!CompareFileData (path.c_str(), data, size))
+ {
+ File f(path, false, true);
+ f.Write(data, size);
+ f.Close();
+ }
}
bool EfiBoot::FileExists(const wchar_t* name) {
@@ -2797,7 +2981,10 @@ namespace VeraCrypt
}
else
targetPath = targetName;
- throw_sys_if (!::CopyFileW (path.c_str(), targetPath.c_str(), FALSE));
+
+ // if both files are the same, we don't perform copy operation
+ if (!CompareFiles (path.c_str(), targetPath.c_str()))
+ throw_sys_if (!::CopyFileW (path.c_str(), targetPath.c_str(), FALSE));
}
BOOL EfiBoot::RenameFile(const wchar_t* name, const wchar_t* nameNew, BOOL bForce) {
@@ -2805,7 +2992,16 @@ namespace VeraCrypt
path += name;
wstring pathNew = EfiBootPartPath;
pathNew += nameNew;
- return MoveFileExW(path.c_str(), pathNew.c_str(), bForce? MOVEFILE_REPLACE_EXISTING : 0);
+
+ BOOL bRet;
+ if (CompareFiles (path.c_str(), pathNew.c_str()))
+ {
+ // files identical. Delete source file only
+ bRet = DeleteFile (path.c_str());
+ }
+ else
+ bRet = MoveFileExW(path.c_str(), pathNew.c_str(), bForce? MOVEFILE_REPLACE_EXISTING : 0);
+ return bRet;
}
BOOL EfiBoot::DelFile(const wchar_t* name) {
@@ -3120,24 +3316,25 @@ namespace VeraCrypt
EfiBootConf conf;
if (EfiBootInst.ReadConfig (L"\\EFI\\VeraCrypt\\DcsProp", conf) && strlen (conf.actionSuccessValue.c_str()))
{
- string actionValue = conf.actionSuccessValue;
- std::transform(actionValue.begin(), actionValue.end(), actionValue.begin(), ::tolower);
-
- if (strstr (actionValue.c_str(), "postexec") && strstr (actionValue.c_str(), "file("))
+ wstring loaderPath;
+ if (EfiBootConf::IsPostExecFileField (conf.actionSuccessValue, loaderPath))
{
- char c;
- const char* ptr = strstr (actionValue.c_str(), "file(");
- ptr += 5;
- wstring loaderPath = L"\\";
- while ((c = *ptr))
+ // check that it is not bootmgfw.efi
+ if (0 != _wcsicmp (loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi"))
{
- if (c == ')' || c == ' ')
- break;
- loaderPath += (wchar_t) c;
- ptr++;
+ // look for bootmgfw.efi identifiant string
+ EfiBootInst.GetFileSize(loaderPath.c_str(), loaderSize);
+ std::vector<byte> bootLoaderBuf ((size_t) loaderSize);
+
+ EfiBootInst.ReadFile(loaderPath.c_str(), &bootLoaderBuf[0], (DWORD) loaderSize);
+
+ // look for bootmgfw.efi identifiant string
+ if (BufferHasPattern (bootLoaderBuf.data (), (size_t) loaderSize, g_szMsBootString, strlen (g_szMsBootString)))
+ {
+ bFound = true;
+ EfiBootInst.RenameFile(loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw_ms.vc", TRUE);
+ }
}
- bFound = true;
- EfiBootInst.RenameFile(loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw_ms.vc", TRUE);
}
}
@@ -4230,24 +4427,27 @@ namespace VeraCrypt
EfiBootConf conf;
if (EfiBootInst.ReadConfig (L"\\EFI\\VeraCrypt\\DcsProp", conf) && strlen (conf.actionSuccessValue.c_str()))
{
- string actionValue = conf.actionSuccessValue;
- std::transform(actionValue.begin(), actionValue.end(), actionValue.begin(), ::tolower);
-
- if (strstr (actionValue.c_str(), "postexec") && strstr (actionValue.c_str(), "file("))
+ wstring loaderPath;
+ if (EfiBootConf::IsPostExecFileField (conf.actionSuccessValue, loaderPath))
{
- char c;
- const char* ptr = strstr (actionValue.c_str(), "file(");
- ptr += 5;
- wstring loaderPath = L"\\";
- while ((c = *ptr))
+ // check that it is not bootmgfw_ms.vc or bootmgfw.efi
+ if ( (0 != _wcsicmp (loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw_ms.vc"))
+ && (0 != _wcsicmp (loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi"))
+ )
{
- if (c == ')' || c == ' ')
- break;
- loaderPath += (wchar_t) c;
- ptr++;
- }
+ const char* g_szMsBootString = "bootmgfw.pdb";
+ unsigned __int64 loaderSize = 0;
+ EfiBootInst.GetFileSize(loaderPath.c_str(), loaderSize);
+ std::vector<byte> bootLoaderBuf ((size_t) loaderSize);
+
+ EfiBootInst.ReadFile(loaderPath.c_str(), &bootLoaderBuf[0], (DWORD) loaderSize);
- EfiBootInst.RenameFile(loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi", TRUE);
+ // look for bootmgfw.efi identifiant string
+ if (BufferHasPattern (bootLoaderBuf.data (), (size_t) loaderSize, g_szMsBootString, strlen (g_szMsBootString)))
+ {
+ EfiBootInst.RenameFile(loaderPath.c_str(), L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi", TRUE);
+ }
+ }
}
}
}
@@ -4567,6 +4767,16 @@ namespace VeraCrypt
if (registerService)
{
+ // check if service already exists.
+ // If yes then start it immediatly after reinstalling it
+ bool bAlreadyExists = false;
+ SC_HANDLE service = OpenService (scm, TC_SYSTEM_FAVORITES_SERVICE_NAME, GENERIC_READ);
+ if (service)
+ {
+ bAlreadyExists = true;
+ CloseServiceHandle (service);
+ }
+
try
{
RegisterSystemFavoritesService (FALSE, noFileHandling);
@@ -4577,11 +4787,19 @@ namespace VeraCrypt
{
wchar_t appPath[TC_MAX_PATH];
throw_sys_if (!GetModuleFileName (NULL, appPath, ARRAYSIZE (appPath)));
-
+ /* explicitely specify VeraCrypt.exe as the file to copy and don't rely
+ * on the fact we will be always called by VeraCrypt.exe because it's not
+ * always true.
+ */
+ wchar_t* ptr = wcsrchr (appPath, L'\\');
+ if (ptr)
+ ptr[1] = 0;
+ StringCchCatW (appPath, ARRAYSIZE (appPath), _T(TC_APP_NAME) L".exe");
+
throw_sys_if (!CopyFile (appPath, servicePath.c_str(), FALSE));
}
- SC_HANDLE service = CreateService (scm,
+ service = CreateService (scm,
TC_SYSTEM_FAVORITES_SERVICE_NAME,
_T(TC_APP_NAME) L" System Favorites",
SERVICE_ALL_ACCESS,
@@ -4601,6 +4819,10 @@ namespace VeraCrypt
description.lpDescription = L"Mounts VeraCrypt system favorite volumes.";
ChangeServiceConfig2 (service, SERVICE_CONFIG_DESCRIPTION, &description);
+ // start the service immediatly if it already existed before
+ if (bAlreadyExists)
+ StartService (service, 0, NULL);
+
CloseServiceHandle (service);
try
@@ -4642,6 +4864,30 @@ namespace VeraCrypt
}
}
+ bool BootEncryption::IsSystemFavoritesServiceRunning ()
+ {
+ bool bRet = false;
+ SC_HANDLE scm = OpenSCManager (NULL, NULL, SC_MANAGER_CONNECT);
+ if (scm)
+ {
+ SC_HANDLE service = OpenService(scm, TC_SYSTEM_FAVORITES_SERVICE_NAME, GENERIC_READ);
+ if (service)
+ {
+ SERVICE_STATUS status;
+ if (QueryServiceStatus(service, &status))
+ {
+ bRet = (status.dwCurrentState == SERVICE_RUNNING);
+ }
+
+ CloseServiceHandle(service);
+ }
+
+ CloseServiceHandle (scm);
+ }
+
+ return bRet;
+ }
+
void BootEncryption::UpdateSystemFavoritesService ()
{
SC_HANDLE scm = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS);
diff --git a/src/Common/BootEncryption.h b/src/Common/BootEncryption.h
index 0b5fe4f..9ae9094 100644
--- a/src/Common/BootEncryption.h
+++ b/src/Common/BootEncryption.h
@@ -189,6 +189,8 @@ namespace VeraCrypt
BOOL Load (const wchar_t* fileName);
void Load (char* configContent);
BOOL Save (const wchar_t* fileName, HWND hwnd);
+ static BOOL IsPostExecFileField (const string& szFieldValue, string& filePath);
+ static BOOL IsPostExecFileField (const string& szFieldValue, wstring& filePath);
};
void GetVolumeESP(wstring& path);
@@ -209,6 +211,8 @@ namespace VeraCrypt
void ReadFile(const wchar_t* name, byte* data, DWORD size);
void CopyFile(const wchar_t* name, const wchar_t* targetName);
bool FileExists(const wchar_t* name);
+ static bool CompareFiles (const wchar_t* fileName1, const wchar_t* fileName2);
+ static bool CompareFileData (const wchar_t* fileName, const byte* data, DWORD size);
BOOL RenameFile(const wchar_t* name, const wchar_t* nameNew, BOOL bForce);
BOOL DelFile(const wchar_t* name);
@@ -285,6 +289,7 @@ namespace VeraCrypt
void RegisterFilterDriver (bool registerDriver, FilterType filterType);
void RegisterSystemFavoritesService (BOOL registerService);
void RegisterSystemFavoritesService (BOOL registerService, BOOL noFileHandling);
+ bool IsSystemFavoritesServiceRunning ();
void UpdateSystemFavoritesService ();
void RenameDeprecatedSystemLoaderBackup ();
bool RestartComputer (BOOL bShutdown = FALSE);
diff --git a/src/Common/Common.rc b/src/Common/Common.rc
index 60ea0a5..d55e31b 100644
--- a/src/Common/Common.rc
+++ b/src/Common/Common.rc
@@ -65,39 +65,39 @@ BEGIN
PUSHBUTTON "Cancel",IDCANCEL,248,190,50,14
END
-IDD_MOUNT_OPTIONS DIALOGEX 0, 0, 277, 244
+IDD_MOUNT_OPTIONS DIALOGEX 0, 0, 310, 244
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "VeraCrypt - Mount Options"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Mount volume as read-&only",IDC_MOUNT_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,11,194,10
+ CONTROL "Mount volume as read-&only",IDC_MOUNT_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,11,231,10
CONTROL "Mount volume as removable &medium",IDC_MOUNT_REMOVABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,25,195,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,25,231,10
CONTROL "Use backup header embedded in &volume if available",IDC_USE_EMBEDDED_HEADER_BAK,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,39,257,11
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,39,295,11
CONTROL "Mount partition &using system encryption without pre-boot authentication",IDC_MOUNT_SYSENC_PART_WITHOUT_PBA,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,53,259,11
- EDITTEXT IDC_VOLUME_LABEL,112,82,150,14,ES_AUTOHSCROLL
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,53,295,11
+ EDITTEXT IDC_VOLUME_LABEL,134,82,167,14,ES_AUTOHSCROLL
CONTROL "&Protect hidden volume against damage caused by writing to outer volume",IDC_PROTECT_HIDDEN_VOL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,115,252,10
- EDITTEXT IDC_PASSWORD_PROT_HIDVOL,112,133,151,14,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_PRF_ID,112,154,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
- EDITTEXT IDC_PIM,112,174,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
- CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,179,97,10
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,158,177,112,8,NOT WS_VISIBLE
- CONTROL "&Display password",IDC_SHOW_PASSWORD_MO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,192,90,10
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE_HIDVOL_PROT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,205,90,10
- PUSHBUTTON "&Keyfiles...",IDC_KEYFILES_HIDVOL_PROT,204,201,60,14
- DEFPUSHBUTTON "OK",IDOK,211,7,60,14
- PUSHBUTTON "Cancel",IDCANCEL,211,24,60,14
- LTEXT "What is hidden volume protection?",IDC_LINK_HIDVOL_PROTECTION_INFO,16,220,247,10,SS_NOTIFY
- RTEXT "P&assword to hidden volume:\n(if empty, cache is used)",IDT_HIDDEN_PROT_PASSWD,15,132,91,17,0,WS_EX_RIGHT
- GROUPBOX "Hidden Volume Protection",IDT_HIDDEN_VOL_PROTECTION,6,101,265,136
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,15,155,91,17
- RTEXT "Volume PIM:",IDT_PIM,15,177,91,17,NOT WS_VISIBLE
- LTEXT "Volume Label in Windows:",IDT_VOLUME_LABEL,12,85,95,8
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,115,283,10
+ EDITTEXT IDC_PASSWORD_PROT_HIDVOL,134,133,167,14,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_PRF_ID,134,154,91,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ EDITTEXT IDC_PIM,134,174,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
+ CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,179,97,10
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,181,177,121,8,NOT WS_VISIBLE
+ CONTROL "&Display password",IDC_SHOW_PASSWORD_MO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,192,90,10
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE_HIDVOL_PROT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,205,90,10
+ PUSHBUTTON "&Keyfiles...",IDC_KEYFILES_HIDVOL_PROT,239,201,60,14
+ DEFPUSHBUTTON "OK",IDOK,246,7,60,14
+ PUSHBUTTON "Cancel",IDCANCEL,246,24,60,14
+ LTEXT "What is hidden volume protection?",IDC_LINK_HIDVOL_PROTECTION_INFO,16,220,279,10,SS_NOTIFY
+ RTEXT "P&assword to hidden volume:\n(if empty, cache is used)",IDT_HIDDEN_PROT_PASSWD,15,132,115,17,0,WS_EX_RIGHT
+ GROUPBOX "Hidden Volume Protection",IDT_HIDDEN_VOL_PROTECTION,6,101,299,136
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,15,155,115,17
+ RTEXT "Volume PIM:",IDT_PIM,15,177,115,17,NOT WS_VISIBLE
+ LTEXT "Volume Label in Windows:",IDT_VOLUME_LABEL,12,85,115,8
CONTROL "Only create virtual device without mounting on selected drive letter",IDC_DISABLE_MOUNT_MANAGER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,67,231,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,67,297,10
END
IDD_KEYFILES DIALOGEX 0, 0, 363, 251
@@ -375,6 +375,7 @@ BEGIN
IDD_MOUNT_OPTIONS, DIALOG
BEGIN
LEFTMARGIN, 7
+ RIGHTMARGIN, 309
TOPMARGIN, 7
BOTTOMMARGIN, 238
END
diff --git a/src/Common/Crypto.c b/src/Common/Crypto.c
index 501cd16..89ce250 100644
--- a/src/Common/Crypto.c
+++ b/src/Common/Crypto.c
@@ -1217,7 +1217,7 @@ BOOL IsHwEncryptionEnabled ()
#endif // !TC_WINDOWS_BOOT
-#ifndef TC_WINDOWS_BOOT
+#if !defined (TC_WINDOWS_BOOT) && !defined (_UEFI)
static BOOL CpuRngDisabled = TRUE;
static BOOL RamEncryptionEnabled = FALSE;
diff --git a/src/Common/Crypto.h b/src/Common/Crypto.h
index 600fee9..a31152f 100644
--- a/src/Common/Crypto.h
+++ b/src/Common/Crypto.h
@@ -208,10 +208,12 @@ typedef struct
# include "GostCipher.h"
# include "kuznyechik.h"
# include "Camellia.h"
+#if !defined (_UEFI)
# include "chachaRng.h"
# ifdef _WIN64
# include "t1ha.h"
# endif
+#endif
#else
# include "CamelliaSmall.h"
#endif
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c
index 64c1147..2439c10 100644
--- a/src/Common/Dlgcode.c
+++ b/src/Common/Dlgcode.c
@@ -188,6 +188,9 @@ BOOL MountVolumesAsSystemFavorite = FALSE;
BOOL FavoriteMountOnArrivalInProgress = FALSE;
BOOL MultipleMountOperationInProgress = FALSE;
+volatile BOOL NeedPeriodicDeviceListUpdate = FALSE;
+BOOL DisablePeriodicDeviceListUpdate = FALSE;
+
BOOL WaitDialogDisplaying = FALSE;
/* Handle to the device driver */
@@ -221,6 +224,9 @@ static std::vector<HostDevice> rawHostDeviceList;
/* Critical section used to ensure that only one thread at a time can create a secure desktop */
CRITICAL_SECTION csSecureDesktop;
+/* Boolean that indicates if our Secure Desktop is active and being used or not */
+BOOL bSecureDesktopOngoing = FALSE;
+
HINSTANCE hInst = NULL;
HCURSOR hCursor = NULL;
@@ -360,12 +366,12 @@ static WTHELPERGETPROVSIGNERFROMCHAIN WTHelperGetProvSignerFromChainFn = NULL;
static WTHELPERGETPROVCERTFROMCHAIN WTHelperGetProvCertFromChainFn = NULL;
static unsigned char gpbSha1CodeSignCertFingerprint[64] = {
- 0xCD, 0xF3, 0x05, 0xAD, 0xAE, 0xD3, 0x91, 0xF2, 0x0D, 0x95, 0x95, 0xAC,
- 0x76, 0x09, 0x35, 0x53, 0x11, 0x00, 0x4D, 0xDD, 0x56, 0x02, 0xBD, 0x09,
- 0x76, 0x57, 0xE1, 0xFA, 0xFA, 0xF4, 0x86, 0x09, 0x28, 0xA4, 0x0D, 0x1C,
- 0x68, 0xE7, 0x68, 0x31, 0xD3, 0xB6, 0x62, 0x9C, 0x75, 0x91, 0xAB, 0xB5,
- 0x6F, 0x1A, 0x75, 0xE7, 0x13, 0x2F, 0xF1, 0xB1, 0x14, 0xBF, 0x5F, 0x00,
- 0x40, 0xCE, 0x17, 0x6C
+ 0x64, 0x4C, 0x59, 0x15, 0xC5, 0xD4, 0x31, 0x2A, 0x73, 0x12, 0xC4, 0xA6,
+ 0xF2, 0x2C, 0xE8, 0x7E, 0xA8, 0x05, 0x53, 0xB5, 0x99, 0x9A, 0xF5, 0xD1,
+ 0xBE, 0x57, 0x56, 0x3D, 0x2F, 0xCA, 0x0B, 0x2F, 0xEF, 0x57, 0xFB, 0xA0,
+ 0x03, 0xEF, 0x66, 0x4D, 0xBF, 0xEE, 0x25, 0xBC, 0x22, 0xDD, 0x5C, 0x15,
+ 0x47, 0xD6, 0x6F, 0x57, 0x94, 0xBB, 0x65, 0xBC, 0x5C, 0xAA, 0xE8, 0x80,
+ 0xFB, 0xD0, 0xEF, 0x00
};
typedef HRESULT (WINAPI *SHGETKNOWNFOLDERPATH) (
@@ -11136,7 +11142,7 @@ void InconsistencyResolved (char *techInfo)
}
-void ReportUnexpectedState (char *techInfo)
+void ReportUnexpectedState (const char *techInfo)
{
wchar_t finalMsg[8024];
@@ -12556,6 +12562,8 @@ wstring FindDeviceByVolumeID (const BYTE volumeID [VOLUME_ID_SIZE], BOOL bFromSe
static std::vector<HostDevice> volumeIdCandidates;
EnterCriticalSection (&csMountableDevices);
+ if (!NeedPeriodicDeviceListUpdate)
+ UpdateMountableHostDeviceList ();
std::vector<HostDevice> newDevices = mountableDevices;
LeaveCriticalSection (&csMountableDevices);
@@ -13384,7 +13392,8 @@ BOOL DeleteDirectory (const wchar_t* szDirName)
static BOOL GenerateRandomString (HWND hwndDlg, LPTSTR szName, DWORD maxCharsCount)
{
BOOL bRet = FALSE;
- if (Randinit () != ERR_SUCCESS)
+ int alreadyInitialized = 0;
+ if (RandinitWithCheck (&alreadyInitialized) != ERR_SUCCESS)
{
handleError (hwndDlg, (CryptoAPILastError == ERROR_SUCCESS)? ERR_RAND_INIT_FAILED : ERR_CAPI_INIT_FAILED, SRC_POS);
}
@@ -13408,6 +13417,19 @@ static BOOL GenerateRandomString (HWND hwndDlg, LPTSTR szName, DWORD maxCharsCou
}
burn (indexes, maxCharsCount + 1);
free (indexes);
+
+ /* If RNG was not initialized before us, then stop it in order to
+ * stop the fast poll thread which consumes CPU. Next time a critical operation
+ * that requires RNG is performed, it will be initialized again.
+ *
+ * We do this because since the addition of secure desktop support, every time
+ * secure desktop is displayed, the RNG fast poll thread was started even if the
+ * user will never perform any critical operation that requires random bytes.
+ */
+ if (!alreadyInitialized)
+ {
+ RandStop (FALSE);
+ }
}
return bRet;
@@ -13575,75 +13597,79 @@ INT_PTR SecureDesktopDialogBoxParam(
INT_PTR retValue = 0;
BOOL bEffectiveUseSecureDesktop = bCmdUseSecureDesktopValid? bCmdUseSecureDesktop : bUseSecureDesktop;
- if (bEffectiveUseSecureDesktop && GenerateRandomString (hWndParent, szDesktopName, 64))
+ if (bEffectiveUseSecureDesktop)
{
- map<DWORD, BOOL> ctfmonBeforeList, ctfmonAfterList;
- DWORD desktopAccess = DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW | DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP | DESKTOP_WRITEOBJECTS;
- HDESK hSecureDesk;
+ EnterCriticalSection (&csSecureDesktop);
+ bSecureDesktopOngoing = TRUE;
+ finally_do ({ bSecureDesktopOngoing = FALSE; LeaveCriticalSection (&csSecureDesktop); });
- HDESK hInputDesk = NULL;
+ if (GenerateRandomString (hWndParent, szDesktopName, 64))
+ {
+ map<DWORD, BOOL> ctfmonBeforeList, ctfmonAfterList;
+ DWORD desktopAccess = DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW | DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP | DESKTOP_WRITEOBJECTS;
+ HDESK hSecureDesk;
- EnterCriticalSection (&csSecureDesktop);
- finally_do ({ LeaveCriticalSection (&csSecureDesktop); });
+ HDESK hInputDesk = NULL;
- // wait for the input desktop to be available before switching to
- // secure desktop. Under Windows 10, the user session can be started
- // in the background even before the user has authenticated and in this
- // case, we wait for the user to be really authenticated before starting
- // secure desktop mechanism
+ // wait for the input desktop to be available before switching to
+ // secure desktop. Under Windows 10, the user session can be started
+ // in the background even before the user has authenticated and in this
+ // case, we wait for the user to be really authenticated before starting
+ // secure desktop mechanism
- while (!(hInputDesk = OpenInputDesktop (0, TRUE, GENERIC_READ)))
- {
- Sleep (SECUREDESKTOP_MONOTIR_PERIOD);
- }
+ while (!(hInputDesk = OpenInputDesktop (0, TRUE, GENERIC_READ)))
+ {
+ Sleep (SECUREDESKTOP_MONOTIR_PERIOD);
+ }
- CloseDesktop (hInputDesk);
+ CloseDesktop (hInputDesk);
- // get the initial list of ctfmon.exe processes before creating new desktop
- GetCtfMonProcessIdList (ctfmonBeforeList);
-
- hSecureDesk = CreateDesktop (szDesktopName, NULL, NULL, 0, desktopAccess, NULL);
- if (hSecureDesk)
- {
- SecureDesktopThreadParam param;
-
- param.hDesk = hSecureDesk;
- param.szDesktopName = szDesktopName;
- param.hInstance = hInstance;
- param.lpTemplateName = lpTemplateName;
- param.lpDialogFunc = lpDialogFunc;
- param.dwInitParam = dwInitParam;
- param.retValue = 0;
+ // get the initial list of ctfmon.exe processes before creating new desktop
+ GetCtfMonProcessIdList (ctfmonBeforeList);
- HANDLE hThread = ::CreateThread (NULL, 0, SecureDesktopThread, (LPVOID) &param, 0, NULL);
- if (hThread)
+ hSecureDesk = CreateDesktop (szDesktopName, NULL, NULL, 0, desktopAccess, NULL);
+ if (hSecureDesk)
{
- WaitForSingleObject (hThread, INFINITE);
- CloseHandle (hThread);
+ SecureDesktopThreadParam param;
+
+ param.hDesk = hSecureDesk;
+ param.szDesktopName = szDesktopName;
+ param.hInstance = hInstance;
+ param.lpTemplateName = lpTemplateName;
+ param.lpDialogFunc = lpDialogFunc;
+ param.dwInitParam = dwInitParam;
+ param.retValue = 0;
+
+ HANDLE hThread = ::CreateThread (NULL, 0, SecureDesktopThread, (LPVOID) &param, 0, NULL);
+ if (hThread)
+ {
+ WaitForSingleObject (hThread, INFINITE);
+ CloseHandle (hThread);
- retValue = param.retValue;
- bSuccess = TRUE;
- }
+ retValue = param.retValue;
+ bSuccess = TRUE;
+ }
- CloseDesktop (hSecureDesk);
+ CloseDesktop (hSecureDesk);
- // get the new list of ctfmon.exe processes in order to find the ID of the
- // ctfmon.exe instance that corresponds to the desktop we create so that
- // we can kill it, otherwise it would remain running
- GetCtfMonProcessIdList (ctfmonAfterList);
+ // get the new list of ctfmon.exe processes in order to find the ID of the
+ // ctfmon.exe instance that corresponds to the desktop we create so that
+ // we can kill it, otherwise it would remain running
+ GetCtfMonProcessIdList (ctfmonAfterList);
- for (map<DWORD, BOOL>::iterator It = ctfmonAfterList.begin();
- It != ctfmonAfterList.end(); It++)
- {
- if (ctfmonBeforeList[It->first] != TRUE)
+ for (map<DWORD, BOOL>::iterator It = ctfmonAfterList.begin();
+ It != ctfmonAfterList.end(); It++)
{
- // Kill process
- KillProcess (It->first);
+ if (ctfmonBeforeList[It->first] != TRUE)
+ {
+ // Kill process
+ KillProcess (It->first);
+ }
}
}
- }
- burn (szDesktopName, sizeof (szDesktopName));
+ burn (szDesktopName, sizeof (szDesktopName));
+ }
}
if (!bSuccess)
diff --git a/src/Common/Dlgcode.h b/src/Common/Dlgcode.h
index 54475cb..f17ce22 100644
--- a/src/Common/Dlgcode.h
+++ b/src/Common/Dlgcode.h
@@ -124,6 +124,7 @@ extern BOOL bHideWaitingDialog;
extern BOOL bCmdHideWaitingDialog;
extern BOOL bCmdHideWaitingDialogValid;
extern BOOL bUseSecureDesktop;
+extern BOOL bSecureDesktopOngoing;
extern BOOL bUseLegacyMaxPasswordLength;
extern BOOL bCmdUseSecureDesktop;
extern BOOL bCmdUseSecureDesktopValid;
@@ -164,6 +165,9 @@ extern BOOL MountVolumesAsSystemFavorite;
extern BOOL FavoriteMountOnArrivalInProgress;
extern BOOL MultipleMountOperationInProgress;
+extern volatile BOOL NeedPeriodicDeviceListUpdate;
+extern BOOL DisablePeriodicDeviceListUpdate;
+
#ifndef SETUP
extern BOOL bLanguageSetInSetup;
#endif
@@ -469,7 +473,7 @@ BOOL CALLBACK CloseTCWindowsEnum( HWND hwnd, LPARAM lParam);
BOOL CALLBACK FindTCWindowEnum (HWND hwnd, LPARAM lParam);
BYTE *MapResource (wchar_t *resourceType, int resourceId, PDWORD size);
void InconsistencyResolved (char *msg);
-void ReportUnexpectedState (char *techInfo);
+void ReportUnexpectedState (const char *techInfo);
BOOL SelectMultipleFiles (HWND hwndDlg, const char *stringId, wchar_t *lpszFileName, size_t cbFileName, BOOL keepHistory);
BOOL SelectMultipleFilesNext (wchar_t *lpszFileName, size_t cbFileName);
void OpenOnlineHelp ();
diff --git a/src/Common/Language.xml b/src/Common/Language.xml
index fd5ee63..ad7637e 100644
--- a/src/Common/Language.xml
+++ b/src/Common/Language.xml
@@ -1435,6 +1435,8 @@
<entry lang="en" key="IDC_ENABLE_CPU_RNG">Use CPU hardware random generator as an additional source of entropy</entry>
<entry lang="en" key="IDC_USE_LEGACY_MAX_PASSWORD_LENGTH">Use legacy maximum password length (64 characters)</entry>
<entry lang="en" key="IDC_ENABLE_RAM_ENCRYPTION">Activate encryption of keys and passwords stored in RAM</entry>
+ <entry lang="en" key="IDT_BENCHMARK">Benchmark:</entry>
+ <entry lang="en" key="IDC_DISABLE_MOUNT_MANAGER">Only create virtual device without mounting on selected drive letter</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/Random.c b/src/Common/Random.c
index 1c6b953..09c55bf 100644
--- a/src/Common/Random.c
+++ b/src/Common/Random.c
@@ -94,14 +94,21 @@ HCRYPTPROV hCryptProv;
/* Init the random number generator, setup the hooks, and start the thread */
-int Randinit ()
+int RandinitWithCheck ( int* pAlreadyInitialized)
{
DWORD dwLastError = ERROR_SUCCESS;
if (GetMaxPkcs5OutSize() > RNG_POOL_SIZE)
TC_THROW_FATAL_EXCEPTION;
if(bRandDidInit)
+ {
+ if (pAlreadyInitialized)
+ *pAlreadyInitialized = 1;
return 0;
+ }
+
+ if (pAlreadyInitialized)
+ *pAlreadyInitialized = 0;
InitializeCriticalSection (&critRandProt);
@@ -153,6 +160,11 @@ error:
return 1;
}
+int Randinit ()
+{
+ return RandinitWithCheck (NULL);
+}
+
/* Close everything down, including the thread which is closed down by
setting a flag which eventually causes the thread function to exit */
void RandStop (BOOL freePool)
@@ -922,19 +934,6 @@ BOOL FastPoll (void)
return FALSE;
}
- /* use JitterEntropy library to get good quality random bytes based on CPU timing jitter */
- if (0 == jent_entropy_init ())
- {
- struct rand_data *ec = jent_entropy_collector_alloc (1, 0);
- if (ec)
- {
- ssize_t rndLen = jent_read_entropy (ec, (char*) buffer, sizeof (buffer));
- if (rndLen > 0)
- RandaddBuf (buffer, (int) rndLen);
- jent_entropy_collector_free (ec);
- }
- }
-
// use RDSEED or RDRAND from CPU as source of entropy if enabled
if ( IsCpuRngEnabled() &&
( (HasRDSEED() && RDSEED_getBytes (buffer, sizeof (buffer)))
diff --git a/src/Common/Random.h b/src/Common/Random.h
index 46fe59a..88dd041 100644
--- a/src/Common/Random.h
+++ b/src/Common/Random.h
@@ -35,6 +35,7 @@ extern "C" {
void RandAddInt ( unsigned __int32 x );
int Randinit ( void );
+int RandinitWithCheck ( int* pAlreadyInitialized);
void RandStop (BOOL freePool);
BOOL IsRandomNumberGeneratorStarted ();
void RandSetHashFunction ( int hash_algo_id );
diff --git a/src/Common/Tcdefs.h b/src/Common/Tcdefs.h
index 6ee154e..5147e18 100644
--- a/src/Common/Tcdefs.h
+++ b/src/Common/Tcdefs.h
@@ -54,22 +54,22 @@ extern unsigned short _rotl16(unsigned short value, unsigned char shift);
#define TC_APP_NAME "VeraCrypt"
+// Version displayed to user
+#define VERSION_STRING "1.24-Hotfix1-Preview"
+
#ifdef VC_EFI_CUSTOM_MODE
#define VERSION_STRING_SUFFIX "-CustomEFI"
#else
#define VERSION_STRING_SUFFIX ""
#endif
-// Version displayed to user
-#define VERSION_STRING "1.24-Beta5"
-
// Version number to compare against driver
#define VERSION_NUM 0x0124
// Release date
-#define TC_STR_RELEASE_DATE L"March 8, 2019"
+#define TC_STR_RELEASE_DATE L"October 20, 2019"
#define TC_RELEASE_DATE_YEAR 2019
-#define TC_RELEASE_DATE_MONTH 3
+#define TC_RELEASE_DATE_MONTH 10
#define BYTES_PER_KB 1024LL
#define BYTES_PER_MB 1048576LL
diff --git a/src/Common/libzip/NEWS.md b/src/Common/libzip/NEWS.md
index ab2be0a..9d8d2a3 100644
--- a/src/Common/libzip/NEWS.md
+++ b/src/Common/libzip/NEWS.md
@@ -1,3 +1,11 @@
+1.5.2 [2019-03-12]
+==================
+* Fix bug in AES encryption affecting certain file sizes
+* Keep file permissions when modifying zip archives
+* Support systems with small stack size.
+* Support mbed TLS as crypto backend.
+* Add nullability annotations.
+
1.5.1 [2018-04-11]
==================
diff --git a/src/Common/libzip/compat.h b/src/Common/libzip/compat.h
index 7604d96..f2e4c6c 100644
--- a/src/Common/libzip/compat.h
+++ b/src/Common/libzip/compat.h
@@ -3,7 +3,7 @@
/*
compat.h -- compatibility defines.
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/config.h b/src/Common/libzip/config.h
index d6134b4..4de10df 100644
--- a/src/Common/libzip/config.h
+++ b/src/Common/libzip/config.h
@@ -76,7 +76,7 @@
#define HAVE_SHARED
/* END DEFINES */
#define PACKAGE "libzip"
-#define VERSION "1.5.0a"
+#define VERSION "1.5.2"
#ifndef HAVE_SSIZE_T_LIBZIP
# if SIZE_T_LIBZIP == INT_LIBZIP
diff --git a/src/Common/libzip/zip.h b/src/Common/libzip/zip.h
index 2d83a99..b7cd60c 100644
--- a/src/Common/libzip/zip.h
+++ b/src/Common/libzip/zip.h
@@ -3,7 +3,7 @@
/*
zip.h -- exported declarations.
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -290,7 +290,7 @@ struct zip_error {
struct zip_stat {
zip_uint64_t valid; /* which fields have valid values */
- const char *name; /* name of the file */
+ const char * name; /* name of the file */
zip_uint64_t index; /* index within archive */
zip_uint64_t size; /* size of file (uncompressed) */
zip_uint64_t comp_size; /* size of file (compressed) */
@@ -302,7 +302,7 @@ struct zip_stat {
};
struct zip_buffer_fragment {
- zip_uint8_t *data;
+ zip_uint8_t * data;
zip_uint64_t length;
};
@@ -328,7 +328,7 @@ ZIP_EXTERN void zip_register_progress_callback(zip_t *, zip_progress_callback_t)
ZIP_EXTERN zip_int64_t zip_add(zip_t *, const char *, zip_source_t *); /* use zip_file_add */
ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *, const char *); /* use zip_dir_add */
-ZIP_EXTERN const char *zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
+ZIP_EXTERN const char * zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
ZIP_EXTERN int zip_get_num_files(zip_t *); /* use zip_get_num_entries instead */
ZIP_EXTERN int zip_rename(zip_t *, zip_uint64_t, const char *); /* use zip_file_rename */
ZIP_EXTERN int zip_replace(zip_t *, zip_uint64_t, zip_source_t *); /* use zip_file_replace */
@@ -344,7 +344,7 @@ ZIP_EXTERN int zip_delete(zip_t *, zip_uint64_t);
ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *, const char *, zip_flags_t);
ZIP_EXTERN void zip_discard(zip_t *);
-ZIP_EXTERN zip_error_t *zip_get_error(zip_t *);
+ZIP_EXTERN zip_error_t * zip_get_error(zip_t *);
ZIP_EXTERN void zip_error_clear(zip_t *);
ZIP_EXTERN int zip_error_code_zip(const zip_error_t *);
ZIP_EXTERN int zip_error_code_system(const zip_error_t *);
@@ -352,12 +352,12 @@ ZIP_EXTERN void zip_error_fini(zip_error_t *);
ZIP_EXTERN void zip_error_init(zip_error_t *);
ZIP_EXTERN void zip_error_init_with_code(zip_error_t *, int);
ZIP_EXTERN void zip_error_set(zip_error_t *, int, int);
-ZIP_EXTERN const char *zip_error_strerror(zip_error_t *);
+ZIP_EXTERN const char * zip_error_strerror(zip_error_t *);
ZIP_EXTERN int zip_error_system_type(const zip_error_t *);
ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *, void *, zip_uint64_t);
ZIP_EXTERN int zip_fclose(zip_file_t *);
-ZIP_EXTERN zip_t *zip_fdopen(int, int, int *);
+ZIP_EXTERN zip_t * zip_fdopen(int, int, int *);
ZIP_EXTERN zip_int64_t zip_file_add(zip_t *, const char *, zip_source_t *, zip_flags_t);
ZIP_EXTERN void zip_file_error_clear(zip_file_t *);
ZIP_EXTERN int zip_file_extra_field_delete(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
@@ -365,10 +365,10 @@ ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *, zip_uint64_t, zip_uint
ZIP_EXTERN int zip_file_extra_field_set(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t);
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *, zip_uint64_t, zip_flags_t);
ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
-ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
-ZIP_EXTERN const char *zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
-ZIP_EXTERN zip_error_t *zip_file_get_error(zip_file_t *);
+ZIP_EXTERN const zip_uint8_t * zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t * zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
+ZIP_EXTERN const char * zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
+ZIP_EXTERN zip_error_t * zip_file_get_error(zip_file_t *);
ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *);
ZIP_EXTERN int zip_file_rename(zip_t *, zip_uint64_t, const char *, zip_flags_t);
ZIP_EXTERN int zip_file_replace(zip_t *, zip_uint64_t, zip_source_t *, zip_flags_t);
@@ -376,22 +376,22 @@ ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uin
ZIP_EXTERN int zip_file_set_encryption(zip_t *, zip_uint64_t, zip_uint16_t, const char *);
ZIP_EXTERN int zip_file_set_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
ZIP_EXTERN int zip_file_set_mtime(zip_t *, zip_uint64_t, time_t, zip_flags_t);
-ZIP_EXTERN const char *zip_file_strerror(zip_file_t *);
-ZIP_EXTERN zip_file_t *zip_fopen(zip_t *, const char *, zip_flags_t);
-ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *);
-ZIP_EXTERN zip_file_t *zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t);
-ZIP_EXTERN zip_file_t *zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *);
+ZIP_EXTERN const char * zip_file_strerror(zip_file_t *);
+ZIP_EXTERN zip_file_t * zip_fopen(zip_t *, const char *, zip_flags_t);
+ZIP_EXTERN zip_file_t * zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *);
+ZIP_EXTERN zip_file_t * zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_file_t * zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *);
ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *, void *, zip_uint64_t);
ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t *, zip_int64_t, int);
ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t *);
-ZIP_EXTERN const char *zip_get_archive_comment(zip_t *, int *, zip_flags_t);
+ZIP_EXTERN const char * zip_get_archive_comment(zip_t *, int *, zip_flags_t);
ZIP_EXTERN int zip_get_archive_flag(zip_t *, zip_flags_t, zip_flags_t);
-ZIP_EXTERN const char *zip_get_name(zip_t *, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN const char * zip_get_name(zip_t *, zip_uint64_t, zip_flags_t);
ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t);
-ZIP_EXTERN const char *zip_libzip_version(void);
+ZIP_EXTERN const char * zip_libzip_version(void);
ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *, const char *, zip_flags_t);
-ZIP_EXTERN zip_t *zip_open(const char *, int, int *);
-ZIP_EXTERN zip_t *zip_open_from_source(zip_source_t *, int, zip_error_t *);
+ZIP_EXTERN zip_t * zip_open(const char *, int, int *);
+ZIP_EXTERN zip_t * zip_open_from_source(zip_source_t *, int, zip_error_t *);
ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t *, double, zip_progress_callback, void (*)(void *), void *);
ZIP_EXTERN int zip_set_archive_comment(zip_t *, const char *, zip_uint16_t);
ZIP_EXTERN int zip_set_archive_flag(zip_t *, zip_flags_t, int);
@@ -399,20 +399,20 @@ ZIP_EXTERN int zip_set_default_password(zip_t *, const char *);
ZIP_EXTERN int zip_set_file_compression(zip_t *, zip_uint64_t, zip_int32_t, zip_uint32_t);
ZIP_EXTERN int zip_source_begin_write(zip_source_t *);
ZIP_EXTERN int zip_source_begin_write_cloning(zip_source_t *, zip_uint64_t);
-ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t, int);
-ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *);
-ZIP_EXTERN zip_source_t *zip_source_buffer_fragment(zip_t *, const zip_buffer_fragment_t *, zip_uint64_t, int);
-ZIP_EXTERN zip_source_t *zip_source_buffer_fragment_create(const zip_buffer_fragment_t *, zip_uint64_t, int, zip_error_t *);
+ZIP_EXTERN zip_source_t * zip_source_buffer(zip_t *, const void *, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t * zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *);
+ZIP_EXTERN zip_source_t * zip_source_buffer_fragment(zip_t *, const zip_buffer_fragment_t *, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t * zip_source_buffer_fragment_create(const zip_buffer_fragment_t *, zip_uint64_t, int, zip_error_t *);
ZIP_EXTERN int zip_source_close(zip_source_t *);
ZIP_EXTERN int zip_source_commit_write(zip_source_t *);
-ZIP_EXTERN zip_error_t *zip_source_error(zip_source_t *);
-ZIP_EXTERN zip_source_t *zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
-ZIP_EXTERN zip_source_t *zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_error_t * zip_source_error(zip_source_t *);
+ZIP_EXTERN zip_source_t * zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t * zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t * zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t * zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *);
ZIP_EXTERN void zip_source_free(zip_source_t *);
-ZIP_EXTERN zip_source_t *zip_source_function(zip_t *, zip_source_callback, void *);
-ZIP_EXTERN zip_source_t *zip_source_function_create(zip_source_callback, void *, zip_error_t *);
+ZIP_EXTERN zip_source_t * zip_source_function(zip_t *, zip_source_callback , void *);
+ZIP_EXTERN zip_source_t * zip_source_function_create(zip_source_callback , void *, zip_error_t *);
ZIP_EXTERN int zip_source_is_deleted(zip_source_t *);
ZIP_EXTERN void zip_source_keep(zip_source_t *);
ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
@@ -434,11 +434,11 @@ ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_
ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *);
#endif
ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t);
-ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t * zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *);
ZIP_EXTERN int zip_stat_index(zip_t *, zip_uint64_t, zip_flags_t, zip_stat_t *);
-ZIP_EXTERN void zip_stat_init(zip_stat_t *);
-ZIP_EXTERN const char *zip_strerror(zip_t *);
+ZIP_EXTERN void zip_stat_init( zip_stat_t *);
+ZIP_EXTERN const char * zip_strerror(zip_t *);
ZIP_EXTERN int zip_unchange(zip_t *, zip_uint64_t);
ZIP_EXTERN int zip_unchange_all(zip_t *);
ZIP_EXTERN int zip_unchange_archive(zip_t *);
diff --git a/src/Common/libzip/zip_add.c b/src/Common/libzip/zip_add.c
index 69966d3..f09c9ff 100644
--- a/src/Common/libzip/zip_add.c
+++ b/src/Common/libzip/zip_add.c
@@ -1,6 +1,6 @@
/*
zip_add.c -- add file via callback function
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_add_dir.c b/src/Common/libzip/zip_add_dir.c
index a0026a7..6beb929 100644
--- a/src/Common/libzip/zip_add_dir.c
+++ b/src/Common/libzip/zip_add_dir.c
@@ -1,6 +1,6 @@
/*
zip_add_dir.c -- add directory
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_add_entry.c b/src/Common/libzip/zip_add_entry.c
index f1de445..45def7a 100644
--- a/src/Common/libzip/zip_add_entry.c
+++ b/src/Common/libzip/zip_add_entry.c
@@ -1,6 +1,6 @@
/*
zip_add_entry.c -- create and init struct zip_entry
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_algorithm_deflate.c b/src/Common/libzip/zip_algorithm_deflate.c
index 2a1c904..ba5ad43 100644
--- a/src/Common/libzip/zip_algorithm_deflate.c
+++ b/src/Common/libzip/zip_algorithm_deflate.c
@@ -1,6 +1,6 @@
/*
zip_algorithm_deflate.c -- deflate (de)compression routines
- Copyright (C) 2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_buffer.c b/src/Common/libzip/zip_buffer.c
index 96010b2..37977f0 100644
--- a/src/Common/libzip/zip_buffer.c
+++ b/src/Common/libzip/zip_buffer.c
@@ -1,6 +1,6 @@
/*
zip_buffer.c -- bounds checked access to memory buffer
- Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_close.c b/src/Common/libzip/zip_close.c
index c46e1b3..2657226 100644
--- a/src/Common/libzip/zip_close.c
+++ b/src/Common/libzip/zip_close.c
@@ -1,6 +1,6 @@
/*
zip_close.c -- close zip archive and update changes
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -520,17 +520,24 @@ add_data(zip_t *za, zip_source_t *src, zip_dirent_t *de) {
static int
copy_data(zip_t *za, zip_uint64_t len) {
- zip_uint8_t buf[BUFSIZE];
+ DEFINE_BYTE_ARRAY(buf, BUFSIZE);
size_t n;
double total = (double)len;
+ if (!byte_array_init(buf, BUFSIZE)) {
+ zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
+ return -1;
+ }
+
while (len > 0) {
- n = len > sizeof(buf) ? sizeof(buf) : len;
+ n = len > BUFSIZE ? BUFSIZE : len;
if (_zip_read(za->src, buf, n, &za->error) < 0) {
+ byte_array_fini(buf);
return -1;
}
if (_zip_write(za, buf, n) < 0) {
+ byte_array_fini(buf);
return -1;
}
@@ -539,13 +546,14 @@ copy_data(zip_t *za, zip_uint64_t len) {
_zip_progress_update(za->progress, (total - (double)len) / total);
}
+ byte_array_fini(buf);
return 0;
}
static int
copy_source(zip_t *za, zip_source_t *src, zip_int64_t data_length) {
- zip_uint8_t buf[BUFSIZE];
+ DEFINE_BYTE_ARRAY(buf, BUFSIZE);
zip_int64_t n, current;
int ret;
@@ -554,14 +562,19 @@ copy_source(zip_t *za, zip_source_t *src, zip_int64_t data_length) {
return -1;
}
+ if (!byte_array_init(buf, BUFSIZE)) {
+ zip_error_set(&za->error, ZIP_ER_MEMORY, 0);
+ return -1;
+ }
+
ret = 0;
current = 0;
- while ((n = zip_source_read(src, buf, sizeof(buf))) > 0) {
+ while ((n = zip_source_read(src, buf, BUFSIZE)) > 0) {
if (_zip_write(za, buf, (zip_uint64_t)n) < 0) {
ret = -1;
break;
}
- if (n == sizeof(buf) && za->progress && data_length > 0) {
+ if (n == BUFSIZE && za->progress && data_length > 0) {
current += n;
_zip_progress_update(za->progress, (double)current / (double)data_length);
}
@@ -572,6 +585,8 @@ copy_source(zip_t *za, zip_source_t *src, zip_int64_t data_length) {
ret = -1;
}
+ byte_array_fini(buf);
+
zip_source_close(src);
return ret;
diff --git a/src/Common/libzip/zip_delete.c b/src/Common/libzip/zip_delete.c
index ae8f5a6..458a1b8 100644
--- a/src/Common/libzip/zip_delete.c
+++ b/src/Common/libzip/zip_delete.c
@@ -1,6 +1,6 @@
/*
zip_delete.c -- delete file from zip archive
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_dir_add.c b/src/Common/libzip/zip_dir_add.c
index 236b439..46c76cf 100644
--- a/src/Common/libzip/zip_dir_add.c
+++ b/src/Common/libzip/zip_dir_add.c
@@ -1,6 +1,6 @@
/*
zip_dir_add.c -- add directory
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_dirent.c b/src/Common/libzip/zip_dirent.c
index a6dbfac..4dcb339 100644
--- a/src/Common/libzip/zip_dirent.c
+++ b/src/Common/libzip/zip_dirent.c
@@ -1,6 +1,6 @@
/*
zip_dirent.c -- read directory entry (local or central), clean dirent
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -1069,6 +1069,12 @@ _zip_u2d_time(time_t intime, zip_uint16_t *dtime, zip_uint16_t *ddate) {
struct tm *tm;
tm = localtime(&intime);
+ if (tm == NULL) {
+ /* if localtime() fails, return an arbitrary date (1980-01-01 00:00:00) */
+ *ddate = (1 << 5) + 1;
+ *dtime = 0;
+ return;
+ }
if (tm->tm_year < 80) {
tm->tm_year = 80;
}
diff --git a/src/Common/libzip/zip_discard.c b/src/Common/libzip/zip_discard.c
index 5bbf8d6..94972cf 100644
--- a/src/Common/libzip/zip_discard.c
+++ b/src/Common/libzip/zip_discard.c
@@ -1,6 +1,6 @@
/*
zip_discard.c -- discard and free struct zip
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_entry.c b/src/Common/libzip/zip_entry.c
index f083412..55f6458 100644
--- a/src/Common/libzip/zip_entry.c
+++ b/src/Common/libzip/zip_entry.c
@@ -1,6 +1,6 @@
/*
zip_entry.c -- struct zip_entry helper functions
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error.c b/src/Common/libzip/zip_error.c
index 9ccaf91..e05ae50 100644
--- a/src/Common/libzip/zip_error.c
+++ b/src/Common/libzip/zip_error.c
@@ -1,6 +1,6 @@
/*
zip_error.c -- zip_error_t helper functions
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error_clear.c b/src/Common/libzip/zip_error_clear.c
index 2cce450..6b3a8da 100644
--- a/src/Common/libzip/zip_error_clear.c
+++ b/src/Common/libzip/zip_error_clear.c
@@ -1,6 +1,6 @@
/*
zip_error_clear.c -- clear zip error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error_get.c b/src/Common/libzip/zip_error_get.c
index 1f02ed3..12341d1 100644
--- a/src/Common/libzip/zip_error_get.c
+++ b/src/Common/libzip/zip_error_get.c
@@ -1,6 +1,6 @@
/*
zip_error_get.c -- get zip error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error_get_sys_type.c b/src/Common/libzip/zip_error_get_sys_type.c
index d7a594e..80bfc0c 100644
--- a/src/Common/libzip/zip_error_get_sys_type.c
+++ b/src/Common/libzip/zip_error_get_sys_type.c
@@ -1,6 +1,6 @@
/*
zip_error_get_sys_type.c -- return type of system error code
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error_strerror.c b/src/Common/libzip/zip_error_strerror.c
index 6baf900..0f650b5 100644
--- a/src/Common/libzip/zip_error_strerror.c
+++ b/src/Common/libzip/zip_error_strerror.c
@@ -1,6 +1,6 @@
/*
zip_error_sterror.c -- get string representation of struct zip_error
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_error_to_str.c b/src/Common/libzip/zip_error_to_str.c
index 518c0e5..bf51569 100644
--- a/src/Common/libzip/zip_error_to_str.c
+++ b/src/Common/libzip/zip_error_to_str.c
@@ -1,6 +1,6 @@
/*
zip_error_to_str.c -- get string representation of zip error code
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_extra_field.c b/src/Common/libzip/zip_extra_field.c
index 42f97d0..a17e491 100644
--- a/src/Common/libzip/zip_extra_field.c
+++ b/src/Common/libzip/zip_extra_field.c
@@ -1,6 +1,6 @@
/*
zip_extra_field.c -- manipulate extra fields
- Copyright (C) 2012-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_extra_field_api.c b/src/Common/libzip/zip_extra_field_api.c
index 469abd2..31808de 100644
--- a/src/Common/libzip/zip_extra_field_api.c
+++ b/src/Common/libzip/zip_extra_field_api.c
@@ -1,6 +1,6 @@
/*
zip_extra_field_api.c -- public extra fields API functions
- Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fclose.c b/src/Common/libzip/zip_fclose.c
index be98cc0..1c69a96 100644
--- a/src/Common/libzip/zip_fclose.c
+++ b/src/Common/libzip/zip_fclose.c
@@ -1,6 +1,6 @@
/*
zip_fclose.c -- close file in zip archive
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fdopen.c b/src/Common/libzip/zip_fdopen.c
index b1fc22b..3270935 100644
--- a/src/Common/libzip/zip_fdopen.c
+++ b/src/Common/libzip/zip_fdopen.c
@@ -1,6 +1,6 @@
/*
zip_fdopen.c -- open read-only archive from file descriptor
- Copyright (C) 2009-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -67,12 +67,14 @@ zip_fdopen(int fd_orig, int _flags, int *zep) {
zip_error_init(&error);
if ((src = zip_source_filep_create(fp, 0, -1, &error)) == NULL) {
+ fclose(fp);
_zip_set_open_error(zep, &error, 0);
zip_error_fini(&error);
return NULL;
}
if ((za = zip_open_from_source(src, _flags, &error)) == NULL) {
+ zip_source_free(src);
_zip_set_open_error(zep, &error, 0);
zip_error_fini(&error);
return NULL;
diff --git a/src/Common/libzip/zip_file_add.c b/src/Common/libzip/zip_file_add.c
index ec8ef06..c2c13d6 100644
--- a/src/Common/libzip/zip_file_add.c
+++ b/src/Common/libzip/zip_file_add.c
@@ -1,6 +1,6 @@
/*
zip_file_add.c -- add file via callback function
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_error_clear.c b/src/Common/libzip/zip_file_error_clear.c
index 666beca..2e7dcea 100644
--- a/src/Common/libzip/zip_file_error_clear.c
+++ b/src/Common/libzip/zip_file_error_clear.c
@@ -1,6 +1,6 @@
/*
zip_file_error_clear.c -- clear zip file error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_error_get.c b/src/Common/libzip/zip_file_error_get.c
index d7e0191..1d13807 100644
--- a/src/Common/libzip/zip_file_error_get.c
+++ b/src/Common/libzip/zip_file_error_get.c
@@ -1,6 +1,6 @@
/*
zip_file_error_get.c -- get zip file error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_get_comment.c b/src/Common/libzip/zip_file_get_comment.c
index 478f3d7..ad944aa 100644
--- a/src/Common/libzip/zip_file_get_comment.c
+++ b/src/Common/libzip/zip_file_get_comment.c
@@ -1,6 +1,6 @@
/*
zip_file_get_comment.c -- get file comment
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_get_external_attributes.c b/src/Common/libzip/zip_file_get_external_attributes.c
index e3ede74..e2e5535 100644
--- a/src/Common/libzip/zip_file_get_external_attributes.c
+++ b/src/Common/libzip/zip_file_get_external_attributes.c
@@ -1,6 +1,6 @@
/*
zip_file_get_external_attributes.c -- get opsys/external attributes
- Copyright (C) 2013-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2013-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_get_offset.c b/src/Common/libzip/zip_file_get_offset.c
index 877c179..858a78a 100644
--- a/src/Common/libzip/zip_file_get_offset.c
+++ b/src/Common/libzip/zip_file_get_offset.c
@@ -1,6 +1,6 @@
/*
zip_file_get_offset.c -- get offset of file data in archive.
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_rename.c b/src/Common/libzip/zip_file_rename.c
index 1eb7fac..cc42dfc 100644
--- a/src/Common/libzip/zip_file_rename.c
+++ b/src/Common/libzip/zip_file_rename.c
@@ -1,6 +1,6 @@
/*
zip_file_rename.c -- rename file in zip archive
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_replace.c b/src/Common/libzip/zip_file_replace.c
index e42f5cd..70b379a 100644
--- a/src/Common/libzip/zip_file_replace.c
+++ b/src/Common/libzip/zip_file_replace.c
@@ -1,6 +1,6 @@
/*
zip_file_replace.c -- replace file via callback function
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_set_comment.c b/src/Common/libzip/zip_file_set_comment.c
index 964486b..ae6b602 100644
--- a/src/Common/libzip/zip_file_set_comment.c
+++ b/src/Common/libzip/zip_file_set_comment.c
@@ -1,6 +1,6 @@
/*
zip_file_set_comment.c -- set comment for file in archive
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_set_external_attributes.c b/src/Common/libzip/zip_file_set_external_attributes.c
index cd46e88..c412f27 100644
--- a/src/Common/libzip/zip_file_set_external_attributes.c
+++ b/src/Common/libzip/zip_file_set_external_attributes.c
@@ -1,6 +1,6 @@
/*
zip_file_set_external_attributes.c -- set external attributes for entry
- Copyright (C) 2013-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2013-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_set_mtime.c b/src/Common/libzip/zip_file_set_mtime.c
index 15316d3..f8d6c20 100644
--- a/src/Common/libzip/zip_file_set_mtime.c
+++ b/src/Common/libzip/zip_file_set_mtime.c
@@ -1,6 +1,6 @@
/*
zip_file_set_mtime.c -- set modification time of entry.
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_file_strerror.c b/src/Common/libzip/zip_file_strerror.c
index fd4008a..189c556 100644
--- a/src/Common/libzip/zip_file_strerror.c
+++ b/src/Common/libzip/zip_file_strerror.c
@@ -1,6 +1,6 @@
/*
zip_file_sterror.c -- get string representation of zip file error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_filerange_crc.c b/src/Common/libzip/zip_filerange_crc.c
index 6c4be27..33bf5d8 100644
--- a/src/Common/libzip/zip_filerange_crc.c
+++ b/src/Common/libzip/zip_filerange_crc.c
@@ -1,6 +1,6 @@
/*
zip_filerange_crc.c -- compute CRC32 for a range of a file
- Copyright (C) 2008-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2008-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -39,7 +39,8 @@
int
_zip_filerange_crc(zip_source_t *src, zip_uint64_t start, zip_uint64_t len, uLong *crcp, zip_error_t *error) {
- Bytef buf[BUFSIZE];
+ DEFINE_BYTE_ARRAY(buf, BUFSIZE);
+
zip_int64_t n;
*crcp = crc32(0L, Z_NULL, 0);
@@ -54,14 +55,21 @@ _zip_filerange_crc(zip_source_t *src, zip_uint64_t start, zip_uint64_t len, uLon
return -1;
}
+ if (!byte_array_init(buf, BUFSIZE)) {
+ zip_error_set(error, ZIP_ER_MEMORY, 0);
+ return -1;
+ }
+
while (len > 0) {
n = (zip_int64_t)(len > BUFSIZE ? BUFSIZE : len);
if ((n = zip_source_read(src, buf, (zip_uint64_t)n)) < 0) {
_zip_error_set_from_source(error, src);
+ byte_array_fini(buf);
return -1;
}
if (n == 0) {
zip_error_set(error, ZIP_ER_EOF, 0);
+ byte_array_fini(buf);
return -1;
}
@@ -70,5 +78,7 @@ _zip_filerange_crc(zip_source_t *src, zip_uint64_t start, zip_uint64_t len, uLon
len -= (zip_uint64_t)n;
}
+ byte_array_fini(buf);
+
return 0;
}
diff --git a/src/Common/libzip/zip_fopen.c b/src/Common/libzip/zip_fopen.c
index cb45cc2..4ef76ba 100644
--- a/src/Common/libzip/zip_fopen.c
+++ b/src/Common/libzip/zip_fopen.c
@@ -1,6 +1,6 @@
/*
zip_fopen.c -- open file in zip archive for reading
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fopen_encrypted.c b/src/Common/libzip/zip_fopen_encrypted.c
index abcf6ac..47cd377 100644
--- a/src/Common/libzip/zip_fopen_encrypted.c
+++ b/src/Common/libzip/zip_fopen_encrypted.c
@@ -1,6 +1,6 @@
/*
zip_fopen_encrypted.c -- open file for reading with password
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fopen_index.c b/src/Common/libzip/zip_fopen_index.c
index 7dcf1f7..5f0dc2a 100644
--- a/src/Common/libzip/zip_fopen_index.c
+++ b/src/Common/libzip/zip_fopen_index.c
@@ -1,6 +1,6 @@
/*
zip_fopen_index.c -- open file in zip archive for reading by index
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fopen_index_encrypted.c b/src/Common/libzip/zip_fopen_index_encrypted.c
index 6b32008..4d4aee3 100644
--- a/src/Common/libzip/zip_fopen_index_encrypted.c
+++ b/src/Common/libzip/zip_fopen_index_encrypted.c
@@ -1,6 +1,6 @@
/*
zip_fopen_index_encrypted.c -- open file for reading by index w/ password
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_fread.c b/src/Common/libzip/zip_fread.c
index be46cf0..3020a16 100644
--- a/src/Common/libzip/zip_fread.c
+++ b/src/Common/libzip/zip_fread.c
@@ -1,6 +1,6 @@
/*
zip_fread.c -- read from file
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_archive_comment.c b/src/Common/libzip/zip_get_archive_comment.c
index a3d5a19..c51148d 100644
--- a/src/Common/libzip/zip_get_archive_comment.c
+++ b/src/Common/libzip/zip_get_archive_comment.c
@@ -1,6 +1,6 @@
/*
zip_get_archive_comment.c -- get archive comment
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_archive_flag.c b/src/Common/libzip/zip_get_archive_flag.c
index 67fe4f8..1aaca72 100644
--- a/src/Common/libzip/zip_get_archive_flag.c
+++ b/src/Common/libzip/zip_get_archive_flag.c
@@ -1,6 +1,6 @@
/*
zip_get_archive_flag.c -- get archive global flag
- Copyright (C) 2008-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2008-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_encryption_implementation.c b/src/Common/libzip/zip_get_encryption_implementation.c
index ba459d4..07e4316 100644
--- a/src/Common/libzip/zip_get_encryption_implementation.c
+++ b/src/Common/libzip/zip_get_encryption_implementation.c
@@ -1,6 +1,6 @@
/*
zip_get_encryption_implementation.c -- get encryption implementation
- Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_file_comment.c b/src/Common/libzip/zip_get_file_comment.c
index 44e5917..6e85a58 100644
--- a/src/Common/libzip/zip_get_file_comment.c
+++ b/src/Common/libzip/zip_get_file_comment.c
@@ -1,6 +1,6 @@
/*
zip_get_file_comment.c -- get file comment
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_name.c b/src/Common/libzip/zip_get_name.c
index d42f14a..2ac005a 100644
--- a/src/Common/libzip/zip_get_name.c
+++ b/src/Common/libzip/zip_get_name.c
@@ -1,6 +1,6 @@
/*
zip_get_name.c -- get filename for a file in zip file
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_num_entries.c b/src/Common/libzip/zip_get_num_entries.c
index 78f30dc..99dfc7a 100644
--- a/src/Common/libzip/zip_get_num_entries.c
+++ b/src/Common/libzip/zip_get_num_entries.c
@@ -1,6 +1,6 @@
/*
zip_get_num_entries.c -- get number of entries in archive
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_get_num_files.c b/src/Common/libzip/zip_get_num_files.c
index 3ccf400..b6e910e 100644
--- a/src/Common/libzip/zip_get_num_files.c
+++ b/src/Common/libzip/zip_get_num_files.c
@@ -1,6 +1,6 @@
/*
zip_get_num_files.c -- get number of files in archive
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_hash.c b/src/Common/libzip/zip_hash.c
index 0d9e996..7288453 100644
--- a/src/Common/libzip/zip_hash.c
+++ b/src/Common/libzip/zip_hash.c
@@ -1,6 +1,6 @@
/*
zip_hash.c -- hash table string -> uint64
- Copyright (C) 2015-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2015-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_io_util.c b/src/Common/libzip/zip_io_util.c
index 77be8f0..53f4437 100644
--- a/src/Common/libzip/zip_io_util.c
+++ b/src/Common/libzip/zip_io_util.c
@@ -1,6 +1,6 @@
/*
zip_io_util.c -- I/O helper functions
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_memdup.c b/src/Common/libzip/zip_memdup.c
index 9d7949d..d604408 100644
--- a/src/Common/libzip/zip_memdup.c
+++ b/src/Common/libzip/zip_memdup.c
@@ -1,6 +1,6 @@
/*
zip_memdup.c -- internal zip function, "strdup" with len
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_name_locate.c b/src/Common/libzip/zip_name_locate.c
index 6713cab..37b1ffe 100644
--- a/src/Common/libzip/zip_name_locate.c
+++ b/src/Common/libzip/zip_name_locate.c
@@ -1,6 +1,6 @@
/*
zip_name_locate.c -- get index by name
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_new.c b/src/Common/libzip/zip_new.c
index 19155f4..1cd614d 100644
--- a/src/Common/libzip/zip_new.c
+++ b/src/Common/libzip/zip_new.c
@@ -1,6 +1,6 @@
/*
zip_new.c -- create and init struct zip
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_open.c b/src/Common/libzip/zip_open.c
index 1886c9d..593bfde 100644
--- a/src/Common/libzip/zip_open.c
+++ b/src/Common/libzip/zip_open.c
@@ -1,6 +1,6 @@
/*
zip_open.c -- open zip archive by name
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -177,7 +177,6 @@ _zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error) {
/* treat empty files as empty archives */
if (len == 0) {
if ((za = _zip_allocate_new(src, flags, error)) == NULL) {
- zip_source_free(src);
return NULL;
}
diff --git a/src/Common/libzip/zip_progress.c b/src/Common/libzip/zip_progress.c
index 46c8bb8..9b11694 100644
--- a/src/Common/libzip/zip_progress.c
+++ b/src/Common/libzip/zip_progress.c
@@ -1,6 +1,6 @@
/*
zip_progress.c -- progress reporting
- Copyright (C) 2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_rename.c b/src/Common/libzip/zip_rename.c
index 0cc81ed..4fdf636 100644
--- a/src/Common/libzip/zip_rename.c
+++ b/src/Common/libzip/zip_rename.c
@@ -1,6 +1,6 @@
/*
zip_rename.c -- rename file in zip archive
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_replace.c b/src/Common/libzip/zip_replace.c
index 34b922e..2e982af 100644
--- a/src/Common/libzip/zip_replace.c
+++ b/src/Common/libzip/zip_replace.c
@@ -1,6 +1,6 @@
/*
zip_replace.c -- replace file via callback function
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_archive_comment.c b/src/Common/libzip/zip_set_archive_comment.c
index 221fde5..166a2c0 100644
--- a/src/Common/libzip/zip_set_archive_comment.c
+++ b/src/Common/libzip/zip_set_archive_comment.c
@@ -1,6 +1,6 @@
/*
zip_set_archive_comment.c -- set archive comment
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_archive_flag.c b/src/Common/libzip/zip_set_archive_flag.c
index 6fb1131..facf614 100644
--- a/src/Common/libzip/zip_set_archive_flag.c
+++ b/src/Common/libzip/zip_set_archive_flag.c
@@ -1,6 +1,6 @@
/*
zip_get_archive_flag.c -- set archive global flag
- Copyright (C) 2008-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2008-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_default_password.c b/src/Common/libzip/zip_set_default_password.c
index 33c1754..8081657 100644
--- a/src/Common/libzip/zip_set_default_password.c
+++ b/src/Common/libzip/zip_set_default_password.c
@@ -1,6 +1,6 @@
/*
zip_set_default_password.c -- set default password for decryption
- Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_file_comment.c b/src/Common/libzip/zip_set_file_comment.c
index 93594f0..e4e0331 100644
--- a/src/Common/libzip/zip_set_file_comment.c
+++ b/src/Common/libzip/zip_set_file_comment.c
@@ -1,6 +1,6 @@
/*
zip_set_file_comment.c -- set comment for file in archive
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_file_compression.c b/src/Common/libzip/zip_set_file_compression.c
index 6de2d40..054dd1f 100644
--- a/src/Common/libzip/zip_set_file_compression.c
+++ b/src/Common/libzip/zip_set_file_compression.c
@@ -1,6 +1,6 @@
/*
zip_set_file_compression.c -- set compression for file in archive
- Copyright (C) 2012-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_set_name.c b/src/Common/libzip/zip_set_name.c
index 33fb4bc..aa1dd8e 100644
--- a/src/Common/libzip/zip_set_name.c
+++ b/src/Common/libzip/zip_set_name.c
@@ -1,6 +1,6 @@
/*
zip_set_name.c -- rename helper function
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_begin_write.c b/src/Common/libzip/zip_source_begin_write.c
index 0b010df..a8b90b5 100644
--- a/src/Common/libzip/zip_source_begin_write.c
+++ b/src/Common/libzip/zip_source_begin_write.c
@@ -1,6 +1,6 @@
/*
zip_source_begin_write.c -- start a new file for writing
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_begin_write_cloning.c b/src/Common/libzip/zip_source_begin_write_cloning.c
index 8c4cf71..b38de04 100644
--- a/src/Common/libzip/zip_source_begin_write_cloning.c
+++ b/src/Common/libzip/zip_source_begin_write_cloning.c
@@ -1,6 +1,6 @@
/*
zip_source_begin_write_cloning.c -- clone part of file for writing
- Copyright (C) 2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_buffer.c b/src/Common/libzip/zip_source_buffer.c
index d2bc8ad..119bc02 100644
--- a/src/Common/libzip/zip_source_buffer.c
+++ b/src/Common/libzip/zip_source_buffer.c
@@ -1,6 +1,6 @@
/*
zip_source_buffer.c -- create zip data source from buffer
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -389,8 +389,8 @@ buffer_grow_fragments(buffer_t *buffer, zip_uint64_t capacity, zip_error_t *erro
}
if ((fragments = realloc(buffer->fragments, sizeof(buffer->fragments[0]) * capacity)) == NULL) {
- zip_error_set(error, ZIP_ER_MEMORY, 0);
- return false;
+ zip_error_set(error, ZIP_ER_MEMORY, 0);
+ return false;
}
buffer->fragments = fragments;
if ((offsets = realloc(buffer->fragment_offsets, sizeof(buffer->fragment_offsets[0]) * (capacity + 1))) == NULL) {
diff --git a/src/Common/libzip/zip_source_call.c b/src/Common/libzip/zip_source_call.c
index ec54b92..3f374fc 100644
--- a/src/Common/libzip/zip_source_call.c
+++ b/src/Common/libzip/zip_source_call.c
@@ -1,6 +1,6 @@
/*
zip_source_call.c -- invoke callback command on zip_source
- Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_close.c b/src/Common/libzip/zip_source_close.c
index cbc3bea..7916550 100644
--- a/src/Common/libzip/zip_source_close.c
+++ b/src/Common/libzip/zip_source_close.c
@@ -1,6 +1,6 @@
/*
zip_source_close.c -- close zip_source (stop reading)
- Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_commit_write.c b/src/Common/libzip/zip_source_commit_write.c
index 26c3dd7..67881f0 100644
--- a/src/Common/libzip/zip_source_commit_write.c
+++ b/src/Common/libzip/zip_source_commit_write.c
@@ -1,6 +1,6 @@
/*
zip_source_commit_write.c -- commit changes to file
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_compress.c b/src/Common/libzip/zip_source_compress.c
index a1ac3e0..d2ae220 100644
--- a/src/Common/libzip/zip_source_compress.c
+++ b/src/Common/libzip/zip_source_compress.c
@@ -1,6 +1,6 @@
/*
zip_source_compress.c -- (de)compression routines
- Copyright (C) 2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_crc.c b/src/Common/libzip/zip_source_crc.c
index 8797dfe..e16f929 100644
--- a/src/Common/libzip/zip_source_crc.c
+++ b/src/Common/libzip/zip_source_crc.c
@@ -1,6 +1,6 @@
/*
zip_source_crc.c -- pass-through source that calculates CRC32 and size
- Copyright (C) 2009-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -148,7 +148,6 @@ crc_read(zip_source_t *src, void *_ctx, void *data, zip_uint64_t len, zip_source
st->comp_method = ZIP_CM_STORE;
st->encryption_method = ZIP_EM_NONE;
st->valid |= ZIP_STAT_SIZE | ZIP_STAT_CRC | ZIP_STAT_COMP_SIZE | ZIP_STAT_COMP_METHOD | ZIP_STAT_ENCRYPTION_METHOD;
- ;
}
return 0;
}
diff --git a/src/Common/libzip/zip_source_error.c b/src/Common/libzip/zip_source_error.c
index 5145169..1e0e0d4 100644
--- a/src/Common/libzip/zip_source_error.c
+++ b/src/Common/libzip/zip_source_error.c
@@ -1,6 +1,6 @@
/*
zip_source_error.c -- get last error from zip_source
- Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_file.c b/src/Common/libzip/zip_source_file.c
index 77376f4..8714785 100644
--- a/src/Common/libzip/zip_source_file.c
+++ b/src/Common/libzip/zip_source_file.c
@@ -1,6 +1,6 @@
/*
zip_source_file.c -- create data source from file
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_filep.c b/src/Common/libzip/zip_source_filep.c
index 9fc9a01..cb3d151 100644
--- a/src/Common/libzip/zip_source_filep.c
+++ b/src/Common/libzip/zip_source_filep.c
@@ -1,6 +1,6 @@
/*
zip_source_filep.c -- create data source from FILE *
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -34,6 +34,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/types.h>
#include <sys/stat.h>
#include "zipint.h"
@@ -412,21 +413,27 @@ read_file(void *state, void *data, zip_uint64_t len, zip_source_cmd_t cmd) {
#endif
case ZIP_SOURCE_COMMIT_WRITE: {
- mode_t mask;
+ mode_t mode;
+ struct stat st;
if (fclose(ctx->fout) < 0) {
ctx->fout = NULL;
zip_error_set(&ctx->error, ZIP_ER_WRITE, errno);
}
ctx->fout = NULL;
+ if (stat(ctx->fname, &st) == 0) {
+ mode = st.st_mode;
+ } else {
+ mode_t mask = umask(022);
+ umask(mask);
+ mode = 0666 & ~mask;
+ }
if (rename(ctx->tmpname, ctx->fname) < 0) {
zip_error_set(&ctx->error, ZIP_ER_RENAME, errno);
return -1;
}
- mask = umask(022);
- umask(mask);
/* not much we can do if chmod fails except make the whole commit fail */
- (void)chmod(ctx->fname, 0666 & ~mask);
+ (void)chmod(ctx->fname, mode);
free(ctx->tmpname);
ctx->tmpname = NULL;
return 0;
diff --git a/src/Common/libzip/zip_source_free.c b/src/Common/libzip/zip_source_free.c
index 7cb3525..dd3c6df 100644
--- a/src/Common/libzip/zip_source_free.c
+++ b/src/Common/libzip/zip_source_free.c
@@ -1,6 +1,6 @@
/*
zip_source_free.c -- free zip data source
- Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_function.c b/src/Common/libzip/zip_source_function.c
index 56eb1c5..c9730c9 100644
--- a/src/Common/libzip/zip_source_function.c
+++ b/src/Common/libzip/zip_source_function.c
@@ -1,6 +1,6 @@
/*
zip_source_function.c -- create zip data source from callback function
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_get_compression_flags.c b/src/Common/libzip/zip_source_get_compression_flags.c
index e33e43b..a9442aa 100644
--- a/src/Common/libzip/zip_source_get_compression_flags.c
+++ b/src/Common/libzip/zip_source_get_compression_flags.c
@@ -1,6 +1,6 @@
/*
zip_source_get_compression_flags.c -- get compression flags for entry
- Copyright (C) 2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_is_deleted.c b/src/Common/libzip/zip_source_is_deleted.c
index 1e5d343..090a67b 100644
--- a/src/Common/libzip/zip_source_is_deleted.c
+++ b/src/Common/libzip/zip_source_is_deleted.c
@@ -1,6 +1,6 @@
/*
zip_source_is_deleted.c -- was archive was removed?
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_layered.c b/src/Common/libzip/zip_source_layered.c
index 5e95bc1..580bff0 100644
--- a/src/Common/libzip/zip_source_layered.c
+++ b/src/Common/libzip/zip_source_layered.c
@@ -1,6 +1,6 @@
/*
zip_source_layered.c -- create layered source
- Copyright (C) 2009-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_open.c b/src/Common/libzip/zip_source_open.c
index 187001c..d10a3c5 100644
--- a/src/Common/libzip/zip_source_open.c
+++ b/src/Common/libzip/zip_source_open.c
@@ -1,6 +1,6 @@
/*
zip_source_open.c -- open zip_source (prepare for reading)
- Copyright (C) 2009-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_pkware.c b/src/Common/libzip/zip_source_pkware.c
index b466da4..cc510ea 100644
--- a/src/Common/libzip/zip_source_pkware.c
+++ b/src/Common/libzip/zip_source_pkware.c
@@ -1,6 +1,6 @@
/*
zip_source_pkware.c -- Traditional PKWARE de/encryption routines
- Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_read.c b/src/Common/libzip/zip_source_read.c
index 83514c6..816fb3d 100644
--- a/src/Common/libzip/zip_source_read.c
+++ b/src/Common/libzip/zip_source_read.c
@@ -1,6 +1,6 @@
/*
zip_source_read.c -- read data from zip_source
- Copyright (C) 2009-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -57,7 +57,7 @@ zip_source_read(zip_source_t *src, void *data, zip_uint64_t len) {
}
if (len == 0) {
- return 0;
+ return 0;
}
bytes_read = 0;
diff --git a/src/Common/libzip/zip_source_remove.c b/src/Common/libzip/zip_source_remove.c
index 8e01e24..6841b74 100644
--- a/src/Common/libzip/zip_source_remove.c
+++ b/src/Common/libzip/zip_source_remove.c
@@ -1,6 +1,6 @@
/*
zip_source_remove.c -- remove empty archive
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_rollback_write.c b/src/Common/libzip/zip_source_rollback_write.c
index bbccaf8..04aa938 100644
--- a/src/Common/libzip/zip_source_rollback_write.c
+++ b/src/Common/libzip/zip_source_rollback_write.c
@@ -1,6 +1,6 @@
/*
zip_source_rollback_write.c -- discard changes
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_seek.c b/src/Common/libzip/zip_source_seek.c
index aed53b8..c7bd8e6 100644
--- a/src/Common/libzip/zip_source_seek.c
+++ b/src/Common/libzip/zip_source_seek.c
@@ -1,6 +1,6 @@
/*
zip_source_seek.c -- seek to offset
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -50,7 +50,12 @@ zip_source_seek(zip_source_t *src, zip_int64_t offset, int whence) {
args.offset = offset;
args.whence = whence;
- return (_zip_source_call(src, &args, sizeof(args), ZIP_SOURCE_SEEK) < 0 ? -1 : 0);
+ if (_zip_source_call(src, &args, sizeof(args), ZIP_SOURCE_SEEK) < 0) {
+ return -1;
+ }
+
+ src->eof = 0;
+ return 0;
}
diff --git a/src/Common/libzip/zip_source_seek_write.c b/src/Common/libzip/zip_source_seek_write.c
index 4ecbee1..a20dc82 100644
--- a/src/Common/libzip/zip_source_seek_write.c
+++ b/src/Common/libzip/zip_source_seek_write.c
@@ -1,6 +1,6 @@
/*
zip_source_seek_write.c -- seek to offset for writing
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_stat.c b/src/Common/libzip/zip_source_stat.c
index 987c862..f3af3be 100644
--- a/src/Common/libzip/zip_source_stat.c
+++ b/src/Common/libzip/zip_source_stat.c
@@ -1,6 +1,6 @@
/*
zip_source_stat.c -- get meta information from zip_source
- Copyright (C) 2009-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2009-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_supports.c b/src/Common/libzip/zip_source_supports.c
index a47f293..394f06e 100644
--- a/src/Common/libzip/zip_source_supports.c
+++ b/src/Common/libzip/zip_source_supports.c
@@ -1,6 +1,6 @@
/*
zip_source_supports.c -- check for supported functions
- Copyright (C) 2014-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_tell.c b/src/Common/libzip/zip_source_tell.c
index ab418fa..da13cf5 100644
--- a/src/Common/libzip/zip_source_tell.c
+++ b/src/Common/libzip/zip_source_tell.c
@@ -1,6 +1,6 @@
/*
zip_source_tell.c -- report current offset
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_tell_write.c b/src/Common/libzip/zip_source_tell_write.c
index f7a8a3f..d20139f 100644
--- a/src/Common/libzip/zip_source_tell_write.c
+++ b/src/Common/libzip/zip_source_tell_write.c
@@ -1,6 +1,6 @@
/*
zip_source_tell_write.c -- report current offset for writing
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_win32a.c b/src/Common/libzip/zip_source_win32a.c
index 0780fa5..b4b060a 100644
--- a/src/Common/libzip/zip_source_win32a.c
+++ b/src/Common/libzip/zip_source_win32a.c
@@ -1,6 +1,6 @@
/*
zip_source_win32a.c -- create data source from Windows file (ANSI)
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_win32handle.c b/src/Common/libzip/zip_source_win32handle.c
index 8cef919..3a2f52e 100644
--- a/src/Common/libzip/zip_source_win32handle.c
+++ b/src/Common/libzip/zip_source_win32handle.c
@@ -1,6 +1,6 @@
/*
zip_source_win32file.c -- create data source from HANDLE (Win32)
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_win32utf8.c b/src/Common/libzip/zip_source_win32utf8.c
index 1e279b0..103b498 100644
--- a/src/Common/libzip/zip_source_win32utf8.c
+++ b/src/Common/libzip/zip_source_win32utf8.c
@@ -1,6 +1,6 @@
/*
zip_source_win32utf8.c -- create data source from Windows file (UTF-8)
- Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_win32w.c b/src/Common/libzip/zip_source_win32w.c
index 5583bdf..4097214 100644
--- a/src/Common/libzip/zip_source_win32w.c
+++ b/src/Common/libzip/zip_source_win32w.c
@@ -1,6 +1,6 @@
/*
zip_source_win32w.c -- create data source from Windows file (UTF-16)
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_window.c b/src/Common/libzip/zip_source_window.c
index f4701a0..d9e90bf 100644
--- a/src/Common/libzip/zip_source_window.c
+++ b/src/Common/libzip/zip_source_window.c
@@ -1,6 +1,6 @@
/*
zip_source_window.c -- return part of lower source
- Copyright (C) 2012-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -121,7 +121,6 @@ window_read(zip_source_t *src, void *_ctx, void *data, zip_uint64_t len, zip_sou
struct window *ctx;
zip_int64_t ret;
zip_uint64_t n, i;
- char b[8192];
ctx = (struct window *)_ctx;
@@ -154,18 +153,30 @@ window_read(zip_source_t *src, void *_ctx, void *data, zip_uint64_t len, zip_sou
}
if (!ctx->needs_seek) {
+ DEFINE_BYTE_ARRAY(b, BUFSIZE);
+
+ if (!byte_array_init(b, BUFSIZE)) {
+ zip_error_set(&ctx->error, ZIP_ER_MEMORY, 0);
+ return -1;
+ }
+
for (n = 0; n < ctx->start; n += (zip_uint64_t)ret) {
- i = (ctx->start - n > sizeof(b) ? sizeof(b) : ctx->start - n);
+ i = (ctx->start - n > BUFSIZE ? BUFSIZE : ctx->start - n);
if ((ret = zip_source_read(src, b, i)) < 0) {
_zip_error_set_from_source(&ctx->error, src);
+ byte_array_fini(b);
return -1;
}
if (ret == 0) {
zip_error_set(&ctx->error, ZIP_ER_EOF, 0);
+ byte_array_fini(b);
return -1;
}
}
+
+ byte_array_fini(b);
}
+
ctx->offset = ctx->start;
return 0;
diff --git a/src/Common/libzip/zip_source_write.c b/src/Common/libzip/zip_source_write.c
index 1646e33..9f494e0 100644
--- a/src/Common/libzip/zip_source_write.c
+++ b/src/Common/libzip/zip_source_write.c
@@ -1,6 +1,6 @@
/*
zip_source_write.c -- start a new file for writing
- Copyright (C) 2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2014-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_zip.c b/src/Common/libzip/zip_source_zip.c
index b3f1805..3fd90ab 100644
--- a/src/Common/libzip/zip_source_zip.c
+++ b/src/Common/libzip/zip_source_zip.c
@@ -1,6 +1,6 @@
/*
zip_source_zip.c -- create data source from zip file
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_source_zip_new.c b/src/Common/libzip/zip_source_zip_new.c
index a5cfee3..ab78561 100644
--- a/src/Common/libzip/zip_source_zip_new.c
+++ b/src/Common/libzip/zip_source_zip_new.c
@@ -1,6 +1,6 @@
/*
zip_source_zip_new.c -- prepare data structures for zip_fopen/zip_source_zip
- Copyright (C) 2012-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_stat.c b/src/Common/libzip/zip_stat.c
index 02cca37..237d985 100644
--- a/src/Common/libzip/zip_stat.c
+++ b/src/Common/libzip/zip_stat.c
@@ -1,6 +1,6 @@
/*
zip_stat.c -- get information about file by name
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_stat_index.c b/src/Common/libzip/zip_stat_index.c
index 109c118..d19e76a 100644
--- a/src/Common/libzip/zip_stat_index.c
+++ b/src/Common/libzip/zip_stat_index.c
@@ -1,6 +1,6 @@
/*
zip_stat_index.c -- get information about file by index
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_stat_init.c b/src/Common/libzip/zip_stat_init.c
index 0be5138..46fa404 100644
--- a/src/Common/libzip/zip_stat_init.c
+++ b/src/Common/libzip/zip_stat_init.c
@@ -1,6 +1,6 @@
/*
zip_stat_init.c -- initialize struct zip_stat.
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_strerror.c b/src/Common/libzip/zip_strerror.c
index 9e6e86c..eb94198 100644
--- a/src/Common/libzip/zip_strerror.c
+++ b/src/Common/libzip/zip_strerror.c
@@ -1,6 +1,6 @@
/*
zip_sterror.c -- get string representation of zip error
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_string.c b/src/Common/libzip/zip_string.c
index 293766c..7e16a72 100644
--- a/src/Common/libzip/zip_string.c
+++ b/src/Common/libzip/zip_string.c
@@ -1,6 +1,6 @@
/*
zip_string.c -- string handling (with encoding)
- Copyright (C) 2012-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2012-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_unchange.c b/src/Common/libzip/zip_unchange.c
index b0bd078..8285707 100644
--- a/src/Common/libzip/zip_unchange.c
+++ b/src/Common/libzip/zip_unchange.c
@@ -1,6 +1,6 @@
/*
zip_unchange.c -- undo changes to file in zip archive
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_unchange_all.c b/src/Common/libzip/zip_unchange_all.c
index 165064b..6a43358 100644
--- a/src/Common/libzip/zip_unchange_all.c
+++ b/src/Common/libzip/zip_unchange_all.c
@@ -1,6 +1,6 @@
/*
zip_unchange.c -- undo changes to all files in zip archive
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_unchange_archive.c b/src/Common/libzip/zip_unchange_archive.c
index f70dba9..404f1ed 100644
--- a/src/Common/libzip/zip_unchange_archive.c
+++ b/src/Common/libzip/zip_unchange_archive.c
@@ -1,6 +1,6 @@
/*
zip_unchange_archive.c -- undo global changes to ZIP archive
- Copyright (C) 2006-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2006-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_unchange_data.c b/src/Common/libzip/zip_unchange_data.c
index 1addaa8..f1df2bd 100644
--- a/src/Common/libzip/zip_unchange_data.c
+++ b/src/Common/libzip/zip_unchange_data.c
@@ -1,6 +1,6 @@
/*
zip_unchange_data.c -- undo helper function
- Copyright (C) 1999-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Common/libzip/zip_utf-8.c b/src/Common/libzip/zip_utf-8.c
index 8f02f88..684eba5 100644
--- a/src/Common/libzip/zip_utf-8.c
+++ b/src/Common/libzip/zip_utf-8.c
@@ -1,6 +1,6 @@
/*
zip_utf-8.c -- UTF-8 support functions for libzip
- Copyright (C) 2011-2014 Dieter Baron and Thomas Klausner
+ Copyright (C) 2011-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -39,7 +39,7 @@
static const zip_uint16_t _cp437_to_unicode[256] = {
/* 0x00 - 0x0F */
- 0x2007, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C,
+ 0x0000, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C,
/* 0x10 - 0x1F */
0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8, 0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC,
diff --git a/src/Common/libzip/zipint.h b/src/Common/libzip/zipint.h
index 3c60ece..093a1b2 100644
--- a/src/Common/libzip/zipint.h
+++ b/src/Common/libzip/zipint.h
@@ -3,7 +3,7 @@
/*
zipint.h -- internal declarations.
- Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -40,6 +40,10 @@
#include "compat.h"
+#ifdef ZIP_ALLOCATE_BUFFER
+#include <stdlib.h>
+#endif
+
#include <zlib.h>
#ifndef _ZIP_COMPILING_DEPRECATED
@@ -367,6 +371,23 @@ struct zip_string {
};
+/* byte array */
+
+/* For performance, we usually keep 8k byte arrays on the stack.
+ However, there are (embedded) systems with a stack size of 12k;
+ for those, use malloc()/free() */
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t *buf
+#define byte_array_init(buf, size) (((buf) = (zip_uint8_t *)malloc(size)) != NULL)
+#define byte_array_fini(buf) (free(buf))
+#else
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size]
+#define byte_array_init(buf, size) (1)
+#define byte_array_fini(buf) ((void)0)
+#endif
+
+
/* bounds checked access to memory buffer */
struct zip_buffer {
diff --git a/src/Common/libzip/zipwin32.h b/src/Common/libzip/zipwin32.h
index d2c5d82..7d3ac76 100644
--- a/src/Common/libzip/zipwin32.h
+++ b/src/Common/libzip/zipwin32.h
@@ -3,7 +3,7 @@
/*
zipwin32.h -- internal declarations for Windows.
- Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
diff --git a/src/Core/Unix/CoreService.cpp b/src/Core/Unix/CoreService.cpp
index 77d55b2..5eca15d 100644
--- a/src/Core/Unix/CoreService.cpp
+++ b/src/Core/Unix/CoreService.cpp
@@ -13,6 +13,7 @@
#include "CoreService.h"
#include <fcntl.h>
#include <sys/wait.h>
+#include <stdio.h>
#include "Platform/FileStream.h"
#include "Platform/MemoryStream.h"
#include "Platform/Serializable.h"
@@ -288,6 +289,41 @@ namespace VeraCrypt
request.FastElevation = !ElevatedServiceAvailable;
request.ApplicationExecutablePath = Core->GetApplicationExecutablePath();
+ // Test if the user has an active "sudo" session.
+ // This is only done under Linux / FreeBSD by executing the command 'sudo -n uptime'.
+ // In case a "sudo" session is active, the result of the command contains the string 'load average'.
+ // Otherwise, the result contains "sudo: a password is required".
+ // This may not work on all OSX versions because of a bug in sudo in its version 1.7.10,
+ // therefore we keep the old behaviour of sending a 'dummy' password under OSX.
+ // See : https://superuser.com/questions/902826/why-does-sudo-n-on-mac-os-x-always-return-0
+
+#if defined(TC_LINUX ) || defined (TC_FREEBSD)
+
+ // Set to false to force the 'WarningEvent' to be raised in case of and elevation exception.
+ request.FastElevation = false;
+
+ std::vector<char> buffer(128, 0);
+ std::string result;
+
+ FILE* pipe = popen("sudo -n uptime 2>&1 | grep 'load average' | wc -l", "r"); // We redirect stderr to stdout (2>&1) to be able to catch the result of the command
+ if (pipe)
+ {
+ while (!feof(pipe))
+ {
+ if (fgets(buffer.data(), 128, pipe) != nullptr)
+ result += buffer.data();
+ }
+
+ fflush(pipe);
+ pclose(pipe);
+ pipe = NULL;
+
+ if (!result.empty() && strlen(result.c_str()) != 0 && !memcmp(result.c_str(), "0", 1))
+ {
+ (*AdminPasswordCallback) (request.AdminPassword);
+ }
+ }
+#endif
while (!ElevatedServiceAvailable)
{
try
@@ -396,6 +432,7 @@ namespace VeraCrypt
vector <char> adminPassword (request.AdminPassword.size() + 1);
int timeout = 6000;
+ // 'request.FastElevation' is always false under Linux / FreeBSD
if (request.FastElevation)
{
string dummyPassword = "dummy\n";
@@ -457,6 +494,7 @@ namespace VeraCrypt
outPipe->Close();
errPipe.Close();
+ // 'request.FastElevation' is always false under Linux / FreeBSD
if (request.FastElevation)
{
// Prevent defunct process
diff --git a/src/Core/VolumeCreator.h b/src/Core/VolumeCreator.h
index 4f56308..6b8f143 100644
--- a/src/Core/VolumeCreator.h
+++ b/src/Core/VolumeCreator.h
@@ -45,6 +45,7 @@ namespace VeraCrypt
Ext3,
Ext4,
MacOsExt,
+ APFS,
UFS
};
diff --git a/src/Crypto/Sha2.c b/src/Crypto/Sha2.c
index 505ebb0..f214f6d 100644
--- a/src/Crypto/Sha2.c
+++ b/src/Crypto/Sha2.c
@@ -318,7 +318,7 @@ extern "C"
#endif
-CRYPTOPP_ALIGN_DATA(16) uint_32t SHA256_K[64] CRYPTOPP_SECTION_ALIGN16 = {
+CRYPTOPP_ALIGN_DATA(16) static const uint_32t SHA256_K[64] CRYPTOPP_SECTION_ALIGN16 = {
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
diff --git a/src/Crypto/Whirlpool.c b/src/Crypto/Whirlpool.c
index 35188c6..9452951 100644
--- a/src/Crypto/Whirlpool.c
+++ b/src/Crypto/Whirlpool.c
@@ -643,6 +643,20 @@ static const uint64 Whirlpool_C[8*256+R] = {
void WhirlpoolTransform(uint64 *digest, const uint64 *block)
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+#if defined(__GNUC__) && (CRYPTOPP_GCC_VERSION <= 40407)
+ /* workaround for gcc 4.4.7 bug under CentOS which causes crash
+ * in inline assembly.
+ * This dummy check that is always false since "block" is aligned.
+ */
+ uint64 lb = (uint64) block;
+ if (lb % 16)
+ {
+ TC_THROW_FATAL_EXCEPTION;
+ }
+#endif
+#endif
+
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
if (HasISSE())
{
#ifdef __GNUC__
diff --git a/src/Crypto/cpu.h b/src/Crypto/cpu.h
index ee8c16a..e7affae 100644
--- a/src/Crypto/cpu.h
+++ b/src/Crypto/cpu.h
@@ -25,7 +25,7 @@
#define ATT_NOPREFIX
#endif
-#ifdef _MSC_VER
+#if defined (_MSC_VER) && !defined (TC_WINDOWS_BOOT)
#if defined(TC_WINDOWS_DRIVER) || defined (_UEFI)
#if defined(__cplusplus)
extern "C" {
@@ -144,6 +144,7 @@ extern __m128i _mm_set1_epi64x (__int64 a);
#endif
#if CRYPTOPP_SSSE3_AVAILABLE || defined(__INTEL_COMPILER)
+#if defined (_MSC_VER) && !defined (TC_WINDOWS_BOOT)
#if defined(TC_WINDOWS_DRIVER) || defined (_UEFI)
#if defined(__cplusplus)
extern "C" {
@@ -155,6 +156,7 @@ extern __m128i _mm_shuffle_epi8 (__m128i a, __m128i b);
#else
#include <tmmintrin.h>
#endif
+#endif
#if defined(__SSE4_1__) || defined(__INTEL_COMPILER) || defined(_MSC_VER)
#if defined(TC_WINDOWS_DRIVER) || defined (_UEFI)
diff --git a/src/Driver/DriveFilter.c b/src/Driver/DriveFilter.c
index 9700226..3813992 100644
--- a/src/Driver/DriveFilter.c
+++ b/src/Driver/DriveFilter.c
@@ -660,6 +660,12 @@ static NTSTATUS MountDrive (DriveFilterExtension *Extension, Password *password,
{
CrashDumpEnabled = TRUE;
HibernationEnabled = TRUE;
+#ifdef _WIN64
+ if (IsRamEncryptionEnabled())
+ {
+ HibernationEnabled = FALSE;
+ }
+#endif
}
else if (!LegacyHibernationDriverFilterActive)
StartLegacyHibernationDriverFilter();
diff --git a/src/Driver/Driver.rc b/src/Driver/Driver.rc
index a27a37b..c96e096 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,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,6,0
+ PRODUCTVERSION 1,24,6,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
diff --git a/src/ExpandVolume/DlgExpandVolume.cpp b/src/ExpandVolume/DlgExpandVolume.cpp
index c1acd76..ab76d1b 100644
--- a/src/ExpandVolume/DlgExpandVolume.cpp
+++ b/src/ExpandVolume/DlgExpandVolume.cpp
@@ -49,6 +49,8 @@
#define TIMER_ID_RANDVIEW 0xff
#define TIMER_INTERVAL_RANDVIEW 50
+BOOL bSeManageVolumeNameSet = FALSE;
+
// see definition of enum EV_FileSystem
const wchar_t * szFileSystemStr[4] = {L"RAW",L"FAT",L"NTFS",L"EXFAT"};
@@ -117,6 +119,20 @@ uint64 GetSizeBoxMultiplier(HWND hwndDlg)
return Muliplier[i];
}
+void HandleQuickExpanddCheckBox (HWND hwndDlg)
+{
+ if (IsButtonChecked (GetDlgItem (hwndDlg, IDC_INIT_NEWSPACE)))
+ {
+ EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKEXPAND), FALSE);
+ SendDlgItemMessage (hwndDlg, IDC_QUICKEXPAND, BM_SETCHECK, BST_UNCHECKED, 0);
+ }
+ else
+ {
+ EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKEXPAND), TRUE);
+ }
+}
+
+
BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
static EXPAND_VOL_THREAD_PARAMS *pVolExpandParam;
@@ -164,6 +180,12 @@ BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
SetWindowText (GetDlgItem (hwndDlg, IDT_NEW_SIZE), L"");
GetSpaceString(szHostFreeStr,sizeof(szHostFreeStr),pVolExpandParam->hostSizeFree,FALSE);
StringCbPrintfW (szTemp,sizeof(szTemp),L"%s available on host drive", szHostFreeStr);
+
+ if (!pVolExpandParam->bDisableQuickExpand)
+ {
+ ShowWindow (GetDlgItem (hwndDlg, IDC_QUICKEXPAND), SW_SHOW);
+ HandleQuickExpanddCheckBox (hwndDlg);
+ }
}
SetWindowText (GetDlgItem (hwndDlg, IDC_EXPAND_VOLUME_NEWSIZE), szTemp);
@@ -179,7 +201,7 @@ BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
{
StringCbPrintfW (szTemp, sizeof(szTemp),L"Please specify the new size of the VeraCrypt volume (must be at least %I64u KB larger than the current size).",TC_MINVAL_FS_EXPAND/1024);
}
- SetWindowText (GetDlgItem (hwndDlg, IDC_BOX_HELP), szTemp);
+ SetWindowText (GetDlgItem (hwndDlg, IDC_BOX_HELP), szTemp);
}
return 0;
@@ -197,6 +219,7 @@ BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
wchar_t szTemp[4096];
pVolExpandParam->bInitFreeSpace = IsButtonChecked (GetDlgItem (hwndDlg, IDC_INIT_NEWSPACE));
+ pVolExpandParam->bQuickExpand = IsButtonChecked (GetDlgItem (hwndDlg, IDC_QUICKEXPAND));
if (!pVolExpandParam->bIsDevice) // for devices new size is set by calling function
{
GetWindowText (GetDlgItem (hwndDlg, IDC_SIZEBOX), szTemp, ARRAYSIZE (szTemp));
@@ -207,6 +230,23 @@ BOOL CALLBACK ExpandVolSizeDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
return 1;
}
+ if (lw == IDC_INIT_NEWSPACE && !pVolExpandParam->bDisableQuickExpand)
+ {
+ HandleQuickExpanddCheckBox (hwndDlg);
+ return 1;
+ }
+
+ if (lw == IDC_QUICKEXPAND && IsButtonChecked (GetDlgItem (hwndDlg, IDC_QUICKEXPAND)))
+ {
+ // If quick expand selected, then we warn about security issue
+ if (MessageBoxW (hwndDlg, L"WARNING: You should use Quick Expand only in the following cases:\n\n1) The device where the file container is located contains no sensitive data and you do not need plausible deniability.\n2) The device where the file container is located has already been securely and fully encrypted.\n\nAre you sure you want to use Quick Expand?",
+ lpszTitle, YES_NO|MB_ICONWARNING|MB_DEFBUTTON2) == IDNO)
+ {
+ SendDlgItemMessage (hwndDlg, IDC_QUICKEXPAND, BM_SETCHECK, BST_UNCHECKED, 0);
+ return 1;
+ }
+ }
+
return 0;
}
@@ -393,6 +433,7 @@ BOOL CALLBACK ExpandVolProgressDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, L
// tell the volume transform thread to terminate
bVolTransformThreadCancel = TRUE;
}
+ NormalCursor ();
EndDialog (hwndDlg, lw);
return 1;
}
@@ -402,6 +443,7 @@ BOOL CALLBACK ExpandVolProgressDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, L
if (bVolTransformStarted)
{
// TransformThreadFunction finished -> OK button is now exit
+ NormalCursor ();
EndDialog (hwndDlg, lw);
}
else
@@ -561,7 +603,6 @@ void ExpandVolumeWizard (HWND hwndDlg, wchar_t *lpszVolume)
if (KeyFilesEnable && FirstKeyFile)
KeyFilesApply (hwndDlg, &VolumePassword, FirstKeyFile, lpszVolume);
- WaitCursor ();
OpenVolumeThreadParam threadParam;
threadParam.context = &expandVol;
@@ -691,6 +732,8 @@ void ExpandVolumeWizard (HWND hwndDlg, wchar_t *lpszVolume)
EXPAND_VOL_THREAD_PARAMS VolExpandParam;
VolExpandParam.bInitFreeSpace = (bIsLegacy && bIsDevice) ? FALSE:TRUE;
+ VolExpandParam.bQuickExpand = FALSE;
+ VolExpandParam.bDisableQuickExpand = bIsDevice;
VolExpandParam.szVolumeName = lpszVolume;
VolExpandParam.FileSystem = volFSType;
VolExpandParam.pVolumePassword = &VolumePassword;
@@ -702,6 +745,17 @@ void ExpandVolumeWizard (HWND hwndDlg, wchar_t *lpszVolume)
VolExpandParam.newSize = hostSize;
VolExpandParam.hostSizeFree = hostSizeFree;
+ // disable Quick Expand if the file is sparse or compressed
+ if (!bIsDevice)
+ {
+ DWORD dwFileAttrib = GetFileAttributesW (lpszVolume);
+ if (INVALID_FILE_ATTRIBUTES != dwFileAttrib)
+ {
+ if (dwFileAttrib & (FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_SPARSE_FILE))
+ VolExpandParam.bDisableQuickExpand = TRUE;
+ }
+ }
+
while (1)
{
uint64 newVolumeSize;
@@ -717,7 +771,7 @@ void ExpandVolumeWizard (HWND hwndDlg, wchar_t *lpszVolume)
if ( !bIsDevice )
{
- if ( newVolumeSize < hostSize + TC_MINVAL_FS_EXPAND)
+ if ( (newVolumeSize < hostSize + TC_MINVAL_FS_EXPAND) && ((hostSize == volSize) || (newVolumeSize != hostSize) || ((hostSize - volSize) < TC_MINVAL_FS_EXPAND)))
{
StringCbPrintfW(szTmp,sizeof(szTmp),L"New volume size too small, must be at least %I64u kB larger than the current size.",TC_MINVAL_FS_EXPAND/BYTES_PER_KB);
MessageBoxW (hwndDlg, szTmp, lpszTitle, MB_OK | MB_ICONEXCLAMATION );
@@ -737,6 +791,18 @@ void ExpandVolumeWizard (HWND hwndDlg, wchar_t *lpszVolume)
MessageBoxW (hwndDlg, L"!\n",lpszTitle, MB_OK | MB_ICONEXCLAMATION );
continue;
}
+
+ if (VolExpandParam.bQuickExpand && !bSeManageVolumeNameSet)
+ {
+ if (!SetPrivilege (SE_MANAGE_VOLUME_NAME, TRUE))
+ {
+ MessageBoxW (hwndDlg, L"Error: Failed to get necessary privileges to enable Quick Expand!\nPlease uncheck Quick Expand option and try again.",lpszTitle, MB_OK | MB_ICONEXCLAMATION );
+ VolExpandParam.bQuickExpand = FALSE;
+ continue;
+ }
+
+ bSeManageVolumeNameSet = TRUE;
+ }
}
if ( newVolumeSize > TC_MAX_VOLUME_SIZE )
diff --git a/src/ExpandVolume/ExpandVolume.c b/src/ExpandVolume/ExpandVolume.c
index 5a476ba..ec78a36 100644
--- a/src/ExpandVolume/ExpandVolume.c
+++ b/src/ExpandVolume/ExpandVolume.c
@@ -492,7 +492,7 @@ error:
Remarks: a lot of code is from TrueCrypt 'Common\Password.c' :: ChangePwd()
*/
-static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePassword, int VolumePkcs5, int VolumePim, uint64 newHostSize, BOOL initFreeSpace)
+static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePassword, int VolumePkcs5, int VolumePim, uint64 newHostSize, BOOL initFreeSpace, BOOL bQuickExpand)
{
int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR;
wchar_t szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH];
@@ -750,13 +750,37 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
liNewSize.QuadPart=(LONGLONG)newHostSize;
- // Preallocate the file
- if (!SetFilePointerEx (dev, liNewSize, NULL, FILE_BEGIN)
- || !SetEndOfFile (dev)
- || SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
+ if (hostSize != newHostSize)
{
- nStatus = ERR_OS_ERROR;
- goto error;
+ // Preallocate the file
+ if (!SetFilePointerEx (dev, liNewSize, NULL, FILE_BEGIN)
+ || !SetEndOfFile (dev))
+ {
+ nStatus = ERR_OS_ERROR;
+ goto error;
+ }
+
+ if (bQuickExpand)
+ {
+ if (!SetFileValidData (dev, liNewSize.QuadPart))
+ {
+ DebugAddProgressDlgStatus(hwndDlg, L"Warning: Failed to perform Quick Expand. Continuing with standard expanding...\r\n");
+ }
+ }
+
+ if (SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
+ {
+ nStatus = ERR_OS_ERROR;
+ goto error;
+ }
+ }
+ else
+ {
+ if (SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
+ {
+ nStatus = ERR_OS_ERROR;
+ goto error;
+ }
}
}
@@ -1050,7 +1074,7 @@ void __cdecl volTransformThreadFunction (void *pExpandDlgParam)
HWND hwndDlg = (HWND) pParam->hwndDlg;
nStatus = ExpandVolume (hwndDlg, (wchar_t*)pParam->szVolumeName, pParam->pVolumePassword,
- pParam->VolumePkcs5, pParam->VolumePim, pParam->newSize, pParam->bInitFreeSpace );
+ pParam->VolumePkcs5, pParam->VolumePim, pParam->newSize, pParam->bInitFreeSpace, pParam->bQuickExpand );
if (nStatus!=ERR_SUCCESS && nStatus!=ERR_USER_ABORT)
handleError (hwndDlg, nStatus, SRC_POS);
diff --git a/src/ExpandVolume/ExpandVolume.h b/src/ExpandVolume/ExpandVolume.h
index 5f4eb7f..668eb79 100644
--- a/src/ExpandVolume/ExpandVolume.h
+++ b/src/ExpandVolume/ExpandVolume.h
@@ -40,6 +40,8 @@ typedef struct
BOOL bIsDevice;
BOOL bIsLegacy;
BOOL bInitFreeSpace;
+ BOOL bQuickExpand;
+ BOOL bDisableQuickExpand;
Password *pVolumePassword;
int VolumePkcs5;
int VolumePim;
diff --git a/src/ExpandVolume/ExpandVolume.rc b/src/ExpandVolume/ExpandVolume.rc
index 3f5e891..833411a 100644
--- a/src/ExpandVolume/ExpandVolume.rc
+++ b/src/ExpandVolume/ExpandVolume.rc
@@ -38,7 +38,8 @@ BEGIN
CONTROL "&GB",IDC_GB,"Button",BS_AUTORADIOBUTTON,248,105,38,10
CONTROL "&TB",IDC_TB,"Button",BS_AUTORADIOBUTTON,288,105,38,10
CONTROL "Fill new space with random data",IDC_INIT_NEWSPACE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,127,118,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,120,276,10
+ CONTROL "Quick Expand",IDC_QUICKEXPAND,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,30,132,276,10
DEFPUSHBUTTON "Continue",IDOK,15,238,84,18
PUSHBUTTON "Cancel",IDCANCEL,277,238,84,18
LTEXT "Help Text",IDC_BOX_HELP,15,165,346,58,0,WS_EX_CLIENTEDGE
@@ -141,7 +142,7 @@ END
//
#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
+GUIDELINES DESIGNINFO
BEGIN
IDD_SIZE_DIALOG, DIALOG
BEGIN
@@ -192,8 +193,8 @@ IDR_MOUNT_RSRC_HEADER HEADER "resource.h"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,7,0
+ PRODUCTVERSION 1,24,7,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -210,11 +211,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "IDRIX"
VALUE "FileDescription", "VeraCrypt Expander"
- VALUE "FileVersion", "1.24-Beta5"
+ VALUE "FileVersion", "1.24-Hotfix1-Preview"
VALUE "LegalTrademarks", "VeraCrypt"
VALUE "OriginalFilename", "VeraCryptExpander.exe"
VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.24-Beta5"
+ VALUE "ProductVersion", "1.24-Hotfix1-Preview"
END
END
BLOCK "VarFileInfo"
@@ -264,7 +265,7 @@ IDB_LOGO_288DPI BITMAP "Logo_288dpi.bmp"
// Menu
//
-IDR_MENU MENUEX
+IDR_MENU MENUEX
BEGIN
MENUITEM "About", IDM_ABOUT,MFT_STRING,MFS_ENABLED
MENUITEM "Homepage", IDM_HOMEPAGE,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED
@@ -276,7 +277,7 @@ END
// String Table
//
-STRINGTABLE
+STRINGTABLE
BEGIN
IDS_UACSTRING "VeraCrypt Expander"
END
diff --git a/src/ExpandVolume/resource.h b/src/ExpandVolume/resource.h
index 993c414..99d89dd 100644
--- a/src/ExpandVolume/resource.h
+++ b/src/ExpandVolume/resource.h
@@ -71,6 +71,7 @@
#define IDC_OLD_PIM 1143
#define IDC_OLD_PIM_HELP 1144
#define ID_HOMEPAGE 1145
+#define IDC_QUICKEXPAND 1146
#define IDM_HELP 40001
#define IDM_ABOUT 40002
#define IDM_UNMOUNT_VOLUME 40003
@@ -135,13 +136,13 @@
#define IDM_MANAGE_TOKEN_KEYFILES 40062
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 120
#define _APS_NEXT_COMMAND_VALUE 40064
-#define _APS_NEXT_CONTROL_VALUE 1146
+#define _APS_NEXT_CONTROL_VALUE 1147
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/src/Format/Format.rc b/src/Format/Format.rc
index a96dcbc..86a8dcf 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,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,7,0
+ PRODUCTVERSION 1,24,7,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -46,11 +46,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "IDRIX"
VALUE "FileDescription", "VeraCrypt Format"
- VALUE "FileVersion", "1.24-Beta5"
+ VALUE "FileVersion", "1.24-Hotfix1-Preview"
VALUE "LegalTrademarks", "VeraCrypt"
VALUE "OriginalFilename", "VeraCrypt Format.exe"
VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.24-Beta5"
+ VALUE "ProductVersion", "1.24-Hotfix1-Preview"
END
END
BLOCK "VarFileInfo"
@@ -79,378 +79,378 @@ IDR_FORMAT_TLB TYPELIB "Format.tlb"
// Dialog
//
-IDD_VOL_CREATION_WIZARD_DLG DIALOGEX 0, 0, 400, 229
+IDD_VOL_CREATION_WIZARD_DLG DIALOGEX 0, 0, 450, 250
STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "VeraCrypt Volume Creation Wizard"
CLASS "VeraCryptCustomDlg"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- PUSHBUTTON "&Help",IDHELP,176,209,50,14
- PUSHBUTTON "",IDC_PREV,235,209,50,14
- DEFPUSHBUTTON "",IDC_NEXT,285,209,50,14
- PUSHBUTTON "Cancel",IDCANCEL,343,209,50,14
- LTEXT "",IDC_BOX_TITLE,160,8,233,17
- GROUPBOX "",IDC_STATIC,4,0,392,203
- CONTROL 116,IDC_BITMAP_WIZARD,"Static",SS_BITMAP | SS_SUNKEN,10,9,137,169
- LTEXT "",IDC_POS_BOX,160,24,231,172
+ PUSHBUTTON "&Help",IDHELP,166,234,60,14
+ PUSHBUTTON "",IDC_PREV,238,234,60,14
+ DEFPUSHBUTTON "",IDC_NEXT,310,234,60,14
+ PUSHBUTTON "Cancel",IDCANCEL,382,234,60,14
+ LTEXT "",IDC_BOX_TITLE,160,8,283,17
+ GROUPBOX "",IDC_STATIC,51,0,392,230
+ CONTROL 116,IDC_BITMAP_WIZARD,"Static",SS_BITMAP | SS_SUNKEN,10,9,137,193
+ LTEXT "",IDC_POS_BOX,160,24,281,193
END
-IDD_CIPHER_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_CIPHER_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_COMBO_BOX,7,23,137,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "&Test",IDC_CIPHER_TEST,149,22,59,14
- PUSHBUTTON "&Benchmark",IDC_BENCHMARK,149,100,59,14
- COMBOBOX IDC_COMBO_BOX_HASH_ALGO,7,137,83,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "",IDC_BOX_HELP,7,40,205,58
- GROUPBOX "Encryption Algorithm",IDT_ENCRYPTION_ALGO,0,10,217,111
- GROUPBOX "Hash Algorithm",IDT_HASH_ALGO,0,124,217,35
- LTEXT "More information",IDC_LINK_MORE_INFO_ABOUT_CIPHER,7,102,135,10,SS_NOTIFY
- LTEXT "Information on hash algorithms",IDC_LINK_HASH_INFO,97,139,115,8,SS_NOTIFY
+ COMBOBOX IDC_COMBO_BOX,7,23,172,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Test",IDC_CIPHER_TEST,191,22,81,14
+ PUSHBUTTON "&Benchmark",IDC_BENCHMARK,191,122,81,14
+ COMBOBOX IDC_COMBO_BOX_HASH_ALGO,7,169,95,126,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "",IDC_BOX_HELP,7,40,266,78
+ GROUPBOX "Encryption Algorithm",IDT_ENCRYPTION_ALGO,0,10,273,131
+ GROUPBOX "Hash Algorithm",IDT_HASH_ALGO,0,156,273,35
+ LTEXT "More information",IDC_LINK_MORE_INFO_ABOUT_CIPHER,7,124,176,10,SS_NOTIFY
+ LTEXT "Information on hash algorithms",IDC_LINK_HASH_INFO,121,171,148,8,SS_NOTIFY
END
-IDD_PASSWORD_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_PASSWORD_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_PASSWORD,53,3,170,14,ES_PASSWORD | ES_AUTOHSCROLL
- EDITTEXT IDC_VERIFY,53,19,170,14,ES_PASSWORD | ES_AUTOHSCROLL
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,35,95,10
- PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,152,36,71,14,WS_DISABLED
- CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,45,95,11,WS_EX_TRANSPARENT
- CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,56,97,10
- RTEXT "Password:",IDT_PASSWORD,1,6,50,8
- RTEXT "&Confirm:",IDT_CONFIRM,1,23,50,8
- LTEXT "",IDC_BOX_HELP,0,71,225,97
+ EDITTEXT IDC_PASSWORD,71,3,202,14,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_VERIFY,71,19,202,14,ES_PASSWORD | ES_AUTOHSCROLL
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,71,35,103,10
+ PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,182,36,91,14,WS_DISABLED
+ CONTROL "&Display password",IDC_SHOW_PASSWORD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,71,45,108,11,WS_EX_TRANSPARENT
+ CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,71,56,114,10
+ RTEXT "Password:",IDT_PASSWORD,1,6,68,8
+ RTEXT "&Confirm:",IDT_CONFIRM,1,23,68,8
+ LTEXT "",IDC_BOX_HELP,0,71,273,121
END
-IDD_SIZE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SIZE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_SIZEBOX,0,22,71,14,ES_AUTOHSCROLL | ES_NUMBER
- CONTROL "&KB",IDC_KB,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,80,25,27,10
- CONTROL "&MB",IDC_MB,"Button",BS_AUTORADIOBUTTON,115,25,27,10
- CONTROL "&GB",IDC_GB,"Button",BS_AUTORADIOBUTTON,150,25,27,10
- LTEXT "",IDC_BOX_HELP,0,84,214,75
- LTEXT "",IDC_SPACE_LEFT,0,44,214,33
- CONTROL "&TB",IDC_TB,"Button",BS_AUTORADIOBUTTON,185,25,27,10
+ EDITTEXT IDC_SIZEBOX,25,22,71,14,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "&KB",IDC_KB,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,105,25,27,10
+ CONTROL "&MB",IDC_MB,"Button",BS_AUTORADIOBUTTON,140,25,27,10
+ CONTROL "&GB",IDC_GB,"Button",BS_AUTORADIOBUTTON,175,25,27,10
+ LTEXT "",IDC_BOX_HELP,0,65,273,123
+ LTEXT "",IDC_SPACE_LEFT,0,44,273,18
+ CONTROL "&TB",IDC_TB,"Button",BS_AUTORADIOBUTTON,210,25,27,10
END
-IDD_VOLUME_LOCATION_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_VOLUME_LOCATION_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_COMBO_BOX,0,9,148,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- CONTROL "&Never save history",IDC_NO_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,28,213,10
- PUSHBUTTON "",IDC_SELECT_VOLUME_LOCATION,155,9,62,14
- LTEXT "",IDC_BOX_HELP,0,42,219,125
+ COMBOBOX IDC_COMBO_BOX,0,9,174,80,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ CONTROL "&Never save history",IDC_NO_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,28,270,10
+ PUSHBUTTON "",IDC_SELECT_VOLUME_LOCATION,181,9,92,14
+ LTEXT "",IDC_BOX_HELP,0,45,273,143
END
-IDD_FORMAT_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_FORMAT_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_FILESYS,43,13,36,90,CBS_DROPDOWNLIST | WS_TABSTOP
- COMBOBOX IDC_CLUSTERSIZE,112,13,42,90,CBS_DROPDOWNLIST | WS_TABSTOP
- CONTROL "Quick Format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,163,9,60,8
- CONTROL "",IDC_SHOW_KEYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,214,38,9,8
- PUSHBUTTON "Abort",IDC_ABORT_BUTTON,169,75,50,14
- RTEXT "Header Key: ",IDT_HEADER_KEY,2,47,54,8
- CONTROL "",IDC_HEADER_KEY,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,57,46,163,8,WS_EX_TRANSPARENT
- RTEXT "Master Key: ",IDT_MASTER_KEY,2,55,54,8
- LTEXT "",IDC_DISK_KEY,57,54,163,8,0,WS_EX_TRANSPARENT
- RTEXT "Cluster ",IDT_CLUSTER,80,15,32,8
- LTEXT "",IDC_BOX_HELP,1,112,224,40
- GROUPBOX "Options",IDT_FORMAT_OPTIONS,0,3,225,29
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,76,158,12
- RTEXT "",IDC_TIMEREMAIN,177,93,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_WRITESPEED,106,93,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ COMBOBOX IDC_FILESYS,50,13,36,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ COMBOBOX IDC_CLUSTERSIZE,135,13,42,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ CONTROL "Quick Format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,181,9,92,8
+ CONTROL "",IDC_SHOW_KEYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,265,38,9,8
+ PUSHBUTTON "Abort",IDC_ABORT_BUTTON,200,75,64,14
+ RTEXT "Header Key: ",IDT_HEADER_KEY,2,47,76,8
+ CONTROL "",IDC_HEADER_KEY,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,83,46,190,8,WS_EX_TRANSPARENT
+ RTEXT "Master Key: ",IDT_MASTER_KEY,2,55,76,8
+ LTEXT "",IDC_DISK_KEY,83,54,190,8,0,WS_EX_TRANSPARENT
+ RTEXT "Cluster ",IDT_CLUSTER,91,15,44,8
+ LTEXT "",IDC_BOX_HELP,1,112,274,58
+ GROUPBOX "Options",IDT_FORMAT_OPTIONS,0,3,276,29
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,76,189,12
+ RTEXT "",IDC_TIMEREMAIN,217,93,46,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "",IDC_WRITESPEED,128,93,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
LTEXT "",IDC_BYTESWRITTEN,29,93,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
RTEXT "Done",IDT_DONE,5,94,22,8
- RTEXT "Speed",IDT_SPEED,70,94,34,8
- RTEXT "Left",IDT_LEFT,150,94,25,8
- GROUPBOX "",IDC_STATIC,0,67,225,41
- RTEXT "Filesystem ",IDT_FILESYSTEM,1,15,41,8,0,WS_EX_RIGHT
- RTEXT "Random Pool: ",IDT_RANDOM_POOL,2,39,54,8
- GROUPBOX "",IDC_STATIC,0,32,225,35
- CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,57,38,155,8,WS_EX_TRANSPARENT
- GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,153,224,18
- CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,11,162,202,6
- CONTROL "Dynamic",SPARSE_FILE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,163,21,60,8
-END
-
-IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 226, 172
+ RTEXT "Speed",IDT_SPEED,81,94,45,8
+ RTEXT "Left",IDT_LEFT,177,94,35,8
+ GROUPBOX "",IDC_STATIC,0,67,276,41
+ RTEXT "Filesystem ",IDT_FILESYSTEM,1,15,46,8,0,WS_EX_RIGHT
+ RTEXT "Random Pool: ",IDT_RANDOM_POOL,2,39,76,8
+ GROUPBOX "",IDC_STATIC,0,32,276,35
+ CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,83,38,177,8,WS_EX_TRANSPARENT
+ GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,175,276,18
+ CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,20,184,235,6
+ CONTROL "Dynamic",SPARSE_FILE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,181,21,92,8
+END
+
+IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "Create an encrypted file container",IDC_FILE_CONTAINER,
- "Button",BS_AUTORADIOBUTTON,0,7,217,10
- LTEXT "More information",IDC_MORE_INFO_ON_CONTAINERS,16,40,165,10,SS_NOTIFY
+ "Button",BS_AUTORADIOBUTTON,0,7,269,10
+ LTEXT "More information",IDC_MORE_INFO_ON_CONTAINERS,16,40,253,10,SS_NOTIFY
CONTROL "Encrypt a non-system partition/drive",IDC_NONSYS_DEVICE,
- "Button",BS_AUTORADIOBUTTON,0,53,217,10
+ "Button",BS_AUTORADIOBUTTON,0,55,269,10
CONTROL "Encrypt the system partition or entire system drive",IDC_SYS_DEVICE,
- "Button",BS_AUTORADIOBUTTON,0,89,217,10
- LTEXT "More information about system encryption",IDC_MORE_INFO_ON_SYS_ENCRYPTION,16,153,190,10,SS_NOTIFY
- LTEXT "Creates a virtual encrypted disk within a file. Recommended for inexperienced users.",IDT_FILE_CONTAINER,16,20,205,16
- LTEXT "Encrypts a non-system partition on any internal or external drive (e.g. a flash drive). Optionally, creates a hidden volume.",IDT_NON_SYS_DEVICE,16,66,205,20
- LTEXT "Encrypts the partition/drive where Windows is installed. Anyone who wants to gain access and use the system, read and write files, etc., will need to enter the correct password each time before Windows boots. Optionally, creates a hidden system.",IDT_SYS_DEVICE,16,102,205,47
+ "Button",BS_AUTORADIOBUTTON,0,98,269,10
+ LTEXT "More information about system encryption",IDC_MORE_INFO_ON_SYS_ENCRYPTION,16,177,253,10,SS_NOTIFY
+ LTEXT "Creates a virtual encrypted disk within a file. Recommended for inexperienced users.",IDT_FILE_CONTAINER,16,20,253,16
+ LTEXT "Encrypts a non-system partition on any internal or external drive (e.g. a flash drive). Optionally, creates a hidden volume.",IDT_NON_SYS_DEVICE,16,68,253,26
+ LTEXT "Encrypts the partition/drive where Windows is installed. Anyone who wants to gain access and use the system, read and write files, etc., will need to enter the correct password each time before Windows boots. Optionally, creates a hidden system.",IDT_SYS_DEVICE,16,112,253,59
END
-IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- LTEXT "",IDC_BOX_HELP,0,10,225,155
+ LTEXT "",IDC_BOX_HELP,0,31,269,155
END
-IDD_HIDVOL_HOST_FILL_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_HIDVOL_HOST_FILL_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- LTEXT "",IDC_BOX_HELP,0,6,226,138
- PUSHBUTTON "Open Outer Volume",IDC_OPEN_OUTER_VOLUME,0,146,85,14
+ LTEXT "",IDC_BOX_HELP,0,6,269,167
+ PUSHBUTTON "Open Outer Volume",IDC_OPEN_OUTER_VOLUME,0,176,85,14
END
-IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Normal mode",IDC_HIDVOL_WIZ_MODE_FULL,"Button",BS_AUTORADIOBUTTON,0,7,217,10
- CONTROL "Direct mode",IDC_HIDVOL_WIZ_MODE_DIRECT,"Button",BS_AUTORADIOBUTTON,0,87,217,10
- LTEXT "",IDC_BOX_HELP,16,20,205,63
- LTEXT "",IDC_BOX_HELP2,16,101,205,59
+ CONTROL "Normal mode",IDC_HIDVOL_WIZ_MODE_FULL,"Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "Direct mode",IDC_HIDVOL_WIZ_MODE_DIRECT,"Button",BS_AUTORADIOBUTTON,0,97,269,10
+ LTEXT "",IDC_BOX_HELP,16,20,253,72
+ LTEXT "",IDC_BOX_HELP2,16,110,253,72
END
-IDD_PASSWORD_ENTRY_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_PASSWORD_ENTRY_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_PASSWORD_DIRECT,50,2,173,14,ES_PASSWORD | ES_AUTOHSCROLL
- COMBOBOX IDC_PKCS5_PRF_ID,50,17,104,90,CBS_DROPDOWNLIST | WS_TABSTOP
- EDITTEXT IDC_PIM,50,32,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,96,34,127,8,NOT WS_VISIBLE
- CONTROL "&Display password",IDC_SHOW_PASSWORD_SINGLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,50,46,84,11,WS_EX_TRANSPARENT
- CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,50,57,94,11
- PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,149,54,74,14
- LTEXT "",IDC_BOX_HELP,0,74,225,94
- RTEXT "Password:",IDT_PASSWORD,0,6,48,8
- RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,19,48,8
- RTEXT "Volume PIM:",IDT_PIM,0,35,48,8,NOT WS_VISIBLE
- CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,50,35,97,10
-END
-
-IDD_VOLUME_TYPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+ EDITTEXT IDC_PASSWORD_DIRECT,75,2,198,14,ES_PASSWORD | ES_AUTOHSCROLL
+ COMBOBOX IDC_PKCS5_PRF_ID,75,17,131,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ EDITTEXT IDC_PIM,75,32,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER | NOT WS_VISIBLE
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,121,34,152,8,NOT WS_VISIBLE
+ CONTROL "&Display password",IDC_SHOW_PASSWORD_SINGLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,46,109,11,WS_EX_TRANSPARENT
+ CONTROL "U&se keyfiles",IDC_KEYFILES_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,57,106,11
+ PUSHBUTTON "&Keyfiles...",IDC_KEY_FILES,188,54,85,14
+ LTEXT "",IDC_BOX_HELP,0,74,273,119
+ RTEXT "Password:",IDT_PASSWORD,0,6,71,8
+ RTEXT "PKCS-5 PRF:",IDT_PKCS5_PRF,0,19,71,8
+ RTEXT "Volume PIM:",IDT_PIM,0,35,71,8,NOT WS_VISIBLE
+ CONTROL "Use P&IM",IDC_PIM_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,35,97,10
+END
+
+IDD_VOLUME_TYPE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Standard VeraCrypt volume",IDC_STD_VOL,"Button",BS_AUTORADIOBUTTON,0,7,212,10
- CONTROL "Hi&dden VeraCrypt volume ",IDC_HIDDEN_VOL,"Button",BS_AUTORADIOBUTTON,0,68,212,10
- LTEXT "More information about hidden volumes",IDC_HIDDEN_VOL_HELP,16,151,205,10,SS_NOTIFY
- LTEXT "",IDC_BOX_HELP_NORMAL_VOL,16,20,205,41
- LTEXT "",IDC_BOX_HELP,16,83,205,62
+ CONTROL "Standard VeraCrypt volume",IDC_STD_VOL,"Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "Hi&dden VeraCrypt volume ",IDC_HIDDEN_VOL,"Button",BS_AUTORADIOBUTTON,0,76,269,10
+ LTEXT "More information about hidden volumes",IDC_HIDDEN_VOL_HELP,16,173,253,10,SS_NOTIFY
+ LTEXT "",IDC_BOX_HELP_NORMAL_VOL,16,20,253,52
+ LTEXT "",IDC_BOX_HELP,16,93,253,70
END
-IDD_SYSENC_SPAN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_SPAN_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "Encrypt the Windows system partition",IDC_SYS_PARTITION,
- "Button",BS_AUTORADIOBUTTON,0,7,212,10
- CONTROL "Encrypt the whole drive",IDC_WHOLE_SYS_DRIVE,"Button",BS_AUTORADIOBUTTON,0,53,212,10
- LTEXT "Select this option to encrypt the partition where the currently running Windows operating system is installed.",IDT_SYS_PARTITION,16,20,205,32
- LTEXT "",IDT_WHOLE_SYS_DRIVE,16,70,205,95
+ "Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "Encrypt the whole drive",IDC_WHOLE_SYS_DRIVE,"Button",BS_AUTORADIOBUTTON,0,67,269,10
+ LTEXT "Select this option to encrypt the partition where the currently running Windows operating system is installed.",IDT_SYS_PARTITION,16,20,253,42
+ LTEXT "",IDT_WHOLE_SYS_DRIVE,16,82,253,104
END
-IDD_SYSENC_RESCUE_DISK_CREATION_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_RESCUE_DISK_CREATION_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_RESCUE_DISK_ISO_PATH,0,159,163,13,ES_AUTOHSCROLL
- PUSHBUTTON "Bro&wse...",IDC_BROWSE,166,158,59,14
- LTEXT "",IDT_RESCUE_DISK_INFO,0,1,225,137
+ EDITTEXT IDC_RESCUE_DISK_ISO_PATH,0,180,201,13,ES_AUTOHSCROLL
+ PUSHBUTTON "Bro&wse...",IDC_BROWSE,204,179,70,14
+ LTEXT "",IDT_RESCUE_DISK_INFO,0,1,273,137
CONTROL "Skip Rescue Disk verification",IDC_SKIP_RESCUE_VERIFICATION,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,145,106,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,0,166,273,10
END
-IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,1,98,122,10
- CONTROL "",IDC_SYS_POOL_CONTENTS,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,8,14,205,72,WS_EX_TRANSPARENT
- LTEXT "IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases the cryptographic strength of the encryption keys. Then click Next to continue.",IDT_COLLECTING_RANDOM_DATA_NOTE,1,112,224,40
- GROUPBOX "Current pool content (partial)",IDT_PARTIAL_POOL_CONTENTS,0,5,222,88
- GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,154,224,18
- CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,11,163,202,6
+ CONTROL "Display pool content",IDC_DISPLAY_POOL_CONTENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,93,266,10
+ CONTROL "",IDC_SYS_POOL_CONTENTS,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,33,17,209,63,WS_EX_TRANSPARENT
+ LTEXT "IMPORTANT: Move your mouse as randomly as possible within this window. The longer you move it, the better. This significantly increases the cryptographic strength of the encryption keys. Then click Next to continue.",IDT_COLLECTING_RANDOM_DATA_NOTE,10,107,265,63
+ GROUPBOX "Current pool content (partial)",IDT_PARTIAL_POOL_CONTENTS,0,5,276,83
+ GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,174,276,18
+ CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,11,183,254,6
END
-IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Single-boot",IDC_SINGLE_BOOT,"Button",BS_AUTORADIOBUTTON,0,7,212,10
- CONTROL "Multi-boot",IDC_MULTI_BOOT,"Button",BS_AUTORADIOBUTTON,0,53,217,10
- LTEXT "Select this option if there is only one operating system installed on this computer (even if it has multiple users).",IDT_SINGLE_BOOT,16,20,205,32
- LTEXT "Select this option if there are two or more operating systems installed on this computer.\n\nFor example:\n- Windows XP and Windows XP\n- Windows XP and Windows Vista\n- Windows and Mac OS X\n- Windows and Linux\n- Windows, Linux and Mac OS X",IDT_MULTI_BOOT,16,66,205,72
+ CONTROL "Single-boot",IDC_SINGLE_BOOT,"Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "Multi-boot",IDC_MULTI_BOOT,"Button",BS_AUTORADIOBUTTON,0,75,217,10
+ LTEXT "Select this option if there is only one operating system installed on this computer (even if it has multiple users).",IDT_SINGLE_BOOT,16,20,253,48
+ LTEXT "Select this option if there are two or more operating systems installed on this computer.\n\nFor example:\n- Windows XP and Windows XP\n- Windows XP and Windows Vista\n- Windows and Mac OS X\n- Windows and Linux\n- Windows, Linux and Mac OS X",IDT_MULTI_BOOT,16,89,253,90
END
-IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- LTEXT "Download CD/DVD recording software",IDC_DOWNLOAD_CD_BURN_SOFTWARE,0,136,217,10,SS_NOTIFY
- LTEXT "",IDT_RESCUE_DISK_BURN_INFO,0,4,225,128
+ LTEXT "Download CD/DVD recording software",IDC_DOWNLOAD_CD_BURN_SOFTWARE,0,159,273,10,SS_NOTIFY
+ LTEXT "",IDT_RESCUE_DISK_BURN_INFO,0,4,273,148
END
-IDD_SYSENC_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- COMBOBOX IDC_WIPE_MODE,61,0,127,90,CBS_DROPDOWNLIST | WS_TABSTOP
- RTEXT "Wipe mode:",IDT_WIPE_MODE,0,2,59,8,0,WS_EX_RIGHT
- LTEXT "",IDT_WIPE_MODE_INFO,0,19,225,128
+ COMBOBOX IDC_WIPE_MODE,88,0,138,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ RTEXT "Wipe mode:",IDT_WIPE_MODE,0,2,83,8,0,WS_EX_RIGHT
+ LTEXT "",IDT_WIPE_MODE_INFO,0,19,269,167
END
-IDD_INPLACE_ENCRYPTION_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_INPLACE_ENCRYPTION_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- COMBOBOX IDC_WIPE_MODE,67,13,125,90,CBS_DROPDOWNLIST | WS_TABSTOP
- PUSHBUTTON "&Pause",IDC_PAUSE,169,40,50,14
- LTEXT "More information",IDC_MORE_INFO_SYS_ENCRYPTION,1,150,202,10,SS_NOTIFY
+ COMBOBOX IDC_WIPE_MODE,96,13,125,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ PUSHBUTTON "&Pause",IDC_PAUSE,204,40,63,14
+ LTEXT "More information",IDC_MORE_INFO_SYS_ENCRYPTION,1,176,266,10,SS_NOTIFY
LTEXT "",IDC_BYTESWRITTEN,29,58,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_WRITESPEED,103,58,46,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_TIMEREMAIN,177,58,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "Wipe mode:",IDT_WIPE_MODE,6,15,59,8,0,WS_EX_RIGHT
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,41,158,12
+ RTEXT "",IDC_WRITESPEED,110,58,56,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "",IDC_TIMEREMAIN,212,58,54,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "Wipe mode:",IDT_WIPE_MODE,6,15,85,8,0,WS_EX_RIGHT
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,41,192,12
RTEXT "Done",IDT_DONE,5,59,22,8
- RTEXT "Status",IDT_STATUS,72,59,29,8
- RTEXT "Left",IDT_LEFT,151,59,24,8
- LTEXT "",IDC_BOX_HELP,1,77,224,70
- GROUPBOX "Options",IDT_FORMAT_OPTIONS,0,3,225,29
- GROUPBOX "",IDC_STATIC,0,32,225,41
+ RTEXT "Status",IDT_STATUS,73,59,33,8
+ RTEXT "Left",IDT_LEFT,172,59,35,8
+ LTEXT "",IDC_BOX_HELP,1,77,266,95
+ GROUPBOX "Options",IDT_FORMAT_OPTIONS,0,3,267,29
+ GROUPBOX "",IDC_STATIC,0,32,267,41
END
-IDD_SYSENC_KEYS_GEN_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_KEYS_GEN_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
CONTROL "Display generated keys (their portions)",IDC_DISPLAY_KEYS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,1,94,216,10
- CONTROL "",IDC_HEADER_KEY,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,57,71,163,8,WS_EX_TRANSPARENT
- LTEXT "",IDC_DISK_KEY,57,79,163,8,0,WS_EX_TRANSPARENT
- LTEXT "The keys, salt, and other data have been successfully generated. If you want to generate new keys, click Back and then Next. Otherwise, click Next to continue.",IDT_SYSENC_KEYS_GEN_INFO,1,23,224,41
- RTEXT "Header Key: ",IDT_HEADER_KEY,2,72,54,8
- RTEXT "Master Key: ",IDT_MASTER_KEY,2,80,54,8
- GROUPBOX "",-1,0,65,225,26
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,51,110,216,10
+ CONTROL "",IDC_HEADER_KEY,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,100,87,163,8,WS_EX_TRANSPARENT
+ LTEXT "",IDC_DISK_KEY,100,95,163,8,0,WS_EX_TRANSPARENT
+ LTEXT "The keys, salt, and other data have been successfully generated. If you want to generate new keys, click Back and then Next. Otherwise, click Next to continue.",IDT_SYSENC_KEYS_GEN_INFO,1,23,266,57
+ RTEXT "Header Key: ",IDT_HEADER_KEY,2,88,93,8
+ RTEXT "Master Key: ",IDT_MASTER_KEY,2,96,93,8
+ GROUPBOX "",-1,0,81,267,26
END
-IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "",IDC_CHOICE1,"Button",BS_AUTORADIOBUTTON,0,7,212,10
- CONTROL "",IDC_CHOICE2,"Button",BS_AUTORADIOBUTTON,0,17,217,10
- LTEXT "",IDC_BOX_HELP,1,34,220,112
+ CONTROL "",IDC_CHOICE1,"Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "",IDC_CHOICE2,"Button",BS_AUTORADIOBUTTON,0,17,269,10
+ LTEXT "",IDC_BOX_HELP,1,34,268,152
END
-IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- LTEXT "",IDT_SYSENC_DRIVE_ANALYSIS_INFO,2,10,215,88
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,1,115,216,12
- LTEXT "Progress:",IDT_PROGRESS,2,104,57,8
+ LTEXT "",IDT_SYSENC_DRIVE_ANALYSIS_INFO,0,10,267,109
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,0,135,267,12
+ LTEXT "Progress:",IDT_PROGRESS,2,124,172,8
END
-IDD_SYSENC_TYPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_TYPE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Normal",IDC_SYSENC_NORMAL,"Button",BS_AUTORADIOBUTTON,0,7,212,10
- CONTROL "Hi&dden",IDC_SYSENC_HIDDEN,"Button",BS_AUTORADIOBUTTON,0,53,212,10
- LTEXT "More information",IDC_HIDDEN_SYSENC_INFO_LINK,16,148,205,10,SS_NOTIFY
- LTEXT "",IDC_BOX_HELP_SYSENC_NORMAL,16,20,205,25
- LTEXT "",IDC_BOX_HELP,16,67,205,72
+ CONTROL "Normal",IDC_SYSENC_NORMAL,"Button",BS_AUTORADIOBUTTON,0,7,269,10
+ CONTROL "Hi&dden",IDC_SYSENC_HIDDEN,"Button",BS_AUTORADIOBUTTON,0,64,269,10
+ LTEXT "More information",IDC_HIDDEN_SYSENC_INFO_LINK,16,173,253,10,SS_NOTIFY
+ LTEXT "",IDC_BOX_HELP_SYSENC_NORMAL,16,20,253,41
+ LTEXT "",IDC_BOX_HELP,16,78,253,90
END
-IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- LTEXT "More information",IDC_HIDDEN_SYSENC_INFO_LINK,0,150,217,10,SS_NOTIFY
- LTEXT "",IDC_BOX_HELP,0,2,225,142
+ LTEXT "More information",IDC_HIDDEN_SYSENC_INFO_LINK,0,172,273,10,SS_NOTIFY
+ LTEXT "",IDC_BOX_HELP,0,2,273,166
END
-IDD_DEVICE_WIPE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_DEVICE_WIPE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- PUSHBUTTON "Abort",IDC_ABORT_BUTTON,169,48,50,14
+ PUSHBUTTON "Abort",IDC_ABORT_BUTTON,217,48,50,14
LTEXT "",IDC_BYTESWRITTEN,29,66,39,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_WRITESPEED,103,66,46,11,SS_CENTERIMAGE | NOT WS_VISIBLE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "",IDC_TIMEREMAIN,177,66,42,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
- RTEXT "Wipe mode:",IDT_WIPE_MODE,6,22,59,8,0,WS_EX_RIGHT
- CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,49,158,12
+ RTEXT "",IDC_WRITESPEED,119,66,46,11,SS_CENTERIMAGE | NOT WS_VISIBLE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "",IDC_TIMEREMAIN,219,66,48,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_RIGHT | WS_EX_STATICEDGE
+ RTEXT "Wipe mode:",IDT_WIPE_MODE,6,22,92,8,0,WS_EX_RIGHT
+ CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,6,49,208,12
RTEXT "Done",IDT_DONE,5,67,22,8
- RTEXT "Pass",IDT_PASS,72,67,29,8,NOT WS_VISIBLE
- RTEXT "Left",IDT_LEFT,151,67,24,8
- LTEXT "",IDC_BOX_HELP,1,86,224,80
- GROUPBOX "",IDT_FORMAT_OPTIONS,0,10,225,29
- GROUPBOX "",IDC_STATIC,0,40,225,42
- LTEXT "",IDC_WIPE_MODE,67,21,125,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
+ RTEXT "Pass",IDT_PASS,73,67,44,8,NOT WS_VISIBLE
+ RTEXT "Left",IDT_LEFT,180,67,34,8
+ LTEXT "",IDC_BOX_HELP,1,96,266,91
+ GROUPBOX "",IDT_FORMAT_OPTIONS,0,10,267,29
+ GROUPBOX "",IDC_STATIC,0,40,267,42
+ LTEXT "",IDC_WIPE_MODE,101,21,125,11,SS_CENTERIMAGE,WS_EX_TRANSPARENT | WS_EX_STATICEDGE
END
-IDD_DEVICE_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_DEVICE_WIPE_MODE_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- COMBOBOX IDC_WIPE_MODE,61,9,127,90,CBS_DROPDOWNLIST | WS_TABSTOP
- RTEXT "Wipe mode:",IDT_WIPE_MODE,0,11,59,8,0,WS_EX_RIGHT
- LTEXT "",IDT_WIPE_MODE_INFO,0,29,225,122
+ COMBOBOX IDC_WIPE_MODE,89,9,127,90,CBS_DROPDOWNLIST | WS_TABSTOP
+ RTEXT "Wipe mode:",IDT_WIPE_MODE,0,11,86,8,0,WS_EX_RIGHT
+ LTEXT "",IDT_WIPE_MODE_INFO,0,29,269,157
END
-IDD_DEVICE_TRANSFORM_MODE_DLG DIALOGEX 0, 0, 226, 172
+IDD_DEVICE_TRANSFORM_MODE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "Create encrypted volume and format it",IDC_DEVICE_TRANSFORM_MODE_FORMAT,
- "Button",BS_AUTORADIOBUTTON,0,8,217,10
+ "Button",BS_AUTORADIOBUTTON,0,8,269,10
CONTROL "Encrypt partition in place",IDC_DEVICE_TRANSFORM_MODE_INPLACE,
- "Button",BS_AUTORADIOBUTTON,0,98,217,10
- LTEXT "",IDC_BOX_HELP,16,21,205,74
- LTEXT "",IDC_BOX_HELP2,16,112,205,53
+ "Button",BS_AUTORADIOBUTTON,0,111,269,10
+ LTEXT "",IDC_BOX_HELP,16,21,253,84
+ LTEXT "",IDC_BOX_HELP2,16,125,253,61
END
-IDD_EXPANDED_LIST_SELECT_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_EXPANDED_LIST_SELECT_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- LTEXT "",IDC_BOX_HELP,0,107,225,58
- LISTBOX IDC_LIST_BOX,0,3,222,100,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
+ LTEXT "",IDC_BOX_HELP,0,117,269,69
+ LISTBOX IDC_LIST_BOX,0,3,269,107,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
END
-IDD_DRIVE_LETTER_SELECTION_PAGE DIALOGEX 0, 0, 226, 172
+IDD_DRIVE_LETTER_SELECTION_PAGE DIALOGEX 0, 0, 277, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- LTEXT "",IDC_BOX_HELP,0,40,225,118
- COMBOBOX IDC_DRIVE_LETTER_LIST,94,15,38,69,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Drive letter:",IDT_DRIVE_LETTER,5,17,86,8
+ LTEXT "",IDC_BOX_HELP,0,40,270,146
+ COMBOBOX IDC_DRIVE_LETTER_LIST,115,15,38,69,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ RTEXT "Drive letter:",IDT_DRIVE_LETTER,5,17,106,8
END
-IDD_PIM_PAGE_DLG DIALOGEX 0, 0, 226, 172
+IDD_PIM_PAGE_DLG DIALOGEX 0, 0, 276, 193
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
- EDITTEXT IDC_PIM,53,0,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "",IDC_BOX_HELP,0,32,225,126
- RTEXT "Volume PIM:",IDT_PIM,1,3,50,8
- LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,97,3,126,8
- LTEXT "Information on PIM",IDC_LINK_PIM_INFO,0,161,213,8,SS_NOTIFY
- CONTROL "Display PIM",IDC_SHOW_PIM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,17,150,10
+ EDITTEXT IDC_PIM,74,0,42,14,ES_RIGHT | ES_PASSWORD | ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "",IDC_BOX_HELP,0,32,273,142
+ RTEXT "Volume PIM:",IDT_PIM,1,3,69,8
+ LTEXT "(Empty or 0 for default iterations)",IDC_PIM_HELP,120,3,153,8
+ LTEXT "Information on PIM",IDC_LINK_PIM_INFO,0,179,273,8,SS_NOTIFY
+ CONTROL "Display PIM",IDC_SHOW_PIM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,74,17,196,10
END
@@ -491,40 +491,38 @@ GUIDELINES DESIGNINFO
BEGIN
IDD_VOL_CREATION_WIZARD_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 393
+ RIGHTMARGIN, 443
TOPMARGIN, 1
- BOTTOMMARGIN, 227
- HORZGUIDE, 216
+ BOTTOMMARGIN, 248
+ HORZGUIDE, 241
END
IDD_CIPHER_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 161
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 182
END
IDD_PASSWORD_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 143
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 192
END
IDD_SIZE_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 165
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 186
END
IDD_VOLUME_LOCATION_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 188
END
IDD_FORMAT_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
HORZGUIDE, 80
HORZGUIDE, 96
END
@@ -532,67 +530,65 @@ BEGIN
IDD_INTRO_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_INFO_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_HIDVOL_HOST_FILL_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_HIDDEN_VOL_WIZARD_MODE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_PASSWORD_ENTRY_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 143
+ RIGHTMARGIN, 273
END
IDD_VOLUME_TYPE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_SYSENC_SPAN_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_SYSENC_RESCUE_DISK_CREATION_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 188
END
IDD_SYSENC_COLLECTING_RANDOM_DATA_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
+ BOTTOMMARGIN, 174
HORZGUIDE, 80
HORZGUIDE, 96
END
@@ -600,37 +596,37 @@ BEGIN
IDD_SYSENC_MULTI_BOOT_MODE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_SYSENC_RESCUE_DISK_BURN_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 188
END
IDD_SYSENC_WIPE_MODE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_INPLACE_ENCRYPTION_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 166
+ RIGHTMARGIN, 267
+ BOTTOMMARGIN, 187
HORZGUIDE, 80
HORZGUIDE, 96
END
IDD_SYSENC_KEYS_GEN_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
+ RIGHTMARGIN, 267
+ BOTTOMMARGIN, 174
HORZGUIDE, 80
HORZGUIDE, 96
END
@@ -638,15 +634,15 @@ BEGIN
IDD_UNIVERSAL_DUAL_CHOICE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_SYSENC_DRIVE_ANALYSIS_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 153
+ RIGHTMARGIN, 267
+ BOTTOMMARGIN, 174
HORZGUIDE, 80
HORZGUIDE, 96
END
@@ -654,21 +650,21 @@ BEGIN
IDD_SYSENC_TYPE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_SYSENC_HIDDEN_OS_REQ_CHECK_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 167
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 188
END
IDD_DEVICE_WIPE_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 217
- BOTTOMMARGIN, 166
+ RIGHTMARGIN, 267
+ BOTTOMMARGIN, 187
HORZGUIDE, 80
HORZGUIDE, 96
END
@@ -676,39 +672,39 @@ BEGIN
IDD_DEVICE_WIPE_MODE_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_DEVICE_TRANSFORM_MODE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_EXPANDED_LIST_SELECT_PAGE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 269
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_DRIVE_LETTER_SELECTION_PAGE, DIALOG
BEGIN
LEFTMARGIN, 7
- RIGHTMARGIN, 219
+ RIGHTMARGIN, 270
TOPMARGIN, 7
- BOTTOMMARGIN, 165
+ BOTTOMMARGIN, 186
END
IDD_PIM_PAGE_DLG, DIALOG
BEGIN
- RIGHTMARGIN, 223
- BOTTOMMARGIN, 171
+ RIGHTMARGIN, 273
+ BOTTOMMARGIN, 192
END
END
#endif // APSTUDIO_INVOKED
diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c
index 0841aaa..dba64c2 100644
--- a/src/Format/Tcformat.c
+++ b/src/Format/Tcformat.c
@@ -4391,7 +4391,8 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
SetCheckBox (hwndDlg, IDC_PIM_ENABLE, PimEnable);
SetCheckBox (hwndDlg, IDC_KEYFILES_ENABLE, KeyFilesEnable && !SysEncInEffect());
- EnableWindow (GetDlgItem (hwndDlg, IDC_KEY_FILES), KeyFilesEnable);
+ EnableWindow (GetDlgItem (hwndDlg, IDC_KEY_FILES), KeyFilesEnable && !SysEncInEffect());
+ EnableWindow (GetDlgItem (hwndDlg, IDC_KEYFILES_ENABLE), !SysEncInEffect());
SetWindowTextW (GetDlgItem (hwndDlg, IDC_BOX_HELP), str);
@@ -6242,7 +6243,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
}
else
{
- if (!dynamicFormat && (nVolumeSize > free.QuadPart))
+ if (!dynamicFormat && !bDontCheckFileContainerSize && (nVolumeSize > free.QuadPart))
{
AbortProcess ("ERR_CONTAINER_SIZE_TOO_BIG");
}
diff --git a/src/Format/VeraCrypt_Wizard.bmp b/src/Format/VeraCrypt_Wizard.bmp
index 27b4b0b..a368a3a 100644
--- a/src/Format/VeraCrypt_Wizard.bmp
+++ b/src/Format/VeraCrypt_Wizard.bmp
Binary files differ
diff --git a/src/Main/CommandLineInterface.cpp b/src/Main/CommandLineInterface.cpp
index 68d308f..171bd16 100644
--- a/src/Main/CommandLineInterface.cpp
+++ b/src/Main/CommandLineInterface.cpp
@@ -30,6 +30,7 @@ namespace VeraCrypt
ArgSize (0),
ArgVolumeType (VolumeType::Unknown),
ArgTrueCryptMode (false),
+ ArgDisableFileSizeCheck (false),
StartBackgroundTask (false)
{
wxCmdLineParser parser;
@@ -96,6 +97,7 @@ namespace VeraCrypt
parser.AddOption (L"", L"volume-type", _("Volume type"));
parser.AddParam ( _("Volume path"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
parser.AddParam ( _("Mount point"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
+ parser.AddSwitch (L"", L"no-size-check", _("Disable check of container size against disk free space."));
wxString str;
bool param1IsVolume = false;
@@ -319,6 +321,8 @@ namespace VeraCrypt
}
else if (str.IsSameAs (L"exFAT", false))
ArgFilesystem = VolumeCreationOptions::FilesystemType::exFAT;
+ else if (str.IsSameAs (L"APFS", false))
+ ArgFilesystem = VolumeCreationOptions::FilesystemType::APFS;
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
else if (str.IsSameAs (L"UFS", false))
ArgFilesystem = VolumeCreationOptions::FilesystemType::UFS;
@@ -331,6 +335,7 @@ namespace VeraCrypt
ArgForce = parser.Found (L"force");
ArgTrueCryptMode = parser.Found (L"truecrypt");
+ ArgDisableFileSizeCheck = parser.Found (L"no-size-check");
#if !defined(TC_WINDOWS) && !defined(TC_MACOSX)
if (parser.Found (L"fs-options", &str))
diff --git a/src/Main/CommandLineInterface.h b/src/Main/CommandLineInterface.h
index cc4c317..9fd67a2 100644
--- a/src/Main/CommandLineInterface.h
+++ b/src/Main/CommandLineInterface.h
@@ -83,6 +83,7 @@ namespace VeraCrypt
VolumeType::Enum ArgVolumeType;
bool ArgTrueCryptMode;
shared_ptr<SecureBuffer> ArgTokenPin;
+ bool ArgDisableFileSizeCheck;
bool StartBackgroundTask;
UserPreferences Preferences;
diff --git a/src/Main/Forms/DeviceSelectionDialog.cpp b/src/Main/Forms/DeviceSelectionDialog.cpp
index c3a3d84..c886e18 100644
--- a/src/Main/Forms/DeviceSelectionDialog.cpp
+++ b/src/Main/Forms/DeviceSelectionDialog.cpp
@@ -48,13 +48,31 @@ namespace VeraCrypt
foreach_ref (HostDevice &device, DeviceList)
{
- if (device.Size == 0)
- continue;
-
vector <wstring> fields (DeviceListCtrl->GetColumnCount());
-
+
if (DeviceListCtrl->GetItemCount() > 0)
Gui->AppendToListCtrl (DeviceListCtrl, fields);
+
+ // i.e. /dev/rdisk0 might have size = 0 in case open() fails because, for example on OSX,
+ // SIP is enabled on the machine ;
+ // This does not mean that it does not have partitions that have been successfully opened
+ // and have a size != 0 ;
+ // Therefore, we do not show the device ONLY if it does not have partitions with size != 0 ;
+ if (device.Size == 0)
+ {
+ bool bHasNonEmptyPartition = false;
+ foreach_ref (HostDevice &partition, device.Partitions)
+ {
+ if (partition.Size)
+ {
+ bHasNonEmptyPartition = true;
+ break;
+ }
+ }
+
+ if (!bHasNonEmptyPartition)
+ continue;
+ }
#ifdef TC_WINDOWS
fields[ColumnDevice] = StringFormatter (L"{0} {1}:", _("Harddisk"), device.SystemNumber);
@@ -64,11 +82,20 @@ namespace VeraCrypt
fields[ColumnDevice] = wstring (device.Path) + L":";
fields[ColumnMountPoint] = device.MountPoint;
#endif
- fields[ColumnSize] = Gui->SizeToString (device.Size);
+ // If the size of the device is 0, we do not show the size to avoid confusing the user ;
+ if (device.Size)
+ fields[ColumnSize] = Gui->SizeToString (device.Size);
+ else
+ fields[ColumnSize] = L"";
Gui->AppendToListCtrl (DeviceListCtrl, fields, 0, &device);
foreach_ref (HostDevice &partition, device.Partitions)
{
+ // If a partition's size is 0, there is no need to show it in the list
+ // since this means it is not usable (i.e on OSX, because of SIP enabled in the machine) ;
+ if (!partition.Size)
+ continue;
+
fields[ColumnDevice] =
#ifndef TC_WINDOWS
wstring (L" ") +
@@ -113,7 +140,8 @@ namespace VeraCrypt
void DeviceSelectionDialog::OnListItemSelected (wxListEvent& event)
{
HostDevice *device = (HostDevice *) (event.GetItem().GetData());
- if (device)
+ // If a device's size is 0, we do not enable the 'OK' button since it is not usable
+ if (device && device->Size)
{
SelectedDevice = *device;
StdButtonsOK->Enable();
diff --git a/src/Main/Forms/Forms.cpp b/src/Main/Forms/Forms.cpp
index ad1a3ee..c0a4070 100644
--- a/src/Main/Forms/Forms.cpp
+++ b/src/Main/Forms/Forms.cpp
@@ -328,7 +328,7 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
VolumeStaticBoxSizer->Add( VolumeGridBagSizer, 1, wxEXPAND|wxALL, 4 );
- LowStaticBoxSizer->Add( VolumeStaticBoxSizer, 1, wxEXPAND, 5 );
+ LowStaticBoxSizer->Add( VolumeStaticBoxSizer, 1, wxEXPAND|wxALL, 5 );
LowStaticBoxSizer->Add( 0, 0, 0, 0, 5 );
@@ -344,46 +344,49 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
VolumeButton->SetDefault();
VolumeButton->SetMinSize( wxSize( -1,32 ) );
- sbSizer4->Add( VolumeButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 2 );
+ sbSizer4->Add( VolumeButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 2 );
gSizer2->Add( sbSizer4, 1, wxEXPAND, 0 );
wxStaticBoxSizer* sbSizer41;
sbSizer41 = new wxStaticBoxSizer( new wxStaticBox( MainPanel, wxID_ANY, wxEmptyString ), wxVERTICAL );
+ sbSizer41->SetMinSize( wxSize( 139,-1 ) );
MountAllDevicesButton = new wxButton( MainPanel, wxID_ANY, _("&Auto-Mount Devices"), wxDefaultPosition, wxDefaultSize, 0 );
MountAllDevicesButton->SetMinSize( wxSize( -1,32 ) );
- sbSizer41->Add( MountAllDevicesButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 2 );
+ sbSizer41->Add( MountAllDevicesButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 2 );
- gSizer2->Add( sbSizer41, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+ gSizer2->Add( sbSizer41, 1, wxEXPAND, 5 );
wxStaticBoxSizer* sbSizer42;
sbSizer42 = new wxStaticBoxSizer( new wxStaticBox( MainPanel, wxID_ANY, wxEmptyString ), wxVERTICAL );
+ sbSizer42->SetMinSize( wxSize( 139,-1 ) );
DismountAllButton = new wxButton( MainPanel, wxID_ANY, _("Di&smount All"), wxDefaultPosition, wxDefaultSize, 0 );
DismountAllButton->SetMinSize( wxSize( -1,32 ) );
- sbSizer42->Add( DismountAllButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 2 );
+ sbSizer42->Add( DismountAllButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 2 );
- gSizer2->Add( sbSizer42, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+ gSizer2->Add( sbSizer42, 1, wxEXPAND, 5 );
wxStaticBoxSizer* sbSizer43;
sbSizer43 = new wxStaticBoxSizer( new wxStaticBox( MainPanel, wxID_ANY, wxEmptyString ), wxVERTICAL );
+ sbSizer43->SetMinSize( wxSize( 139,-1 ) );
ExitButton = new wxButton( MainPanel, wxID_ANY, _("E&xit"), wxDefaultPosition, wxDefaultSize, 0 );
ExitButton->SetMinSize( wxSize( -1,32 ) );
- sbSizer43->Add( ExitButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 2 );
+ sbSizer43->Add( ExitButton, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 2 );
- gSizer2->Add( sbSizer43, 1, wxALIGN_RIGHT|wxEXPAND, 5 );
+ gSizer2->Add( sbSizer43, 1, wxEXPAND, 5 );
- LowStaticBoxSizer->Add( gSizer2, 0, wxEXPAND, 5 );
+ LowStaticBoxSizer->Add( gSizer2, 0, wxEXPAND|wxALL, 5 );
bSizer48->Add( LowStaticBoxSizer, 0, wxEXPAND, 5 );
diff --git a/src/Main/Forms/KeyfilesPanel.cpp b/src/Main/Forms/KeyfilesPanel.cpp
index 71077e8..c1f26d8 100644
--- a/src/Main/Forms/KeyfilesPanel.cpp
+++ b/src/Main/Forms/KeyfilesPanel.cpp
@@ -59,10 +59,8 @@ namespace VeraCrypt
SetDropTarget (new FileDropTarget (this));
KeyfilesListCtrl->SetDropTarget (new FileDropTarget (this));
-#ifdef TC_MACOSX
foreach (wxWindow *c, GetChildren())
c->SetDropTarget (new FileDropTarget (this));
-#endif
UpdateButtons();
}
diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp
index ad5bf5b..9abe255 100644
--- a/src/Main/Forms/MainFrame.cpp
+++ b/src/Main/Forms/MainFrame.cpp
@@ -393,10 +393,8 @@ namespace VeraCrypt
};
SetDropTarget (new FileDropTarget (this));
-#ifdef TC_MACOSX
foreach (wxWindow *c, MainPanel->GetChildren())
c->SetDropTarget (new FileDropTarget (this));
-#endif
// Volume history
VolumeHistory::ConnectComboBox (VolumePathComboBox);
diff --git a/src/Main/Forms/TrueCrypt.fbp b/src/Main/Forms/TrueCrypt.fbp
index 7509f1e..d512ce8 100644
--- a/src/Main/Forms/TrueCrypt.fbp
+++ b/src/Main/Forms/TrueCrypt.fbp
@@ -1373,7 +1373,7 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxEXPAND</property>
+ <property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
@@ -1989,7 +1989,7 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxEXPAND</property>
+ <property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxGridSizer" expanded="1">
<property name="cols">4</property>
@@ -2013,7 +2013,7 @@
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">2</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP</property>
+ <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
@@ -2103,19 +2103,19 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
+ <property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label"></property>
- <property name="minimum_size">-1,-1</property>
+ <property name="minimum_size">139,-1</property>
<property name="name">sbSizer41</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">2</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP</property>
+ <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
@@ -2205,19 +2205,19 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
+ <property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label"></property>
- <property name="minimum_size">-1,-1</property>
+ <property name="minimum_size">139,-1</property>
<property name="name">sbSizer42</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">2</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP</property>
+ <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
@@ -2307,19 +2307,19 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxALIGN_RIGHT|wxEXPAND</property>
+ <property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label"></property>
- <property name="minimum_size">-1,-1</property>
+ <property name="minimum_size">139,-1</property>
<property name="name">sbSizer43</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">2</property>
- <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP</property>
+ <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp
index b28b1c3..c0201b0 100644
--- a/src/Main/Forms/VolumeCreationWizard.cpp
+++ b/src/Main/Forms/VolumeCreationWizard.cpp
@@ -475,6 +475,7 @@ namespace VeraCrypt
#elif defined (TC_MACOSX)
case VolumeCreationOptions::FilesystemType::MacOsExt: fsFormatter = "newfs_hfs"; break;
case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "newfs_exfat"; break;
+ case VolumeCreationOptions::FilesystemType::APFS: fsFormatter = "newfs_apfs"; break;
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
case VolumeCreationOptions::FilesystemType::UFS: fsFormatter = "newfs" ; break;
#endif
diff --git a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
index ec0d778..3865705 100644
--- a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
+++ b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp
@@ -13,6 +13,7 @@
#include "System.h"
#include "Main/GraphicUserInterface.h"
#include "VolumeFormatOptionsWizardPage.h"
+#include <wx/platinfo.h>
namespace VeraCrypt
{
@@ -40,6 +41,8 @@ namespace VeraCrypt
#elif defined (TC_MACOSX)
FilesystemTypeChoice->Append (L"Mac OS Extended", (void *) VolumeCreationOptions::FilesystemType::MacOsExt);
FilesystemTypeChoice->Append (L"exFAT", (void *) VolumeCreationOptions::FilesystemType::exFAT);
+ if (wxPlatformInfo::Get().CheckOSVersion (10, 13))
+ FilesystemTypeChoice->Append (L"APFS", (void *) VolumeCreationOptions::FilesystemType::APFS);
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
FilesystemTypeChoice->Append (L"UFS", (void *) VolumeCreationOptions::FilesystemType::UFS);
#endif
@@ -81,6 +84,7 @@ namespace VeraCrypt
case VolumeCreationOptions::FilesystemType::Ext3: FilesystemTypeChoice->SetStringSelection (L"Linux Ext3"); break;
case VolumeCreationOptions::FilesystemType::Ext4: FilesystemTypeChoice->SetStringSelection (L"Linux Ext4"); break;
case VolumeCreationOptions::FilesystemType::MacOsExt: FilesystemTypeChoice->SetStringSelection (L"Mac OS Extended"); break;
+ case VolumeCreationOptions::FilesystemType::APFS: FilesystemTypeChoice->SetStringSelection (L"APFS"); break;
case VolumeCreationOptions::FilesystemType::UFS: FilesystemTypeChoice->SetStringSelection (L"UFS"); break;
default:
diff --git a/src/Main/Forms/VolumePasswordPanel.cpp b/src/Main/Forms/VolumePasswordPanel.cpp
index 2859762..8d5e8bc 100644
--- a/src/Main/Forms/VolumePasswordPanel.cpp
+++ b/src/Main/Forms/VolumePasswordPanel.cpp
@@ -159,10 +159,8 @@ namespace VeraCrypt
if (enableKeyfiles)
{
SetDropTarget (new FileDropTarget (this));
-#ifdef TC_MACOSX
foreach (wxWindow *c, GetChildren())
c->SetDropTarget (new FileDropTarget (this));
-#endif
}
Layout();
diff --git a/src/Main/Forms/VolumeSizeWizardPage.cpp b/src/Main/Forms/VolumeSizeWizardPage.cpp
index f404441..3781b05 100644
--- a/src/Main/Forms/VolumeSizeWizardPage.cpp
+++ b/src/Main/Forms/VolumeSizeWizardPage.cpp
@@ -21,7 +21,8 @@ namespace VeraCrypt
MaxVolumeSize (0),
MaxVolumeSizeValid (false),
MinVolumeSize (1),
- SectorSize (sectorSize)
+ SectorSize (sectorSize),
+ AvailableDiskSpace (0)
{
VolumeSizePrefixChoice->Append (LangString["KB"], reinterpret_cast <void *> (1024));
VolumeSizePrefixChoice->Append (LangString["MB"], reinterpret_cast <void *> (1024 * 1024));
@@ -34,6 +35,10 @@ namespace VeraCrypt
VolumeSizeTextCtrl->Disable();
VolumeSizeTextCtrl->SetValue (L"");
}
+ else
+ {
+ AvailableDiskSpace = (uint64) diskSpace.GetValue ();
+ }
FreeSpaceStaticText->SetFont (Gui->GetDefaultBoldFont (this));
@@ -97,7 +102,8 @@ namespace VeraCrypt
{
try
{
- if (GetVolumeSize() >= MinVolumeSize && (!MaxVolumeSizeValid || GetVolumeSize() <= MaxVolumeSize))
+ uint64 uiVolumeSize = GetVolumeSize();
+ if (uiVolumeSize >= MinVolumeSize && (!MaxVolumeSizeValid || uiVolumeSize <= MaxVolumeSize) && (CmdLine->ArgDisableFileSizeCheck || !AvailableDiskSpace || uiVolumeSize <= AvailableDiskSpace))
return true;
}
catch (...) { }
diff --git a/src/Main/Forms/VolumeSizeWizardPage.h b/src/Main/Forms/VolumeSizeWizardPage.h
index e12a5a7..aac41f9 100644
--- a/src/Main/Forms/VolumeSizeWizardPage.h
+++ b/src/Main/Forms/VolumeSizeWizardPage.h
@@ -49,6 +49,7 @@ namespace VeraCrypt
bool MaxVolumeSizeValid;
uint64 MinVolumeSize;
uint32 SectorSize;
+ uint64 AvailableDiskSpace;
};
}
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index 99b2caa..b7b4cf4 100755
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -1309,7 +1309,7 @@ namespace VeraCrypt
#elif defined (TC_MACOSX)
htmlPath += L"/../Resources/doc/HTML/";
#elif defined (TC_UNIX)
- htmlPath = L"/usr/share/veracrypt/doc/HTML/";
+ htmlPath = L"/usr/share/doc/veracrypt/HTML/";
#else
localFile = false;
#endif
diff --git a/src/Main/Main.make b/src/Main/Main.make
index 581eb34..9bf5b02 100755
--- a/src/Main/Main.make
+++ b/src/Main/Main.make
@@ -191,74 +191,79 @@ prepare: $(APPNAME)
ifeq "$(TC_BUILD_CONFIG)" "Release"
ifdef TC_NO_GUI
- cp $(PWD)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)_console
+ cp $(BASE_DIR)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)_console
else
- cp $(PWD)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)
+ cp $(BASE_DIR)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)
endif
else
ifdef TC_NO_GUI
- -rm -f $(PWD)/Main/$(APPNAME)_console
- cp $(PWD)/Main/$(APPNAME) $(PWD)/Main/$(APPNAME)_console
- -ln -sf $(PWD)/Main/$(APPNAME)_console $(APPNAME).app/Contents/MacOS/$(APPNAME)_console
+ -rm -f $(BASE_DIR)/Main/$(APPNAME)_console
+ cp $(BASE_DIR)/Main/$(APPNAME) $(BASE_DIR)/Main/$(APPNAME)_console
+ -ln -sf $(BASE_DIR)/Main/$(APPNAME)_console $(APPNAME).app/Contents/MacOS/$(APPNAME)_console
else
- -ln -sf $(PWD)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)
+ -ln -sf $(BASE_DIR)/Main/$(APPNAME) $(APPNAME).app/Contents/MacOS/$(APPNAME)
endif
endif
- cp $(PWD)/Resources/Icons/VeraCrypt.icns $(APPNAME).app/Contents/Resources
- cp $(PWD)/Resources/Icons/VeraCrypt_Volume.icns $(APPNAME).app/Contents/Resources
- cp $(PWD)/../doc/html/* $(APPNAME).app/Contents/Resources/doc/HTML
+ cp $(BASE_DIR)/Resources/Icons/VeraCrypt.icns $(APPNAME).app/Contents/Resources
+ cp $(BASE_DIR)/Resources/Icons/VeraCrypt_Volume.icns $(APPNAME).app/Contents/Resources
+ cp $(BASE_DIR)/../doc/html/* $(APPNAME).app/Contents/Resources/doc/HTML
echo -n APPLTRUE >$(APPNAME).app/Contents/PkgInfo
+ifdef VC_LEGACY_BUILD
+ sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.legacy.xml >$(APPNAME).app/Contents/Info.plist
+else
sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.xml >$(APPNAME).app/Contents/Info.plist
+endif
codesign -s "Developer ID Application: IDRIX (Z933746L2S)" --timestamp $(APPNAME).app
install: prepare
cp -R $(APPNAME).app /Applications/.
package: prepare
- /usr/local/bin/packagesbuild $(PWD)/Setup/MacOSX/veracrypt.pkgproj
- productsign --sign "Developer ID Installer: IDRIX (Z933746L2S)" --timestamp "$(PWD)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(PWD)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg
+ /usr/local/bin/packagesbuild $(BASE_DIR)/Setup/MacOSX/veracrypt.pkgproj
+ productsign --sign "Developer ID Installer: IDRIX (Z933746L2S)" --timestamp "$(BASE_DIR)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(BASE_DIR)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg
rm -f $(APPNAME)_$(TC_VERSION).dmg
- rm -f "$(PWD)/Setup/MacOSX/template.dmg"
- rm -fr "$(PWD)/Setup/MacOSX/VeraCrypt_dmg"
- mkdir -p "$(PWD)/Setup/MacOSX/VeraCrypt_dmg"
- bunzip2 -k -f "$(PWD)/Setup/MacOSX/template.dmg.bz2"
- hdiutil attach "$(PWD)/Setup/MacOSX/template.dmg" -noautoopen -quiet -mountpoint "$(PWD)/Setup/MacOSX/VeraCrypt_dmg"
- cp "$(PWD)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg" "$(PWD)/Setup/MacOSX/VeraCrypt_dmg/VeraCrypt_Installer.pkg"
- hdiutil detach "$(PWD)/Setup/MacOSX/VeraCrypt_dmg" -quiet -force
- hdiutil convert "$(PWD)/Setup/MacOSX/template.dmg" -quiet -format UDZO -imagekey zlib-level=9 -o $(APPNAME)_$(TC_VERSION).dmg
- rm -f "$(PWD)/Setup/MacOSX/template.dmg"
- rm -fr "$(PWD)/Setup/MacOSX/VeraCrypt_dmg"
+ rm -f "$(BASE_DIR)/Setup/MacOSX/template.dmg"
+ rm -fr "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg"
+ mkdir -p "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg"
+ bunzip2 -k -f "$(BASE_DIR)/Setup/MacOSX/template.dmg.bz2"
+ hdiutil attach "$(BASE_DIR)/Setup/MacOSX/template.dmg" -noautoopen -quiet -mountpoint "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg"
+ cp "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg" "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg/VeraCrypt_Installer.pkg"
+ hdiutil detach "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg" -quiet -force
+ hdiutil convert "$(BASE_DIR)/Setup/MacOSX/template.dmg" -quiet -format UDZO -imagekey zlib-level=9 -o $(APPNAME)_$(TC_VERSION).dmg
+ rm -f "$(BASE_DIR)/Setup/MacOSX/template.dmg"
+ rm -fr "$(BASE_DIR)/Setup/MacOSX/VeraCrypt_dmg"
endif
ifeq "$(PLATFORM)" "Linux"
prepare: $(APPNAME)
- rm -fr $(PWD)/Setup/Linux/usr
- mkdir -p $(PWD)/Setup/Linux/usr/bin
- mkdir -p $(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/HTML
- cp $(PWD)/Main/$(APPNAME) $(PWD)/Setup/Linux/usr/bin/$(APPNAME)
- cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh $(PWD)/Setup/Linux/usr/bin/$(APPNAME)-uninstall.sh
- chmod +x $(PWD)/Setup/Linux/usr/bin/$(APPNAME)-uninstall.sh
- cp $(PWD)/License.txt $(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/License.txt
- cp $(PWD)/../doc/html/* "$(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/HTML"
+ rm -fr $(BASE_DIR)/Setup/Linux/usr
+ mkdir -p $(BASE_DIR)/Setup/Linux/usr/bin
+ mkdir -p $(BASE_DIR)/Setup/Linux/usr/share/doc/$(APPNAME)/HTML
+ cp $(BASE_DIR)/Main/$(APPNAME) $(BASE_DIR)/Setup/Linux/usr/bin/$(APPNAME)
+ cp $(BASE_DIR)/Setup/Linux/$(APPNAME)-uninstall.sh $(BASE_DIR)/Setup/Linux/usr/bin/$(APPNAME)-uninstall.sh
+ chmod +x $(BASE_DIR)/Setup/Linux/usr/bin/$(APPNAME)-uninstall.sh
+ cp $(BASE_DIR)/License.txt $(BASE_DIR)/Setup/Linux/usr/share/doc/$(APPNAME)/License.txt
+ cp $(BASE_DIR)/../doc/html/* "$(BASE_DIR)/Setup/Linux/usr/share/doc/$(APPNAME)/HTML"
ifndef TC_NO_GUI
- mkdir -p $(PWD)/Setup/Linux/usr/share/applications
- mkdir -p $(PWD)/Setup/Linux/usr/share/pixmaps
- cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm $(PWD)/Setup/Linux/usr/share/pixmaps/$(APPNAME).xpm
- cp $(PWD)/Setup/Linux/$(APPNAME).desktop $(PWD)/Setup/Linux/usr/share/applications/$(APPNAME).desktop
+ mkdir -p $(BASE_DIR)/Setup/Linux/usr/share/applications
+ mkdir -p $(BASE_DIR)/Setup/Linux/usr/share/pixmaps
+ cp $(BASE_DIR)/Resources/Icons/VeraCrypt-256x256.xpm $(BASE_DIR)/Setup/Linux/usr/share/pixmaps/$(APPNAME).xpm
+ cp $(BASE_DIR)/Setup/Linux/$(APPNAME).desktop $(BASE_DIR)/Setup/Linux/usr/share/applications/$(APPNAME).desktop
endif
install: prepare
- cp -R $(CURDIR)/Setup/Linux/usr $(DESTDIR)/.
+ mkdir -p $(DESTDIR)
+ cp -R $(BASE_DIR)/Setup/Linux/usr $(DESTDIR)/
ifeq "$(TC_BUILD_CONFIG)" "Release"
package: prepare
- tar cfz $(PWD)/Setup/Linux/$(PACKAGE_NAME) --directory $(PWD)/Setup/Linux usr
+ tar cfz $(BASE_DIR)/Setup/Linux/$(PACKAGE_NAME) --directory $(BASE_DIR)/Setup/Linux usr
@rm -fr $(INTERNAL_INSTALLER_NAME)
@echo "#!/bin/sh" > $(INTERNAL_INSTALLER_NAME)
@@ -268,14 +273,14 @@ package: prepare
@echo "PACKAGE_START=1107" >> $(INTERNAL_INSTALLER_NAME)
@echo "INSTALLER_TYPE=$(INSTALLER_TYPE)" >> $(INTERNAL_INSTALLER_NAME)
- @cat $(PWD)/Setup/Linux/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
- @cat $(PWD)/Setup/Linux/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME)
+ @cat $(BASE_DIR)/Setup/Linux/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
+ @cat $(BASE_DIR)/Setup/Linux/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME)
chmod +x $(INTERNAL_INSTALLER_NAME)
- rm -fr $(PWD)/Setup/Linux/packaging
- mkdir -p $(PWD)/Setup/Linux/packaging
- cp $(INTERNAL_INSTALLER_NAME) $(PWD)/Setup/Linux/packaging/.
- makeself $(PWD)/Setup/Linux/packaging $(PWD)/Setup/Linux/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) Installer" ./$(INTERNAL_INSTALLER_NAME)
+ rm -fr $(BASE_DIR)/Setup/Linux/packaging
+ mkdir -p $(BASE_DIR)/Setup/Linux/packaging
+ cp $(INTERNAL_INSTALLER_NAME) $(BASE_DIR)/Setup/Linux/packaging/.
+ makeself $(BASE_DIR)/Setup/Linux/packaging $(BASE_DIR)/Setup/Linux/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) Installer" ./$(INTERNAL_INSTALLER_NAME)
endif
@@ -283,31 +288,32 @@ endif
ifeq "$(PLATFORM)" "FreeBSD"
prepare: $(APPNAME)
- rm -fr $(PWD)/Setup/FreeBSD/usr
- mkdir -p $(PWD)/Setup/FreeBSD/usr/bin
- mkdir -p $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML
- cp $(PWD)/Main/$(APPNAME) $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)
- cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
- chmod +x $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
- cp $(PWD)/License.txt $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/License.txt
- cp $(PWD)/../doc/html/* "$(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML"
+ rm -fr $(BASE_DIR)/Setup/FreeBSD/usr
+ mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/bin
+ mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/share/doc/$(APPNAME)/HTML
+ cp $(BASE_DIR)/Main/$(APPNAME) $(BASE_DIR)/Setup/FreeBSD/usr/bin/$(APPNAME)
+ cp $(BASE_DIR)/Setup/Linux/$(APPNAME)-uninstall.sh $(BASE_DIR)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
+ chmod +x $(BASE_DIR)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
+ cp $(BASE_DIR)/License.txt $(BASE_DIR)/Setup/FreeBSD/usr/share/doc/$(APPNAME)/License.txt
+ cp $(BASE_DIR)/../doc/html/* "$(BASE_DIR)/Setup/FreeBSD/usr/share/doc/$(APPNAME)/HTML"
ifndef TC_NO_GUI
- mkdir -p $(PWD)/Setup/FreeBSD/usr/share/applications
- mkdir -p $(PWD)/Setup/FreeBSD/usr/share/pixmaps
- cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm $(PWD)/Setup/FreeBSD/usr/share/pixmaps/$(APPNAME).xpm
- cp $(PWD)/Setup/Linux/$(APPNAME).desktop $(PWD)/Setup/FreeBSD/usr/share/applications/$(APPNAME).desktop
+ mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/share/applications
+ mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/share/pixmaps
+ cp $(BASE_DIR)/Resources/Icons/VeraCrypt-256x256.xpm $(BASE_DIR)/Setup/FreeBSD/usr/share/pixmaps/$(APPNAME).xpm
+ cp $(BASE_DIR)/Setup/Linux/$(APPNAME).desktop $(BASE_DIR)/Setup/FreeBSD/usr/share/applications/$(APPNAME).desktop
endif
- chown -R root:wheel $(PWD)/Setup/FreeBSD/usr
- chmod -R go-w $(PWD)/Setup/FreeBSD/usr
+ chown -R root:wheel $(BASE_DIR)/Setup/FreeBSD/usr
+ chmod -R go-w $(BASE_DIR)/Setup/FreeBSD/usr
install: prepare
- cp -R $(CURDIR)/Setup/FreeBSD/usr $(DESTDIR)/.
+ mkdir -p $(DESTDIR)
+ cp -R $(BASE_DIR)/Setup/FreeBSD/usr $(DESTDIR)/.
ifeq "$(TC_BUILD_CONFIG)" "Release"
package: prepare
- tar cfz $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) --directory $(PWD)/Setup/FreeBSD usr
+ tar cfz $(BASE_DIR)/Setup/FreeBSD/$(PACKAGE_NAME) --directory $(BASE_DIR)/Setup/FreeBSD usr
@rm -fr $(INTERNAL_INSTALLER_NAME)
@echo "#!/bin/sh" > $(INTERNAL_INSTALLER_NAME)
@@ -317,14 +323,14 @@ package: prepare
@echo "PACKAGE_START=1107" >> $(INTERNAL_INSTALLER_NAME)
@echo "INSTALLER_TYPE=$(INSTALLER_TYPE)" >> $(INTERNAL_INSTALLER_NAME)
- @cat $(PWD)/Setup/FreeBSD/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
- @cat $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME)
+ @cat $(BASE_DIR)/Setup/FreeBSD/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
+ @cat $(BASE_DIR)/Setup/FreeBSD/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME)
chmod +x $(INTERNAL_INSTALLER_NAME)
- rm -fr $(PWD)/Setup/FreeBSD/packaging
- mkdir -p $(PWD)/Setup/FreeBSD/packaging
- cp $(INTERNAL_INSTALLER_NAME) $(PWD)/Setup/FreeBSD/packaging/.
- makeself $(PWD)/Setup/FreeBSD/packaging $(PWD)/Setup/FreeBSD/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) $(SYSTEMNAME) Installer" ./$(INTERNAL_INSTALLER_NAME)
+ rm -fr $(BASE_DIR)/Setup/FreeBSD/packaging
+ mkdir -p $(BASE_DIR)/Setup/FreeBSD/packaging
+ cp $(INTERNAL_INSTALLER_NAME) $(BASE_DIR)/Setup/FreeBSD/packaging/.
+ makeself $(BASE_DIR)/Setup/FreeBSD/packaging $(BASE_DIR)/Setup/FreeBSD/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) $(SYSTEMNAME) Installer" ./$(INTERNAL_INSTALLER_NAME)
endif
diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp
index 61b8b8a..1e007fc 100644
--- a/src/Main/TextUserInterface.cpp
+++ b/src/Main/TextUserInterface.cpp
@@ -20,6 +20,7 @@
#include "Platform/Unix/Process.h"
#endif
+#include <wx/platinfo.h>
#include "Common/SecurityToken.h"
#include "Core/RandomNumberGenerator.h"
#include "Application.h"
@@ -785,6 +786,10 @@ namespace VeraCrypt
#elif defined (TC_MACOSX)
ShowInfo (L" 3) Mac OS Extended"); filesystems.push_back (VolumeCreationOptions::FilesystemType::MacOsExt);
ShowInfo (L" 4) exFAT"); filesystems.push_back (VolumeCreationOptions::FilesystemType::exFAT);
+ if (wxPlatformInfo::Get().CheckOSVersion (10, 13))
+ {
+ ShowInfo (L" 5) APFS"); filesystems.push_back (VolumeCreationOptions::FilesystemType::APFS);
+ }
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
ShowInfo (L" 3) UFS"); filesystems.push_back (VolumeCreationOptions::FilesystemType::UFS);
#endif
@@ -881,6 +886,7 @@ namespace VeraCrypt
#elif defined (TC_MACOSX)
case VolumeCreationOptions::FilesystemType::MacOsExt: fsFormatter = "newfs_hfs"; break;
case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "newfs_exfat"; break;
+ case VolumeCreationOptions::FilesystemType::APFS: fsFormatter = "newfs_apfs"; break;
#elif defined (TC_FREEBSD) || defined (TC_SOLARIS)
case VolumeCreationOptions::FilesystemType::UFS: fsFormatter = "newfs" ; break;
#endif
@@ -1056,9 +1062,18 @@ namespace VeraCrypt
slotId = (CK_SLOT_ID) AskSelection (tokens.back().SlotId, tokens.front().SlotId);
}
- shared_ptr <KeyfileList> keyfiles = AskKeyfiles();
- if (keyfiles->empty())
- throw UserAbort();
+ shared_ptr <KeyfileList> keyfiles;
+
+ if (CmdLine->ArgKeyfiles.get() && !CmdLine->ArgKeyfiles->empty())
+ keyfiles = CmdLine->ArgKeyfiles;
+ else if (!Preferences.NonInteractive)
+ {
+ keyfiles = AskKeyfiles();
+ if (keyfiles->empty())
+ throw UserAbort();
+ }
+ else
+ throw MissingArgument (SRC_POS);
foreach_ref (const Keyfile &keyfilePath, *keyfiles)
{
diff --git a/src/Makefile b/src/Makefile
index 50af302..fe0c143 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -23,6 +23,7 @@
# SSSE3: Enable SSSE3 support in compiler
# SSE41: Enable SSE4.1 support in compiler
# NOSSE2: Disable SEE2 support in compiler
+# WITHGTK3: Build wxWidgets against GTK3
#------ Targets ------
# all
@@ -90,6 +91,9 @@ ifeq "$(origin WXSTATIC)" "command line"
export VC_WX_STATIC := 1
WX_CONFIG = $(WX_BUILD_DIR)/wx-config
WX_CONFIG_ARGS += --static
+ ifneq "$(WXSTATIC)" "FULL"
+ export VC_WX_MINIMAL := 1
+ endif
endif
@@ -132,7 +136,7 @@ export PLATFORM_UNSUPPORTED := 0
export CPU_ARCH ?= unknown
export SIMD_SUPPORTED := 0
-ARCH = $(shell uname -m)
+ARCH ?= $(shell uname -m)
ifneq (,$(filter i386 i486 i586 i686 x86,$(ARCH)))
CPU_ARCH = x86
@@ -223,6 +227,10 @@ 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
+ endif
endif
@@ -234,19 +242,25 @@ ifeq "$(shell uname -s)" "Darwin"
APPNAME := VeraCrypt
export VC_OSX_TARGET ?= 10.7
+ export VC_OSX_SDK ?= $(VC_OSX_TARGET)
#check to see if XCode 3 path exists.Otherwise, use XCode 4 path
- VC_OSX_SDK := /Developer/SDKs/MacOSX$(VC_OSX_TARGET).sdk
- ifeq ($(wildcard $(VC_OSX_SDK)/SDKSettings.plist),)
- VC_OSX_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX$(VC_OSX_TARGET).sdk
+ 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
+ endif
+
+ #----- Legacy build if OSX <= 10.8: we build both 32-bit and 64-bit ----
+ ifneq (,$(filter 10.6 10.7 10.8,$(VC_OSX_TARGET)))
+ export VC_LEGACY_BUILD := 1
endif
CC := gcc
CXX := g++
- C_CXX_FLAGS += -DTC_UNIX -DTC_BSD -DTC_MACOSX -mmacosx-version-min=$(VC_OSX_TARGET) -isysroot $(VC_OSX_SDK)
- LFLAGS += -mmacosx-version-min=$(VC_OSX_TARGET) -Wl,-syslibroot $(VC_OSX_SDK)
- WX_CONFIGURE_FLAGS += --with-macosx-version-min=$(VC_OSX_TARGET) --with-macosx-sdk=$(VC_OSX_SDK)
+ 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)
+ WX_CONFIGURE_FLAGS += --with-macosx-version-min=$(VC_OSX_TARGET) --with-macosx-sdk=$(VC_OSX_SDK_PATH)
ifeq "$(CPU_ARCH)" "x64"
CPU_ARCH = x86
@@ -276,10 +290,18 @@ ifeq "$(shell uname -s)" "Darwin"
S := $(C_CXX_FLAGS)
C_CXX_FLAGS = $(subst -MMD,,$(S))
- C_CXX_FLAGS += -gfull -arch i386 -arch x86_64
- LFLAGS += -Wl,-dead_strip -arch i386 -arch x86_64
+ C_CXX_FLAGS += -gfull -arch x86_64
+ LFLAGS += -Wl,-dead_strip -arch x86_64
+
+ #----- Legacy build: we build both 32-bit and 64-bit ----
+ ifdef VC_LEGACY_BUILD
+ C_CXX_FLAGS += -arch i386
+ LFLAGS += -arch i386
+ WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64
+ else
+ WX_CONFIGURE_FLAGS += --disable-universal_binary
+ endif
- WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64
WXCONFIG_CFLAGS += -gfull
WXCONFIG_CXXFLAGS += -gfull
@@ -358,8 +380,10 @@ CFLAGS := $(C_CXX_FLAGS) $(CFLAGS) $(TC_EXTRA_CFLAGS)
CXXFLAGS := $(C_CXX_FLAGS) $(CXXFLAGS) $(TC_EXTRA_CXXFLAGS)
LFLAGS := $(LFLAGS) $(TC_EXTRA_LFLAGS)
-WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-tracking --disable-compat26 --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype \
- --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard \
+WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-tracking --enable-exceptions --enable-std_string --enable-dataobj --enable-mimetype
+
+ifdef VC_WX_MINIMAL
+WX_CONFIGURE_FLAGS += --disable-protocol --disable-protocols --disable-url --disable-ipc --disable-sockets --disable-fs_inet --disable-ole --disable-docview --disable-clipboard \
--disable-help --disable-html --disable-mshtmlhelp --disable-htmlhelp --disable-mdi --disable-metafile --disable-webkit --disable-webview \
--disable-xrc --disable-aui --disable-postscript --disable-printarch \
--disable-arcstream --disable-fs_archive --disable-fs_zip --disable-tarstream --disable-zipstream \
@@ -372,14 +396,21 @@ WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-trac
--disable-richtext --disable-dialupman --disable-debugreport --disable-filesystem --disable-rearrangectrl --disable-treelist --disable-richmsgdlg \
--disable-richtooltip --disable-propgrid --disable-stc --without-libnotify \
--without-gtkprint --without-gnomevfs --disable-fsvolume --disable-fswatcher \
- --disable-graphics_ctx --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee \
+ --disable-sound --disable-mediactrl --disable-joystick --disable-apple_ieee \
--disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --disable-svg \
--without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib
-
+
ifeq "$(PLATFORM)" "Linux"
WX_CONFIGURE_FLAGS += --disable-tooltips
+ifneq "$(origin WITHGTK3)" "command line"
+ WX_CONFIGURE_FLAGS += --disable-graphics_ctx
+endif
+else
+ WX_CONFIGURE_FLAGS += --disable-graphics_ctx
+endif
endif
+
#------ Project build ------
PROJ_DIRS := Platform Volume Driver/Fuse Core Main
@@ -422,4 +453,4 @@ endif
cd "$(WX_BUILD_DIR)" && "$(WX_ROOT)/configure" $(WX_CONFIGURE_FLAGS) >/dev/null
@echo Building wxWidgets library...
- cd "$(WX_BUILD_DIR)" && $(MAKE)
+ cd "$(WX_BUILD_DIR)" && $(MAKE) -j 4
diff --git a/src/Mount/Favorites.cpp b/src/Mount/Favorites.cpp
index 284c0b5..e93b920 100644
--- a/src/Mount/Favorites.cpp
+++ b/src/Mount/Favorites.cpp
@@ -243,76 +243,91 @@ namespace VeraCrypt
switch (lw)
{
case IDOK:
-
- /* Global System Favorites settings */
-
- if (SystemFavoritesMode)
{
- BootEncryption BootEncObj (NULL);
+ BOOL bInitialOptionValue = NeedPeriodicDeviceListUpdate;
- if (BootEncObj.GetStatus().DriveMounted)
+ /* Global System Favorites settings */
+
+ if (SystemFavoritesMode)
{
- try
- {
- uint32 reqConfig = IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT) ? TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES : 0;
- if (reqConfig != (ReadDriverConfigurationFlags() & TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES))
- BootEncObj.SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES, reqConfig ? true : false);
+ BootEncryption BootEncObj (NULL);
- SetDriverConfigurationFlag (TC_DRIVER_CONFIG_DISABLE_NONADMIN_SYS_FAVORITES_ACCESS, IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_DISABLE_HOTKEY));
- }
- catch (Exception &e)
+ if (BootEncObj.GetStatus().DriveMounted)
{
- e.Show (hwndDlg);
+ try
+ {
+ uint32 reqConfig = IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_OPEN_EXPLORER_WIN_ON_MOUNT) ? TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES : 0;
+ if (reqConfig != (ReadDriverConfigurationFlags() & TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES))
+ BootEncObj.SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES, reqConfig ? true : false);
+
+ if (!BootEncObj.IsSystemFavoritesServiceRunning())
+ {
+ // The system favorites service should be always running
+ // If it is stopped for some reason, we reconfigure it
+ BootEncObj.RegisterSystemFavoritesService (TRUE);
+ }
+
+ SetDriverConfigurationFlag (TC_DRIVER_CONFIG_DISABLE_NONADMIN_SYS_FAVORITES_ACCESS, IsDlgButtonChecked (hwndDlg, IDC_FAVORITE_DISABLE_HOTKEY));
+ }
+ catch (Exception &e)
+ {
+ e.Show (hwndDlg);
+ }
}
}
- }
- /* (System) Favorites list */
+ /* (System) Favorites list */
- if (SelectedItem != -1 && !Favorites.empty())
- SetFavoriteVolume (hwndDlg, Favorites[SelectedItem], SystemFavoritesMode);
+ if (SelectedItem != -1 && !Favorites.empty())
+ SetFavoriteVolume (hwndDlg, Favorites[SelectedItem], SystemFavoritesMode);
- if (SaveFavoriteVolumes (hwndDlg, Favorites, SystemFavoritesMode))
- {
- if (!SystemFavoritesMode)
+ if (SaveFavoriteVolumes (hwndDlg, Favorites, SystemFavoritesMode))
{
- bMountFavoritesOnLogon = FALSE;
-
- foreach (const FavoriteVolume &favorite, Favorites)
+ if (!SystemFavoritesMode)
{
- if (favorite.MountOnLogOn)
+ bMountFavoritesOnLogon = FALSE;
+
+ foreach (const FavoriteVolume &favorite, Favorites)
{
- bMountFavoritesOnLogon = TRUE;
- break;
+ if (favorite.MountOnLogOn)
+ {
+ bMountFavoritesOnLogon = TRUE;
+ break;
+ }
}
- }
- if (!bEnableBkgTask || bCloseBkgTaskWhenNoVolumes || IsNonInstallMode())
- {
- foreach (const FavoriteVolume favorite, Favorites)
+ if (!bEnableBkgTask || bCloseBkgTaskWhenNoVolumes || IsNonInstallMode())
{
- if (favorite.MountOnArrival)
+ foreach (const FavoriteVolume favorite, Favorites)
{
- Warning ("FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR", hwndDlg);
- break;
+ if (favorite.MountOnArrival)
+ {
+ Warning ("FAVORITE_ARRIVAL_MOUNT_BACKGROUND_TASK_ERR", hwndDlg);
+ break;
+ }
}
}
- }
- FavoriteVolumes = Favorites;
+ if (!bInitialOptionValue && NeedPeriodicDeviceListUpdate)
+ {
+ // a favorite was set to use VolumeID. We update the list of devices available for mounting as early as possible
+ UpdateMountableHostDeviceList ();
+ }
+
+ FavoriteVolumes = Favorites;
- ManageStartupSeq();
- SaveSettings (hwndDlg);
- }
- else
- SystemFavoriteVolumes = Favorites;
+ ManageStartupSeq();
+ SaveSettings (hwndDlg);
+ }
+ else
+ SystemFavoriteVolumes = Favorites;
- OnFavoriteVolumesUpdated();
- LoadDriveLetters (hwndDlg, GetDlgItem (MainDlg, IDC_DRIVELIST), 0);
+ OnFavoriteVolumesUpdated();
+ LoadDriveLetters (hwndDlg, GetDlgItem (MainDlg, IDC_DRIVELIST), 0);
- EndDialog (hwndDlg, IDOK);
+ EndDialog (hwndDlg, IDOK);
+ }
}
-
return 1;
case IDCANCEL:
@@ -554,6 +569,7 @@ namespace VeraCrypt
void LoadFavoriteVolumes (vector <FavoriteVolume> &favorites, bool systemFavorites, bool noUacElevation)
{
+ bool bVolumeIdInUse = false;
favorites.clear();
wstring favoritesFilePath = systemFavorites ? GetServiceConfigPath (TC_APPD_FILENAME_SYSTEM_FAVORITE_VOLUMES, false) : GetConfigPath (TC_APPD_FILENAME_FAVORITE_VOLUMES);
@@ -701,10 +717,21 @@ namespace VeraCrypt
favorite.Pkcs5 = -1;
}
+ if (!systemFavorites && favorite.UseVolumeID)
+ bVolumeIdInUse = true;
+
favorites.push_back (favorite);
xml++;
}
+ if (!systemFavorites)
+ {
+ if (bVolumeIdInUse && !DisablePeriodicDeviceListUpdate)
+ NeedPeriodicDeviceListUpdate = TRUE;
+ else
+ NeedPeriodicDeviceListUpdate = FALSE;
+ }
+
free (favoritesXml);
}
@@ -763,6 +790,7 @@ namespace VeraCrypt
{
FILE *f;
int cnt = 0;
+ bool bVolumeIdInUse = false;
f = _wfopen (GetConfigPath (systemFavorites ? TC_APPD_FILENAME_SYSTEM_FAVORITE_VOLUMES : TC_APPD_FILENAME_FAVORITE_VOLUMES), L"w,ccs=UTF-8");
if (f == NULL)
@@ -827,7 +855,11 @@ namespace VeraCrypt
s += L" useLabelInExplorer=\"1\"";
if (favorite.UseVolumeID && !IsRepeatedByteArray (0, favorite.VolumeID, sizeof (favorite.VolumeID)))
+ {
s += L" useVolumeID=\"1\"";
+ if (!systemFavorites)
+ bVolumeIdInUse = true;
+ }
s += L">" + wstring (tq) + L"</volume>";
@@ -838,6 +870,14 @@ namespace VeraCrypt
fputws (L"\n\t</favorites>", f);
XmlWriteFooter (f);
+ if (!systemFavorites)
+ {
+ if (bVolumeIdInUse && !DisablePeriodicDeviceListUpdate)
+ NeedPeriodicDeviceListUpdate = TRUE;
+ else
+ NeedPeriodicDeviceListUpdate = FALSE;
+ }
+
if (!CheckFileStreamWriteErrors (hwndDlg, f, systemFavorites ? TC_APPD_FILENAME_SYSTEM_FAVORITE_VOLUMES : TC_APPD_FILENAME_FAVORITE_VOLUMES))
{
fclose (f);
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c
index 5f96afb..4ee32df 100644
--- a/src/Mount/Mount.c
+++ b/src/Mount/Mount.c
@@ -512,8 +512,11 @@ static void InitMainDialog (HWND hwndDlg)
e.Show (NULL);
}
- // initialize the list of devices available for mounting as early as possible
- UpdateMountableHostDeviceList ();
+ if (NeedPeriodicDeviceListUpdate)
+ {
+ // initialize the list of devices available for mounting as early as possible
+ UpdateMountableHostDeviceList ();
+ }
if (Silent)
LoadDriveLetters (hwndDlg, NULL, 0);
@@ -2968,7 +2971,12 @@ BOOL CALLBACK PasswordDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
SetWindowPos (hwndDlg, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
SetFocus (GetDlgItem (hwndDlg, IDC_PASSWORD));
- SetTimer (hwndDlg, TIMER_ID_CHECK_FOREGROUND, TIMER_INTERVAL_CHECK_FOREGROUND, NULL);
+
+ /* Start the timer to check if we are foreground only if Secure Desktop is not used */
+ if (!bSecureDesktopOngoing)
+ {
+ SetTimer (hwndDlg, TIMER_ID_CHECK_FOREGROUND, TIMER_INTERVAL_CHECK_FOREGROUND, NULL);
+ }
}
return 0;
@@ -6069,8 +6077,6 @@ static void DecryptNonSysDevice (HWND hwndDlg, BOOL bResolveAmbiguousSelection,
return;
}
- WaitCursor();
-
// Make sure the user is not attempting to decrypt a partition on an entirely encrypted system drive.
if (IsNonSysPartitionOnSysDrive (scPath.c_str ()) == 1)
{
@@ -6088,8 +6094,6 @@ static void DecryptNonSysDevice (HWND hwndDlg, BOOL bResolveAmbiguousSelection,
{
// The system drive MAY be entirely encrypted (external access without PBA) and the potentially encrypted OS is not running
- NormalCursor ();
-
Warning ("CANT_DECRYPT_PARTITION_ON_ENTIRELY_ENCRYPTED_SYS_DRIVE_UNSURE", hwndDlg);
// We allow the user to continue as we don't know if the drive is really an encrypted system drive.
@@ -7336,7 +7340,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
if (wParam == TIMER_ID_UPDATE_DEVICE_LIST)
{
- UpdateMountableHostDeviceList ();
+ if (NeedPeriodicDeviceListUpdate)
+ UpdateMountableHostDeviceList ();
}
else
{
@@ -8872,6 +8877,7 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
OptionTryEmptyPassword,
OptionNoWaitDlg,
OptionSecureDesktop,
+ OptionDisableDeviceUpdate,
};
argument args[]=
@@ -8900,6 +8906,7 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
{ OptionTryEmptyPassword, L"/tryemptypass", NULL, FALSE },
{ OptionNoWaitDlg, L"/nowaitdlg", NULL, FALSE },
{ OptionSecureDesktop, L"/secureDesktop", NULL, FALSE },
+ { OptionDisableDeviceUpdate, L"/disableDeviceUpdate", NULL, FALSE },
};
argumentspec as;
@@ -8990,6 +8997,12 @@ void ExtractCommandLine (HWND hwndDlg, wchar_t *lpszCommandLine)
}
break;
+ case OptionDisableDeviceUpdate:
+ {
+ DisablePeriodicDeviceListUpdate = TRUE;
+ }
+ break;
+
case OptionCache:
{
wchar_t szTmp[16] = {0};
@@ -9529,8 +9542,6 @@ static VOID WINAPI SystemFavoritesServiceMain (DWORD argc, LPTSTR *argv)
SystemFavoritesServiceSetStatus (SERVICE_START_PENDING, 120000);
SystemFavoritesServiceLogInfo (wstring (L"Initializing list of host devices"));
- // initialize the list of devices available for mounting as early as possible
- UpdateMountableHostDeviceList ();
SystemFavoritesServiceLogInfo (wstring (L"Starting System Favorites mounting process"));
@@ -10111,9 +10122,6 @@ BOOL MountFavoriteVolumes (HWND hwnd, BOOL systemFavorites, BOOL logOnMount, BOO
{
Sleep (5000);
- SystemFavoritesServiceLogInfo (wstring (L"Updating list of host devices"));
- UpdateMountableHostDeviceList ();
-
SystemFavoritesServiceLogInfo (wstring (L"Trying to mount skipped system favorites"));
// Update the service status to avoid being killed
@@ -11618,6 +11626,14 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
BOOL bClearKeysEnabled = (driverConfig & VC_DRIVER_CONFIG_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION)? TRUE : FALSE;
BOOL bIsHiddenOS = IsHiddenOSRunning ();
+ if (bClearKeysEnabled)
+ {
+ // the clear keys option works only if the service is running
+ if (!BootEncObj->IsSystemFavoritesServiceRunning())
+ bClearKeysEnabled = false;
+ }
+
+
if (!BootEncObj->ReadBootSectorConfig (nullptr, 0, &userConfig, &customUserMessage, &bootLoaderVersion))
{
// operations canceled
@@ -11781,6 +11797,17 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
BOOL bPimCacheEnabled = IsDlgButtonChecked (hwndDlg, IDC_BOOT_LOADER_CACHE_PIM);
BOOL bBlockSysEncTrimEnabled = IsDlgButtonChecked (hwndDlg, IDC_BLOCK_SYSENC_TRIM);
BOOL bClearKeysEnabled = IsDlgButtonChecked (hwndDlg, IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION);
+
+ if (bClearKeysEnabled && !BootEncObj->IsSystemFavoritesServiceRunning())
+ {
+ // the system favorite service service should be running
+ // if it is not the case, report a failure and quit
+ std::string techInfo = SRC_POS;
+ techInfo += "\nIsSystemFavoritesServiceRunning = False.";
+ ReportUnexpectedState (techInfo.c_str());
+ return 1;
+ }
+
BootEncObj->WriteBootSectorUserConfig (userConfig, customUserMessage, prop.volumePim, prop.pkcs5);
SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD, bPasswordCacheEnabled);
SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PIM, (bPasswordCacheEnabled && bPimCacheEnabled)? TRUE : FALSE);
@@ -11833,7 +11860,18 @@ static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARA
case IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION:
if (IsDlgButtonChecked (hwndDlg, IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION))
{
- Warning ("CLEAR_KEYS_ON_DEVICE_INSERTION_WARNING", hwndDlg);
+ if (!BootEncObj->IsSystemFavoritesServiceRunning())
+ {
+ // the system favorite service service should be running
+ // if it is not the case, report a failure
+ std::string techInfo = SRC_POS;
+ techInfo += "\nIsSystemFavoritesServiceRunning = False.";
+ ReportUnexpectedState (techInfo.c_str());
+
+ CheckDlgButton (hwndDlg, IDC_CLEAR_KEYS_ON_NEW_DEVICE_INSERTION, BST_UNCHECKED);
+ }
+ else
+ Warning ("CLEAR_KEYS_ON_DEVICE_INSERTION_WARNING", hwndDlg);
}
break;
diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc
index 137cc62..ba58d6f 100644
--- a/src/Mount/Mount.rc
+++ b/src/Mount/Mount.rc
@@ -548,8 +548,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,7,0
+ PRODUCTVERSION 1,24,7,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -566,11 +566,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "IDRIX"
VALUE "FileDescription", "VeraCrypt"
- VALUE "FileVersion", "1.24-Beta5"
+ VALUE "FileVersion", "1.24-Hotfix1-Preview"
VALUE "LegalTrademarks", "VeraCrypt"
VALUE "OriginalFilename", "VeraCrypt.exe"
VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.24-Beta5"
+ VALUE "ProductVersion", "1.24-Hotfix1-Preview"
END
END
BLOCK "VarFileInfo"
diff --git a/src/Mount/Mount.vcxproj.user b/src/Mount/Mount.vcxproj.user
index ace9a86..75a63e9 100644
--- a/src/Mount/Mount.vcxproj.user
+++ b/src/Mount/Mount.vcxproj.user
@@ -1,3 +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|x64'">
+ <LocalDebuggerCommandArguments>/DisableDeviceUpdate</LocalDebuggerCommandArguments>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
</Project> \ No newline at end of file
diff --git a/src/Release/Setup Files/veracrypt-x64.cat b/src/Release/Setup Files/veracrypt-x64.cat
index 076d114..0668d0b 100644
--- a/src/Release/Setup Files/veracrypt-x64.cat
+++ b/src/Release/Setup Files/veracrypt-x64.cat
Binary files differ
diff --git a/src/Release/Setup Files/veracrypt-x64.sys b/src/Release/Setup Files/veracrypt-x64.sys
index 532ca44..92793af 100644
--- a/src/Release/Setup Files/veracrypt-x64.sys
+++ b/src/Release/Setup Files/veracrypt-x64.sys
Binary files differ
diff --git a/src/Release/Setup Files/veracrypt.Inf b/src/Release/Setup Files/veracrypt.Inf
index 94ced21..5ddf083 100644
--- a/src/Release/Setup Files/veracrypt.Inf
+++ b/src/Release/Setup Files/veracrypt.Inf
@@ -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 = 03/08/2019,1.24.5.0
+DriverVer = 10/01/2019,1.24.6.0
CatalogFile = veracrypt.cat
diff --git a/src/Release/Setup Files/veracrypt.cat b/src/Release/Setup Files/veracrypt.cat
index 9756100..7a5aba5 100644
--- a/src/Release/Setup Files/veracrypt.cat
+++ b/src/Release/Setup Files/veracrypt.cat
Binary files differ
diff --git a/src/Release/Setup Files/veracrypt.sys b/src/Release/Setup Files/veracrypt.sys
index c2408b7..884fb78 100644
--- a/src/Release/Setup Files/veracrypt.sys
+++ b/src/Release/Setup Files/veracrypt.sys
Binary files differ
diff --git a/src/Setup/FreeBSD/veracrypt-uninstall.sh b/src/Setup/FreeBSD/veracrypt-uninstall.sh
index f8f111e..e29dbcc 100644
--- a/src/Setup/FreeBSD/veracrypt-uninstall.sh
+++ b/src/Setup/FreeBSD/veracrypt-uninstall.sh
@@ -6,6 +6,7 @@ rm -f /usr/bin/veracrypt
rm -f /usr/share/applications/veracrypt.desktop
rm -f /usr/share/pixmaps/veracrypt.xpm
rm -fr /usr/share/veracrypt
+rm -fr /usr/share/doc/veracrypt
echo VeraCrypt uninstalled.
rm -f /usr/bin/veracrypt-uninstall.sh
diff --git a/src/Setup/Linux/veracrypt-uninstall.sh b/src/Setup/Linux/veracrypt-uninstall.sh
index f8f111e..e29dbcc 100644
--- a/src/Setup/Linux/veracrypt-uninstall.sh
+++ b/src/Setup/Linux/veracrypt-uninstall.sh
@@ -6,6 +6,7 @@ rm -f /usr/bin/veracrypt
rm -f /usr/share/applications/veracrypt.desktop
rm -f /usr/share/pixmaps/veracrypt.xpm
rm -fr /usr/share/veracrypt
+rm -fr /usr/share/doc/veracrypt
echo VeraCrypt uninstalled.
rm -f /usr/bin/veracrypt-uninstall.sh
diff --git a/src/Setup/MacOSX/veracrypt.pkgproj b/src/Setup/MacOSX/veracrypt.pkgproj
index 23299f5..e7f8d14 100755
--- a/src/Setup/MacOSX/veracrypt.pkgproj
+++ b/src/Setup/MacOSX/veracrypt.pkgproj
@@ -495,7 +495,7 @@
<key>OVERWRITE_PERMISSIONS</key>
<false/>
<key>VERSION</key>
- <string>1.24.5</string>
+ <string>1.24.7</string>
</dict>
<key>UUID</key>
<string>B14381D9-EC5F-43E4-B971-82AB3D132A64</string>
@@ -1004,7 +1004,7 @@ https://osxfuse.github.io/
</dict>
</array>
<key>NAME</key>
- <string>VeraCrypt 1.24-Beta5</string>
+ <string>VeraCrypt 1.24-Hotfix1-Preview</string>
</dict>
</dict>
<key>SHARED_GLOBAL_DATA</key>
diff --git a/src/Setup/Portable.rc b/src/Setup/Portable.rc
index abbdd6c..f12ead1 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,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,67,0
+ PRODUCTVERSION 1,24,7,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -44,11 +44,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "IDRIX"
VALUE "FileDescription", "VeraCrypt Portable"
- VALUE "FileVersion", "1.24-Beta5"
+ VALUE "FileVersion", "1.24-Hotfix1-Preview"
VALUE "LegalTrademarks", "VeraCrypt"
VALUE "OriginalFilename", "VeraCrypt Portable.exe"
VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.24-Beta5"
+ VALUE "ProductVersion", "1.24-Hotfix1-Preview"
END
END
BLOCK "VarFileInfo"
diff --git a/src/Setup/Setup.rc b/src/Setup/Setup.rc
index 639ceda..28a03db 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,24,5,0
- PRODUCTVERSION 1,24,5,0
+ FILEVERSION 1,24,7,0
+ PRODUCTVERSION 1,24,7,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -46,11 +46,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "IDRIX"
VALUE "FileDescription", "VeraCrypt Setup"
- VALUE "FileVersion", "1.24-Beta5"
+ VALUE "FileVersion", "1.24-Hotfix1-Preview"
VALUE "LegalTrademarks", "VeraCrypt"
VALUE "OriginalFilename", "VeraCrypt Setup.exe"
VALUE "ProductName", "VeraCrypt"
- VALUE "ProductVersion", "1.24-Beta5"
+ VALUE "ProductVersion", "1.24-Hotfix1-Preview"
END
END
BLOCK "VarFileInfo"
diff --git a/src/Signing/DigiCert_High_Assurance_Code_Signing_CA.cer b/src/Signing/DigiCert_High_Assurance_Code_Signing_CA.cer
new file mode 100644
index 0000000..cddf4d0
--- /dev/null
+++ b/src/Signing/DigiCert_High_Assurance_Code_Signing_CA.cer
Binary files differ
diff --git a/src/Signing/DigiCert_High_Assurance_MS_Cross_Cert.crt b/src/Signing/DigiCert_High_Assurance_MS_Cross_Cert.crt
new file mode 100644
index 0000000..c42e0fc
--- /dev/null
+++ b/src/Signing/DigiCert_High_Assurance_MS_Cross_Cert.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFOzCCAyOgAwIBAgIKYSBNtAAAAAAAJzANBgkqhkiG9w0BAQUFADB/MQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
+MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNyb3Nv
+ZnQgQ29kZSBWZXJpZmljYXRpb24gUm9vdDAeFw0xMTA0MTUxOTQ1MzNaFw0yMTA0
+MTUxOTU1MzNaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
+GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNVBAMTIkRpZ2lDZXJ0IEhp
+Z2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD1ZQ0Z6IKHLBfaaZAscS3
+so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80ltcZF+Y7arpl/DpIT4T2JR
+vvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46OFBbdzEbjbPHJEWap6xt
+ABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZdHFMsfpjNGgYWpGhz0DQE
+E1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdmt4i3ePLKCqg4qwpkwr9m
+XZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjgcswgcgwEQYDVR0gBAowCDAG
+BgRVHSAAMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSx
+PsNpA/i/RwHUmCYaCALvY2QrwzAfBgNVHSMEGDAWgBRi+wohW39DbhHaCVRQa/XS
+lnHxnjBVBgNVHR8ETjBMMEqgSKBGhkRodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
+cGtpL2NybC9wcm9kdWN0cy9NaWNyb3NvZnRDb2RlVmVyaWZSb290LmNybDANBgkq
+hkiG9w0BAQUFAAOCAgEAIIzBWe1vnGstwUo+dR1FTEFQHL2A6tmwkosGKhM/Uxae
+VjlqimO2eCR59X24uUehCpbC9su9omafBuGs0nkJDv083KwCDHCvPxvseH7U60sF
+YCbZc2GRIe2waGPglxKrb6AS7dmf0tonPLPkVvnR1IEPcb1CfKaJ3M3VvZWiq/GT
+EX3orDEpqF1mcEGd/HXJ1bMaOSrQhQVQi6yRysSTy3GlnaSUb1gM+m4gxAgxtYWd
+foH50j3KWxiFbAqG7CIJG6V0NE9/KLyVSqsdtpiwXQmkd3Z+76eOXYT2GCTL0W2m
+w6GcwhB1gP+dMv3mz0M6gvfOj+FyKptit1/tlRo5XC+UbUi3AV8zL7vcLXM0iQRC
+ChyLefmj+hfv+qEaEN/gssGV61wMBZc7NT4YiE3bbL8kiY3Ivdifezk6JKDV39Hz
+ShqX9qZveh+wkKmzrAE5kdNht2TxPlc4A6/OetK1kPWu3DmZ1bY8l+2myxbHfWsq
+TJCU5kxU/R7NIOzOaJyHWOlhYL7rDsnVGX2f6Xi9DqwhdQePqW7gjGoqa5zj52W8
+vC08bdwE3GdFNjKvBIG8qABuYUyVxVzUjo6fL8EydL29EWUDB83vt14CV9qG1Boo
+NK+ISbLPpd2CVm9oqhTiWVT+/+ru7+qScCJggeMlI8CfzA9JsjWqWMM6w9kWlBA=
+-----END CERTIFICATE-----
diff --git a/src/Signing/Thawt_CodeSigning_CA.crt b/src/Signing/Thawt_CodeSigning_CA.crt
deleted file mode 100644
index 8a25792..0000000
--- a/src/Signing/Thawt_CodeSigning_CA.crt
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEnDCCA4SgAwIBAgIQR5dNeHOlvKsNL7NwGS/OXjANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
-MjA3MjM1OTU5WjBKMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
-MSQwIgYDVQQDExtUaGF3dGUgQ29kZSBTaWduaW5nIENBIC0gRzIwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3i891W58l2n45sJPbONOpI9CC+ukkflwL
-joP45npZ5qPFmKeZ0kT/AKalOQSK2imI6tui8xyZFSbCsfT84QxHqQkRBgogkrnH
-oASMXJQZq1slLB1ifnANzmFs3SuCyc5dSF/3wr68QSMeTyld10+89MUq/GPmfCZO
-mad5QZ4QSnp5ycaG94aV0ibOPBgq1nzOr82tu/eCLHAmN0XlD0cixgEovS6DXGqk
-R8Hn0NhrgUY/IRf1B8VDWqZnLLh7YBG1g+71dApycUQ9WP7oGqs4w1nbf244fXbH
-cmmYNpZX02Yc0lSRBC5UGbDcPbUiXobVKn4g313merFl/sUCTjEtAgMBAAGjggEc
-MIIBGDASBgNVHRMBAf8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6
-Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAy
-BggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5j
-b20wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCkGA1UdEQQiMCCkHjAc
-MRowGAYDVQQDExFWZXJpU2lnbk1QS0ktMi0xMDAdBgNVHQ4EFgQU1A1lP3q9NMb+
-R+dMDcC98t4Vq3EwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
-KoZIhvcNAQEFBQADggEBAFb+U1zhx568p+1+U21qFEtRjEBegF+qpOgv7zjIBMnK
-Ps/fOlhOsNS2Y8UpV/oCBZpFTWjbKhvUND2fAMNay5VJpW7hsMX8QU1BSm/Td8jX
-OI3kGd4Y8x8VZYNtRQxT+QqaLqVdv28ygRiSGWpVAK1jHFIGflXZKWiuSnwYmnmI
-ayMj2Cc4KimHdsr7x7ZiIx/telZM3ZwyW/U9DEYYlTsqI2iDZEHZAG0PGSQVaHK9
-xXFnbqxM25DrUaUaYgfQvmoARzxyL+xPYT5zhc5aCre6wBwTdeMiOSjdbR0JRp1P
-uuhAgZHGpM6UchsBzypuFWeVia59t7fN+Qo9dbZrPCU=
------END CERTIFICATE----- \ No newline at end of file
diff --git a/src/Signing/sign.bat b/src/Signing/sign.bat
index a635b3b..7b0c211 100644
--- a/src/Signing/sign.bat
+++ b/src/Signing/sign.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.24-Beta5
+set VC_VERSION=1.24-Hotfix1-Preview
set SIGNINGPATH=%~dp0
cd %SIGNINGPATH%
@@ -9,8 +9,8 @@ call "..\..\doc\chm\create_chm.bat"
cd %SIGNINGPATH%
rem sign using SHA-1
-signtool sign /v /a /n IDRIX /i Thawte /ac thawte_Primary_MS_Cross_Cert.cer /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys"
-signtool sign /v /a /n IDRIX /i Thawte /ac Thawt_CodeSigning_CA.crt /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt.exe" "..\Release\Setup Files\VeraCrypt Format.exe" "..\Release\Setup Files\VeraCryptExpander.exe" "..\Release\Setup Files\VeraCrypt-x64.exe" "..\Release\Setup Files\VeraCrypt Format-x64.exe" "..\Release\Setup Files\VeraCryptExpander-x64.exe"
+signtool sign /v /sha1 1FE67EF0455A9CC11433542FEC0A86DDD644B405 /ac DigiCert_High_Assurance_MS_Cross_Cert.crt /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\veracrypt.sys" "..\Release\Setup Files\veracrypt-x64.sys"
+signtool sign /v /sha1 1FE67EF0455A9CC11433542FEC0A86DDD644B405 /ac DigiCert_High_Assurance_Code_Signing_CA.cer /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt.exe" "..\Release\Setup Files\VeraCrypt Format.exe" "..\Release\Setup Files\VeraCryptExpander.exe" "..\Release\Setup Files\VeraCrypt-x64.exe" "..\Release\Setup Files\VeraCrypt Format-x64.exe" "..\Release\Setup Files\VeraCryptExpander-x64.exe"
timeout /t 10
@@ -58,7 +58,7 @@ rmdir /S /Q docs
cd %SIGNINGPATH%
rem sign using SHA-1
-signtool sign /v /a /n IDRIX /i Thawte /ac Thawt_CodeSigning_CA.crt /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup %VC_VERSION%.exe" "..\Release\Setup Files\VeraCrypt Portable %VC_VERSION%.exe"
+signtool sign /v /sha1 1FE67EF0455A9CC11433542FEC0A86DDD644B405 /ac DigiCert_High_Assurance_Code_Signing_CA.cer /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup %VC_VERSION%.exe" "..\Release\Setup Files\VeraCrypt Portable %VC_VERSION%.exe"
timeout /t 10
diff --git a/src/Signing/sign_test.bat b/src/Signing/sign_test.bat
index a0346dd..8c6d8a3 100644
--- a/src/Signing/sign_test.bat
+++ b/src/Signing/sign_test.bat
@@ -1,5 +1,5 @@
PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip
-set VC_VERSION=1.24-Beta5
+set VC_VERSION=1.24-Hotfix1-Preview
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 8c93626..7a69e4b 100644
--- a/src/Signing/sign_test_debug.bat
+++ b/src/Signing/sign_test_debug.bat
@@ -1,5 +1,5 @@
PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip
-set VC_VERSION=1.24-Beta5
+set VC_VERSION=1.24-Hotfix1-Preview
set PFXNAME=TestCertificate\idrix_codeSign.pfx
set PFXPASSWORD=idrix
set PFXCA=TestCertificate\idrix_TestRootCA.crt
diff --git a/src/Signing/thawte_Primary_MS_Cross_Cert.cer b/src/Signing/thawte_Primary_MS_Cross_Cert.cer
deleted file mode 100644
index 4389935..0000000
--- a/src/Signing/thawte_Primary_MS_Cross_Cert.cer
+++ /dev/null
@@ -1,32 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFeTCCA2GgAwIBAgIKYR+wpAAAAAAAHTANBgkqhkiG9w0BAQUFADB/MQswCQYD
-VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
-MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNyb3Nv
-ZnQgQ29kZSBWZXJpZmljYXRpb24gUm9vdDAeFw0xMTAyMjIxOTMxNTdaFw0yMTAy
-MjIxOTQxNTdaMIGpMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
-MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwNiB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTEfMB0GA1UEAxMWdGhhd3RlIFByaW1hcnkgUm9vdCBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKyg8PuAWdScx6TPnaFZcwkQRQwNLG5o8Wxb
-SGhJWTf8CzMZwnd/zBAtlTQc5utNCacc0rjJlzYCt4nUJF8GwMxElJSNAmJv61rd
-EY0omlyEkBB6Db10Zi9qOKDi1VRE6x0Hnwe6b+7p/U4LKfU+hKAB8Zyr+Bx+iaTo
-odhxZQ2jUXvuvNIiYA25W53fuvxRWwuvmLLpLukE6GKH3ivI107BTGQe3c+HWLpK
-T8poBx0cnUrG1S+RzHxxchzFwGfrMv3JklyU2oXAm79TfSsJ9IydkR+XalLL3gk2
-pHfYe4dQRNU+bilp+zlJJh4JpYB7QC3r6CeFyf5h/X7mfJcd1Z0CAwEAAaOByzCB
-yDARBgNVHSAECjAIMAYGBFUdIAAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMC
-AYYwHQYDVR0OBBYEFHtbRc+vzst6/TGSGmq280brV0hQMB8GA1UdIwQYMBaAFGL7
-CiFbf0NuEdoJVFBr9dKWcfGeMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly9jcmwu
-bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdENvZGVWZXJp
-ZlJvb3QuY3JsMA0GCSqGSIb3DQEBBQUAA4ICAQAtzHG16LqU/17mRGcAe2r8QSw+
-5w5BhVqxKpMrqVuJ8vcrSZyAA/KXuOdgqA7X/V3lRUZ1lPTtHJ3hZiKLYfsp8sao
-vfOHyY9/R+HAWLZKGqLn9xhgaWnggwaeJsd1xAwNedp0a1K5+ujqM1m5uxjdKRoU
-39NqNyd6naDaz//8IsT68An/M+k+F7ocx0LPzidD0wwMVYEwPblgYM4C7OGe6B3c
-hSzgoY2WbZWsF6RxPqFnQbYoHSzjthXlt+Wi9iVthuMgrPn4MU+OYpuYMzdtavc1
-Uj6Q/rA7X8W4UqngbqBHmieel66iSp5TGTnsNX7GWd464Kr1M/BqvaCCGBLeoYxF
-cMor1i6VkUWZWlwkAEm9I7MM7KQ99bnh0bGCWjjuo/uhq0g6jF3/oGUiP9PT/kmQ
-2xRGo4UuilVLCas4sqtjoAjR/a1I4nPYErzCbKUW+tCawF44ODorcY5VOqxCGXof
-DUIg56tdjGiAUkyhwNSI0CMh+5ATCQB7STevqd9IYCKr9PbCNjv4UTw0u8WG5Drh
-n0uQ/lRhAksVnDQXaqlLjUy2nSMmyDrx1rgFzdodYkAYOi8bQc06mToKqdHXfrjE
-r/e4yYAQXtVd9s56mgLFD2OB77Vk6fxb2NJhmmjDfPnHjfkeh9X6LPgWrp2rBo/I
-bcdBzaFOhOPawm68+w==
------END CERTIFICATE-----
diff --git a/src/Volume/VolumePassword.cpp b/src/Volume/VolumePassword.cpp
index fee149c..a22c938 100644
--- a/src/Volume/VolumePassword.cpp
+++ b/src/Volume/VolumePassword.cpp
@@ -16,6 +16,10 @@
namespace VeraCrypt
{
+ const size_t VolumePassword::MaxLegacySize = 64;
+ const size_t VolumePassword::MaxSize = 128;
+ const size_t VolumePassword::WarningSizeThreshold = 12;
+
VolumePassword::VolumePassword () : PasswordSize (0)
{
AllocateBuffer ();
diff --git a/src/Volume/VolumePassword.h b/src/Volume/VolumePassword.h
index 5e31977..d82d0f4 100644
--- a/src/Volume/VolumePassword.h
+++ b/src/Volume/VolumePassword.h
@@ -41,9 +41,9 @@ namespace VeraCrypt
TC_SERIALIZABLE (VolumePassword);
- static const size_t MaxLegacySize = 64;
- static const size_t MaxSize = 128;
- static const size_t WarningSizeThreshold = 12;
+ static const size_t MaxLegacySize;
+ static const size_t MaxSize;
+ static const size_t WarningSizeThreshold;
protected:
void AllocateBuffer ();